diffhtml-middleware-inline-transitions
Version:
Monitors inline attributes and assigns transition hooks
1 lines • 1.39 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).inlineTransitions=t()}(this,function(){"use strict";var e=Object.assign,a=Object.keys,i={attributechanged:"attributeChanged",textchanged:"textChanged"},o={attached:new Map,detached:new Map,replaced:new Map,attributechanged:new Map,textchanged:new Map},s={};return function(){function t(e,t,n,a){var i;"on"===t.toLowerCase().slice(0,2)&&(t=t.toLowerCase().slice(2),i="function"==typeof a,!(t=o[t])||a&&!i||t[i?"set":"delete"](e,a))}var n=null;return e(function(){},{displayName:"inlineTransitionsTask",subscribe:function(e){(n=e).TransitionCache.get("attributeChanged").add(t),a(o).forEach(function(e){function t(n){for(var e=arguments.length,a=new Array(1<e?e-1:0),t=1;t<e;t++)a[t-1]=arguments[t];if(n){if(r.has(n))return r.get(n).apply(void 0,[n,n].concat(a));if("textChanged"===c){var i=n.parentNode;if(r.has(i))return r.get(i).apply(void 0,[i,n].concat(a))}else{var o=[];if(r.forEach(function(e,t){t.contains(n)&&(t=r.get(t).apply(void 0,[t,n].concat(a)))&&o.push(t)}),o.length)return Promise.all(o)}}}var r=o[e],c=i[e]||e;s[c]=t,n.TransitionCache.get(c).add(t)})},unsubscribe:function(n){n.TransitionCache.get("attributeChanged").delete(t),a(o).forEach(function(e){var e=i[e]||e,t=s[e];n.TransitionCache.get(e).delete(t)}),s.length=0}})}});