dom-mutator
Advanced tools
Comparing version 0.2.3 to 0.2.4
@@ -38,9 +38,10 @@ 'use strict'; | ||
if (!element[attr]) { | ||
var currentValue = getCurrentValue(el, attr); | ||
var elAttr = { | ||
externalValue: getCurrentValue(el, attr), | ||
lastValue: '', | ||
originalValue: currentValue, | ||
virtualValue: currentValue, | ||
observer: new MutationObserver(function () { | ||
var currentVal = getCurrentValue(el, attr); | ||
if (currentVal === elAttr.lastValue) return; | ||
elAttr.externalValue = currentVal; | ||
var currentValue = getCurrentValue(el, attr); | ||
if (currentValue === elAttr.virtualValue) return; | ||
elAttr.originalValue = currentValue; | ||
applyMutations(el, attr); | ||
@@ -150,3 +151,3 @@ }), | ||
elAttr.dirty = false; | ||
setValue(el, attr, elAttr.lastValue); // No more mutations for the element, remove the observer | ||
var value = elAttr.virtualValue; // No more mutations for the element, remove the observer | ||
@@ -156,2 +157,4 @@ if (!elAttr.mutations.length) { | ||
} | ||
setValue(el, attr, value); | ||
} | ||
@@ -171,3 +174,3 @@ }); | ||
var elAttr = getElementAttributeRecord(el, attr); | ||
var val = elAttr.externalValue; | ||
var val = elAttr.originalValue; | ||
elAttr.mutations.forEach(function (id) { | ||
@@ -180,7 +183,7 @@ var mutation = mutations[id]; | ||
}); | ||
elAttr.virtualValue = val; | ||
var currentVal = getCurrentValue(el, attr); | ||
if (val !== currentVal) { | ||
if (elAttr.virtualValue !== currentVal) { | ||
elAttr.dirty = true; | ||
elAttr.lastValue = val; | ||
queueDOMUpdates(); | ||
@@ -187,0 +190,0 @@ } |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t={},n=new Map,r=1,a=/^([a-zA-Z:_][a-zA-Z0-9:_.-]*)\s*=\s*"([^"]*)"/;function u(e,t){var r=n.get(e);if(r||n.set(e,r={}),!r[t]){var a={externalValue:i(e,t),lastValue:"",observer:new MutationObserver((function(){var n=i(e,t);n!==a.lastValue&&(a.externalValue=n,l(e,t))})),mutations:[]};r[t]=a,a.observer.observe(e,function(e){return"html"===e?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[e]}}(t))}return r[t]}function i(e,t){return"html"===t?e.innerHTML:"className"===t?e.className:e.getAttribute(t)||""}var s,o=!1;function c(){o=!1,n.forEach((function(e,t){Object.keys(e).forEach((function(r){var a=e[r];a.dirty&&(a.dirty=!1,function(e,t,n){"html"===t?e.innerHTML=n:"className"===t?n?e.className=n:e.removeAttribute("class"):n?e.setAttribute(t,n):e.removeAttribute(t)}(t,r,a.lastValue),a.mutations.length||function(e,t){var r=n.get(e);r&&(r[t]&&r[t].observer.disconnect(),delete r[t])}(t,r))}))}))}function l(e,n){var r=u(e,n),s=r.externalValue;r.mutations.forEach((function(e){var n=t[e];n&&(s=function(e,t){if("addClass"===e.type){var n=t.split(" ");return e.value.split(" ").forEach((function(e){n.includes(e)||n.push(e)})),n.filter(Boolean).join(" ")}if("removeClass"===e.type){var r=t.split(" "),u=e.value.split(" ");return r.filter((function(e){return!u.includes(e)})).join(" ")}if("setHTML"===e.type)return e.value;if("appendHTML"===e.type)return t+e.value;if("setAttribute"===e.type){var i=a.exec(e.value);return(null==i?void 0:i[2])||""}return t}(n,s))}));var l=i(e,n);s!==l&&(r.dirty=!0,r.lastValue=s,o||(o=!0,requestAnimationFrame(c)))}function f(e,t){if(["addClass","removeClass"].includes(e))return"className";if(["appendHTML","setHTML"].includes(e))return"html";if("setAttribute"===e){var n=a.exec(t);if(null!=n&&n[1]){var r=n[1];return"class"===r||"classname"===r?"className":r}}return""}function v(e,n){var r=t[e];if(r){r.elements.delete(n);var a=f(r.type,r.value),i=u(n,a),s=i.mutations.indexOf(e);-1!==s&&i.mutations.splice(s,1),l(n,a)}}function d(e){var n=t[e];if(n){var r=new Set(n.elements),a=new Set;document.body.querySelectorAll(n.selector).forEach((function(n){a.add(n),r.has(n)||function(e,n){var r=t[e];if(r){r.elements.add(n);var a=f(r.type,r.value);u(n,a).mutations.push(e),l(n,a)}}(e,n)})),r.forEach((function(t){a.has(t)||v(e,t)}))}}function m(){Object.keys(t).forEach((function(e){d(e)}))}function b(){"undefined"!=typeof document&&(s||(s=new MutationObserver((function(){m()}))),m(),s.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}b(),exports.connectGlobalObserver=b,exports.default=function(n,a,u){if("undefined"==typeof document)return function(){};if(!f(a,u))return function(){};var i=function(n,a,u){var i;"appendHTML"!==a&&"setHTML"!==a||(i=u,e||(e=document.createElement("div")),e.innerHTML=i,u=e.innerHTML);var s=""+r++;return t[s]={selector:n,type:a,value:u,elements:new Set},d(s),s}(n,a,u);return function(){!function(e){var n=t[e];n&&(new Set(n.elements).forEach((function(t){v(e,t)})),t[e].elements.clear(),delete t[e])}(i)}},exports.disconnectGlobalObserver=function(){s&&s.disconnect()}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t={},n=new Map,r=1,a=/^([a-zA-Z:_][a-zA-Z0-9:_.-]*)\s*=\s*"([^"]*)"/;function i(e,t){var r=n.get(e);if(r||n.set(e,r={}),!r[t]){var a=u(e,t),i={originalValue:a,virtualValue:a,observer:new MutationObserver((function(){var n=u(e,t);n!==i.virtualValue&&(i.originalValue=n,l(e,t))})),mutations:[]};r[t]=i,i.observer.observe(e,function(e){return"html"===e?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[e]}}(t))}return r[t]}function u(e,t){return"html"===t?e.innerHTML:"className"===t?e.className:e.getAttribute(t)||""}var s,o=!1;function c(){o=!1,n.forEach((function(e,t){Object.keys(e).forEach((function(r){var a=e[r];if(a.dirty){a.dirty=!1;var i=a.virtualValue;a.mutations.length||function(e,t){var r=n.get(e);r&&(r[t]&&r[t].observer.disconnect(),delete r[t])}(t,r),function(e,t,n){"html"===t?e.innerHTML=n:"className"===t?n?e.className=n:e.removeAttribute("class"):n?e.setAttribute(t,n):e.removeAttribute(t)}(t,r,i)}}))}))}function l(e,n){var r=i(e,n),s=r.originalValue;r.mutations.forEach((function(e){var n=t[e];n&&(s=function(e,t){if("addClass"===e.type){var n=t.split(" ");return e.value.split(" ").forEach((function(e){n.includes(e)||n.push(e)})),n.filter(Boolean).join(" ")}if("removeClass"===e.type){var r=t.split(" "),i=e.value.split(" ");return r.filter((function(e){return!i.includes(e)})).join(" ")}if("setHTML"===e.type)return e.value;if("appendHTML"===e.type)return t+e.value;if("setAttribute"===e.type){var u=a.exec(e.value);return(null==u?void 0:u[2])||""}return t}(n,s))})),r.virtualValue=s;var l=u(e,n);r.virtualValue!==l&&(r.dirty=!0,o||(o=!0,requestAnimationFrame(c)))}function f(e,t){if(["addClass","removeClass"].includes(e))return"className";if(["appendHTML","setHTML"].includes(e))return"html";if("setAttribute"===e){var n=a.exec(t);if(null!=n&&n[1]){var r=n[1];return"class"===r||"classname"===r?"className":r}}return""}function v(e,n){var r=t[e];if(r){r.elements.delete(n);var a=f(r.type,r.value),u=i(n,a),s=u.mutations.indexOf(e);-1!==s&&u.mutations.splice(s,1),l(n,a)}}function d(e){var n=t[e];if(n){var r=new Set(n.elements),a=new Set;document.body.querySelectorAll(n.selector).forEach((function(n){a.add(n),r.has(n)||function(e,n){var r=t[e];if(r){r.elements.add(n);var a=f(r.type,r.value);i(n,a).mutations.push(e),l(n,a)}}(e,n)})),r.forEach((function(t){a.has(t)||v(e,t)}))}}function m(){Object.keys(t).forEach((function(e){d(e)}))}function b(){"undefined"!=typeof document&&(s||(s=new MutationObserver((function(){m()}))),m(),s.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}b(),exports.connectGlobalObserver=b,exports.default=function(n,a,i){if("undefined"==typeof document)return function(){};if(!f(a,i))return function(){};var u=function(n,a,i){var u;"appendHTML"!==a&&"setHTML"!==a||(u=i,e||(e=document.createElement("div")),e.innerHTML=u,i=e.innerHTML);var s=""+r++;return t[s]={selector:n,type:a,value:i,elements:new Set},d(s),s}(n,a,i);return function(){!function(e){var n=t[e];n&&(new Set(n.elements).forEach((function(t){v(e,t)})),t[e].elements.clear(),delete t[e])}(u)}},exports.disconnectGlobalObserver=function(){s&&s.disconnect()}; | ||
//# sourceMappingURL=dom-mutator.cjs.production.min.js.map |
@@ -34,9 +34,10 @@ var mutations = {}; | ||
if (!element[attr]) { | ||
var currentValue = getCurrentValue(el, attr); | ||
var elAttr = { | ||
externalValue: getCurrentValue(el, attr), | ||
lastValue: '', | ||
originalValue: currentValue, | ||
virtualValue: currentValue, | ||
observer: new MutationObserver(function () { | ||
var currentVal = getCurrentValue(el, attr); | ||
if (currentVal === elAttr.lastValue) return; | ||
elAttr.externalValue = currentVal; | ||
var currentValue = getCurrentValue(el, attr); | ||
if (currentValue === elAttr.virtualValue) return; | ||
elAttr.originalValue = currentValue; | ||
applyMutations(el, attr); | ||
@@ -146,3 +147,3 @@ }), | ||
elAttr.dirty = false; | ||
setValue(el, attr, elAttr.lastValue); // No more mutations for the element, remove the observer | ||
var value = elAttr.virtualValue; // No more mutations for the element, remove the observer | ||
@@ -152,2 +153,4 @@ if (!elAttr.mutations.length) { | ||
} | ||
setValue(el, attr, value); | ||
} | ||
@@ -167,3 +170,3 @@ }); | ||
var elAttr = getElementAttributeRecord(el, attr); | ||
var val = elAttr.externalValue; | ||
var val = elAttr.originalValue; | ||
elAttr.mutations.forEach(function (id) { | ||
@@ -176,7 +179,7 @@ var mutation = mutations[id]; | ||
}); | ||
elAttr.virtualValue = val; | ||
var currentVal = getCurrentValue(el, attr); | ||
if (val !== currentVal) { | ||
if (elAttr.virtualValue !== currentVal) { | ||
elAttr.dirty = true; | ||
elAttr.lastValue = val; | ||
queueDOMUpdates(); | ||
@@ -183,0 +186,0 @@ } |
{ | ||
"version": "0.2.3", | ||
"version": "0.2.4", | ||
"license": "MIT", | ||
@@ -4,0 +4,0 @@ "main": "dist/index.js", |
@@ -16,4 +16,4 @@ export type MutationType = | ||
type ElementAttributeRecord = { | ||
externalValue: string; | ||
lastValue: string; | ||
originalValue: string; | ||
virtualValue: string; | ||
dirty?: boolean; | ||
@@ -63,9 +63,10 @@ observer: MutationObserver; | ||
if (!element[attr]) { | ||
const currentValue = getCurrentValue(el, attr); | ||
const elAttr: ElementAttributeRecord = { | ||
externalValue: getCurrentValue(el, attr), | ||
lastValue: '', | ||
originalValue: currentValue, | ||
virtualValue: currentValue, | ||
observer: new MutationObserver(() => { | ||
const currentVal = getCurrentValue(el, attr); | ||
if (currentVal === elAttr.lastValue) return; | ||
elAttr.externalValue = currentVal; | ||
const currentValue = getCurrentValue(el, attr); | ||
if (currentValue === elAttr.virtualValue) return; | ||
elAttr.originalValue = currentValue; | ||
applyMutations(el, attr); | ||
@@ -162,4 +163,3 @@ }), | ||
elAttr.dirty = false; | ||
setValue(el, attr, elAttr.lastValue); | ||
const value = elAttr.virtualValue; | ||
// No more mutations for the element, remove the observer | ||
@@ -169,2 +169,3 @@ if (!elAttr.mutations.length) { | ||
} | ||
setValue(el, attr, value); | ||
} | ||
@@ -183,3 +184,3 @@ }); | ||
const elAttr = getElementAttributeRecord(el, attr); | ||
let val = elAttr.externalValue; | ||
let val = elAttr.originalValue; | ||
elAttr.mutations.forEach(id => { | ||
@@ -191,7 +192,6 @@ const mutation = mutations[id]; | ||
}); | ||
elAttr.virtualValue = val; | ||
const currentVal = getCurrentValue(el, attr); | ||
if (val !== currentVal) { | ||
if (elAttr.virtualValue !== currentVal) { | ||
elAttr.dirty = true; | ||
elAttr.lastValue = val; | ||
queueDOMUpdates(); | ||
@@ -198,0 +198,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
85948
918