Skip to content
This repository was archived by the owner on Nov 4, 2024. It is now read-only.

Commit 4cd5774

Browse files
author
the-djmaze
committed
ko.utils.domNodeDisposal.addDisposeCallback to ko.addDisposeCallback
1 parent c744b83 commit 4cd5774

File tree

12 files changed

+111
-113
lines changed

12 files changed

+111
-113
lines changed

dev/External/User/ko.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ Object.assign(ko.bindingHandlers, {
9797

9898
fValue.subscribe(fUpdateEditorValue);
9999

100-
// ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
100+
// ko.addDisposeCallback(element, () => {
101101
// });
102102
}
103103
}

dev/External/ko.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export const
3131

3232
onEvent = (element, event, fn) => {
3333
element.addEventListener(event, fn);
34-
ko.utils.domNodeDisposal.addDisposeCallback(element, () => element.removeEventListener(event, fn));
34+
ko.addDisposeCallback(element, () => element.removeEventListener(event, fn));
3535
},
3636

3737
onKey = (key, element, fValueAccessor, fAllBindings, model) => {

plugins/avatars/index.php

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ private function JsonAvatar($message) : ?string
8080
|| ($this->Config()->Get('plugin', 'favicon', false) && 'pass' == $mFrom['dkimStatus'])
8181
)
8282
) {
83-
// return \MailSo\Base\Utils::UrlSafeBase64Encode(\mb_strtolower($mFrom['email']));
8483
return 'remote';
8584
}
8685
if ('pass' == $mFrom['dkimStatus'] && $this->Config()->Get('plugin', 'service', true)) {
@@ -186,21 +185,29 @@ protected function configMapping() : array
186185
return $aResult;
187186
}
188187

