!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):(e=e||self,t(e.diff={}))}(this,function(e){"use strict";function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function r(e){for(var r=1;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:typeof t,n=arguments.length>3?arguments[3]:void 0;if(n&&e in n)return n[e];var a="DIFF_".concat(e.replace(/[^a-zA-Z0-9]/,"")).toLowerCase();if(fe){var o=new de(ce.search);if(o.has(a))return h(decodeURIComponent(String(o.get(a))),r)}return he&&a in ae.env?h(ae.env[a],r):t}function v(e,t,n){var a=null;if(Se.protected.has(e)||Se.allocated.has(e))a=e;else if(!e||we(e)){var o=e?e.length:0;n=[];for(var i=0;i3?O-3:0),x=3;x2&&void 0!==arguments[2]?arguments[2]:{};r.parser||(r.parser={}),t||(t=Ae);var n=new Set(p("rawElements",Le,"array",r.parser)),a=new Set(p("selfClosingElements",Ie,"array",r.parser)),o=/)-->|<(\/?)([a-z\-\_][a-z0-9\-\_]*)\s*([^>]*?)(\/?)>/gi,i=v("#document-fragment",null,[]),s=[i],c=i,d=-1;if(!e.includes("<")&&e)return Ve(c,e,t),i;for(var l,u,f=0;l=o.exec(e);f++){d>-1&&d+l[0].length0){var m=e.slice(0,h);m&&!Me.exec(m)&&Ve(c,m,t)}if(d=o.lastIndex,"!"!==l[0][1]){var g=xe.exec(l[2]),N=g&&t.tags[g[1]],b=N?N.name||N:l[2];if(!l[1]&&(!l[4]&&De[c.rawNodeName]&&De[c.rawNodeName][b]&&(s.pop(),c=s[s.length-1]),c=c.childNodes[c.childNodes.push(Pe(l[2],l[3],t))-1],s.push(c),r.parser.strict||n.has(b))){var y=""),T=e.indexOf(y,o.lastIndex);if(n.has(b)){-1===T?d=o.lastIndex=e.length+1:(d=T+y.length,o.lastIndex=d,l[1]=" ");var E=e.slice(l.index+l[0].length,T);Ve(c,E,t)}}if(l[1]||l[4]||a.has(b))for(;c;){if("/"===l[4]&&g){s.pop(),c=s[s.length-1];break}if(N&&c.rawNodeName===b){s.pop(),c=s[s.length-1];break}if(c.rawNodeName===b){s.pop(),c=s[s.length-1];break}var w=je[c.rawNodeName];{if(!w||!w[b])break;s.pop(),c=s[s.length-1]}}}}var S=e.slice(-1===d?0:d);if(S&&Ve(c,S,t),i.childNodes.length&&"html"===i.childNodes[0].nodeName){var k={before:[],after:[]},R={after:[]},O=i.childNodes[0],M=!0,x=!0;if(O.childNodes=O.childNodes.filter(function(e){if("body"===e.nodeName||"head"===e.nodeName)return"head"===e.nodeName&&(M=!1),"body"===e.nodeName&&(x=!1),!0;e.nodeType===G.ELEMENT&&(M&&x?k.before.push(e):!M&&x?k.after.push(e):x||R.after.push(e))}),O.childNodes[0]&&"head"===O.childNodes[0].nodeName){var A=O.childNodes[0].childNodes;A.unshift.apply(A,k.before),A.push.apply(A,k.after)}else{var C=v("head",null,[]);if(C){var _=C.childNodes;_.unshift.apply(_,k.before),_.push.apply(_,k.after),O.childNodes.unshift(C)}}if(O.childNodes[1]&&"body"===O.childNodes[1].nodeName){var L=O.childNodes[1].childNodes;L.push.apply(L,R.after)}else{var I=v("body",null,[]);if(I){var D=I.childNodes;D.push.apply(D,R.after),O.childNodes.push(I)}}}return i}function g(e){if(He(e),e.childNodes.length)for(var t=0;t1&&(e.newTree=v(u.childNodes))}e.newTree||(e.newTree=v(n)),e.oldTree=t.oldTree;var h=e.oldTree,p=e.newTree;if(o&&h&&p){var m="string"!=typeof p.rawNodeName,N=p.nodeType===G.FRAGMENT,b=N&&!m?p.childNodes:p;e.newTree=v(d,l,b)}}function k(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];e||(e=X.OBJ),t||(t=X.OBJ);var o=n.svgElements,i=void 0===o?new Set:o,s=e.nodeName,c=t.nodeName,d=e===X.OBJ||a,l="svg"===c||i.has(t),u=null;if(te.size&&te.forEach(function(n){var a=n(e,t);a&&a===e?u=r:!1===a?u=!1:a&&(t=a)}),null!==u||!t)return u;if(c===Ze){if(s===Ze&&e.nodeValue!==t.nodeValue)return r.push(Y.NODE_VALUE,e,t.nodeValue,e.nodeValue),e.nodeValue=t.nodeValue,r;if(d)return r.push(Y.NODE_VALUE,t,t.nodeValue,null),r}var f=t.childNodes||[];if(t.nodeType===G.ELEMENT){var h=d?X.OBJ:e.attributes,p=t.attributes||{};for(var v in p){var m=p[v];v in h&&h[v]===p[v]||(d||(h[v]=m),(e&&"script"===e.nodeName||"script"!==t.nodeName||"type"!==v)&&r.push(Y.SET_ATTRIBUTE,d?t:e,v,m))}if(!d)for(var g in h)g in p||(r.push(Y.REMOVE_ATTRIBUTE,e,g),delete h[g])}if(a){for(var N=0;NA&&M.splice(F,1),r.push(Y.REPLACE_CHILD,_,C)}}else f.splice(A,0,C),x+=1}else M.push(_),k(null,_,r,n,!0),r.push(Y.INSERT_BEFORE,e,_,null);else!1===k(C,null,r,n,!0)&&f.splice(A,0,C)}if(M.length!==f.length){for(var B=f.length;B1&&void 0!==arguments[1]?arguments[1]:oe.document,r=arguments.length>2?arguments[2]:void 0,n=v(e),a=K.get(n);if(a)return a;var o=n.nodeName,i=n.rawNodeName,s=void 0===i?o:i,c=n.childNodes,d=void 0===c?[]:c;r=r||"svg"===o;var l=null,u=null;if(ee.forEach(function(e){(u=e(n))&&(l=u)}),!t)return l;null===l&&(l="#text"===o?t.createTextNode(n.nodeValue||X.STR):"#document-fragment"===o?t.createDocumentFragment():r?t.createElementNS(qe,s):t.createElement(s),"script"===o&&(l.type="no-execute"));var f=l;K.set(n,f);for(var h=0;h1?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:X.OBJ,r=[],n=t.ownerDocument,a=t.svgElements,o=void 0===a?new Set:a,i=e.length,c=0;;){var d=e[c];if(c===i)break;switch(d){case Y.SET_ATTRIBUTE:if("break"===function(){var t=e[c+1],a=e[c+2],i=C(e[c+3]);c+=4;var d=o.has(t),l=R(t,n,d);if(!l)return"break";var u=l.getAttribute(a),f=A("attributeChanged",t,a,u,i);return g(t),f.length?(Promise.all(f).then(function(){return rt(t,l,a,i)}),r.push.apply(r,s(f))):rt(t,l,a,i),"break"}())break;case Y.REMOVE_ATTRIBUTE:if("break"===function(){var t=e[c+1],a=e[c+2];c+=3;var i=o.has(t),d=R(t,n,i);if(!d)return"break";var l=d.getAttribute(a),u=A("attributeChanged",t,a,l,null);return g(t),u.length?(Promise.all(u).then(function(){return nt(d,a)}),r.push.apply(r,s(u))):nt(d,a),"break"}())break;case Y.NODE_VALUE:if("break"===function(){var t=e[c+1],a=e[c+2],i=e[c+3],d=o.has(t);c+=4;var l=R(t,n,d);if(!l)return"break";g(t);var u=A("textChanged",t,i,a);return u.length?(Promise.all(u).then(function(){return at(l,a)}),r.push.apply(r,s(u))):at(l,a),"break"}())break;case Y.INSERT_BEFORE:var l=e[c+1],u=e[c+2],f=e[c+3];c+=4;var h=K.get(l);if(!h)break;var p=o.has(u);g(u);var v=f&&R(f,n,p),m=R(u,n,p);h.insertBefore(m,v||null),r.push.apply(r,s(A("attached",u)));break;case Y.REPLACE_CHILD:if("break"===function(){var t,a,i,d=e[c+1],l=e[c+2];c+=3;var u=o.has(d),f=K.get(l),h=R(d,n,u);if(!f||!f.parentNode)return"break";g(d);var p=null===(t=Z.get("attached"))||void 0===t?void 0:t.size,v=null===(a=Z.get("detached"))||void 0===a?void 0:a.size,m=null===(i=Z.get("replaced"))||void 0===i?void 0:i.size;if(!p&&!v&&!m)return f.parentNode&&(f.parentNode.replaceChild(h,f),N(l)),"break";f.parentNode&&f.parentNode.insertBefore(h,f);var b=[].concat(s(p&&A("attached",d)||X.ARR),s(v&&A("detached",l)||X.ARR),s(m&&A("replaced",l,d)||X.ARR));return b.length?(Promise.all(b).then(function(){f.parentNode&&f.parentNode.removeChild(f),N(l)}),r.push.apply(r,s(b))):(f.parentNode&&f.parentNode.removeChild(f),N(l)),"break"}())break;case Y.REMOVE_CHILD:if("break"===function(){var t=e[c+1];c+=2;var n=K.get(t);if(!n||!n.parentNode)return"break";var a=A("detached",t);return a.length?(Promise.all(a).then(function(){n.parentNode&&n.parentNode.removeChild(n),N(t)}),r.push.apply(r,s(a))):(n.parentNode&&n.parentNode.removeChild(n),N(t)),"break"}())break}}return r}function L(e){var t=e.mount,r=e.state,n=e.patches,a=r.mutationObserver,o=r.measure,i=r.scriptsToExecute;o("patch node");var c=t.ownerDocument,d=e.promises||[];r.ownerDocument=c||oe.document,a&&a.disconnect();var l=function(e){"script"===e.nodeName&&i.set(e,e.attributes.type)};ee.add(l),r.ownerDocument&&d.push.apply(d,s(_(n,r))),ee.delete(l),e.promises=d,o("patch node")}function I(e){var t=e.promises;return t&&t.length?e.promise=Promise.all(t).then(function(){return e.end()}):e.promise=Promise.resolve(e.end())}function D(e){var t=e.state,r=e.input,n=e.config,a=t.measure,o=n.inner;if("string"==typeof r){a("parsing input for new tree");var i,s=m(r,void 0,n),c=s.childNodes;i=v(o?c:c[0]||c),i&&(e.newTree=i),a("parsing input for new tree")}}function j(e){return e.replace(/[&<>]/g,function(e){return"&#".concat(e.charCodeAt(0),";")})}function V(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:X.STR,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.inner=!0,r.executeScripts=!("executeScripts"in r)||r.executeScripts,r.tasks=r.tasks||ot,st.create(e,t,r).start()}function P(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:X.STR,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.inner=!1,r.executeScripts=!("executeScripts"in r)||r.executeScripts,r.tasks=r.tasks||ot,st.create(e,t,r).start()}function H(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=v(),n=new Set(t.tasks||ot);n.delete(it.endAsPromise),n.add(function(e){return B(e.oldTree)}),t.tasks=s(n),t.inner=!0;var a="";try{a=st.create(r,e,t).start()}catch(e){throw w(r),e}return w(r),a}function F(e){var t=ft(e);return t.length?" "+t.map(function(t){var r=e[t],n=!r,a="object"==typeof r||"function"==typeof r;return"".concat(t).concat(n||a?"":'="'.concat(String(r),'"'))}).join(" "):""}function B(e){var t="";if(!e)return t;var r=e.childNodes,n=e.nodeType,a=e.nodeName,o=e.nodeValue,i=e.attributes;if(11===n)for(var s=0;s").concat(c,"")}}else t+="<".concat(a).concat(F(i),">");return t}function z(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n")1?t-1:0),n=1;n/i,xe=new RegExp("".concat(Oe,"([^_]*)__")),Ae={tags:[],attributes:{},children:{}},Ce=Object.assign,_e=Array.isArray,Le=["script","noscript","style","template"],Ie=["meta","img","link","input","area","br","hr","area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],De={li:{li:!0},p:{p:!0,div:!0},td:{td:!0,th:!0},th:{td:!0,th:!0}},je={li:{ul:!0,ol:!0},a:{div:!0},b:{div:!0},i:{div:!0},p:{div:!0},td:{tr:!0,table:!0},th:{tr:!0,table:!0}},Ve=function(e,t,r){var n;if(!("childNodes"in e.attributes)){if(t&&!Me.test(t)&&!xe.test(t))return e.childNodes.push(v("#text",t));for(var a=[],o=t.split(xe),i=0;i\/=\uFDD0-\uFDEF\uFFFE\uFFFF]*)\s*(=\s*("([^"]+)"|'([^']+)'|(\S+)))?/gi;if(a=xe.exec(e))return Pe(r.tags[a[1]],t,r);for(var i,s={};i=o.exec(t||X.STR);){var c="string"==typeof e,d=i[1],l=void 0;if(""===d){var u=t.match(xe);l=u?u[0]:""}var f=i[6]||i[5]||i[4],h=l||f||(c?i[1]:f||!0),p=String(h).match(xe);if(p&&p.length)for(var m=String(h).split(xe),g=xe.exec(d),N=g?r.attributes[g[1]]:d,b=0;b0&&void 0!==arguments[0]?arguments[0]:X.STR,t=arguments.length>1?arguments[1]:void 0,r=K.get(t);e?r.setAttribute("type",e):r.removeAttribute("type")}),t.previousMarkup="outerHTML"in c?c.outerHTML:X.STR,r.executeScripts&&s.forEach(function(e,r){var n=K.get(r),a=n.cloneNode(!0);n&&(q.has(n)&&(w(n),q.set(a,t)),K.set(r,a),n.parentNode&&n.parentNode.replaceChild(a,n))}),s.clear(),Ee.memory.free.size<2*Ee.memory.allocated.size&&b(),this.endedCallbacks.forEach(function(t){return t(e)}),this.endedCallbacks.clear(),o("finalize"),o("render"),this}},{key:"onceEnded",value:function(e){this.endedCallbacks.add(e)}}],[{key:"create",value:function(t,r,n){return new e(t,r,n)}},{key:"flow",value:function(e,t){for(var r=e,n=0;n