ko.utils.domNodeDisposal.addDisposeCallback to ko.addDisposeCallback

This commit is contained in:
the-djmaze 2024-10-29 22:19:26 +01:00
parent c744b83480
commit 4cd5774257
12 changed files with 111 additions and 113 deletions

View file

@ -131,7 +131,7 @@ class AsyncCompleteContext {
this.asyncDescendants = new Set;
this.childrenComplete = false;
bindingInfo.asyncContext || ko.utils.domNodeDisposal['addDisposeCallback'](node, asyncContextDispose);
bindingInfo.asyncContext || ko.utils.domNodeDisposal.addDisposeCallback(node, asyncContextDispose);
if (ancestorBindingInfo?.asyncContext) {
ancestorBindingInfo.asyncContext.asyncDescendants.add(node);

View file

@ -21,7 +21,7 @@
};
ko.virtualElements.emptyNode(element);
ko.utils.domNodeDisposal['addDisposeCallback'](element, disposeAssociatedComponentViewModel);
ko.utils.domNodeDisposal.addDisposeCallback(element, disposeAssociatedComponentViewModel);
ko.computed(() => {
var componentName = ko.utils.unwrapObservable(valueAccessor()),

View file

@ -86,7 +86,7 @@ ko.computed = (evaluatorFunctionOrOptions, options) => {
// Attach a DOM node disposal callback so that the computed will be proactively disposed as soon as the node is
// removed using ko.removeNode. But skip if isActive is false (there will never be any dependencies to dispose).
if (state.disposeWhenNodeIsRemoved && computedObservable.isActive()) {
ko.utils.domNodeDisposal['addDisposeCallback'](state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
ko.utils.domNodeDisposal.addDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
computedObservable['dispose']();
});
}

View file

@ -25,7 +25,7 @@ class koSubscription
disposeWhenNodeIsRemoved(node) {
// MutationObserver ?
this._node = node;
ko.utils.domNodeDisposal['addDisposeCallback'](node, this._domNodeDisposalCallback = this['dispose'].bind(this));
ko.utils.domNodeDisposal.addDisposeCallback(node, this._domNodeDisposalCallback = this['dispose'].bind(this));
}
}

View file

@ -45,7 +45,7 @@ ko.utils.domNodeDisposal = (() => {
};
return {
'addDisposeCallback' : (node, callback) => {
addDisposeCallback : (node, callback) => {
if (typeof callback != "function")
throw Error("Callback must be a function");
getDisposeCallbacksCollection(node, 1).add(callback);
@ -82,4 +82,5 @@ ko.utils.domNodeDisposal = (() => {
})();
ko.cleanNode = ko.utils.domNodeDisposal.cleanNode; // Shorthand name for convenience
ko.removeNode = ko.utils.domNodeDisposal.removeNode; // Shorthand name for convenience
ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
//ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
ko.exportSymbol('addDisposeCallback', ko.utils.domNodeDisposal.addDisposeCallback);

View file

@ -96,5 +96,5 @@ ko.utils = {
element.textContent = ko.utils.unwrapObservable(textContent)
};
ko.exportSymbol('utils', ko.utils);
//ko.exportSymbol('utils', ko.utils);
ko.exportSymbol('unwrap', ko.utils.unwrapObservable); // Convenient shorthand, because this is used so commonly

View file

@ -76,17 +76,15 @@
ko.utils.setDomNodeChildren(node, childNodes);
},
prepend: (containerNode, nodeToPrepend) => {
// Start comments must always have a parent and at least one following sibling (the end comment)
isStartComment(containerNode)
? containerNode.nextSibling.before(nodeToPrepend)
: containerNode.prepend(nodeToPrepend);
},
insertAfter: (containerNode, nodeToInsert, insertAfterNode) => {
insertAfterNode
? insertAfterNode.after(nodeToInsert)
: ko.virtualElements.prepend(containerNode, nodeToInsert);
: (
// Start comments must always have a parent and at least one following sibling (the end comment)
isStartComment(containerNode)
? containerNode.nextSibling.before(nodeToInsert)
: containerNode.prepend(nodeToInsert)
);
},
firstChild: node => {