189-
// Only allow service icon when DKIM is valid. $bBimi is true when DKIM is valid.
190-
private static function getServiceIcon(string $sEmail) : ?string
188+
private static function getServicePng(string $sDomain) : ?string
191189
{
192-
$sDomain = \explode('@', $sEmail);
193-
$sDomain = \array_pop($sDomain);
194190
$aServices = [
195191
"services/{$sDomain}",
196192
'services/' . static::serviceDomain($sDomain)
197193
];
198194
foreach ($aServices as $service) {
199195
$file = __DIR__ . "/images/{$service}.png";
200196
if (\file_exists($file)) {
201-
return 'data:image/png;base64,' . \base64_encode(\file_get_contents($file));
197+
return $file;
202198
}
203199
}
200+
return null;
201+
}
202+
203+
// Only allow service icon when DKIM is valid. $bBimi is true when DKIM is valid.
204+
private static function getServiceIcon(string $sEmail) : ?string
205+
{
206+
$aParts = \explode('@', $sEmail);
207+
$file = static::getServicePng(\array_pop($aParts));
208+
if ($file) {
209+
return 'data:image/png;base64,' . \base64_encode(\file_get_contents($file));
210+
}
204211

205212
$aResult = static::getCachedImage($sEmail);
206213
if ($aResult) {
@@ -282,20 +289,13 @@ private function getAvatar(string $sEmail, bool $bBimi, string $sBimiSelector =
282289

283290
// Only allow service icon when DKIM is valid. $bBimi is true when DKIM is valid.
284291
if ($bBimi && !$aResult) {
285-
$aServices = [
286-
"services/{$sDomain}",
287-
'services/' . static::serviceDomain($sDomain)
288-
];
289-
foreach ($aServices as $service) {
290-
$file = __DIR__ . "/images/{$service}.png";
291-
if (\file_exists($file)) {
292-
\MailSo\Base\Http::setLastModified(\filemtime($file));
293-
$aResult = [
294-
'image/png',
295-
\file_get_contents($file)
296-
];
297-
break;
298-
}
292+
$file = static::getServicePng($sDomain);
293+
if ($file) {
294+
\MailSo\Base\Http::setLastModified(\filemtime($file));
295+
$aResult = [
296+
'image/png',
297+
\file_get_contents($file)
298+
];
299299
}
300300

301301
if (!$aResult && $this->Config()->Get('plugin', 'favicon', false)) {

vendors/knockout/build/output/knockout-latest.debug.js

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ ko.utils = {
121121
element.textContent = ko.utils.unwrapObservable(textContent)
122122
};
123123

124-
ko.exportSymbol('utils', ko.utils);
124+
//ko.exportSymbol('utils', ko.utils);
125125
ko.exportSymbol('unwrap', ko.utils.unwrapObservable); // Convenient shorthand, because this is used so commonly
126126
(() => {
127127

@@ -195,7 +195,7 @@ ko.utils.domNodeDisposal = (() => {
195195
};
196196

197197
return {
198-
'addDisposeCallback' : (node, callback) => {
198+
addDisposeCallback : (node, callback) => {
199199
if (typeof callback != "function")
200200
throw Error("Callback must be a function");
201201
getDisposeCallbacksCollection(node, 1).add(callback);
@@ -232,7 +232,8 @@ ko.utils.domNodeDisposal = (() => {
232232
})();
233233
ko.cleanNode = ko.utils.domNodeDisposal.cleanNode; // Shorthand name for convenience
234234
ko.removeNode = ko.utils.domNodeDisposal.removeNode; // Shorthand name for convenience
235-
ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
235+
//ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
236+
ko.exportSymbol('addDisposeCallback', ko.utils.domNodeDisposal.addDisposeCallback);
236237
ko['extenders'] = {
237238
'debounce': (target, timeout) => target.limit(callback => debounce(callback, timeout)),
238239

@@ -295,7 +296,7 @@ class koSubscription
295296
disposeWhenNodeIsRemoved(node) {
296297
// MutationObserver ?
297298
this._node = node;
298-
ko.utils.domNodeDisposal['addDisposeCallback'](node, this._domNodeDisposalCallback = this['dispose'].bind(this));
299+
ko.utils.domNodeDisposal.addDisposeCallback(node, this._domNodeDisposalCallback = this['dispose'].bind(this));
299300
}
300301
}
301302

@@ -881,7 +882,7 @@ ko.computed = (evaluatorFunctionOrOptions, options) => {
881882
// Attach a DOM node disposal callback so that the computed will be proactively disposed as soon as the node is
882883
// removed using ko.removeNode. But skip if isActive is false (there will never be any dependencies to dispose).
883884
if (state.disposeWhenNodeIsRemoved && computedObservable.isActive()) {
884-
ko.utils.domNodeDisposal['addDisposeCallback'](state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
885+
ko.utils.domNodeDisposal.addDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
885886
computedObservable['dispose']();
886887
});
887888
}
@@ -1537,17 +1538,15 @@ ko.expressionRewriting = (() => {
15371538
ko.utils.setDomNodeChildren(node, childNodes);
15381539
},
15391540

1540-
prepend: (containerNode, nodeToPrepend) => {
1541-
// Start comments must always have a parent and at least one following sibling (the end comment)
1542-
isStartComment(containerNode)
1543-
? containerNode.nextSibling.before(nodeToPrepend)
1544-
: containerNode.prepend(nodeToPrepend);
1545-
},
1546-
15471541
insertAfter: (containerNode, nodeToInsert, insertAfterNode) => {
15481542
insertAfterNode
15491543
? insertAfterNode.after(nodeToInsert)
1550-
: ko.virtualElements.prepend(containerNode, nodeToInsert);
1544+
: (
1545+
// Start comments must always have a parent and at least one following sibling (the end comment)
1546+
isStartComment(containerNode)
1547+
? containerNode.nextSibling.before(nodeToInsert)
1548+
: containerNode.prepend(nodeToInsert)
1549+
);
15511550
},
15521551

15531552
firstChild: node => {
@@ -1790,7 +1789,7 @@ class AsyncCompleteContext {
17901789
this.asyncDescendants = new Set;
17911790
this.childrenComplete = false;
17921791

1793-
bindingInfo.asyncContext || ko.utils.domNodeDisposal['addDisposeCallback'](node, asyncContextDispose);
1792+
bindingInfo.asyncContext || ko.utils.domNodeDisposal.addDisposeCallback(node, asyncContextDispose);
17941793

17951794
if (ancestorBindingInfo?.asyncContext) {
17961795
ancestorBindingInfo.asyncContext.asyncDescendants.add(node);
@@ -2206,7 +2205,7 @@ ko.exportSymbol('bindingHandlers', ko.bindingHandlers);
22062205
};
22072206

22082207
ko.virtualElements.emptyNode(element);
2209-
ko.utils.domNodeDisposal['addDisposeCallback'](element, disposeAssociatedComponentViewModel);
2208+
ko.utils.domNodeDisposal.addDisposeCallback(element, disposeAssociatedComponentViewModel);
22102209

22112210
ko.computed(() => {
22122211
var componentName = ko.utils.unwrapObservable(valueAccessor()),

0 commit comments

Comments
 (0)