New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hybrids

Package Overview
Dependencies
Maintainers
2
Versions
149
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hybrids - npm Package Compare versions

Comparing version 1.4.0 to 1.4.1

11

CHANGELOG.md

@@ -5,2 +5,13 @@ # Change Log

<a name="1.4.1"></a>
## [1.4.1](https://github.com/hybridsjs/hybrids/compare/v1.4.0...v1.4.1) (2018-10-04)
### Bug Fixes
* **children:** trigger invalidate host if one of children changes ([33e9412](https://github.com/hybridsjs/hybrids/commit/33e9412))
* **define:** remove element class bridge thanks to babel v7 ([c0d6c9a](https://github.com/hybridsjs/hybrids/commit/c0d6c9a))
<a name="1.4.0"></a>

@@ -7,0 +18,0 @@ # [1.4.0](https://github.com/hybridsjs/hybrids/compare/v1.3.1...v1.4.0) (2018-09-25)

2

dist/hybrids.js

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.hybrids=t():e.hybrids=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";(function(e){n.d(t,"b",function(){return o}),n.d(t,"e",function(){return i}),n.d(t,"d",function(){return a}),n.d(t,"c",function(){return u}),n.d(t,"f",function(){return c}),n.d(t,"g",function(){return f}),n.d(t,"a",function(){return l});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function o(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function i(e){return o(e=e[0].toLowerCase()+e.slice(1))}function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.dispatchEvent(new CustomEvent(t,r({bubbles:!1},n)))}function u(){var e=new WeakMap;return{get:function(t,n){return e.has(t)?e.get(t):(void 0!==n&&e.set(t,n),n)},set:function(t,n){return e.set(t,n),n}}}function c(e,t){var n=window.ShadyCSS;return n&&!n.nativeShadow?e(n):t}function f(e){return"<"+String(e.tagName).toLowerCase()+">"}var l="ActiveXObject"in e}).call(this,n(1))},function(e,t){var n,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":r(window))&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(0),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e){return e},a=function(e){if("object"!==(void 0===e?"undefined":o(e)))throw TypeError("[property] Argument is not an object: "+("undefined"==typeof v?"undefined":o(v)));return e&&Object.freeze(e)};function u(e,t){var n=void 0===e?"undefined":o(e),u=i;switch(n){case"string":u=String;break;case"number":u=Number;break;case"boolean":u=Boolean;break;case"function":e=(u=e)();break;case"object":e&&Object.freeze(e),u=a}return{get:function(t){return arguments.length>1&&void 0!==arguments[1]?arguments[1]:e},set:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=arguments[2];return u(n,r)},connect:"object"!==n&&"undefined"!==n?function(n,o,i){if(n[o]===e){var a=Object(r.b)(o);if(n.hasAttribute(a)){var u=n.getAttribute(a);n[o]=""===u||u}}return t&&t(n,o,i)}:t}}var c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=new WeakMap,d=new WeakMap,s=1e3/60,p=[];function y(e){var t=e.composedPath()[0];t===e.currentTarget&&(p[0]||requestAnimationFrame(function(){return function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(n&&performance.now()-n>s)requestAnimationFrame(function(){return e(t)});else{var o=p[t],i=performance.now();if(o){if(l.has(o)){var a=l.get(o),u=d.get(o);try{var c=o[a];c!==u&&(d.set(o,c),c(),u||Object(r.f)(function(e){return e.styleElement(o)}))}catch(n){throw e(t+1,i),n}}e(t+1,i)}else Object(r.f)(function(e){return p.forEach(function(t){return e.styleSubtree(t)})}),p=[]}}()}),-1===p.indexOf(t)&&p.push(t))}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("function"!=typeof e)throw TypeError("[render] The first argument must be a function: "+(void 0===e?"undefined":f(e)));var n=c({shadowRoot:!0},t);return{get:function(t){var r=e(t);return function(){return r(t,n.shadowRoot?t.shadowRoot:t)}},connect:function(e,t){if(l.has(e))throw Error("[render] Render factory already used in '"+l.get(e)+"' key");if(n.shadowRoot&&!e.shadowRoot){var r={mode:"open"};"object"===f(n.shadowRoot)&&Object.assign(r,n.shadowRoot),e.attachShadow(r)}return e.addEventListener("@invalidate",y),l.set(e,t),function(){e.removeEventListener("@invalidate",y),l.delete(e)}}}}var h=new WeakMap;function m(e,t){var n=h.get(e);n||(n=new Map,h.set(e,n));var r=n.get(t);return r||(r={target:e,key:t,value:void 0,deps:new Set,state:1,checksum:0},n.set(t,r)),r}function g(e){var t=e.state;return e.deps.forEach(function(e){e.target[e.key],t+=e.state}),t}var w=null;var S=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function j(e){Object(r.d)(e,"@invalidate",{bubbles:!0,composed:!0})}var O=function(e,t){return t};function N(e,t){e.hybrids=t,e.connects=[],Object.keys(t).forEach(function(n){var o=t[n],i=void 0===o?"undefined":E(o);"function"===i?o="render"===n?b(o):{get:o}:null!==o&&"object"===i&&("object"!==i||o.get||o.set)||(o=u(o)),o.get=o.get||O,Object.defineProperty(e.prototype,n,{get:function(){return function(e,t,n){var o=m(e,t);if(w===o)throw w=null,Error("[cache] Circular '"+t+"' get invocation in '"+Object(r.g)(e)+"'");w&&w.deps.add(o);var i=w;if(w=o,o.checksum&&o.checksum===g(o))return w=i,o.value;o.deps.clear();try{var a=n(e,o.value);a!==o.value&&(o.state+=1,o.value=a),o.checksum=g(o),w=i}catch(e){throw w=null,e}return o.value}(this,n,o.get)},set:o.set&&function(e){var t=this;!function(e,t,n,o,i){if(w)throw w=null,Error("[cache] Try to set '"+t+"' of '"+Object(r.g)(e)+"' in get call");var a=m(e,t),u=n(e,o,a.value);u!==a.value&&(a.state+=1,a.value=u,i())}(this,n,o.set,e,function(){return j(t)})},enumerable:!0,configurable:!1}),o.connect&&e.connects.push(function(e){return o.connect(e,n,function(){(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&function(e,t,n){if(w)throw w=null,Error("[cache] Try to invalidate '"+t+"' in '"+Object(r.g)(e)+"' get call");var o=m(e,t);o.checksum=0,n&&(o.value=void 0)}(e,n),j(e)})})})}function x(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return Reflect.construct(HTMLElement,t,this.constructor)}Object.setPrototypeOf(x.prototype,HTMLElement.prototype);var T=new WeakMap;function k(e,t){var n=void 0===t?"undefined":E(t);if("object"!==n&&"function"!==n)throw TypeError("[define] Invalid second argument. It must be an object or a function");var r=window.customElements.get(e);if("function"===n)return r!==t?window.customElements.define(e,t):r;if(r){if(r.hybrids===t)return r;throw Error("[define] Element '"+e+"' already defined")}var o=function(t){function n(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,x),S(n,[{key:"connectedCallback",value:function(){var e=this,t=this.constructor.connects.reduce(function(t,n){var r=n(e);return r&&t.add(r),t},new Set);T.set(this,t),j(this)}},{key:"disconnectedCallback",value:function(){T.get(this).forEach(function(e){return e()})}}],[{key:"name",get:function(){return e}}]),n}();return N(o,t),customElements.define(e,o),o}function A(){return"object"===E(arguments.length<=0?void 0:arguments[0])?function(e){return Object.keys(e).reduce(function(t,n){var o=Object(r.e)(n);return t[n]=k(o,e[n]),t},{})}(arguments.length<=0?void 0:arguments[0]):k.apply(void 0,arguments)}var C=new WeakMap;function M(e){var t="function"==typeof e?e:function(t){return t===e};return{get:function(e){return function(e,t){for(var n=e.parentElement||e.parentNode.host;n;){var r=n.constructor.hybrids;if(r&&t(r))return n;n=n.parentElement||n.parentNode&&n.parentNode.host}return n||null}(e,t)},connect:function(e,t,n){var r=e[t];if(r){var o=C.get(r);return o||(o=new Set,C.set(r,o)),o.add(n),function(){o.delete(n),n()}}return!1}}}function _(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{deep:!1,nested:!1},n="function"==typeof e?e:function(t){return t===e};return{get:function(e){return function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return Array.from(t.children).forEach(function(t){var i=t.constructor.hybrids;i&&n(i)?(o.push(t),r.deep&&r.nested&&e(t,n,r,o)):r.deep&&e(t,n,r,o)}),o}(e,n,t)},connect:function(e,n,r){var o=new MutationObserver(r),i=new Set,a=function(t){var o=t.target;i.size||Promise.resolve().then(function(){for(var t=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(i)),o=e[n],a=0;a<o.length;a+=1)if(o.indexOf(t[a])>-1){r(!1);break}i.clear()}),i.add(o)};return o.observe(e,{childList:!0,subtree:!!t.deep}),e.addEventListener("@invalidate",a),function(){o.disconnect(),e.removeEventListener("@invalidate",a)}}}}document.addEventListener("@invalidate",function(e){var t=C.get(e.composedPath()[0]);t&&t.forEach(function(e){return e()})});var L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function P(e,t,n,o){if(null===n||"object"!==(void 0===n?"undefined":L(n)))throw TypeError("Style value must be an object instance");var i=o.styleMap||new Map;o.styleMap=Object.keys(n).reduce(function(e,o){var a=Object(r.b)(o),u=n[o];return u||0===u?t.style.setProperty(a,u):t.style.removeProperty(a),e.set(a,u),i.delete(a),e},new Map),i.forEach(function(e,n){t.style[n]=""})}var R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function W(e,t,n,r){var o=r.classSet||new Set,i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;return Array.isArray(e)?e.forEach(function(e){return t.add(e)}):null!==e&&"object"===(void 0===e?"undefined":R(e))?Object.keys(e).forEach(function(n){return e[n]&&t.add(n)}):t.add(e),t}(n);r.classSet=i,i.forEach(function(e){t.classList.add(e),o.delete(e)}),o.forEach(function(e){t.classList.remove(e)})}var B=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F=Object(r.c)();function H(e){for(var t=void 0;e&&(t=F.get(e))&&t.endNode;)e=t.endNode;return e}function X(e){var t=F.get(e),n=t.startNode;if(n)for(var r=n,o=H(t.endNode).nextSibling;r;){var i=r.nextSibling;r.parentNode.removeChild(r),r=i!==o&&i}}function q(e,t,n){var r=Array.isArray(n)?"array":void 0===n?"undefined":D(n),o=F.get(t,{});switch(o.type!==r&&(X(t),o=F.set(t,{type:r}),""!==t.textContent&&(t.textContent="")),r){case"function":n(e,t);break;case"array":!function(e,t,n){var r=t,o=n.length-1,i=F.get(t),a=i.arrayEntries,u=n.map(function(e,t){return[Object.prototype.hasOwnProperty.call(e,"id")?e.id:t,e]});if(a){var c=new Set;u.forEach(function(e){var t=B(e,1),n=t[0];return c.add(n)}),a.forEach(function(e){var t=e.id,n=e.placeholder;c.has(t)||(X(n),n.parentNode.removeChild(n),e.available=!1)})}i.arrayEntries=u.reduce(function(t,n,u){var c=B(n,2),f=c[0],l=c[1],d=a&&a.find(function(e){return e.available&&e.id===f}),s=void 0;return d?(d.available=!1,(s=d.placeholder).previousSibling!==r&&function(e,t){var n=F.get(e),r=n.startNode,o=H(n.endNode);t.parentNode.insertBefore(e,t.nextSibling);for(var i=e,a=r;a;){var u=a.nextSibling;i.parentNode.insertBefore(a,i.nextSibling),i=a,a=u!==o.nextSibling&&u}}(s,r)):(s=document.createTextNode(""),r.parentNode.insertBefore(s,r.nextSibling)),q(e,s,l),r=H(F.get(s).endNode||s),0===u&&(i.startNode=s),u===o&&(i.endNode=r),t.push({available:!0,id:f,placeholder:s}),t},[]),a&&a.forEach(function(e){var t=e.available,n=e.placeholder;t&&(X(n),n.parentNode.removeChild(n))})}(e,t,n);break;default:n!==o.value&&(o.value=n,t.textContent="number"===r||n?n:"")}}var z=Date.now(),I=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return"{{h-"+z+"-"+e+"}}"},$=I("(\\d+)"),G=new RegExp("^"+$+"$"),U=new RegExp($,"g"),V="--"+z+"--",Z=new RegExp(V,"g"),J=new WeakMap;var K="object"===D(window.ShadyDOM)&&window.ShadyDOM.inUse?function(e){var t=void 0;return{get currentNode(){return t},nextNode:function(){return!!(t=void 0===t?e.childNodes[0]:t.childNodes.length?t.childNodes[0]:t.nextSibling?t.nextSibling:t.parentNode.nextSibling)}}}:function(e){return document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null,!1)},Q=document.createElement("div");function Y(e,t){var n=document.createElement("template"),o=[],i=function(e){var t=e.reduce(function(t,n,r){return 0===r?n:e.slice(r).join("").match(/\s*<\/\s*(table|tr|thead|tbody|tfoot|colgroup)>/)?t+"\x3c!--"+I(r-1)+"--\x3e"+n:t+I(r-1)+n},"");return r.a?t.replace(/style\s*=\s*(["][^"]+["]|['][^']+[']|[^\s"'<>/]+)/g,function(e){return""+V+e}):t}(e);if(t&&(i="<svg>"+i+"</svg>"),r.a?n.innerHTML=i:(Q.innerHTML="<template>"+i+"</template>",n.content.appendChild(Q.children[0].content)),t){var a=n.content.firstChild;n.content.removeChild(a),Array.from(a.childNodes).forEach(function(e){return n.content.appendChild(e)})}!function(e){for(var t=document.createNodeIterator(e,NodeFilter.SHOW_COMMENT,null,!1),n=void 0;n=t.nextNode();)G.test(n.textContent)&&(n.parentNode.insertBefore(document.createTextNode(n.textContent),n),n.parentNode.removeChild(n))}(n.content);for(var u=K(n.content),c=0,f=function(){var n=u.currentNode;if(n.nodeType===Node.TEXT_NODE){var i=n.textContent;if(!i.match(G)){var a=i.match(U);if(a){var f=n;a.reduce(function(e,t){var n=e.pop().split(t),r=B(n,2),o=r[0],i=r[1];return o&&e.push(o),e.push(t),i&&e.push(i),e},[i]).forEach(function(e,t){0===t?f.textContent=e:f=f.parentNode.insertBefore(document.createTextNode(e),f.nextSibling)})}}var l=n.textContent.match(G);l&&(r.a||(n.textContent=""),o[l[1]]=[c,q])}else n.nodeType===Node.ELEMENT_NODE&&Array.from(n.attributes).forEach(function(i){var a=i.value.trim(),u=r.a?i.name.replace(V,""):i.name,f=a.match(G);if(f){var l=function(e){return e.replace(/\s*=\s*['"]*$/g,"").split(" ").pop()}(e[f[1]]);o[f[1]]=[c,function(e,t,n){if("on"===t.substr(0,2)){var r=new WeakMap,o=t.substr(2);return function(e,t,n){r.has(t)||t.addEventListener(o,function(){for(var n=arguments.length,o=Array(n),i=0;i<n;i++)o[i]=arguments[i];var a=r.get(t);a&&a.apply(void 0,[e].concat(o))}),r.set(t,n)}}switch(e){case"style":return P;case"class":return W;default:return function(r,o,i){if(n||o instanceof SVGElement||!(t in o))if(!1===i||void 0===i||null===i)o.removeAttribute(e);else{var a=!0===i?"":String(i);o.getAttribute(e)!==a&&o.setAttribute(e,a)}else o[t]!==i&&(o[t]=i)}}}(u,l,t)],n.removeAttribute(i.name)}else{var d=a.match(U);if(d){var s="attr__"+u;d.forEach(function(e,t){var n=e.match(G),r=B(n,2)[1];o[r]=[c,function(n,r,o){var i=F.get(r,{});i[s]=(i[s]||a).replace(e,null==o?"":o),1!==d.length&&t+1!==d.length||(r.setAttribute(u,i[s]),i[s]=void 0)}]}),i.value="",r.a&&u!==i.name&&(n.removeAttribute(i.name),n.setAttribute(u,""))}}});c+=1};u.nextNode();)f();return function(e,t,i){var a=F.get(t,{type:"function"});if(n!==a.template){a.template&&X(t);var u=document.importNode(function(e,t){return t?Object(r.f)(function(n){var r=J.get(e);r||(r=new Map,J.set(e,r));var o=r.get(t);if(!o){(o=document.createElement("template")).content.appendChild(e.content.cloneNode(!0)),r.set(t,o);var i=o.content.querySelectorAll("style");Array.from(i).forEach(function(e){for(var t=e.childNodes.length+1,n=0;n<t;n+=1)e.parentNode.insertBefore(document.createTextNode(I()),e)}),n.prepareTemplate(o,t.toLowerCase())}return o},e):e}(n,e.tagName).content,!0),c=K(u),f=o.slice(0),l=0,d=f.shift(),s=[];for(Object.assign(a,{template:n,markers:s});c.nextNode();){var v=c.currentNode;for(v.nodeType===Node.TEXT_NODE&&(G.test(v.textContent)?v.textContent="":r.a&&(v.textContent=v.textContent.replace(Z,"")));d&&d[0]===l;)s.push([v,d[1]]),d=f.shift();l+=1}var p=Array.from(u.childNodes);if(a.startNode=p[0],a.endNode=p[p.length-1],t.nodeType===Node.TEXT_NODE){var y=t;p.forEach(function(e){t.parentNode.insertBefore(e,y.nextSibling),y=e})}else t.appendChild(u)}a.markers.forEach(function(t,n){var r=B(t,2),o=r[0];(0,r[1])(e,o,i[n],a)})}}var ee=Object(r.c)();function te(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;return function(r,o){var i=void 0;t&&(i=setTimeout(function(){i=void 0,requestAnimationFrame(function(){t(r,o)})},n)),ee.set(o,e),e.then(function(t){i&&clearTimeout(i),ee.get(o)===e&&(t(r,o),ee.set(o,null))})}}function ne(e){return A(e),this}function re(e){return this.id=e,this}var oe=new Map;function ie(e,t,n){return Object.assign(function(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,i=function(e,t){return(t?"svg:":"")+e.join(I())}(e,n),a=oe.get(i);a||(a=Y(e,n),oe.set(i,a)),a(r,o,t)},{define:ne,key:re})}function ae(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return ie(e,n)}function ue(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return ie(e,n,!0)}Object.assign(ae,{resolve:te}),Object.assign(ue,{resolve:te}),n.d(t,"define",function(){return A}),n.d(t,"property",function(){return u}),n.d(t,"parent",function(){return M}),n.d(t,"children",function(){return _}),n.d(t,"render",function(){return b}),n.d(t,"dispatch",function(){return r.d}),n.d(t,"html",function(){return ae}),n.d(t,"svg",function(){return ue})}])});
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.hybrids=t():e.hybrids=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";(function(e){function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function c(e){return o(e=e[0].toLowerCase()+e.slice(1))}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.dispatchEvent(new CustomEvent(t,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){r(e,t,n[t])})}return e}({bubbles:!1},n)))}function u(){var e=new WeakMap;return{get:function(t,n){return e.has(t)?e.get(t):(void 0!==n&&e.set(t,n),n)},set:function(t,n){return e.set(t,n),n}}}function a(e,t){var n=window.ShadyCSS;return n&&!n.nativeShadow?e(n):t}function f(e){var t=String(e.tagName).toLowerCase();return"<".concat(t,">")}n.d(t,"b",function(){return o}),n.d(t,"e",function(){return c}),n.d(t,"d",function(){return i}),n.d(t,"c",function(){return u}),n.d(t,"f",function(){return a}),n.d(t,"g",function(){return f}),n.d(t,"a",function(){return l});var l="ActiveXObject"in e}).call(this,n(1))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(0);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var c=function(e){return e},i=function(e){if("object"!==o(e))throw TypeError("[property] Argument is not an object: ".concat("undefined"==typeof v?"undefined":o(v)));return e&&Object.freeze(e)};function u(e,t){var n=o(e),u=c;switch(n){case"string":u=String;break;case"number":u=Number;break;case"boolean":u=Boolean;break;case"function":e=(u=e)();break;case"object":e&&Object.freeze(e),u=i}return{get:function(t){return arguments.length>1&&void 0!==arguments[1]?arguments[1]:e},set:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2?arguments[2]:void 0;return u(n,r)},connect:"object"!==n&&"undefined"!==n?function(n,o,c){if(n[o]===e){var i=Object(r.b)(o);if(n.hasAttribute(i)){var u=n.getAttribute(i);n[o]=""===u||u}}return t&&t(n,o,c)}:t}}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var l=new WeakMap,s=new WeakMap,d=1e3/60,p=[];function y(e){var t=e.composedPath()[0];t===e.currentTarget&&(p[0]||requestAnimationFrame(function(){return function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(n&&performance.now()-n>d)requestAnimationFrame(function(){return e(t)});else{var o=p[t],c=performance.now();if(o){if(l.has(o)){var i=l.get(o),u=s.get(o);try{var a=o[i];a!==u&&(s.set(o,a),a(),u||Object(r.f)(function(e){return e.styleElement(o)}))}catch(n){throw e(t+1,c),n}}e(t+1,c)}else Object(r.f)(function(e){return p.forEach(function(t){return e.styleSubtree(t)})}),p=[]}}()}),-1===p.indexOf(t)&&p.push(t))}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("function"!=typeof e)throw TypeError("[render] The first argument must be a function: ".concat(f(e)));var n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){a(e,t,n[t])})}return e}({shadowRoot:!0},t);return{get:function(t){var r=e(t);return function(){return r(t,n.shadowRoot?t.shadowRoot:t)}},connect:function(e,t){if(l.has(e))throw Error("[render] Render factory already used in '".concat(l.get(e),"' key"));if(n.shadowRoot&&!e.shadowRoot){var r={mode:"open"};"object"===f(n.shadowRoot)&&Object.assign(r,n.shadowRoot),e.attachShadow(r)}return e.addEventListener("@invalidate",y),l.set(e,t),function(){e.removeEventListener("@invalidate",y),l.delete(e)}}}}var h=new WeakMap;function m(e,t){var n=h.get(e);n||(n=new Map,h.set(e,n));var r=n.get(t);return r||(r={target:e,key:t,value:void 0,deps:new Set,state:1,checksum:0},n.set(t,r)),r}function g(e){var t=e.state;return e.deps.forEach(function(e){e.target[e.key],t+=e.state}),t}var w=null;function S(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function E(e,t){return!t||"object"!==T(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function O(e){var t="function"==typeof Map?new Map:void 0;return(O=function(e){if(null===e||!function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return j(e,arguments,x(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),N(n,e)})(e)}function j(e,t,n){return(j=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&N(o,n.prototype),o}).apply(null,arguments)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function T(e){return(T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function k(e){Object(r.d)(e,"@invalidate",{bubbles:!0,composed:!0})}var C=function(e,t){return t};function M(e,t){e.hybrids=t,e.connects=[],Object.keys(t).forEach(function(n){var o=t[n],c=T(o);"function"===c?o="render"===n?b(o):{get:o}:null!==o&&"object"===c&&("object"!==c||o.get||o.set)||(o=u(o)),o.get=o.get||C,Object.defineProperty(e.prototype,n,{get:function(){return function(e,t,n){var o=m(e,t);if(w===o)throw w=null,Error("[cache] Circular '".concat(t,"' get invocation in '").concat(Object(r.g)(e),"'"));w&&w.deps.add(o);var c=w;if(w=o,o.checksum&&o.checksum===g(o))return w=c,o.value;o.deps.clear();try{var i=n(e,o.value);i!==o.value&&(o.state+=1,o.value=i),o.checksum=g(o),w=c}catch(e){throw w=null,e}return o.value}(this,n,o.get)},set:o.set&&function(e){var t=this;!function(e,t,n,o,c){if(w)throw w=null,Error("[cache] Try to set '".concat(t,"' of '").concat(Object(r.g)(e),"' in get call"));var i=m(e,t),u=n(e,o,i.value);u!==i.value&&(i.state+=1,i.value=u,c())}(this,n,o.set,e,function(){return k(t)})},enumerable:!0,configurable:!1}),o.connect&&e.connects.push(function(e){return o.connect(e,n,function(){(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&function(e,t,n){if(w)throw w=null,Error("[cache] Try to invalidate '".concat(t,"' in '").concat(Object(r.g)(e),"' get call"));var o=m(e,t);o.checksum=0,n&&(o.value=void 0)}(e,n),k(e)})})})}var A=new WeakMap;function P(e,t){var n=T(t);if("object"!==n&&"function"!==n)throw TypeError("[define] Invalid second argument. It must be an object or a function");var r=window.customElements.get(e);if("function"===n)return r!==t?window.customElements.define(e,t):r;if(r){if(r.hybrids===t)return r;throw Error("[define] Element '".concat(e,"' already defined"))}var o=function(t){function n(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),E(this,x(n).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(n,O(HTMLElement)),function(e,t,n){t&&S(e.prototype,t),n&&S(e,n)}(n,[{key:"connectedCallback",value:function(){var e=this,t=this.constructor.connects.reduce(function(t,n){var r=n(e);return r&&t.add(r),t},new Set);A.set(this,t),k(this)}},{key:"disconnectedCallback",value:function(){A.get(this).forEach(function(e){return e()})}}],[{key:"name",get:function(){return e}}]),n}();return M(o,t),customElements.define(e,o),o}function _(){return"object"===T(arguments.length<=0?void 0:arguments[0])?function(e){return Object.keys(e).reduce(function(t,n){var o=Object(r.e)(n);return t[n]=P(o,e[n]),t},{})}(arguments.length<=0?void 0:arguments[0]):P.apply(void 0,arguments)}var L=new WeakMap;function R(e){var t="function"==typeof e?e:function(t){return t===e};return{get:function(e){return function(e,t){for(var n=e.parentElement||e.parentNode.host;n;){var r=n.constructor.hybrids;if(r&&t(r))return n;n=n.parentElement||n.parentNode&&n.parentNode.host}return n||null}(e,t)},connect:function(e,t,n){var r=e[t];if(r){var o=L.get(r);return o||(o=new Set,L.set(r,o)),o.add(n),function(){o.delete(n),n()}}return!1}}}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{deep:!1,nested:!1},n="function"==typeof e?e:function(t){return t===e};return{get:function(e){return function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return Array.from(t.children).forEach(function(t){var c=t.constructor.hybrids;c&&n(c)?(o.push(t),r.deep&&r.nested&&e(t,n,r,o)):r.deep&&e(t,n,r,o)}),o}(e,n,t)},connect:function(e,n,r){var o=new MutationObserver(r),c=new Set,i=function(t){var o=t.target;c.size||Promise.resolve().then(function(){for(var t=e[n],o=0;o<t.length;o+=1)if(c.has(t[o])){r(!1);break}c.clear()}),c.add(o)};return o.observe(e,{childList:!0,subtree:!!t.deep}),e.addEventListener("@invalidate",i),function(){o.disconnect(),e.removeEventListener("@invalidate",i)}}}}function D(e){return(D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function F(e,t,n,o){if(null===n||"object"!==D(n))throw TypeError("Style value must be an object instance");var c=o.styleMap||new Map;o.styleMap=Object.keys(n).reduce(function(e,o){var i=Object(r.b)(o),u=n[o];return u||0===u?t.style.setProperty(i,u):t.style.removeProperty(i),e.set(i,u),c.delete(i),e},new Map),c.forEach(function(e,n){t.style[n]=""})}function B(e){return(B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function H(e,t,n,r){var o=r.classSet||new Set,c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;return Array.isArray(e)?e.forEach(function(e){return t.add(e)}):null!==e&&"object"===B(e)?Object.keys(e).forEach(function(n){return e[n]&&t.add(n)}):t.add(e),t}(n);r.classSet=c,c.forEach(function(e){t.classList.add(e),o.delete(e)}),o.forEach(function(e){t.classList.remove(e)})}function X(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,o=!1,c=void 0;try{for(var i,u=e[Symbol.iterator]();!(r=(i=u.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,c=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw c}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function q(e){return(q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}document.addEventListener("@invalidate",function(e){var t=L.get(e.composedPath()[0]);t&&t.forEach(function(e){return e()})});var z=Object(r.c)();function I(e){for(var t;e&&(t=z.get(e))&&t.endNode;)e=t.endNode;return e}function $(e){var t=z.get(e),n=t.startNode;if(n)for(var r=n,o=I(t.endNode).nextSibling;r;){var c=r.nextSibling;r.parentNode.removeChild(r),r=c!==o&&c}}function G(e,t,n){var r=Array.isArray(n)?"array":q(n),o=z.get(t,{});switch(o.type!==r&&($(t),o=z.set(t,{type:r}),""!==t.textContent&&(t.textContent="")),r){case"function":n(e,t);break;case"array":!function(e,t,n){var r=t,o=n.length-1,c=z.get(t),i=c.arrayEntries,u=n.map(function(e,t){return[Object.prototype.hasOwnProperty.call(e,"id")?e.id:t,e]});if(i){var a=new Set;u.forEach(function(e){var t=X(e,1),n=t[0];return a.add(n)}),i.forEach(function(e){var t=e.id,n=e.placeholder;a.has(t)||($(n),n.parentNode.removeChild(n),e.available=!1)})}c.arrayEntries=u.reduce(function(t,n,u){var a,f=X(n,2),l=f[0],s=f[1],d=i&&i.find(function(e){return e.available&&e.id===l});return d?(d.available=!1,(a=d.placeholder).previousSibling!==r&&function(e,t){var n=z.get(e),r=n.startNode,o=I(n.endNode);t.parentNode.insertBefore(e,t.nextSibling);for(var c=e,i=r;i;){var u=i.nextSibling;c.parentNode.insertBefore(i,c.nextSibling),c=i,i=u!==o.nextSibling&&u}}(a,r)):(a=document.createTextNode(""),r.parentNode.insertBefore(a,r.nextSibling)),G(e,a,s),r=I(z.get(a).endNode||a),0===u&&(c.startNode=a),u===o&&(c.endNode=r),t.push({available:!0,id:l,placeholder:a}),t},[]),i&&i.forEach(function(e){var t=e.available,n=e.placeholder;t&&($(n),n.parentNode.removeChild(n))})}(e,t,n);break;default:n!==o.value&&(o.value=n,t.textContent="number"===r||n?n:"")}}var U=Date.now(),V=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return"{{h-".concat(U,"-").concat(e,"}}")},Z=V("(\\d+)"),J=new RegExp("^".concat(Z,"$")),K=new RegExp(Z,"g"),Q="--".concat(U,"--"),Y=new RegExp(Q,"g"),ee=new WeakMap;var te="object"===q(window.ShadyDOM)&&window.ShadyDOM.inUse?function(e){var t;return{get currentNode(){return t},nextNode:function(){return!!(t=void 0===t?e.childNodes[0]:t.childNodes.length?t.childNodes[0]:t.nextSibling?t.nextSibling:t.parentNode.nextSibling)}}}:function(e){return document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null,!1)},ne=document.createElement("div");function re(e,t){var n=document.createElement("template"),o=[],c=function(e){var t=e.reduce(function(t,n,r){return 0===r?n:e.slice(r).join("").match(/\s*<\/\s*(table|tr|thead|tbody|tfoot|colgroup)>/)?"".concat(t,"\x3c!--").concat(V(r-1),"--\x3e").concat(n):t+V(r-1)+n},"");return r.a?t.replace(/style\s*=\s*(["][^"]+["]|['][^']+[']|[^\s"'<>/]+)/g,function(e){return"".concat(Q).concat(e)}):t}(e);if(t&&(c="<svg>".concat(c,"</svg>")),r.a?n.innerHTML=c:(ne.innerHTML="<template>".concat(c,"</template>"),n.content.appendChild(ne.children[0].content)),t){var i=n.content.firstChild;n.content.removeChild(i),Array.from(i.childNodes).forEach(function(e){return n.content.appendChild(e)})}!function(e){for(var t,n=document.createNodeIterator(e,NodeFilter.SHOW_COMMENT,null,!1);t=n.nextNode();)J.test(t.textContent)&&(t.parentNode.insertBefore(document.createTextNode(t.textContent),t),t.parentNode.removeChild(t))}(n.content);for(var u=te(n.content),a=0,f=function(){var n=u.currentNode;if(n.nodeType===Node.TEXT_NODE){var c=n.textContent;if(!c.match(J)){var i=c.match(K);if(i){var f=n;i.reduce(function(e,t){var n=X(e.pop().split(t),2),r=n[0],o=n[1];return r&&e.push(r),e.push(t),o&&e.push(o),e},[c]).forEach(function(e,t){0===t?f.textContent=e:f=f.parentNode.insertBefore(document.createTextNode(e),f.nextSibling)})}}var l=n.textContent.match(J);l&&(r.a||(n.textContent=""),o[l[1]]=[a,G])}else n.nodeType===Node.ELEMENT_NODE&&Array.from(n.attributes).forEach(function(c){var i=c.value.trim(),u=r.a?c.name.replace(Q,""):c.name,f=i.match(J);if(f){var l=function(e){return e.replace(/\s*=\s*['"]*$/g,"").split(" ").pop()}(e[f[1]]);o[f[1]]=[a,function(e,t,n){if("on"===t.substr(0,2)){var r=new WeakMap,o=t.substr(2);return function(e,t,n){r.has(t)||t.addEventListener(o,function(){for(var n=r.get(t),o=arguments.length,c=new Array(o),i=0;i<o;i++)c[i]=arguments[i];n&&n.apply(void 0,[e].concat(c))}),r.set(t,n)}}switch(e){case"style":return F;case"class":return H;default:return function(r,o,c){if(n||o instanceof SVGElement||!(t in o))if(!1===c||void 0===c||null===c)o.removeAttribute(e);else{var i=!0===c?"":String(c);o.getAttribute(e)!==i&&o.setAttribute(e,i)}else o[t]!==c&&(o[t]=c)}}}(u,l,t)],n.removeAttribute(c.name)}else{var s=i.match(K);if(s){var d="attr__".concat(u);s.forEach(function(e,t){var n=X(e.match(J),2)[1];o[n]=[a,function(n,r,o){var c=z.get(r,{});c[d]=(c[d]||i).replace(e,null==o?"":o),1!==s.length&&t+1!==s.length||(r.setAttribute(u,c[d]),c[d]=void 0)}]}),c.value="",r.a&&u!==c.name&&(n.removeAttribute(c.name),n.setAttribute(u,""))}}});a+=1};u.nextNode();)f();return function(e,t,c){var i=z.get(t,{type:"function"});if(n!==i.template){i.template&&$(t);var u=document.importNode(function(e,t){return t?Object(r.f)(function(n){var r=ee.get(e);r||(r=new Map,ee.set(e,r));var o=r.get(t);if(!o){(o=document.createElement("template")).content.appendChild(e.content.cloneNode(!0)),r.set(t,o);var c=o.content.querySelectorAll("style");Array.from(c).forEach(function(e){for(var t=e.childNodes.length+1,n=0;n<t;n+=1)e.parentNode.insertBefore(document.createTextNode(V()),e)}),n.prepareTemplate(o,t.toLowerCase())}return o},e):e}(n,e.tagName).content,!0),a=te(u),f=o.slice(0),l=0,s=f.shift(),d=[];for(Object.assign(i,{template:n,markers:d});a.nextNode();){var p=a.currentNode;for(p.nodeType===Node.TEXT_NODE&&(J.test(p.textContent)?p.textContent="":r.a&&(p.textContent=p.textContent.replace(Y,"")));s&&s[0]===l;)d.push([p,s[1]]),s=f.shift();l+=1}var v=Array.from(u.childNodes);if(i.startNode=v[0],i.endNode=v[v.length-1],t.nodeType===Node.TEXT_NODE){var y=t;v.forEach(function(e){t.parentNode.insertBefore(e,y.nextSibling),y=e})}else t.appendChild(u)}i.markers.forEach(function(t,n){var r=X(t,2),o=r[0];(0,r[1])(e,o,c[n],i)})}}var oe=Object(r.c)();function ce(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;return function(r,o){var c;t&&(c=setTimeout(function(){c=void 0,requestAnimationFrame(function(){t(r,o)})},n)),oe.set(o,e),e.then(function(t){c&&clearTimeout(c),oe.get(o)===e&&(t(r,o),oe.set(o,null))})}}function ie(e){return _(e),this}function ue(e){return this.id=e,this}var ae=new Map;function fe(e,t,n){return Object.assign(function(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,c=function(e,t){return"".concat(t?"svg:":"").concat(e.join(V()))}(e,n),i=ae.get(c);i||(i=re(e,n),ae.set(c,i)),i(r,o,t)},{define:ie,key:ue})}function le(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return fe(e,n)}function se(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return fe(e,n,!0)}Object.assign(le,{resolve:ce}),Object.assign(se,{resolve:ce}),n.d(t,"define",function(){return _}),n.d(t,"property",function(){return u}),n.d(t,"parent",function(){return R}),n.d(t,"children",function(){return W}),n.d(t,"render",function(){return b}),n.d(t,"dispatch",function(){return r.d}),n.d(t,"html",function(){return le}),n.d(t,"svg",function(){return se})}])});
//# sourceMappingURL=hybrids.js.map
import { stringifyElement } from './utils';
var entries = new WeakMap();
export function getEntry(target, key) {
var targetMap = entries.get(target);
if (!targetMap) {

@@ -31,3 +31,2 @@ targetMap = new Map();

deps = _ref.deps;
var checksum = state;

@@ -39,3 +38,2 @@ deps.forEach(function (entry) {

});
return checksum;

@@ -50,3 +48,3 @@ }

context = null;
throw Error('[cache] Circular \'' + key + '\' get invocation in \'' + stringifyElement(target) + '\'');
throw Error("[cache] Circular '".concat(key, "' get invocation in '").concat(stringifyElement(target), "'"));
}

@@ -85,7 +83,6 @@

}
export function set(target, key, setter, value, callback) {
if (context) {
context = null;
throw Error('[cache] Try to set \'' + key + '\' of \'' + stringifyElement(target) + '\' in get call');
throw Error("[cache] Try to set '".concat(key, "' of '").concat(stringifyElement(target), "' in get call"));
}

@@ -99,15 +96,12 @@

entry.value = newValue;
callback();
}
}
export function invalidate(target, key, clearValue) {
if (context) {
context = null;
throw Error('[cache] Try to invalidate \'' + key + '\' in \'' + stringifyElement(target) + '\' get call');
throw Error("[cache] Try to invalidate '".concat(key, "' in '").concat(stringifyElement(target), "' get call"));
}
var entry = getEntry(target, key);
entry.checksum = 0;

@@ -119,2 +113,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJzdHJpbmdpZnlFbGVtZW50IiwiZW50cmllcyIsIldlYWtNYXAiLCJnZXRFbnRyeSIsInRhcmdldCIsImtleSIsInRhcmdldE1hcCIsImdldCIsIk1hcCIsInNldCIsImVudHJ5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJkZXBzIiwiU2V0Iiwic3RhdGUiLCJjaGVja3N1bSIsImNhbGN1bGF0ZUNoZWNrc3VtIiwiZm9yRWFjaCIsImNvbnRleHQiLCJnZXR0ZXIiLCJFcnJvciIsImFkZCIsInBhcmVudENvbnRleHQiLCJjbGVhciIsIm5leHRWYWx1ZSIsImUiLCJzZXR0ZXIiLCJjYWxsYmFjayIsIm5ld1ZhbHVlIiwiaW52YWxpZGF0ZSIsImNsZWFyVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFULFFBQWlDLFNBQWpDOztBQUVBLElBQU1DLFVBQVUsSUFBSUMsT0FBSixFQUFoQjtBQUNBLE9BQU8sU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEJDLEdBQTFCLEVBQStCO0FBQ3BDLE1BQUlDLFlBQVlMLFFBQVFNLEdBQVIsQ0FBWUgsTUFBWixDQUFoQjtBQUNBLE1BQUksQ0FBQ0UsU0FBTCxFQUFnQjtBQUNkQSxnQkFBWSxJQUFJRSxHQUFKLEVBQVo7QUFDQVAsWUFBUVEsR0FBUixDQUFZTCxNQUFaLEVBQW9CRSxTQUFwQjtBQUNEOztBQUVELE1BQUlJLFFBQVFKLFVBQVVDLEdBQVYsQ0FBY0YsR0FBZCxDQUFaOztBQUVBLE1BQUksQ0FBQ0ssS0FBTCxFQUFZO0FBQ1ZBLFlBQVE7QUFDTk4sb0JBRE07QUFFTkMsY0FGTTtBQUdOTSxhQUFPQyxTQUhEO0FBSU5DLFlBQU0sSUFBSUMsR0FBSixFQUpBO0FBS05DLGFBQU8sQ0FMRDtBQU1OQyxnQkFBVTtBQU5KLEtBQVI7QUFRQVYsY0FBVUcsR0FBVixDQUFjSixHQUFkLEVBQW1CSyxLQUFuQjtBQUNEOztBQUVELFNBQU9BLEtBQVA7QUFDRDs7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OiJjYWNoZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ2lmeUVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgZW50cmllcyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50cnkodGFyZ2V0LCBrZXkpIHtcbiAgbGV0IHRhcmdldE1hcCA9IGVudHJpZXMuZ2V0KHRhcmdldCk7XG4gIGlmICghdGFyZ2V0TWFwKSB7XG4gICAgdGFyZ2V0TWFwID0gbmV3IE1hcCgpO1xuICAgIGVudHJpZXMuc2V0KHRhcmdldCwgdGFyZ2V0TWFwKTtcbiAgfVxuXG4gIGxldCBlbnRyeSA9IHRhcmdldE1hcC5nZXQoa2V5KTtcblxuICBpZiAoIWVudHJ5KSB7XG4gICAgZW50cnkgPSB7XG4gICAgICB0YXJnZXQsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgZGVwczogbmV3IFNldCgpLFxuICAgICAgc3RhdGU6IDEsXG4gICAgICBjaGVja3N1bTogMCxcbiAgICB9O1xuICAgIHRhcmdldE1hcC5zZXQoa2V5LCBlbnRyeSk7XG4gIH1cblxuICByZXR1cm4gZW50cnk7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNoZWNrc3VtKHsgc3RhdGUsIGRlcHMgfSkge1xuICBsZXQgY2hlY2tzdW0gPSBzdGF0ZTtcbiAgZGVwcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgICBlbnRyeS50YXJnZXRbZW50cnkua2V5XTtcbiAgICBjaGVja3N1bSArPSBlbnRyeS5zdGF0ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNoZWNrc3VtO1xufVxuXG5sZXQgY29udGV4dCA9IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0KHRhcmdldCwga2V5LCBnZXR0ZXIpIHtcbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgaWYgKGNvbnRleHQgPT09IGVudHJ5KSB7XG4gICAgY29udGV4dCA9IG51bGw7XG4gICAgdGhyb3cgRXJyb3IoYFtjYWNoZV0gQ2lyY3VsYXIgJyR7a2V5fScgZ2V0IGludm9jYXRpb24gaW4gJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfSdgKTtcbiAgfVxuXG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29udGV4dC5kZXBzLmFkZChlbnRyeSk7XG4gIH1cblxuICBjb25zdCBwYXJlbnRDb250ZXh0ID0gY29udGV4dDtcbiAgY29udGV4dCA9IGVudHJ5O1xuXG4gIGlmIChlbnRyeS5jaGVja3N1bSAmJiBlbnRyeS5jaGVja3N1bSA9PT0gY2FsY3VsYXRlQ2hlY2tzdW0oZW50cnkpKSB7XG4gICAgY29udGV4dCA9IHBhcmVudENvbnRleHQ7XG4gICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICB9XG5cbiAgZW50cnkuZGVwcy5jbGVhcigpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gZ2V0dGVyKHRhcmdldCwgZW50cnkudmFsdWUpO1xuXG4gICAgaWYgKG5leHRWYWx1ZSAhPT0gZW50cnkudmFsdWUpIHtcbiAgICAgIGVudHJ5LnN0YXRlICs9IDE7XG4gICAgICBlbnRyeS52YWx1ZSA9IG5leHRWYWx1ZTtcbiAgICB9XG5cbiAgICBlbnRyeS5jaGVja3N1bSA9IGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KTtcbiAgICBjb250ZXh0ID0gcGFyZW50Q29udGV4dDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IGU7XG4gIH1cblxuICByZXR1cm4gZW50cnkudmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQodGFyZ2V0LCBrZXksIHNldHRlciwgdmFsdWUsIGNhbGxiYWNrKSB7XG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29udGV4dCA9IG51bGw7XG4gICAgdGhyb3cgRXJyb3IoYFtjYWNoZV0gVHJ5IHRvIHNldCAnJHtrZXl9JyBvZiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9JyBpbiBnZXQgY2FsbGApO1xuICB9XG5cbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG4gIGNvbnN0IG5ld1ZhbHVlID0gc2V0dGVyKHRhcmdldCwgdmFsdWUsIGVudHJ5LnZhbHVlKTtcblxuICBpZiAobmV3VmFsdWUgIT09IGVudHJ5LnZhbHVlKSB7XG4gICAgZW50cnkuc3RhdGUgKz0gMTtcbiAgICBlbnRyeS52YWx1ZSA9IG5ld1ZhbHVlO1xuXG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZSh0YXJnZXQsIGtleSwgY2xlYXJWYWx1ZSkge1xuICBpZiAoY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IEVycm9yKGBbY2FjaGVdIFRyeSB0byBpbnZhbGlkYXRlICcke2tleX0nIGluICcke3N0cmluZ2lmeUVsZW1lbnQodGFyZ2V0KX0nIGdldCBjYWxsYCk7XG4gIH1cblxuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcblxuICBlbnRyeS5jaGVja3N1bSA9IDA7XG5cbiAgaWYgKGNsZWFyVmFsdWUpIHtcbiAgICBlbnRyeS52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJzdHJpbmdpZnlFbGVtZW50IiwiZW50cmllcyIsIldlYWtNYXAiLCJnZXRFbnRyeSIsInRhcmdldCIsImtleSIsInRhcmdldE1hcCIsImdldCIsIk1hcCIsInNldCIsImVudHJ5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJkZXBzIiwiU2V0Iiwic3RhdGUiLCJjaGVja3N1bSIsImNhbGN1bGF0ZUNoZWNrc3VtIiwiZm9yRWFjaCIsImNvbnRleHQiLCJnZXR0ZXIiLCJFcnJvciIsImFkZCIsInBhcmVudENvbnRleHQiLCJjbGVhciIsIm5leHRWYWx1ZSIsImUiLCJzZXR0ZXIiLCJjYWxsYmFjayIsIm5ld1ZhbHVlIiwiaW52YWxpZGF0ZSIsImNsZWFyVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFULFFBQWlDLFNBQWpDO0FBRUEsSUFBTUMsT0FBTyxHQUFHLElBQUlDLE9BQUosRUFBaEI7QUFDQSxPQUFPLFNBQVNDLFFBQVQsQ0FBa0JDLE1BQWxCLEVBQTBCQyxHQUExQixFQUErQjtBQUNwQyxNQUFJQyxTQUFTLEdBQUdMLE9BQU8sQ0FBQ00sR0FBUixDQUFZSCxNQUFaLENBQWhCOztBQUNBLE1BQUksQ0FBQ0UsU0FBTCxFQUFnQjtBQUNkQSxJQUFBQSxTQUFTLEdBQUcsSUFBSUUsR0FBSixFQUFaO0FBQ0FQLElBQUFBLE9BQU8sQ0FBQ1EsR0FBUixDQUFZTCxNQUFaLEVBQW9CRSxTQUFwQjtBQUNEOztBQUVELE1BQUlJLEtBQUssR0FBR0osU0FBUyxDQUFDQyxHQUFWLENBQWNGLEdBQWQsQ0FBWjs7QUFFQSxNQUFJLENBQUNLLEtBQUwsRUFBWTtBQUNWQSxJQUFBQSxLQUFLLEdBQUc7QUFDTk4sTUFBQUEsTUFBTSxFQUFOQSxNQURNO0FBRU5DLE1BQUFBLEdBQUcsRUFBSEEsR0FGTTtBQUdOTSxNQUFBQSxLQUFLLEVBQUVDLFNBSEQ7QUFJTkMsTUFBQUEsSUFBSSxFQUFFLElBQUlDLEdBQUos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LE1BQUlrQixRQUFRLEtBQUtuQixLQUFLLENBQUNDLEtBQXZCLEVBQThCO0FBQzVCRCxJQUFBQSxLQUFLLENBQUNLLEtBQU4sSUFBZSxDQUFmO0FBQ0FMLElBQUFBLEtBQUssQ0FBQ0MsS0FBTixHQUFja0IsUUFBZDtBQUVBRCxJQUFBQSxRQUFRO0FBQ1Q7QUFDRjtBQUVELE9BQU8sU0FBU0UsVUFBVCxDQUFvQjFCLE1BQXBCLEVBQTRCQyxHQUE1QixFQUFpQzBCLFVBQWpDLEVBQTZDO0FBQ2xELE1BQUlaLE9BQUosRUFBYTtBQUNYQSxJQUFBQSxPQUFPLEdBQUcsSUFBVjtBQUNBLFVBQU1FLEtBQUssc0NBQStCaEIsR0FBL0IsbUJBQTJDTCxnQkFBZ0IsQ0FBQ0ksTUFBRCxDQUEzRCxnQkFBWDtBQUNEOztBQUVELE1BQU1NLEtBQUssR0FBR1AsUUFBUSxDQUFDQyxNQUFELEVBQVNDLEdBQVQsQ0FBdEI7QUFFQUssRUFBQUEsS0FBSyxDQUFDTSxRQUFOLEdBQWlCLENBQWpCOztBQUVBLE1BQUllLFVBQUosRUFBZ0I7QUFDZHJCLElBQUFBLEtBQUssQ0FBQ0MsS0FBTixHQUFjQyxTQUFkO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ2lmeUVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgZW50cmllcyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50cnkodGFyZ2V0LCBrZXkpIHtcbiAgbGV0IHRhcmdldE1hcCA9IGVudHJpZXMuZ2V0KHRhcmdldCk7XG4gIGlmICghdGFyZ2V0TWFwKSB7XG4gICAgdGFyZ2V0TWFwID0gbmV3IE1hcCgpO1xuICAgIGVudHJpZXMuc2V0KHRhcmdldCwgdGFyZ2V0TWFwKTtcbiAgfVxuXG4gIGxldCBlbnRyeSA9IHRhcmdldE1hcC5nZXQoa2V5KTtcblxuICBpZiAoIWVudHJ5KSB7XG4gICAgZW50cnkgPSB7XG4gICAgICB0YXJnZXQsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgZGVwczogbmV3IFNldCgpLFxuICAgICAgc3RhdGU6IDEsXG4gICAgICBjaGVja3N1bTogMCxcbiAgICB9O1xuICAgIHRhcmdldE1hcC5zZXQoa2V5LCBlbnRyeSk7XG4gIH1cblxuICByZXR1cm4gZW50cnk7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNoZWNrc3VtKHsgc3RhdGUsIGRlcHMgfSkge1xuICBsZXQgY2hlY2tzdW0gPSBzdGF0ZTtcbiAgZGVwcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgICBlbnRyeS50YXJnZXRbZW50cnkua2V5XTtcbiAgICBjaGVja3N1bSArPSBlbnRyeS5zdGF0ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNoZWNrc3VtO1xufVxuXG5sZXQgY29udGV4dCA9IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0KHRhcmdldCwga2V5LCBnZXR0ZXIpIHtcbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgaWYgKGNvbnRleHQgPT09IGVudHJ5KSB7XG4gICAgY29udGV4dCA9IG51bGw7XG4gICAgdGhyb3cgRXJyb3IoYFtjYWNoZV0gQ2lyY3VsYXIgJyR7a2V5fScgZ2V0IGludm9jYXRpb24gaW4gJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfSdgKTtcbiAgfVxuXG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29udGV4dC5kZXBzLmFkZChlbnRyeSk7XG4gIH1cblxuICBjb25zdCBwYXJlbnRDb250ZXh0ID0gY29udGV4dDtcbiAgY29udGV4dCA9IGVudHJ5O1xuXG4gIGlmIChlbnRyeS5jaGVja3N1bSAmJiBlbnRyeS5jaGVja3N1bSA9PT0gY2FsY3VsYXRlQ2hlY2tzdW0oZW50cnkpKSB7XG4gICAgY29udGV4dCA9IHBhcmVudENvbnRleHQ7XG4gICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICB9XG5cbiAgZW50cnkuZGVwcy5jbGVhcigpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gZ2V0dGVyKHRhcmdldCwgZW50cnkudmFsdWUpO1xuXG4gICAgaWYgKG5leHRWYWx1ZSAhPT0gZW50cnkudmFsdWUpIHtcbiAgICAgIGVudHJ5LnN0YXRlICs9IDE7XG4gICAgICBlbnRyeS52YWx1ZSA9IG5leHRWYWx1ZTtcbiAgICB9XG5cbiAgICBlbnRyeS5jaGVja3N1bSA9IGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KTtcbiAgICBjb250ZXh0ID0gcGFyZW50Q29udGV4dDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IGU7XG4gIH1cblxuICByZXR1cm4gZW50cnkudmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQodGFyZ2V0LCBrZXksIHNldHRlciwgdmFsdWUsIGNhbGxiYWNrKSB7XG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29udGV4dCA9IG51bGw7XG4gICAgdGhyb3cgRXJyb3IoYFtjYWNoZV0gVHJ5IHRvIHNldCAnJHtrZXl9JyBvZiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9JyBpbiBnZXQgY2FsbGApO1xuICB9XG5cbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG4gIGNvbnN0IG5ld1ZhbHVlID0gc2V0dGVyKHRhcmdldCwgdmFsdWUsIGVudHJ5LnZhbHVlKTtcblxuICBpZiAobmV3VmFsdWUgIT09IGVudHJ5LnZhbHVlKSB7XG4gICAgZW50cnkuc3RhdGUgKz0gMTtcbiAgICBlbnRyeS52YWx1ZSA9IG5ld1ZhbHVlO1xuXG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZSh0YXJnZXQsIGtleSwgY2xlYXJWYWx1ZSkge1xuICBpZiAoY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IEVycm9yKGBbY2FjaGVdIFRyeSB0byBpbnZhbGlkYXRlICcke2tleX0nIGluICcke3N0cmluZ2lmeUVsZW1lbnQodGFyZ2V0KX0nIGdldCBjYWxsYCk7XG4gIH1cblxuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcblxuICBlbnRyeS5jaGVja3N1bSA9IDA7XG5cbiAgaWYgKGNsZWFyVmFsdWUpIHtcbiAgICBlbnRyeS52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19

@@ -1,10 +0,9 @@

function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function walk(node, fn, options) {
var items = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
Array.from(node.children).forEach(function (child) {
var hybrids = child.constructor.hybrids;
if (hybrids && fn(hybrids)) {
items.push(child);
if (options.deep && options.nested) {

@@ -17,3 +16,2 @@ walk(child, fn, options, items);

});
return items;

@@ -23,4 +21,6 @@ }

export default function children(hybridsOrFn) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { deep: false, nested: false };
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
deep: false,
nested: false
};
var fn = typeof hybridsOrFn === 'function' ? hybridsOrFn : function (hybrids) {

@@ -42,7 +42,6 @@ return hybrids === hybridsOrFn;

Promise.resolve().then(function () {
var targets = [].concat(_toConsumableArray(set));
var list = host[key];
for (var i = 0; i < list.length; i += 1) {
if (list.indexOf(targets[i]) > -1) {
if (set.has(list[i])) {
invalidate(false);

@@ -52,5 +51,7 @@ break;

}
set.clear();
});
}
set.add(target);

@@ -60,7 +61,6 @@ };

observer.observe(host, {
childList: true, subtree: !!options.deep
childList: true,
subtree: !!options.deep
});
host.addEventListener('@invalidate', childEventListener);
return function () {

@@ -73,2 +73,2 @@ observer.disconnect();

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGlsZHJlbi5qcyJdLCJuYW1lcyI6WyJ3YWxrIiwibm9kZSIsImZuIiwib3B0aW9ucyIsIml0ZW1zIiwiQXJyYXkiLCJmcm9tIiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiY2hpbGQiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJwdXNoIiwiZGVlcCIsIm5lc3RlZCIsImh5YnJpZHNPckZuIiwiZ2V0IiwiaG9zdCIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwic2V0IiwiU2V0IiwiY2hpbGRFdmVudExpc3RlbmVyIiwidGFyZ2V0Iiwic2l6ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInRhcmdldHMiLCJsaXN0IiwiaSIsImxlbmd0aCIsImluZGV4T2YiLCJjbGVhciIsImFkZCIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRpc2Nvbm5lY3QiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLElBQVQsQ0FBY0MsSUFBZCxFQUFvQkMsRUFBcEIsRUFBd0JDLE9BQXhCLEVBQTZDO0FBQUEsTUFBWkMsS0FBWSx1RUFBSixFQUFJOztBQUMzQ0MsUUFBTUMsSUFBTixDQUFXTCxLQUFLTSxRQUFoQixFQUEwQkMsT0FBMUIsQ0FBa0MsVUFBQ0MsS0FBRCxFQUFXO0FBQzNDLFFBQU1DLFVBQVVELE1BQU1FLFdBQU4sQ0FBa0JELE9BQWxDO0FBQ0EsUUFBSUEsV0FBV1IsR0FBR1EsT0FBSCxDQUFmLEVBQTRCO0FBQzFCTixZQUFNUSxJQUFOLENBQVdILEtBQVg7QUFDQSxVQUFJTixRQUFRVSxJQUFSLElBQWdCVixRQUFRVyxNQUE1QixFQUFvQztBQUNsQ2QsYUFBS1MsS0FBTCxFQUFZUCxFQUFaLEVBQWdCQyxPQUFoQixFQUF5QkMsS0FBekI7QUFDRDtBQUNGLEtBTEQsTUFLTyxJQUFJRCxRQUFRVSxJQUFaLEVBQWtCO0FBQ3ZCYixXQUFLUyxLQUFMLEVBQVlQLEVBQVosRUFBZ0JDLE9BQWhCLEVBQXlCQyxLQUF6QjtBQUNEO0FBQ0YsR0FWRDs7QUFZQSxTQUFPQSxLQUFQO0FBQ0Q7O0FBRUQsZUFBZSxTQUFTRyxRQUFULENBQWtCUSxXQUFsQixFQUF5RTtBQUFBLE1BQTFDWixPQUEwQyx1RUFBaEMsRUFBRVUsTUFBTSxLQUFSLEVBQWVDLFFBQVEsS0FBdkIsRUFBZ0M7O0FBQ3RGLE1BQU1aLEtBQUssT0FBT2EsV0FBUCxLQUF1QixVQUF2QixHQUFvQ0EsV0FBcEMsR0FBa0Q7QUFBQSxXQUFXTCxZQUFZSyxXQUF2QjtBQUFBLEdBQTdEO0FBQ0EsU0FBTztBQUNMQyxPQURLLGVBQ0RDLElBREMsRUFDSztBQUFFLGFBQU9qQixLQUFLaUIsSUFBTCxFQUFXZixFQUFYLEVBQWVDLE9BQWYsQ0FBUDtBQUFpQyxLQUR4QztBQUVMZSxXQUZLLG1CQUVHRCxJQUZILEVBRVNFLEdBRlQsRUFFY0MsVUFGZCxFQUUwQjtBQUM3QixVQUFNQyxXQUFXLElBQUlDLGdCQUFKLENBQXFCRixVQUFyQixDQUFqQjtBQUNBLFVBQU1HLE1BQU0sSUFBSUMsR0FBSixFQUFaOztBQUVBLFVBQU1DLHFCQUFxQixTQUFyQkEsa0JBQXFCLE9BQWdCO0FBQUEsWUFBYkMsTUFBYSxRQUFiQSxNQUFhOztBQUN6QyxZQUFJLENBQUNILElBQUlJLElBQVQsRUFBZTtBQUNiQyxrQkFBUUMsT0FBUixHQUFrQkMsSUFBbEIsQ0FBdUIsWUFBTTtBQUMzQixnQkFBTUMsdUNBQWNSLEdBQWQsRUFBTjtBQUNBLGdCQUFNUyxPQUFPZixLQUFLRSxHQUFMLENBQWI7O0FBRUEsaUJBQUssSUFBSWMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRCxLQUFLRSxNQUF6QixFQUFpQ0QsS0FBSyxDQUF0QyxFQUF5QztBQUN2QyxrQkFBSUQsS0FBS0csT0FBTCxDQUFhSixRQUFRRSxDQUFSLENBQWIsSUFBMkIsQ0FBQyxDQUFoQyxFQUFtQztBQUNqQ2IsMkJBQVcsS0FBWDtBQUNBO0FBQ0Q7QUFDRjtBQUNERyxnQkFBSWEsS0FBSjtBQUNELFdBWEQ7QUFZRDtBQUNEYixZQUFJYyxHQUFKLENBQVFYLE1BQVI7QUFDRCxPQWhCRDs7QUFrQkFMLGVBQVNpQixPQUFULENBQWlCckIsSUFBakIsRUFBdUI7QUFDckJzQixtQkFBVyxJQURVLEVBQ0pDLFNBQVMsQ0FBQyxDQUFDckMsUUFBUVU7QUFEZixPQUF2Qjs7QUFJQUksV0FBS3dCLGdCQUFMLENBQXNCLGFBQXRCLEVBQXFDaEIsa0JBQXJDOztBQUVBLGFBQU8sWUFBTTtBQUNYSixpQkFBU3FCLFVBQVQ7QUFDQXpCLGFBQUswQixtQkFBTCxDQUF5QixhQUF6QixFQUF3Q2xCLGtCQUF4QztBQUNELE9BSEQ7QUFJRDtBQWxDSSxHQUFQO0FBb0NEIiwiZmlsZSI6ImNoaWxkcmVuLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gd2Fsayhub2RlLCBmbiwgb3B0aW9ucywgaXRlbXMgPSBbXSkge1xuICBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgY29uc3QgaHlicmlkcyA9IGNoaWxkLmNvbnN0cnVjdG9yLmh5YnJpZHM7XG4gICAgaWYgKGh5YnJpZHMgJiYgZm4oaHlicmlkcykpIHtcbiAgICAgIGl0ZW1zLnB1c2goY2hpbGQpO1xuICAgICAgaWYgKG9wdGlvbnMuZGVlcCAmJiBvcHRpb25zLm5lc3RlZCkge1xuICAgICAgICB3YWxrKGNoaWxkLCBmbiwgb3B0aW9ucywgaXRlbXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5kZWVwKSB7XG4gICAgICB3YWxrKGNoaWxkLCBmbiwgb3B0aW9ucywgaXRlbXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGl0ZW1zO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjaGlsZHJlbihoeWJyaWRzT3JGbiwgb3B0aW9ucyA9IHsgZGVlcDogZmFsc2UsIG5lc3RlZDogZmFsc2UgfSkge1xuICBjb25zdCBmbiA9IHR5cGVvZiBoeWJyaWRzT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IGh5YnJpZHNPckZuIDogaHlicmlkcyA9PiBoeWJyaWRzID09PSBoeWJyaWRzT3JGbjtcbiAgcmV0dXJuIHtcbiAgICBnZXQoaG9zdCkgeyByZXR1cm4gd2Fsayhob3N0LCBmbiwgb3B0aW9ucyk7IH0sXG4gICAgY29ubmVjdChob3N0LCBrZXksIGludmFsaWRhdGUpIHtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoaW52YWxpZGF0ZSk7XG4gICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XG5cbiAgICAgIGNvbnN0IGNoaWxkRXZlbnRMaXN0ZW5lciA9ICh7IHRhcmdldCB9KSA9PiB7XG4gICAgICAgIGlmICghc2V0LnNpemUpIHtcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldHMgPSBbLi4uc2V0XTtcbiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBob3N0W2tleV07XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgICBpZiAobGlzdC5pbmRleE9mKHRhcmdldHNbaV0pID4gLTEpIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0LmNsZWFyKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0LmFkZCh0YXJnZXQpO1xuICAgICAgfTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShob3N0LCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogISFvcHRpb25zLmRlZXAsXG4gICAgICB9KTtcblxuICAgICAgaG9zdC5hZGRFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIGNoaWxkRXZlbnRMaXN0ZW5lcik7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIGNoaWxkRXZlbnRMaXN0ZW5lcik7XG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGlsZHJlbi5qcyJdLCJuYW1lcyI6WyJ3YWxrIiwibm9kZSIsImZuIiwib3B0aW9ucyIsIml0ZW1zIiwiQXJyYXkiLCJmcm9tIiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiY2hpbGQiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJwdXNoIiwiZGVlcCIsIm5lc3RlZCIsImh5YnJpZHNPckZuIiwiZ2V0IiwiaG9zdCIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwic2V0IiwiU2V0IiwiY2hpbGRFdmVudExpc3RlbmVyIiwidGFyZ2V0Iiwic2l6ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImxpc3QiLCJpIiwibGVuZ3RoIiwiaGFzIiwiY2xlYXIiLCJhZGQiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJkaXNjb25uZWN0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsSUFBVCxDQUFjQyxJQUFkLEVBQW9CQyxFQUFwQixFQUF3QkMsT0FBeEIsRUFBNkM7QUFBQSxNQUFaQyxLQUFZLHVFQUFKLEVBQUk7QUFDM0NDLEVBQUFBLEtBQUssQ0FBQ0MsSUFBTixDQUFXTCxJQUFJLENBQUNNLFFBQWhCLEVBQTBCQyxPQUExQixDQUFrQyxVQUFDQyxLQUFELEVBQVc7QUFDM0MsUUFBTUMsT0FBTyxHQUFHRCxLQUFLLENBQUNFLFdBQU4sQ0FBa0JELE9BQWxDOztBQUNBLFFBQUlBLE9BQU8sSUFBSVIsRUFBRSxDQUFDUSxPQUFELENBQWpCLEVBQTRCO0FBQzFCTixNQUFBQSxLQUFLLENBQUNRLElBQU4sQ0FBV0gsS0FBWDs7QUFDQSxVQUFJTixPQUFPLENBQUNVLElBQVIsSUFBZ0JWLE9BQU8sQ0FBQ1csTUFBNUIsRUFBb0M7QUFDbENkLFFBQUFBLElBQUksQ0FBQ1MsS0FBRCxFQUFRUCxFQUFSLEVBQVlDLE9BQVosRUFBcUJDLEtBQXJCLENBQUo7QUFDRDtBQUNGLEtBTEQsTUFLTyxJQUFJRCxPQUFPLENBQUNVLElBQVosRUFBa0I7QUFDdkJiLE1BQUFBLElBQUksQ0FBQ1MsS0FBRCxFQUFRUCxFQUFSLEVBQVlDLE9BQVosRUFBcUJDLEtBQXJCLENBQUo7QUFDRDtBQUNGLEdBVkQ7QUFZQSxTQUFPQSxLQUFQO0FBQ0Q7O0FBRUQsZUFBZSxTQUFTRyxRQUFULENBQWtCUSxXQUFsQixFQUF5RTtBQUFBLE1BQTFDWixPQUEwQyx1RUFBaEM7QUFBRVUsSUFBQUEsSUFBSSxFQUFFLEtBQVI7QUFBZUMsSUFBQUEsTUFBTSxFQUFFO0FBQXZCLEdBQWdDO0FBQ3RGLE1BQU1aLEVBQUUsR0FBRyxPQUFPYSxXQUFQLEtBQXVCLFVBQXZCLEdBQW9DQSxXQUFwQyxHQUFrRCxVQUFBTCxPQUFPO0FBQUEsV0FBSUEsT0FBTyxLQUFLSyxXQUFoQjtBQUFBLEdBQXBFO0FBQ0EsU0FBTztBQUNMQyxJQUFBQSxHQURLLGVBQ0RDLElBREMsRUFDSztBQUFFLGFBQU9qQixJQUFJLENBQUNpQixJQUFELEVBQU9mLEVBQVAsRUFBV0MsT0FBWCxDQUFYO0FBQWlDLEtBRHhDO0FBRUxlLElBQUFBLE9BRkssbUJBRUdELElBRkgsRUFFU0UsR0FGVCxFQUVjQyxVQUZkLEVBRTBCO0FBQzdCLFVBQU1DLFFBQVEsR0FBRyxJQUFJQyxnQkFBSixDQUFxQkYsVUFBckIsQ0FBakI7QUFDQSxVQUFNRyxHQUFHLEdBQUcsSUFBSUMsR0FBSixFQUFaOztBQUVBLFVBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsT0FBZ0I7QUFBQSxZQUFiQyxNQUFhLFFBQWJBLE1BQWE7O0FBQ3pDLFlBQUksQ0FBQ0gsR0FBRyxDQUFDSSxJQUFULEVBQWU7QUFDYkMsVUFBQUEsT0FBTyxDQUFDQyxPQUFSLEdBQWtCQyxJQUFsQixDQUF1QixZQUFNO0FBQzNCLGdCQUFNQyxJQUFJLEdBQUdkLElBQUksQ0FBQ0UsR0FBRCxDQUFqQjs7QUFDQSxpQkFBSyxJQUFJYSxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHRCxJQUFJLENBQUNFLE1BQXpCLEVBQWlDRCxDQUFDLElBQUksQ0FBdEMsRUFBeUM7QUFDdkMsa0JBQUlULEdBQUcsQ0FBQ1csR0FBSixDQUFRSCxJQUFJLENBQUNDLENBQUQsQ0FBWixDQUFKLEVBQXNCO0FBQ3BCWixnQkFBQUEsVUFBVSxDQUFDLEtBQUQsQ0FBVjtBQUNBO0FBQ0Q7QUFDRjs7QUFDREcsWUFBQUEsR0FBRyxDQUFDWSxLQUFKO0FBQ0QsV0FURDtBQVVEOztBQUNEWixRQUFBQSxHQUFHLENBQUNhLEdBQUosQ0FBUVYsTUFBUjtBQUNELE9BZEQ7O0FBZ0JBTCxNQUFBQSxRQUFRLENBQUNnQixPQUFULENBQWlCcEIsSUFBakIsRUFBdUI7QUFDckJxQixRQUFBQSxTQUFTLEVBQUUsSUFEVTtBQUNKQyxRQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDcEMsT0FBTyxDQUFDVTtBQURmLE9BQXZCO0FBSUFJLE1BQUFBLElBQUksQ0FBQ3VCLGdCQUFMLENBQXNCLGFBQXRCLEVBQXFDZixrQkFBckM7QUFFQSxhQUFPLFlBQU07QUFDWEosUUFBQUEsUUFBUSxDQUFDb0IsVUFBVDtBQUNBeEIsUUFBQUEsSUFBSSxDQUFDeUIsbUJBQUwsQ0FBeUIsYUFBekIsRUFBd0NqQixrQkFBeEM7QUFDRCxPQUhEO0FBSUQ7QUFoQ0ksR0FBUDtBQWtDRCIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHdhbGsobm9kZSwgZm4sIG9wdGlvbnMsIGl0ZW1zID0gW10pIHtcbiAgQXJyYXkuZnJvbShub2RlLmNoaWxkcmVuKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgIGNvbnN0IGh5YnJpZHMgPSBjaGlsZC5jb25zdHJ1Y3Rvci5oeWJyaWRzO1xuICAgIGlmIChoeWJyaWRzICYmIGZuKGh5YnJpZHMpKSB7XG4gICAgICBpdGVtcy5wdXNoKGNoaWxkKTtcbiAgICAgIGlmIChvcHRpb25zLmRlZXAgJiYgb3B0aW9ucy5uZXN0ZWQpIHtcbiAgICAgICAgd2FsayhjaGlsZCwgZm4sIG9wdGlvbnMsIGl0ZW1zKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGVlcCkge1xuICAgICAgd2FsayhjaGlsZCwgZm4sIG9wdGlvbnMsIGl0ZW1zKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBpdGVtcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2hpbGRyZW4oaHlicmlkc09yRm4sIG9wdGlvbnMgPSB7IGRlZXA6IGZhbHNlLCBuZXN0ZWQ6IGZhbHNlIH0pIHtcbiAgY29uc3QgZm4gPSB0eXBlb2YgaHlicmlkc09yRm4gPT09ICdmdW5jdGlvbicgPyBoeWJyaWRzT3JGbiA6IGh5YnJpZHMgPT4gaHlicmlkcyA9PT0gaHlicmlkc09yRm47XG4gIHJldHVybiB7XG4gICAgZ2V0KGhvc3QpIHsgcmV0dXJuIHdhbGsoaG9zdCwgZm4sIG9wdGlvbnMpOyB9LFxuICAgIGNvbm5lY3QoaG9zdCwga2V5LCBpbnZhbGlkYXRlKSB7XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGludmFsaWRhdGUpO1xuICAgICAgY29uc3Qgc2V0ID0gbmV3IFNldCgpO1xuXG4gICAgICBjb25zdCBjaGlsZEV2ZW50TGlzdGVuZXIgPSAoeyB0YXJnZXQgfSkgPT4ge1xuICAgICAgICBpZiAoIXNldC5zaXplKSB7XG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaXN0ID0gaG9zdFtrZXldO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgIGlmIChzZXQuaGFzKGxpc3RbaV0pKSB7XG4gICAgICAgICAgICAgICAgaW52YWxpZGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldC5jbGVhcigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHNldC5hZGQodGFyZ2V0KTtcbiAgICAgIH07XG5cbiAgICAgIG9ic2VydmVyLm9ic2VydmUoaG9zdCwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6ICEhb3B0aW9ucy5kZWVwLFxuICAgICAgfSk7XG5cbiAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignQGludmFsaWRhdGUnLCBjaGlsZEV2ZW50TGlzdGVuZXIpO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIGhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignQGludmFsaWRhdGUnLCBjaGlsZEV2ZW50TGlzdGVuZXIpO1xuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuIl19

@@ -1,14 +0,29 @@

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
import property from './property';
import render from './render';
import * as cache from './cache';

@@ -18,3 +33,6 @@ import { dispatch, pascalToDash } from './utils';

function dispatchInvalidate(host) {
dispatch(host, '@invalidate', { bubbles: true, composed: true });
dispatch(host, '@invalidate', {
bubbles: true,
composed: true
});
}

@@ -29,9 +47,11 @@

Hybrid.connects = [];
Object.keys(hybrids).forEach(function (key) {
var config = hybrids[key];
var type = typeof config === 'undefined' ? 'undefined' : _typeof(config);
var type = _typeof(config);
if (type === 'function') {
config = key === 'render' ? render(config) : { get: config };
config = key === 'render' ? render(config) : {
get: config
};
} else if (config === null || type !== 'object' || type === 'object' && !config.get && !config.set) {

@@ -42,3 +62,2 @@ config = property(config);

config.get = config.get || defaultGet;
Object.defineProperty(Hybrid.prototype, key, {

@@ -63,3 +82,2 @@ get: function get() {

var clearCache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
if (clearCache) cache.invalidate(host, key);

@@ -73,7 +91,7 @@ dispatchInvalidate(host);

var update = void 0;
var update;
if (process.env.NODE_ENV !== 'production') {
var walkInShadow = function walkInShadow(node, fn) {
fn(node);
Array.from(node.children).forEach(function (el) {

@@ -91,2 +109,3 @@ return walkInShadow(el, fn);

var updateQueue = new Map();
update = function update(Hybrid, lastHybrids) {

@@ -99,7 +118,5 @@ if (!updateQueue.size) {

node.disconnectedCallback();
Object.keys(node.constructor.hybrids).forEach(function (key) {
cache.invalidate(node, key, node[key] === hybrids[key]);
});
node.connectedCallback();

@@ -112,2 +129,3 @@ dispatchInvalidate(node);

}
updateQueue.set(Hybrid, lastHybrids);

@@ -117,16 +135,7 @@ };

// BUG: Babel v6 transpiled class breaks native custom elements
export function HTMLBridge() {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return Reflect.construct(HTMLElement, args, this.constructor);
}
Object.setPrototypeOf(HTMLBridge.prototype, HTMLElement.prototype);
var connects = new WeakMap();
function defineElement(tagName, hybridsOrConstructor) {
var type = typeof hybridsOrConstructor === 'undefined' ? 'undefined' : _typeof(hybridsOrConstructor);
var type = _typeof(hybridsOrConstructor);
if (type !== 'object' && type !== 'function') {

@@ -142,2 +151,3 @@ throw TypeError('[define] Invalid second argument. It must be an object or a function');

}
return CustomElement;

@@ -150,2 +160,3 @@ }

}
if (process.env.NODE_ENV !== 'production' && CustomElement.hybrids) {

@@ -155,16 +166,15 @@ Object.keys(CustomElement.hybrids).forEach(function (key) {

});
var lastHybrids = CustomElement.hybrids;
compile(CustomElement, hybridsOrConstructor);
update(CustomElement, lastHybrids);
return CustomElement;
}
throw Error('[define] Element \'' + tagName + '\' already defined');
throw Error("[define] Element '".concat(tagName, "' already defined"));
}
var Hybrid = function (_HTMLBridge) {
_inherits(Hybrid, _HTMLBridge);
var Hybrid =
/*#__PURE__*/
function (_HTMLElement) {
_inherits(Hybrid, _HTMLElement);

@@ -174,16 +184,15 @@ function Hybrid() {

return _possibleConstructorReturn(this, (Hybrid.__proto__ || Object.getPrototypeOf(Hybrid)).apply(this, arguments));
return _possibleConstructorReturn(this, _getPrototypeOf(Hybrid).apply(this, arguments));
}
_createClass(Hybrid, [{
key: 'connectedCallback',
key: "connectedCallback",
value: function connectedCallback() {
var _this3 = this;
var _this2 = this;
var list = this.constructor.connects.reduce(function (acc, fn) {
var result = fn(_this3);
var result = fn(_this2);
if (result) acc.add(result);
return acc;
}, new Set());
connects.set(this, list);

@@ -193,3 +202,3 @@ dispatchInvalidate(this);

}, {
key: 'disconnectedCallback',
key: "disconnectedCallback",
value: function disconnectedCallback() {

@@ -202,3 +211,3 @@ var list = connects.get(this);

}], [{
key: 'name',
key: "name",
get: function get() {

@@ -210,7 +219,6 @@ return tagName;

return Hybrid;
}(HTMLBridge);
}(_wrapNativeSuper(HTMLElement));
compile(Hybrid, hybridsOrConstructor);
customElements.define(tagName, Hybrid);
return Hybrid;

@@ -223,3 +231,2 @@ }

acc[key] = defineElement(tagName, elements[key]);
return acc;

@@ -234,4 +241,4 @@ }, {});

return defineElement.apply(undefined, arguments);
return defineElement.apply(void 0, arguments);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsicHJvcGVydHkiLCJyZW5kZXIiLCJjYWNoZSIsImRpc3BhdGNoIiwicGFzY2FsVG9EYXNoIiwiZGlzcGF0Y2hJbnZhbGlkYXRlIiwiaG9zdCIsImJ1YmJsZXMiLCJjb21wb3NlZCIsImRlZmF1bHRHZXQiLCJ2YWx1ZSIsImNvbXBpbGUiLCJIeWJyaWQiLCJoeWJyaWRzIiwiY29ubmVjdHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImNvbmZpZyIsInR5cGUiLCJnZXQiLCJzZXQiLCJkZWZpbmVQcm9wZXJ0eSIsInByb3RvdHlwZSIsIm5ld1ZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbm5lY3QiLCJwdXNoIiwiY2xlYXJDYWNoZSIsImludmFsaWRhdGUiLCJ1cGRhdGUiLCJ3YWxrSW5TaGFkb3ciLCJub2RlIiwiZm4iLCJBcnJheSIsImZyb20iLCJjaGlsZHJlbiIsImVsIiwic2hhZG93Um9vdCIsInVwZGF0ZVF1ZXVlIiwiTWFwIiwibGFzdEh5YnJpZHMiLCJzaXplIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZG9jdW1lbnQiLCJib2R5IiwiaGFzIiwiY29uc3RydWN0b3IiLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImNvbm5lY3RlZENhbGxiYWNrIiwiY2xlYXIiLCJIVE1MQnJpZGdlIiwiYXJncyIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJIVE1MRWxlbWVudCIsInNldFByb3RvdHlwZU9mIiwiV2Vha01hcCIsImRlZmluZUVsZW1lbnQiLCJ0YWdOYW1lIiwiaHlicmlkc09yQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJDdXN0b21FbGVtZW50Iiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLCJFcnJvciIsImxpc3QiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJhZGQiLCJTZXQiLCJkZWZpbmVNYXAiLCJlbGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU9BLFFBQVAsTUFBcUIsWUFBckI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFVBQW5COztBQUVBLE9BQU8sS0FBS0MsS0FBWixNQUF1QixTQUF2QjtBQUNBLFNBQVNDLFFBQVQsRUFBbUJDLFlBQW5CLFFBQXVDLFNBQXZDOztBQUVBLFNBQVNDLGtCQUFULENBQTRCQyxJQUE1QixFQUFrQztBQUNoQ0gsV0FBU0csSUFBVCxFQUFlLGFBQWYsRUFBOEIsRUFBRUMsU0FBUyxJQUFYLEVBQWlCQyxVQUFVLElBQTNCLEVBQTlCO0FBQ0Q7O0FBRUQsSUFBTUMsYUFBYSxTQUFiQSxVQUFhLENBQUNILElBQUQsRUFBT0ksS0FBUDtBQUFBLFNBQWlCQSxLQUFqQjtBQUFBLENBQW5COztBQUVBLFNBQVNDLE9BQVQsQ0FBaUJDLE1BQWpCLEVBQXlCQyxPQUF6QixFQUFrQztBQUNoQ0QsU0FBT0MsT0FBUCxHQUFpQkEsT0FBakI7QUFDQUQsU0FBT0UsUUFBUCxHQUFrQixFQUFsQjs7QUFFQUMsU0FBT0MsSUFBUCxDQUFZSCxPQUFaLEVBQXFCSSxPQUFyQixDQUE2QixVQUFDQyxHQUFELEVBQVM7QUFDcEMsUUFBSUMsU0FBU04sUUFBUUssR0FBUixDQUFiO0FBQ0EsUUFBTUUsY0FBY0QsTUFBZCx5Q0FBY0EsTUFBZCxDQUFOOztBQUVBLFFBQUlDLFNBQVMsVUFBYixFQUF5QjtBQUN2QkQsZUFBU0QsUUFBUSxRQUFSLEdBQW1CakIsT0FBT2tCLE1BQVAsQ0FBbkIsR0FBb0MsRUFBRUUsS0FBS0YsTUFBUCxFQUE3QztBQUNELEtBRkQsTUFFTyxJQUFJQSxXQUFXLElBQVgsSUFBbUJDLFNBQVMsUUFBNUIsSUFBeUNBLFNBQVMsUUFBVCxJQUFxQixDQUFDRCxPQUFPRSxHQUE3QixJQUFvQyxDQUFDRixPQUFPRyxHQUF6RixFQUErRjtBQUNwR0gsZUFBU25CLFNBQVNtQixNQUFULENBQVQ7QUFDRDs7QUFFREEsV0FBT0UsR0FBUCxHQUFhRixPQUFPRSxHQUFQLElBQWNaLFVBQTNCOztBQUVBTSxXQUFPUSxjQUFQLENBQXNCWCxPQUFPWSxTQUE3QixFQUF3Q04sR0FBeEMsRUFBNkM7QUFDM0NHLFdBQUssU0FBU0EsR0FBVCxHQUFlO0FBQ2xCLGVBQU9uQixNQUFNbUIsR0FBTixDQUFVLElBQVYsRUFBZ0JILEdBQWhCLEVBQXFCQyxPQUFPRSxHQUE1QixDQUFQO0FBQ0QsT0FIMEM7QUFJM0NDLFdBQUtILE9BQU9HLEdBQVAsSUFBYyxTQUFTQSxHQUFULENBQWFHLFFBQWIsRUFBdUI7QUFBQTs7QUFDeEN2QixjQUFNb0IsR0FBTixDQUFVLElBQVYsRUFBZ0JKLEdBQWhCLEVBQXFCQyxPQUFPRyxHQUE1QixFQUFpQ0csUUFBakMsRUFBMkM7QUFBQSxpQkFBTXBCLG1CQUFtQixLQUFuQixDQUFOO0FBQUEsU0FBM0M7QUFDRCxPQU4wQztBQU8zQ3FCLGtCQUFZLElBUCtCO0FBUTNDQyxvQkFBY0MsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCO0FBUkksS0FBN0M7O0FBV0EsUUFBSVgsT0FBT1ksT0FBWCxFQUFvQjtBQUNsQm5CLGFBQU9FLFFBQVAsQ0FBZ0JrQixJQUFoQixDQUFxQjtBQUFBLGVBQVFiLE9BQU9ZLE9BQVAsQ0FBZXpCLElBQWYsRUFBcUJZLEdBQXJCLEVBQTBCLFlBQXVCO0FBQUEsY0FBdEJlLFVBQXNCLHVFQUFULElBQVM7O0FBQzVFLGNBQUlBLFVBQUosRUFBZ0IvQixNQUFNZ0MsVUFBTixDQUFpQjVCLElBQWpCLEVBQXVCWSxHQUF2QjtBQUNoQmIsNkJBQW1CQyxJQUFuQjtBQUNELFNBSDRCLENBQVI7QUFBQSxPQUFyQjtBQUlEO0FBQ0YsR0E3QkQ7QUE4QkQ7O0FBRUQsSUFBSTZCLGVBQUo7QUFDQSxJQUFJUCxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsTUFBTU0sZUFBZSxTQUFmQSxZQUFlLENBQUNDLElBQUQsRUFBT0MsRUFBUCxFQUFjO0FBQ2pDQSxPQUFHRCxJQUFIOztBQUVBRSxVQUFNQyxJQUFOLENBQVdILEtBQUtJLFFBQWhCLEVBQ0d4QixPQURILENBQ1c7QUFBQSxhQUFNbUIsYUFBYU0sRUFBYixFQUFpQkosRUFBakIsQ0FBTjtBQUFBLEtBRFg7O0FBR0EsUUFBSUQsS0FBS00sVUFBVCxFQUFxQjtBQUNuQkosWUFBTUMsSUFBTixDQUFXSCxLQUFLTSxVQUFMLENBQWdCRixRQUEzQixFQUNHeEIsT0FESCxDQUNXO0FBQUEsZUFBTW1CLGFBQWFNLEVBQWIsRUFBaUJKLEVBQWpCLENBQU47QUFBQSxPQURYO0FBRUQ7QUFDRixHQVZEOztBQVlBLE1BQU1NLGNBQWMsSUFBSUMsR0FBSixFQUFwQjtBQUNBVixXQUFTLGdCQUFDdkIsTUFBRCxFQUFTa0MsV0FBVCxFQUF5QjtBQUNoQyxRQUFJLENBQUNGLFlBQVlHLElBQWpCLEVBQXVCO0FBQ3JCQyxjQUFRQyxPQUFSLEdBQWtCQyxJQUFsQixDQUF1QixZQUFNO0FBQzNCZCxxQkFBYWUsU0FBU0MsSUFBdEIsRUFBNEIsVUFBQ2YsSUFBRCxFQUFVO0FBQ3BDLGNBQUlPLFlBQVlTLEdBQVosQ0FBZ0JoQixLQUFLaUIsV0FBckIsQ0FBSixFQUF1QztBQUNyQyxnQkFBTXpDLFVBQVUrQixZQUFZdkIsR0FBWixDQUFnQmdCLEtBQUtpQixXQUFyQixDQUFoQjtBQUNBakIsaUJBQUtrQixvQkFBTDs7QUFFQXhDLG1CQUFPQyxJQUFQLENBQVlxQixLQUFLaUIsV0FBTCxDQUFpQnpDLE9BQTdCLEVBQXNDSSxPQUF0QyxDQUE4QyxVQUFDQyxHQUFELEVBQVM7QUFDckRoQixvQkFBTWdDLFVBQU4sQ0FBaUJHLElBQWpCLEVBQXVCbkIsR0FBdkIsRUFBNEJtQixLQUFLbkIsR0FBTCxNQUFjTCxRQUFRSyxHQUFSLENBQTFDO0FBQ0QsYUFGRDs7QUFJQW1CLGlCQUFLbUIsaUJBQUw7QUFDQW5ELCtCQUFtQmdDLElBQW5CO0FBQ0Q7QUFDRixTQVpEO0FBYUFPLG9CQUFZYSxLQUFaO0FBQ0QsT0FmRDtBQWdCRDtBQUNEYixnQkFBWXRCLEdBQVosQ0FBZ0JWLE1BQWhCLEVBQXdCa0MsV0FBeEI7QUFDRCxHQXBCRDtBQXFCRDs7QUFFRDtBQUNBLE9BQU8sU0FBU1ksVUFBVCxHQUE2QjtBQUFBLG9DQUFOQyxJQUFNO0FBQU5BLFFBQU07QUFBQTs7QUFDbEMsU0FBT0MsUUFBUUMsU0FBUixDQUFrQkMsV0FBbEIsRUFBK0JILElBQS9CLEVBQXFDLEtBQUtMLFdBQTFDLENBQVA7QUFDRDtBQUNEdkMsT0FBT2dELGNBQVAsQ0FBc0JMLFdBQVdsQyxTQUFqQyxFQUE0Q3NDLFlBQVl0QyxTQUF4RDs7QUFFQSxJQUFNVixXQUFXLElBQUlrRCxPQUFKLEVBQWpCOztBQUVBLFNBQVNDLGFBQVQsQ0FBdUJDLE9BQXZCLEVBQWdDQyxvQkFBaEMsRUFBc0Q7QUFDcEQsTUFBTS9DLGNBQWMrQyxvQkFBZCx5Q0FBY0Esb0JBQWQsQ0FBTjtBQUNBLE1BQUkvQyxTQUFTLFFBQVQsSUFBcUJBLFNBQVMsVUFBbEMsRUFBOEM7QUFDNUMsVUFBTWdELFVBQVUsc0VBQVYsQ0FBTjtBQUNEOztBQUVELE1BQU1DLGdCQUFnQkMsT0FBT0MsY0FBUCxDQUFzQmxELEdBQXRCLENBQTBCNkMsT0FBMUIsQ0FBdEI7O0FBRUEsTUFBSTlDLFNBQVMsVUFBYixFQUF5QjtBQUN2QixRQUFJaUQsa0JBQWtCRixvQkFBdEIsRUFBNEM7QUFDMUMsYUFBT0csT0FBT0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkJOLE9BQTdCLEVBQXNDQyxvQkFBdEMsQ0FBUDtBQUNEO0FBQ0QsV0FBT0UsYUFBUDtBQUNEOztBQUVELE1BQUlBLGFBQUosRUFBbUI7QUFDakIsUUFBSUEsY0FBY3hELE9BQWQsS0FBMEJzRCxvQkFBOUIsRUFBb0Q7QUFDbEQsYUFBT0UsYUFBUDtBQUNEO0FBQ0QsUUFBSXpDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixJQUF5Q3VDLGNBQWN4RCxPQUEzRCxFQUFvRTtBQUNsRUUsYUFBT0MsSUFBUCxDQUFZcUQsY0FBY3hELE9BQTFCLEVBQW1DSSxPQUFuQyxDQUEyQyxVQUFDQyxHQUFELEVBQVM7QUFDbEQsZUFBT21ELGNBQWM3QyxTQUFkLENBQXdCTixHQUF4QixDQUFQO0FBQ0QsT0FGRDs7QUFJQSxVQUFNNEIsY0FBY3VCLGNBQWN4RCxPQUFsQzs7QUFFQUYsY0FBUTBELGFBQVIsRUFBdUJGLG9CQUF2QjtBQUNBaEMsYUFBT2tDLGFBQVAsRUFBc0J2QixXQUF0Qjs7QUFFQSxhQUFPdUIsYUFBUDtBQUNEOztBQUVELFVBQU1JLDhCQUEyQlAsT0FBM0Isd0JBQU47QUFDRDs7QUFqQ21ELE1BbUM5Q3RELE1BbkM4QztBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsMENBc0M5QjtBQUFBOztBQUNsQixZQUFNOEQsT0FBTyxLQUFLcEIsV0FBTCxDQUFpQnhDLFFBQWpCLENBQTBCNkQsTUFBMUIsQ0FBaUMsVUFBQ0MsR0FBRCxFQUFNdEMsRUFBTixFQUFhO0FBQ3pELGNBQU11QyxTQUFTdkMsR0FBRyxNQUFILENBQWY7QUFDQSxjQUFJdUMsTUFBSixFQUFZRCxJQUFJRSxHQUFKLENBQVFELE1BQVI7QUFDWixpQkFBT0QsR0FBUDtBQUNELFNBSlksRUFJVixJQUFJRyxHQUFKLEVBSlUsQ0FBYjs7QUFNQWpFLGlCQUFTUSxHQUFULENBQWEsSUFBYixFQUFtQm9ELElBQW5CO0FBQ0FyRSwyQkFBbUIsSUFBbkI7QUFDRDtBQS9DaUQ7QUFBQTtBQUFBLDZDQWlEM0I7QUFDckIsWUFBTXFFLE9BQU81RCxTQUFTTyxHQUFULENBQWEsSUFBYixDQUFiO0FBQ0FxRCxhQUFLekQsT0FBTCxDQUFhO0FBQUEsaUJBQU1xQixJQUFOO0FBQUEsU0FBYjtBQUNEO0FBcERpRDtBQUFBO0FBQUEsMEJBb0NoQztBQUFFLGVBQU80QixPQUFQO0FBQWlCO0FBcENhOztBQUFBO0FBQUEsSUFtQy9CUixVQW5DK0I7O0FBdURwRC9DLFVBQVFDLE1BQVIsRUFBZ0J1RCxvQkFBaEI7QUFDQUksaUJBQWVDLE1BQWYsQ0FBc0JOLE9BQXRCLEVBQStCdEQsTUFBL0I7O0FBRUEsU0FBT0EsTUFBUDtBQUNEOztBQUVELFNBQVNvRSxTQUFULENBQW1CQyxRQUFuQixFQUE2QjtBQUMzQixTQUFPbEUsT0FBT0MsSUFBUCxDQUFZaUUsUUFBWixFQUFzQk4sTUFBdEIsQ0FBNkIsVUFBQ0MsR0FBRCxFQUFNMUQsR0FBTixFQUFjO0FBQ2hELFFBQU1nRCxVQUFVOUQsYUFBYWMsR0FBYixDQUFoQjtBQUNBMEQsUUFBSTFELEdBQUosSUFBVytDLGNBQWNDLE9BQWQsRUFBdUJlLFNBQVMvRCxHQUFULENBQXZCLENBQVg7O0FBRUEsV0FBTzBELEdBQVA7QUFDRCxHQUxNLEVBS0osRUFMSSxDQUFQO0FBTUQ7O0FBRUQsZUFBZSxTQUFTSixNQUFULEdBQXlCO0FBQ3RDLE1BQUksOERBQW1CLFFBQXZCLEVBQWlDO0FBQy9CLFdBQU9RLDJEQUFQO0FBQ0Q7O0FBRUQsU0FBT2YseUNBQVA7QUFDRCIsImZpbGUiOiJkZWZpbmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvcGVydHkgZnJvbSAnLi9wcm9wZXJ0eSc7XG5pbXBvcnQgcmVuZGVyIGZyb20gJy4vcmVuZGVyJztcblxuaW1wb3J0ICogYXMgY2FjaGUgZnJvbSAnLi9jYWNoZSc7XG5pbXBvcnQgeyBkaXNwYXRjaCwgcGFzY2FsVG9EYXNoIH0gZnJvbSAnLi91dGlscyc7XG5cbmZ1bmN0aW9uIGRpc3BhdGNoSW52YWxpZGF0ZShob3N0KSB7XG4gIGRpc3BhdGNoKGhvc3QsICdAaW52YWxpZGF0ZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSk7XG59XG5cbmNvbnN0IGRlZmF1bHRHZXQgPSAoaG9zdCwgdmFsdWUpID0+IHZhbHVlO1xuXG5mdW5jdGlvbiBjb21waWxlKEh5YnJpZCwgaHlicmlkcykge1xuICBIeWJyaWQuaHlicmlkcyA9IGh5YnJpZHM7XG4gIEh5YnJpZC5jb25uZWN0cyA9IFtdO1xuXG4gIE9iamVjdC5rZXlzKGh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCBjb25maWcgPSBoeWJyaWRzW2tleV07XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiBjb25maWc7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uZmlnID0ga2V5ID09PSAncmVuZGVyJyA/IHJlbmRlcihjb25maWcpIDogeyBnZXQ6IGNvbmZpZyB9O1xuICAgIH0gZWxzZSBpZiAoY29uZmlnID09PSBudWxsIHx8IHR5cGUgIT09ICdvYmplY3QnIHx8ICh0eXBlID09PSAnb2JqZWN0JyAmJiAhY29uZmlnLmdldCAmJiAhY29uZmlnLnNldCkpIHtcbiAgICAgIGNvbmZpZyA9IHByb3BlcnR5KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgY29uZmlnLmdldCA9IGNvbmZpZy5nZXQgfHwgZGVmYXVsdEdldDtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIeWJyaWQucHJvdG90eXBlLCBrZXksIHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KHRoaXMsIGtleSwgY29uZmlnLmdldCk7XG4gICAgICB9LFxuICAgICAgc2V0OiBjb25maWcuc2V0ICYmIGZ1bmN0aW9uIHNldChuZXdWYWx1ZSkge1xuICAgICAgICBjYWNoZS5zZXQodGhpcywga2V5LCBjb25maWcuc2V0LCBuZXdWYWx1ZSwgKCkgPT4gZGlzcGF0Y2hJbnZhbGlkYXRlKHRoaXMpKTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuICAgIH0pO1xuXG4gICAgaWYgKGNvbmZpZy5jb25uZWN0KSB7XG4gICAgICBIeWJyaWQuY29ubmVjdHMucHVzaChob3N0ID0+IGNvbmZpZy5jb25uZWN0KGhvc3QsIGtleSwgKGNsZWFyQ2FjaGUgPSB0cnVlKSA9PiB7XG4gICAgICAgIGlmIChjbGVhckNhY2hlKSBjYWNoZS5pbnZhbGlkYXRlKGhvc3QsIGtleSk7XG4gICAgICAgIGRpc3BhdGNoSW52YWxpZGF0ZShob3N0KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0pO1xufVxuXG5sZXQgdXBkYXRlO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgd2Fsa0luU2hhZG93ID0gKG5vZGUsIGZuKSA9PiB7XG4gICAgZm4obm9kZSk7XG5cbiAgICBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pXG4gICAgICAuZm9yRWFjaChlbCA9PiB3YWxrSW5TaGFkb3coZWwsIGZuKSk7XG5cbiAgICBpZiAobm9kZS5zaGFkb3dSb290KSB7XG4gICAgICBBcnJheS5mcm9tKG5vZGUuc2hhZG93Um9vdC5jaGlsZHJlbilcbiAgICAgICAgLmZvckVhY2goZWwgPT4gd2Fsa0luU2hhZG93KGVsLCBmbikpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGVRdWV1ZSA9IG5ldyBNYXAoKTtcbiAgdXBkYXRlID0gKEh5YnJpZCwgbGFzdEh5YnJpZHMpID0+IHtcbiAgICBpZiAoIXVwZGF0ZVF1ZXVlLnNpemUpIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB3YWxrSW5TaGFkb3coZG9jdW1lbnQuYm9keSwgKG5vZGUpID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlUXVldWUuaGFzKG5vZGUuY29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCBoeWJyaWRzID0gdXBkYXRlUXVldWUuZ2V0KG5vZGUuY29uc3RydWN0b3IpO1xuICAgICAgICAgICAgbm9kZS5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhub2RlLmNvbnN0cnVjdG9yLmh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICBjYWNoZS5pbnZhbGlkYXRlKG5vZGUsIGtleSwgbm9kZVtrZXldID09PSBoeWJyaWRzW2tleV0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5vZGUuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIGRpc3BhdGNoSW52YWxpZGF0ZShub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB1cGRhdGVRdWV1ZS5jbGVhcigpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHVwZGF0ZVF1ZXVlLnNldChIeWJyaWQsIGxhc3RIeWJyaWRzKTtcbiAgfTtcbn1cblxuLy8gQlVHOiBCYWJlbCB2NiB0cmFuc3BpbGVkIGNsYXNzIGJyZWFrcyBuYXRpdmUgY3VzdG9tIGVsZW1lbnRzXG5leHBvcnQgZnVuY3Rpb24gSFRNTEJyaWRnZSguLi5hcmdzKSB7XG4gIHJldHVybiBSZWZsZWN0LmNvbnN0cnVjdChIVE1MRWxlbWVudCwgYXJncywgdGhpcy5jb25zdHJ1Y3Rvcik7XG59XG5PYmplY3Quc2V0UHJvdG90eXBlT2YoSFRNTEJyaWRnZS5wcm90b3R5cGUsIEhUTUxFbGVtZW50LnByb3RvdHlwZSk7XG5cbmNvbnN0IGNvbm5lY3RzID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gZGVmaW5lRWxlbWVudCh0YWdOYW1lLCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcikge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIGh5YnJpZHNPckNvbnN0cnVjdG9yO1xuICBpZiAodHlwZSAhPT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IFR5cGVFcnJvcignW2RlZmluZV0gSW52YWxpZCBzZWNvbmQgYXJndW1lbnQuIEl0IG11c3QgYmUgYW4gb2JqZWN0IG9yIGEgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIGNvbnN0IEN1c3RvbUVsZW1lbnQgPSB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZ2V0KHRhZ05hbWUpO1xuXG4gIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKEN1c3RvbUVsZW1lbnQgIT09IGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gICAgICByZXR1cm4gd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSh0YWdOYW1lLCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBDdXN0b21FbGVtZW50O1xuICB9XG5cbiAgaWYgKEN1c3RvbUVsZW1lbnQpIHtcbiAgICBpZiAoQ3VzdG9tRWxlbWVudC5oeWJyaWRzID09PSBoeWJyaWRzT3JDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIEN1c3RvbUVsZW1lbnQuaHlicmlkcykge1xuICAgICAgT2JqZWN0LmtleXMoQ3VzdG9tRWxlbWVudC5oeWJyaWRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgZGVsZXRlIEN1c3RvbUVsZW1lbnQucHJvdG90eXBlW2tleV07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbGFzdEh5YnJpZHMgPSBDdXN0b21FbGVtZW50Lmh5YnJpZHM7XG5cbiAgICAgIGNvbXBpbGUoQ3VzdG9tRWxlbWVudCwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICAgICAgdXBkYXRlKEN1c3RvbUVsZW1lbnQsIGxhc3RIeWJyaWRzKTtcblxuICAgICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgdGhyb3cgRXJyb3IoYFtkZWZpbmVdIEVsZW1lbnQgJyR7dGFnTmFtZX0nIGFscmVhZHkgZGVmaW5lZGApO1xuICB9XG5cbiAgY2xhc3MgSHlicmlkIGV4dGVuZHMgSFRNTEJyaWRnZSB7XG4gICAgc3RhdGljIGdldCBuYW1lKCkgeyByZXR1cm4gdGFnTmFtZTsgfVxuXG4gICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5jb25zdHJ1Y3Rvci5jb25uZWN0cy5yZWR1Y2UoKGFjYywgZm4pID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4odGhpcyk7XG4gICAgICAgIGlmIChyZXN1bHQpIGFjYy5hZGQocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIG5ldyBTZXQoKSk7XG5cbiAgICAgIGNvbm5lY3RzLnNldCh0aGlzLCBsaXN0KTtcbiAgICAgIGRpc3BhdGNoSW52YWxpZGF0ZSh0aGlzKTtcbiAgICB9XG5cbiAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSBjb25uZWN0cy5nZXQodGhpcyk7XG4gICAgICBsaXN0LmZvckVhY2goZm4gPT4gZm4oKSk7XG4gICAgfVxuICB9XG5cbiAgY29tcGlsZShIeWJyaWQsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIEh5YnJpZCk7XG5cbiAgcmV0dXJuIEh5YnJpZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lTWFwKGVsZW1lbnRzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhlbGVtZW50cykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGNvbnN0IHRhZ05hbWUgPSBwYXNjYWxUb0Rhc2goa2V5KTtcbiAgICBhY2Nba2V5XSA9IGRlZmluZUVsZW1lbnQodGFnTmFtZSwgZWxlbWVudHNba2V5XSk7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlZmluZSguLi5hcmdzKSB7XG4gIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZGVmaW5lTWFwKGFyZ3NbMF0pO1xuICB9XG5cbiAgcmV0dXJuIGRlZmluZUVsZW1lbnQoLi4uYXJncyk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsicHJvcGVydHkiLCJyZW5kZXIiLCJjYWNoZSIsImRpc3BhdGNoIiwicGFzY2FsVG9EYXNoIiwiZGlzcGF0Y2hJbnZhbGlkYXRlIiwiaG9zdCIsImJ1YmJsZXMiLCJjb21wb3NlZCIsImRlZmF1bHRHZXQiLCJ2YWx1ZSIsImNvbXBpbGUiLCJIeWJyaWQiLCJoeWJyaWRzIiwiY29ubmVjdHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImNvbmZpZyIsInR5cGUiLCJnZXQiLCJzZXQiLCJkZWZpbmVQcm9wZXJ0eSIsInByb3RvdHlwZSIsIm5ld1ZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbm5lY3QiLCJwdXNoIiwiY2xlYXJDYWNoZSIsImludmFsaWRhdGUiLCJ1cGRhdGUiLCJ3YWxrSW5TaGFkb3ciLCJub2RlIiwiZm4iLCJBcnJheSIsImZyb20iLCJjaGlsZHJlbiIsImVsIiwic2hhZG93Um9vdCIsInVwZGF0ZVF1ZXVlIiwiTWFwIiwibGFzdEh5YnJpZHMiLCJzaXplIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZG9jdW1lbnQiLCJib2R5IiwiaGFzIiwiY29uc3RydWN0b3IiLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImNvbm5lY3RlZENhbGxiYWNrIiwiY2xlYXIiLCJXZWFrTWFwIiwiZGVmaW5lRWxlbWVudCIsInRhZ05hbWUiLCJoeWJyaWRzT3JDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIkN1c3RvbUVsZW1lbnQiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsIkVycm9yIiwibGlzdCIsInJlZHVjZSIsImFjYyIsInJlc3VsdCIsImFkZCIsIlNldCIsIkhUTUxFbGVtZW50IiwiZGVmaW5lTWFwIiwiZWxlbWVudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFFRCxlQUFlLFNBQVNKLE1BQVQsR0FBeUI7QUFDdEMsTUFBSSw4REFBbUIsUUFBdkIsRUFBaUM7QUFDL0IsV0FBT1MsU0FBUyxrREFBaEI7QUFDRDs7QUFFRCxTQUFPaEIsYUFBYSxNQUFiLG1CQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvcGVydHkgZnJvbSAnLi9wcm9wZXJ0eSc7XG5pbXBvcnQgcmVuZGVyIGZyb20gJy4vcmVuZGVyJztcblxuaW1wb3J0ICogYXMgY2FjaGUgZnJvbSAnLi9jYWNoZSc7XG5pbXBvcnQgeyBkaXNwYXRjaCwgcGFzY2FsVG9EYXNoIH0gZnJvbSAnLi91dGlscyc7XG5cbmZ1bmN0aW9uIGRpc3BhdGNoSW52YWxpZGF0ZShob3N0KSB7XG4gIGRpc3BhdGNoKGhvc3QsICdAaW52YWxpZGF0ZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSk7XG59XG5cbmNvbnN0IGRlZmF1bHRHZXQgPSAoaG9zdCwgdmFsdWUpID0+IHZhbHVlO1xuXG5mdW5jdGlvbiBjb21waWxlKEh5YnJpZCwgaHlicmlkcykge1xuICBIeWJyaWQuaHlicmlkcyA9IGh5YnJpZHM7XG4gIEh5YnJpZC5jb25uZWN0cyA9IFtdO1xuXG4gIE9iamVjdC5rZXlzKGh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCBjb25maWcgPSBoeWJyaWRzW2tleV07XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiBjb25maWc7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uZmlnID0ga2V5ID09PSAncmVuZGVyJyA/IHJlbmRlcihjb25maWcpIDogeyBnZXQ6IGNvbmZpZyB9O1xuICAgIH0gZWxzZSBpZiAoY29uZmlnID09PSBudWxsIHx8IHR5cGUgIT09ICdvYmplY3QnIHx8ICh0eXBlID09PSAnb2JqZWN0JyAmJiAhY29uZmlnLmdldCAmJiAhY29uZmlnLnNldCkpIHtcbiAgICAgIGNvbmZpZyA9IHByb3BlcnR5KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgY29uZmlnLmdldCA9IGNvbmZpZy5nZXQgfHwgZGVmYXVsdEdldDtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIeWJyaWQucHJvdG90eXBlLCBrZXksIHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KHRoaXMsIGtleSwgY29uZmlnLmdldCk7XG4gICAgICB9LFxuICAgICAgc2V0OiBjb25maWcuc2V0ICYmIGZ1bmN0aW9uIHNldChuZXdWYWx1ZSkge1xuICAgICAgICBjYWNoZS5zZXQodGhpcywga2V5LCBjb25maWcuc2V0LCBuZXdWYWx1ZSwgKCkgPT4gZGlzcGF0Y2hJbnZhbGlkYXRlKHRoaXMpKTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuICAgIH0pO1xuXG4gICAgaWYgKGNvbmZpZy5jb25uZWN0KSB7XG4gICAgICBIeWJyaWQuY29ubmVjdHMucHVzaChob3N0ID0+IGNvbmZpZy5jb25uZWN0KGhvc3QsIGtleSwgKGNsZWFyQ2FjaGUgPSB0cnVlKSA9PiB7XG4gICAgICAgIGlmIChjbGVhckNhY2hlKSBjYWNoZS5pbnZhbGlkYXRlKGhvc3QsIGtleSk7XG4gICAgICAgIGRpc3BhdGNoSW52YWxpZGF0ZShob3N0KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0pO1xufVxuXG5sZXQgdXBkYXRlO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgd2Fsa0luU2hhZG93ID0gKG5vZGUsIGZuKSA9PiB7XG4gICAgZm4obm9kZSk7XG5cbiAgICBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pXG4gICAgICAuZm9yRWFjaChlbCA9PiB3YWxrSW5TaGFkb3coZWwsIGZuKSk7XG5cbiAgICBpZiAobm9kZS5zaGFkb3dSb290KSB7XG4gICAgICBBcnJheS5mcm9tKG5vZGUuc2hhZG93Um9vdC5jaGlsZHJlbilcbiAgICAgICAgLmZvckVhY2goZWwgPT4gd2Fsa0luU2hhZG93KGVsLCBmbikpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGVRdWV1ZSA9IG5ldyBNYXAoKTtcbiAgdXBkYXRlID0gKEh5YnJpZCwgbGFzdEh5YnJpZHMpID0+IHtcbiAgICBpZiAoIXVwZGF0ZVF1ZXVlLnNpemUpIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB3YWxrSW5TaGFkb3coZG9jdW1lbnQuYm9keSwgKG5vZGUpID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlUXVldWUuaGFzKG5vZGUuY29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCBoeWJyaWRzID0gdXBkYXRlUXVldWUuZ2V0KG5vZGUuY29uc3RydWN0b3IpO1xuICAgICAgICAgICAgbm9kZS5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhub2RlLmNvbnN0cnVjdG9yLmh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICBjYWNoZS5pbnZhbGlkYXRlKG5vZGUsIGtleSwgbm9kZVtrZXldID09PSBoeWJyaWRzW2tleV0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5vZGUuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIGRpc3BhdGNoSW52YWxpZGF0ZShub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB1cGRhdGVRdWV1ZS5jbGVhcigpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHVwZGF0ZVF1ZXVlLnNldChIeWJyaWQsIGxhc3RIeWJyaWRzKTtcbiAgfTtcbn1cblxuY29uc3QgY29ubmVjdHMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBkZWZpbmVFbGVtZW50KHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgaHlicmlkc09yQ29uc3RydWN0b3I7XG4gIGlmICh0eXBlICE9PSAnb2JqZWN0JyAmJiB0eXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKCdbZGVmaW5lXSBJbnZhbGlkIHNlY29uZCBhcmd1bWVudC4gSXQgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgY29uc3QgQ3VzdG9tRWxlbWVudCA9IHdpbmRvdy5jdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSk7XG5cbiAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoQ3VzdG9tRWxlbWVudCAhPT0gaHlicmlkc09yQ29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gIH1cblxuICBpZiAoQ3VzdG9tRWxlbWVudCkge1xuICAgIGlmIChDdXN0b21FbGVtZW50Lmh5YnJpZHMgPT09IGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgQ3VzdG9tRWxlbWVudC5oeWJyaWRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhDdXN0b21FbGVtZW50Lmh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkZWxldGUgQ3VzdG9tRWxlbWVudC5wcm90b3R5cGVba2V5XTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBsYXN0SHlicmlkcyA9IEN1c3RvbUVsZW1lbnQuaHlicmlkcztcblxuICAgICAgY29tcGlsZShDdXN0b21FbGVtZW50LCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcik7XG4gICAgICB1cGRhdGUoQ3VzdG9tRWxlbWVudCwgbGFzdEh5YnJpZHMpO1xuXG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcihgW2RlZmluZV0gRWxlbWVudCAnJHt0YWdOYW1lfScgYWxyZWFkeSBkZWZpbmVkYCk7XG4gIH1cblxuICBjbGFzcyBIeWJyaWQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gICAgc3RhdGljIGdldCBuYW1lKCkgeyByZXR1cm4gdGFnTmFtZTsgfVxuXG4gICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5jb25zdHJ1Y3Rvci5jb25uZWN0cy5yZWR1Y2UoKGFjYywgZm4pID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4odGhpcyk7XG4gICAgICAgIGlmIChyZXN1bHQpIGFjYy5hZGQocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIG5ldyBTZXQoKSk7XG5cbiAgICAgIGNvbm5lY3RzLnNldCh0aGlzLCBsaXN0KTtcbiAgICAgIGRpc3BhdGNoSW52YWxpZGF0ZSh0aGlzKTtcbiAgICB9XG5cbiAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSBjb25uZWN0cy5nZXQodGhpcyk7XG4gICAgICBsaXN0LmZvckVhY2goZm4gPT4gZm4oKSk7XG4gICAgfVxuICB9XG5cbiAgY29tcGlsZShIeWJyaWQsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIEh5YnJpZCk7XG5cbiAgcmV0dXJuIEh5YnJpZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lTWFwKGVsZW1lbnRzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhlbGVtZW50cykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGNvbnN0IHRhZ05hbWUgPSBwYXNjYWxUb0Rhc2goa2V5KTtcbiAgICBhY2Nba2V5XSA9IGRlZmluZUVsZW1lbnQodGFnTmFtZSwgZWxlbWVudHNba2V5XSk7XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlZmluZSguLi5hcmdzKSB7XG4gIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZGVmaW5lTWFwKGFyZ3NbMF0pO1xuICB9XG5cbiAgcmV0dXJuIGRlZmluZUVsZW1lbnQoLi4uYXJncyk7XG59XG4iXX0=

@@ -1,2 +0,2 @@

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

@@ -10,3 +10,3 @@ function normalizeValue(value) {

});
} else if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
} else if (value !== null && _typeof(value) === 'object') {
Object.keys(value).forEach(function (key) {

@@ -25,5 +25,3 @@ return value[key] && set.add(key);

var list = normalizeValue(value);
data.classSet = list;
list.forEach(function (className) {

@@ -33,3 +31,2 @@ target.classList.add(className);

});
previousList.forEach(function (className) {

@@ -39,2 +36,2 @@ target.classList.remove(className);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2NsYXNzTGlzdC5qcyJdLCJuYW1lcyI6WyJub3JtYWxpemVWYWx1ZSIsInZhbHVlIiwic2V0IiwiU2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiZm9yRWFjaCIsImFkZCIsImNsYXNzTmFtZSIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJyZXNvbHZlQ2xhc3NMaXN0IiwiaG9zdCIsInRhcmdldCIsImRhdGEiLCJwcmV2aW91c0xpc3QiLCJjbGFzc1NldCIsImxpc3QiLCJjbGFzc0xpc3QiLCJkZWxldGUiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsY0FBVCxDQUF3QkMsS0FBeEIsRUFBZ0Q7QUFBQSxNQUFqQkMsR0FBaUIsdUVBQVgsSUFBSUMsR0FBSixFQUFXOztBQUM5QyxNQUFJQyxNQUFNQyxPQUFOLENBQWNKLEtBQWQsQ0FBSixFQUEwQjtBQUN4QkEsVUFBTUssT0FBTixDQUFjO0FBQUEsYUFBYUosSUFBSUssR0FBSixDQUFRQyxTQUFSLENBQWI7QUFBQSxLQUFkO0FBQ0QsR0FGRCxNQUVPLElBQUlQLFVBQVUsSUFBVixJQUFrQixRQUFPQSxLQUFQLHlDQUFPQSxLQUFQLE9BQWlCLFFBQXZDLEVBQWlEO0FBQ3REUSxXQUFPQyxJQUFQLENBQVlULEtBQVosRUFBbUJLLE9BQW5CLENBQTJCO0FBQUEsYUFBT0wsTUFBTVUsR0FBTixLQUFjVCxJQUFJSyxHQUFKLENBQVFJLEdBQVIsQ0FBckI7QUFBQSxLQUEzQjtBQUNELEdBRk0sTUFFQTtBQUNMVCxRQUFJSyxHQUFKLENBQVFOLEtBQVI7QUFDRDs7QUFFRCxTQUFPQyxHQUFQO0FBQ0Q7O0FBRUQsZUFBZSxTQUFTVSxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0NDLE1BQWhDLEVBQXdDYixLQUF4QyxFQUErQ2MsSUFBL0MsRUFBcUQ7QUFDbEUsTUFBTUMsZUFBZUQsS0FBS0UsUUFBTCxJQUFpQixJQUFJZCxHQUFKLEVBQXRDO0FBQ0EsTUFBTWUsT0FBT2xCLGVBQWVDLEtBQWYsQ0FBYjs7QUFFQWMsT0FBS0UsUUFBTCxHQUFnQkMsSUFBaEI7O0FBRUFBLE9BQUtaLE9BQUwsQ0FBYSxVQUFDRSxTQUFELEVBQWU7QUFDMUJNLFdBQU9LLFNBQVAsQ0FBaUJaLEdBQWpCLENBQXFCQyxTQUFyQjtBQUNBUSxpQkFBYUksTUFBYixDQUFvQlosU0FBcEI7QUFDRCxHQUhEOztBQUtBUSxlQUFhVixPQUFiLENBQXFCLFVBQUNFLFNBQUQsRUFBZTtBQUNsQ00sV0FBT0ssU0FBUCxDQUFpQkUsTUFBakIsQ0FBd0JiLFNBQXhCO0FBQ0QsR0FGRDtBQUdEIiwiZmlsZSI6ImNsYXNzTGlzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKHZhbHVlLCBzZXQgPSBuZXcgU2V0KCkpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaChjbGFzc05hbWUgPT4gc2V0LmFkZChjbGFzc05hbWUpKTtcbiAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goa2V5ID0+IHZhbHVlW2tleV0gJiYgc2V0LmFkZChrZXkpKTtcbiAgfSBlbHNlIHtcbiAgICBzZXQuYWRkKHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBzZXQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVDbGFzc0xpc3QoaG9zdCwgdGFyZ2V0LCB2YWx1ZSwgZGF0YSkge1xuICBjb25zdCBwcmV2aW91c0xpc3QgPSBkYXRhLmNsYXNzU2V0IHx8IG5ldyBTZXQoKTtcbiAgY29uc3QgbGlzdCA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcblxuICBkYXRhLmNsYXNzU2V0ID0gbGlzdDtcblxuICBsaXN0LmZvckVhY2goKGNsYXNzTmFtZSkgPT4ge1xuICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gICAgcHJldmlvdXNMaXN0LmRlbGV0ZShjbGFzc05hbWUpO1xuICB9KTtcblxuICBwcmV2aW91c0xpc3QuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiB7XG4gICAgdGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgfSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2NsYXNzTGlzdC5qcyJdLCJuYW1lcyI6WyJub3JtYWxpemVWYWx1ZSIsInZhbHVlIiwic2V0IiwiU2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiZm9yRWFjaCIsImNsYXNzTmFtZSIsImFkZCIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJyZXNvbHZlQ2xhc3NMaXN0IiwiaG9zdCIsInRhcmdldCIsImRhdGEiLCJwcmV2aW91c0xpc3QiLCJjbGFzc1NldCIsImxpc3QiLCJjbGFzc0xpc3QiLCJkZWxldGUiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsY0FBVCxDQUF3QkMsS0FBeEIsRUFBZ0Q7QUFBQSxNQUFqQkMsR0FBaUIsdUVBQVgsSUFBSUMsR0FBSixFQUFXOztBQUM5QyxNQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0osS0FBZCxDQUFKLEVBQTBCO0FBQ3hCQSxJQUFBQSxLQUFLLENBQUNLLE9BQU4sQ0FBYyxVQUFBQyxTQUFTO0FBQUEsYUFBSUwsR0FBRyxDQUFDTSxHQUFKLENBQVFELFNBQVIsQ0FBSjtBQUFBLEtBQXZCO0FBQ0QsR0FGRCxNQUVPLElBQUlOLEtBQUssS0FBSyxJQUFWLElBQWtCLFFBQU9BLEtBQVAsTUFBaUIsUUFBdkMsRUFBaUQ7QUFDdERRLElBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZVCxLQUFaLEVBQW1CSyxPQUFuQixDQUEyQixVQUFBSyxHQUFHO0FBQUEsYUFBSVYsS0FBSyxDQUFDVSxHQUFELENBQUwsSUFBY1QsR0FBRyxDQUFDTSxHQUFKLENBQVFHLEdBQVIsQ0FBbEI7QUFBQSxLQUE5QjtBQUNELEdBRk0sTUFFQTtBQUNMVCxJQUFBQSxHQUFHLENBQUNNLEdBQUosQ0FBUVAsS0FBUjtBQUNEOztBQUVELFNBQU9DLEdBQVA7QUFDRDs7QUFFRCxlQUFlLFNBQVNVLGdCQUFULENBQTBCQyxJQUExQixFQUFnQ0MsTUFBaEMsRUFBd0NiLEtBQXhDLEVBQStDYyxJQUEvQyxFQUFxRDtBQUNsRSxNQUFNQyxZQUFZLEdBQUdELElBQUksQ0FBQ0UsUUFBTCxJQUFpQixJQUFJZCxHQUFKLEVBQXRDO0FBQ0EsTUFBTWUsSUFBSSxHQUFHbEIsY0FBYyxDQUFDQyxLQUFELENBQTNCO0FBRUFjLEVBQUFBLElBQUksQ0FBQ0UsUUFBTCxHQUFnQkMsSUFBaEI7QUFFQUEsRUFBQUEsSUFBSSxDQUFDWixPQUFMLENBQWEsVUFBQ0MsU0FBRCxFQUFlO0FBQzFCTyxJQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJYLEdBQWpCLENBQXFCRCxTQUFyQjtBQUNBUyxJQUFBQSxZQUFZLENBQUNJLE1BQWIsQ0FBb0JiLFNBQXBCO0FBQ0QsR0FIRDtBQUtBUyxFQUFBQSxZQUFZLENBQUNWLE9BQWIsQ0FBcUIsVUFBQ0MsU0FBRCxFQUFlO0FBQ2xDTyxJQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCZCxTQUF4QjtBQUNELEdBRkQ7QUFHRCIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKHZhbHVlLCBzZXQgPSBuZXcgU2V0KCkpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaChjbGFzc05hbWUgPT4gc2V0LmFkZChjbGFzc05hbWUpKTtcbiAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goa2V5ID0+IHZhbHVlW2tleV0gJiYgc2V0LmFkZChrZXkpKTtcbiAgfSBlbHNlIHtcbiAgICBzZXQuYWRkKHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBzZXQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVDbGFzc0xpc3QoaG9zdCwgdGFyZ2V0LCB2YWx1ZSwgZGF0YSkge1xuICBjb25zdCBwcmV2aW91c0xpc3QgPSBkYXRhLmNsYXNzU2V0IHx8IG5ldyBTZXQoKTtcbiAgY29uc3QgbGlzdCA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcblxuICBkYXRhLmNsYXNzU2V0ID0gbGlzdDtcblxuICBsaXN0LmZvckVhY2goKGNsYXNzTmFtZSkgPT4ge1xuICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gICAgcHJldmlvdXNMaXN0LmRlbGV0ZShjbGFzc05hbWUpO1xuICB9KTtcblxuICBwcmV2aW91c0xpc3QuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiB7XG4gICAgdGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgfSk7XG59XG4iXX0=
import define from '../define';
import { compile, createId } from './template';

@@ -21,3 +20,2 @@ import resolve from './resolve';

var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : host;
var id = createId(parts, isSVG);

@@ -34,7 +32,10 @@ var render = updates.get(id);

return Object.assign(update, { define: defineElements, key: key });
return Object.assign(update, {
define: defineElements,
key: key
});
}
export function html(parts) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];

@@ -45,5 +46,4 @@ }

}
export function svg(parts) {
for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];

@@ -54,5 +54,8 @@ }

}
Object.assign(html, { resolve: resolve });
Object.assign(svg, { resolve: resolve });
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmluZSIsImNvbXBpbGUiLCJjcmVhdGVJZCIsInJlc29sdmUiLCJkZWZpbmVFbGVtZW50cyIsImVsZW1lbnRzIiwia2V5IiwiaWQiLCJ1cGRhdGVzIiwiTWFwIiwiY3JlYXRlIiwicGFydHMiLCJhcmdzIiwiaXNTVkciLCJ1cGRhdGUiLCJob3N0IiwidGFyZ2V0IiwicmVuZGVyIiwiZ2V0Iiwic2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiaHRtbCIsInN2ZyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBUCxNQUFtQixXQUFuQjs7QUFFQSxTQUFTQyxPQUFULEVBQWtCQyxRQUFsQixRQUFrQyxZQUFsQztBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7O0FBRUEsU0FBU0MsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0M7QUFDaENMLFNBQU9LLFFBQVA7QUFDQSxTQUFPLElBQVA7QUFDRDs7QUFFRCxTQUFTQyxHQUFULENBQWFDLEVBQWIsRUFBaUI7QUFDZixPQUFLQSxFQUFMLEdBQVVBLEVBQVY7QUFDQSxTQUFPLElBQVA7QUFDRDs7QUFFRCxJQUFNQyxVQUFVLElBQUlDLEdBQUosRUFBaEI7O0FBRUEsU0FBU0MsTUFBVCxDQUFnQkMsS0FBaEIsRUFBdUJDLElBQXZCLEVBQTZCQyxLQUE3QixFQUFvQztBQUNsQyxNQUFNQyxTQUFTLFNBQVRBLE1BQVMsQ0FBQ0MsSUFBRCxFQUF5QjtBQUFBLFFBQWxCQyxNQUFrQix1RUFBVEQsSUFBUzs7QUFDdEMsUUFBTVIsS0FBS0wsU0FBU1MsS0FBVCxFQUFnQkUsS0FBaEIsQ0FBWDtBQUNBLFFBQUlJLFNBQVNULFFBQVFVLEdBQVIsQ0FBWVgsRUFBWixDQUFiOztBQUVBLFFBQUksQ0FBQ1UsTUFBTCxFQUFhO0FBQ1hBLGVBQVNoQixRQUFRVSxLQUFSLEVBQWVFLEtBQWYsQ0FBVDtBQUNBTCxjQUFRVyxHQUFSLENBQVlaLEVBQVosRUFBZ0JVLE1BQWhCO0FBQ0Q7O0FBRURBLFdBQU9GLElBQVAsRUFBYUMsTUFBYixFQUFxQkosSUFBckI7QUFDRCxHQVZEOztBQVlBLFNBQU9RLE9BQU9DLE1BQVAsQ0FBY1AsTUFBZCxFQUFzQixFQUFFZCxRQUFRSSxjQUFWLEVBQTBCRSxRQUExQixFQUF0QixDQUFQO0FBQ0Q7O0FBRUQsT0FBTyxTQUFTZ0IsSUFBVCxDQUFjWCxLQUFkLEVBQThCO0FBQUEsb0NBQU5DLElBQU07QUFBTkEsUUFBTTtBQUFBOztBQUNuQyxTQUFPRixPQUFPQyxLQUFQLEVBQWNDLElBQWQsQ0FBUDtBQUNEOztBQUVELE9BQU8sU0FBU1csR0FBVCxDQUFhWixLQUFiLEVBQTZCO0FBQUEscUNBQU5DLElBQU07QUFBTkEsUUFBTTtBQUFBOztBQUNsQyxTQUFPRixPQUFPQyxLQUFQLEVBQWNDLElBQWQsRUFBb0IsSUFBcEIsQ0FBUDtBQUNEOztBQUVEUSxPQUFPQyxNQUFQLENBQWNDLElBQWQsRUFBb0IsRUFBRW5CLGdCQUFGLEVBQXBCO0FBQ0FpQixPQUFPQyxNQUFQLENBQWNFLEdBQWQsRUFBbUIsRUFBRXBCLGdCQUFGLEVBQW5CIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlZmluZSBmcm9tICcuLi9kZWZpbmUnO1xuXG5pbXBvcnQgeyBjb21waWxlLCBjcmVhdGVJZCB9IGZyb20gJy4vdGVtcGxhdGUnO1xuaW1wb3J0IHJlc29sdmUgZnJvbSAnLi9yZXNvbHZlJztcblxuZnVuY3Rpb24gZGVmaW5lRWxlbWVudHMoZWxlbWVudHMpIHtcbiAgZGVmaW5lKGVsZW1lbnRzKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIGtleShpZCkge1xuICB0aGlzLmlkID0gaWQ7XG4gIHJldHVybiB0aGlzO1xufVxuXG5jb25zdCB1cGRhdGVzID0gbmV3IE1hcCgpO1xuXG5mdW5jdGlvbiBjcmVhdGUocGFydHMsIGFyZ3MsIGlzU1ZHKSB7XG4gIGNvbnN0IHVwZGF0ZSA9IChob3N0LCB0YXJnZXQgPSBob3N0KSA9PiB7XG4gICAgY29uc3QgaWQgPSBjcmVhdGVJZChwYXJ0cywgaXNTVkcpO1xuICAgIGxldCByZW5kZXIgPSB1cGRhdGVzLmdldChpZCk7XG5cbiAgICBpZiAoIXJlbmRlcikge1xuICAgICAgcmVuZGVyID0gY29tcGlsZShwYXJ0cywgaXNTVkcpO1xuICAgICAgdXBkYXRlcy5zZXQoaWQsIHJlbmRlcik7XG4gICAgfVxuXG4gICAgcmVuZGVyKGhvc3QsIHRhcmdldCwgYXJncyk7XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24odXBkYXRlLCB7IGRlZmluZTogZGVmaW5lRWxlbWVudHMsIGtleSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0bWwocGFydHMsIC4uLmFyZ3MpIHtcbiAgcmV0dXJuIGNyZWF0ZShwYXJ0cywgYXJncyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdmcocGFydHMsIC4uLmFyZ3MpIHtcbiAgcmV0dXJuIGNyZWF0ZShwYXJ0cywgYXJncywgdHJ1ZSk7XG59XG5cbk9iamVjdC5hc3NpZ24oaHRtbCwgeyByZXNvbHZlIH0pO1xuT2JqZWN0LmFzc2lnbihzdmcsIHsgcmVzb2x2ZSB9KTtcbiJdfQ==
Object.assign(html, {
resolve: resolve
});
Object.assign(svg, {
resolve: resolve
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmluZSIsImNvbXBpbGUiLCJjcmVhdGVJZCIsInJlc29sdmUiLCJkZWZpbmVFbGVtZW50cyIsImVsZW1lbnRzIiwia2V5IiwiaWQiLCJ1cGRhdGVzIiwiTWFwIiwiY3JlYXRlIiwicGFydHMiLCJhcmdzIiwiaXNTVkciLCJ1cGRhdGUiLCJob3N0IiwidGFyZ2V0IiwicmVuZGVyIiwiZ2V0Iiwic2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiaHRtbCIsInN2ZyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBUCxNQUFtQixXQUFuQjtBQUVBLFNBQVNDLE9BQVQsRUFBa0JDLFFBQWxCLFFBQWtDLFlBQWxDO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixXQUFwQjs7QUFFQSxTQUFTQyxjQUFULENBQXdCQyxRQUF4QixFQUFrQztBQUNoQ0wsRUFBQUEsTUFBTSxDQUFDSyxRQUFELENBQU47QUFDQSxTQUFPLElBQVA7QUFDRDs7QUFFRCxTQUFTQyxHQUFULENBQWFDLEVBQWIsRUFBaUI7QUFDZixPQUFLQSxFQUFMLEdBQVVBLEVBQVY7QUFDQSxTQUFPLElBQVA7QUFDRDs7QUFFRCxJQUFNQyxPQUFPLEdBQUcsSUFBSUMsR0FBSixFQUFoQjs7QUFFQSxTQUFTQyxNQUFULENBQWdCQyxLQUFoQixFQUF1QkMsSUFBdkIsRUFBNkJDLEtBQTdCLEVBQW9DO0FBQ2xDLE1BQU1DLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLElBQUQsRUFBeUI7QUFBQSxRQUFsQkMsTUFBa0IsdUVBQVRELElBQVM7QUFDdEMsUUFBTVIsRUFBRSxHQUFHTCxRQUFRLENBQUNTLEtBQUQsRUFBUUUsS0FBUixDQUFuQjtBQUNBLFFBQUlJLE1BQU0sR0FBR1QsT0FBTyxDQUFDVSxHQUFSLENBQVlYLEVBQVosQ0FBYjs7QUFFQSxRQUFJLENBQUNVLE1BQUwsRUFBYTtBQUNYQSxNQUFBQSxNQUFNLEdBQUdoQixPQUFPLENBQUNVLEtBQUQsRUFBUUUsS0FBUixDQUFoQjtBQUNBTCxNQUFBQSxPQUFPLENBQUNXLEdBQVIsQ0FBWVosRUFBWixFQUFnQlUsTUFBaEI7QUFDRDs7QUFFREEsSUFBQUEsTUFBTSxDQUFDRixJQUFELEVBQU9DLE1BQVAsRUFBZUosSUFBZixDQUFOO0FBQ0QsR0FWRDs7QUFZQSxTQUFPUSxNQUFNLENBQUNDLE1BQVAsQ0FBY1AsTUFBZCxFQUFzQjtBQUFFZCxJQUFBQSxNQUFNLEVBQUVJLGNBQVY7QUFBMEJFLElBQUFBLEdBQUcsRUFBSEE7QUFBMUIsR0FBdEIsQ0FBUDtBQUNEOztBQUVELE9BQU8sU0FBU2dCLElBQVQsQ0FBY1gsS0FBZCxFQUE4QjtBQUFBLG9DQUFOQyxJQUFNO0FBQU5BLElBQUFBLElBQU07QUFBQTs7QUFDbkMsU0FBT0YsTUFBTSxDQUFDQyxLQUFELEVBQVFDLElBQVIsQ0FBYjtBQUNEO0FBRUQsT0FBTyxTQUFTVyxHQUFULENBQWFaLEtBQWIsRUFBNkI7QUFBQSxxQ0FBTkMsSUFBTTtBQUFOQSxJQUFBQSxJQUFNO0FBQUE7O0FBQ2xDLFNBQU9GLE1BQU0sQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLEVBQWMsSUFBZCxDQUFiO0FBQ0Q7QUFFRFEsTUFBTSxDQUFDQyxNQUFQLENBQWNDLElBQWQsRUFBb0I7QUFBRW5CLEVBQUFBLE9BQU8sRUFBUEE7QUFBRixDQUFwQjtBQUNBaUIsTUFBTSxDQUFDQyxNQUFQLENBQWNFLEdBQWQsRUFBbUI7QUFBRXBCLEVBQUFBLE9BQU8sRUFBUEE7QUFBRixDQUFuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWZpbmUgZnJvbSAnLi4vZGVmaW5lJztcblxuaW1wb3J0IHsgY29tcGlsZSwgY3JlYXRlSWQgfSBmcm9tICcuL3RlbXBsYXRlJztcbmltcG9ydCByZXNvbHZlIGZyb20gJy4vcmVzb2x2ZSc7XG5cbmZ1bmN0aW9uIGRlZmluZUVsZW1lbnRzKGVsZW1lbnRzKSB7XG4gIGRlZmluZShlbGVtZW50cyk7XG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBrZXkoaWQpIHtcbiAgdGhpcy5pZCA9IGlkO1xuICByZXR1cm4gdGhpcztcbn1cblxuY29uc3QgdXBkYXRlcyA9IG5ldyBNYXAoKTtcblxuZnVuY3Rpb24gY3JlYXRlKHBhcnRzLCBhcmdzLCBpc1NWRykge1xuICBjb25zdCB1cGRhdGUgPSAoaG9zdCwgdGFyZ2V0ID0gaG9zdCkgPT4ge1xuICAgIGNvbnN0IGlkID0gY3JlYXRlSWQocGFydHMsIGlzU1ZHKTtcbiAgICBsZXQgcmVuZGVyID0gdXBkYXRlcy5nZXQoaWQpO1xuXG4gICAgaWYgKCFyZW5kZXIpIHtcbiAgICAgIHJlbmRlciA9IGNvbXBpbGUocGFydHMsIGlzU1ZHKTtcbiAgICAgIHVwZGF0ZXMuc2V0KGlkLCByZW5kZXIpO1xuICAgIH1cblxuICAgIHJlbmRlcihob3N0LCB0YXJnZXQsIGFyZ3MpO1xuICB9O1xuXG4gIHJldHVybiBPYmplY3QuYXNzaWduKHVwZGF0ZSwgeyBkZWZpbmU6IGRlZmluZUVsZW1lbnRzLCBrZXkgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodG1sKHBhcnRzLCAuLi5hcmdzKSB7XG4gIHJldHVybiBjcmVhdGUocGFydHMsIGFyZ3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3ZnKHBhcnRzLCAuLi5hcmdzKSB7XG4gIHJldHVybiBjcmVhdGUocGFydHMsIGFyZ3MsIHRydWUpO1xufVxuXG5PYmplY3QuYXNzaWduKGh0bWwsIHsgcmVzb2x2ZSB9KTtcbk9iamVjdC5hc3NpZ24oc3ZnLCB7IHJlc29sdmUgfSk7XG4iXX0=
import { createMap } from '../utils';
var map = createMap();
export default function resolve(promise, placeholder) {
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
return function (host, target) {
var timeout = void 0;
var timeout;

@@ -14,3 +11,2 @@ if (placeholder) {

timeout = undefined;
requestAnimationFrame(function () {

@@ -33,2 +29,2 @@ placeholder(host, target);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3Jlc29sdmUuanMiXSwibmFtZXMiOlsiY3JlYXRlTWFwIiwibWFwIiwicmVzb2x2ZSIsInByb21pc2UiLCJwbGFjZWhvbGRlciIsImRlbGF5IiwiaG9zdCIsInRhcmdldCIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidW5kZWZpbmVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0IiwidGhlbiIsInRlbXBsYXRlIiwiY2xlYXJUaW1lb3V0IiwiZ2V0Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFULFFBQTBCLFVBQTFCOztBQUVBLElBQU1DLE1BQU1ELFdBQVo7O0FBRUEsZUFBZSxTQUFTRSxPQUFULENBQWlCQyxPQUFqQixFQUEwQkMsV0FBMUIsRUFBb0Q7QUFBQSxNQUFiQyxLQUFhLHVFQUFMLEdBQUs7O0FBQ2pFLFNBQU8sVUFBQ0MsSUFBRCxFQUFPQyxNQUFQLEVBQWtCO0FBQ3ZCLFFBQUlDLGdCQUFKOztBQUVBLFFBQUlKLFdBQUosRUFBaUI7QUFDZkksZ0JBQVVDLFdBQVcsWUFBTTtBQUN6QkQsa0JBQVVFLFNBQVY7O0FBRUFDLDhCQUFzQixZQUFNO0FBQzFCUCxzQkFBWUUsSUFBWixFQUFrQkMsTUFBbEI7QUFDRCxTQUZEO0FBR0QsT0FOUyxFQU1QRixLQU5PLENBQVY7QUFPRDs7QUFFREosUUFBSVcsR0FBSixDQUFRTCxNQUFSLEVBQWdCSixPQUFoQjtBQUNBQSxZQUFRVSxJQUFSLENBQWEsVUFBQ0MsUUFBRCxFQUFjO0FBQ3pCLFVBQUlOLE9BQUosRUFBYU8sYUFBYVAsT0FBYjs7QUFFYixVQUFJUCxJQUFJZSxHQUFKLENBQVFULE1BQVIsTUFBb0JKLE9BQXhCLEVBQWlDO0FBQy9CVyxpQkFBU1IsSUFBVCxFQUFlQyxNQUFmO0FBQ0FOLFlBQUlXLEdBQUosQ0FBUUwsTUFBUixFQUFnQixJQUFoQjtBQUNEO0FBQ0YsS0FQRDtBQVFELEdBdEJEO0FBdUJEIiwiZmlsZSI6InJlc29sdmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVNYXAgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IG1hcCA9IGNyZWF0ZU1hcCgpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlKHByb21pc2UsIHBsYWNlaG9sZGVyLCBkZWxheSA9IDIwMCkge1xuICByZXR1cm4gKGhvc3QsIHRhcmdldCkgPT4ge1xuICAgIGxldCB0aW1lb3V0O1xuXG4gICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRpbWVvdXQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICBwbGFjZWhvbGRlcihob3N0LCB0YXJnZXQpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGRlbGF5KTtcbiAgICB9XG5cbiAgICBtYXAuc2V0KHRhcmdldCwgcHJvbWlzZSk7XG4gICAgcHJvbWlzZS50aGVuKCh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgaWYgKHRpbWVvdXQpIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblxuICAgICAgaWYgKG1hcC5nZXQodGFyZ2V0KSA9PT0gcHJvbWlzZSkge1xuICAgICAgICB0ZW1wbGF0ZShob3N0LCB0YXJnZXQpO1xuICAgICAgICBtYXAuc2V0KHRhcmdldCwgbnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3Jlc29sdmUuanMiXSwibmFtZXMiOlsiY3JlYXRlTWFwIiwibWFwIiwicmVzb2x2ZSIsInByb21pc2UiLCJwbGFjZWhvbGRlciIsImRlbGF5IiwiaG9zdCIsInRhcmdldCIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidW5kZWZpbmVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0IiwidGhlbiIsInRlbXBsYXRlIiwiY2xlYXJUaW1lb3V0IiwiZ2V0Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFULFFBQTBCLFVBQTFCO0FBRUEsSUFBTUMsR0FBRyxHQUFHRCxTQUFTLEVBQXJCO0FBRUEsZUFBZSxTQUFTRSxPQUFULENBQWlCQyxPQUFqQixFQUEwQkMsV0FBMUIsRUFBb0Q7QUFBQSxNQUFiQyxLQUFhLHVFQUFMLEdBQUs7QUFDakUsU0FBTyxVQUFDQyxJQUFELEVBQU9DLE1BQVAsRUFBa0I7QUFDdkIsUUFBSUMsT0FBSjs7QUFFQSxRQUFJSixXQUFKLEVBQWlCO0FBQ2ZJLE1BQUFBLE9BQU8sR0FBR0MsVUFBVSxDQUFDLFlBQU07QUFDekJELFFBQUFBLE9BQU8sR0FBR0UsU0FBVjtBQUVBQyxRQUFBQSxxQkFBcUIsQ0FBQyxZQUFNO0FBQzFCUCxVQUFBQSxXQUFXLENBQUNFLElBQUQsRUFBT0MsTUFBUCxDQUFYO0FBQ0QsU0FGb0IsQ0FBckI7QUFHRCxPQU5tQixFQU1qQkYsS0FOaUIsQ0FBcEI7QUFPRDs7QUFFREosSUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVFMLE1BQVIsRUFBZ0JKLE9BQWhCO0FBQ0FBLElBQUFBLE9BQU8sQ0FBQ1UsSUFBUixDQUFhLFVBQUNDLFFBQUQsRUFBYztBQUN6QixVQUFJTixPQUFKLEVBQWFPLFlBQVksQ0FBQ1AsT0FBRCxDQUFaOztBQUViLFVBQUlQLEdBQUcsQ0FBQ2UsR0FBSixDQUFRVCxNQUFSLE1BQW9CSixPQUF4QixFQUFpQztBQUMvQlcsUUFBQUEsUUFBUSxDQUFDUixJQUFELEVBQU9DLE1BQVAsQ0FBUjtBQUNBTixRQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUUwsTUFBUixFQUFnQixJQUFoQjtBQUNEO0FBQ0YsS0FQRDtBQVFELEdBdEJEO0FBdUJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTWFwIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBtYXAgPSBjcmVhdGVNYXAoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZShwcm9taXNlLCBwbGFjZWhvbGRlciwgZGVsYXkgPSAyMDApIHtcbiAgcmV0dXJuIChob3N0LCB0YXJnZXQpID0+IHtcbiAgICBsZXQgdGltZW91dDtcblxuICAgIGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aW1lb3V0ID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgcGxhY2Vob2xkZXIoaG9zdCwgdGFyZ2V0KTtcbiAgICAgICAgfSk7XG4gICAgICB9LCBkZWxheSk7XG4gICAgfVxuXG4gICAgbWFwLnNldCh0YXJnZXQsIHByb21pc2UpO1xuICAgIHByb21pc2UudGhlbigodGVtcGxhdGUpID0+IHtcbiAgICAgIGlmICh0aW1lb3V0KSBjbGVhclRpbWVvdXQodGltZW91dCk7XG5cbiAgICAgIGlmIChtYXAuZ2V0KHRhcmdldCkgPT09IHByb21pc2UpIHtcbiAgICAgICAgdGVtcGxhdGUoaG9zdCwgdGFyZ2V0KTtcbiAgICAgICAgbWFwLnNldCh0YXJnZXQsIG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuIl19

@@ -1,7 +0,6 @@

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
import { camelToDash } from '../utils';
export default function resolveStyle(host, target, value, data) {
if (value === null || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {
if (value === null || _typeof(value) !== 'object') {
throw TypeError('Style value must be an object instance');

@@ -11,3 +10,2 @@ }

var previousMap = data.styleMap || new Map();
data.styleMap = Object.keys(value).reduce(function (map, key) {

@@ -25,6 +23,4 @@ var dashKey = camelToDash(key);

previousMap.delete(dashKey);
return map;
}, new Map());
previousMap.forEach(function (styleValue, key) {

@@ -34,2 +30,2 @@ target.style[key] = '';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3N0eWxlLmpzIl0sIm5hbWVzIjpbImNhbWVsVG9EYXNoIiwicmVzb2x2ZVN0eWxlIiwiaG9zdCIsInRhcmdldCIsInZhbHVlIiwiZGF0YSIsIlR5cGVFcnJvciIsInByZXZpb3VzTWFwIiwic3R5bGVNYXAiLCJNYXAiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwibWFwIiwia2V5IiwiZGFzaEtleSIsInN0eWxlVmFsdWUiLCJzdHlsZSIsInJlbW92ZVByb3BlcnR5Iiwic2V0UHJvcGVydHkiLCJzZXQiLCJkZWxldGUiLCJmb3JFYWNoIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLFdBQVQsUUFBNEIsVUFBNUI7O0FBRUEsZUFBZSxTQUFTQyxZQUFULENBQXNCQyxJQUF0QixFQUE0QkMsTUFBNUIsRUFBb0NDLEtBQXBDLEVBQTJDQyxJQUEzQyxFQUFpRDtBQUM5RCxNQUFJRCxVQUFVLElBQVYsSUFBa0IsUUFBT0EsS0FBUCx5Q0FBT0EsS0FBUCxPQUFpQixRQUF2QyxFQUFpRDtBQUMvQyxVQUFNRSxVQUFVLHdDQUFWLENBQU47QUFDRDs7QUFFRCxNQUFNQyxjQUFjRixLQUFLRyxRQUFMLElBQWlCLElBQUlDLEdBQUosRUFBckM7O0FBRUFKLE9BQUtHLFFBQUwsR0FBZ0JFLE9BQU9DLElBQVAsQ0FBWVAsS0FBWixFQUFtQlEsTUFBbkIsQ0FBMEIsVUFBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQWM7QUFDdEQsUUFBTUMsVUFBVWYsWUFBWWMsR0FBWixDQUFoQjtBQUNBLFFBQU1FLGFBQWFaLE1BQU1VLEdBQU4sQ0FBbkI7O0FBRUEsUUFBSSxDQUFDRSxVQUFELElBQWVBLGVBQWUsQ0FBbEMsRUFBcUM7QUFDbkNiLGFBQU9jLEtBQVAsQ0FBYUMsY0FBYixDQUE0QkgsT0FBNUI7QUFDRCxLQUZELE1BRU87QUFDTFosYUFBT2MsS0FBUCxDQUFhRSxXQUFiLENBQXlCSixPQUF6QixFQUFrQ0MsVUFBbEM7QUFDRDs7QUFFREgsUUFBSU8sR0FBSixDQUFRTCxPQUFSLEVBQWlCQyxVQUFqQjtBQUNBVCxnQkFBWWMsTUFBWixDQUFtQk4sT0FBbkI7O0FBRUEsV0FBT0YsR0FBUDtBQUNELEdBZGUsRUFjYixJQUFJSixHQUFKLEVBZGEsQ0FBaEI7O0FBZ0JBRixjQUFZZSxPQUFaLENBQW9CLFVBQUNOLFVBQUQsRUFBYUYsR0FBYixFQUFxQjtBQUFFWCxXQUFPYyxLQUFQLENBQWFILEdBQWIsSUFBb0IsRUFBcEI7QUFBeUIsR0FBcEU7QUFDRCIsImZpbGUiOiJzdHlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlU3R5bGUoaG9zdCwgdGFyZ2V0LCB2YWx1ZSwgZGF0YSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IFR5cGVFcnJvcignU3R5bGUgdmFsdWUgbXVzdCBiZSBhbiBvYmplY3QgaW5zdGFuY2UnKTtcbiAgfVxuXG4gIGNvbnN0IHByZXZpb3VzTWFwID0gZGF0YS5zdHlsZU1hcCB8fCBuZXcgTWFwKCk7XG5cbiAgZGF0YS5zdHlsZU1hcCA9IE9iamVjdC5rZXlzKHZhbHVlKS5yZWR1Y2UoKG1hcCwga2V5KSA9PiB7XG4gICAgY29uc3QgZGFzaEtleSA9IGNhbWVsVG9EYXNoKGtleSk7XG4gICAgY29uc3Qgc3R5bGVWYWx1ZSA9IHZhbHVlW2tleV07XG5cbiAgICBpZiAoIXN0eWxlVmFsdWUgJiYgc3R5bGVWYWx1ZSAhPT0gMCkge1xuICAgICAgdGFyZ2V0LnN0eWxlLnJlbW92ZVByb3BlcnR5KGRhc2hLZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXQuc3R5bGUuc2V0UHJvcGVydHkoZGFzaEtleSwgc3R5bGVWYWx1ZSk7XG4gICAgfVxuXG4gICAgbWFwLnNldChkYXNoS2V5LCBzdHlsZVZhbHVlKTtcbiAgICBwcmV2aW91c01hcC5kZWxldGUoZGFzaEtleSk7XG5cbiAgICByZXR1cm4gbWFwO1xuICB9LCBuZXcgTWFwKCkpO1xuXG4gIHByZXZpb3VzTWFwLmZvckVhY2goKHN0eWxlVmFsdWUsIGtleSkgPT4geyB0YXJnZXQuc3R5bGVba2V5XSA9ICcnOyB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3N0eWxlLmpzIl0sIm5hbWVzIjpbImNhbWVsVG9EYXNoIiwicmVzb2x2ZVN0eWxlIiwiaG9zdCIsInRhcmdldCIsInZhbHVlIiwiZGF0YSIsIlR5cGVFcnJvciIsInByZXZpb3VzTWFwIiwic3R5bGVNYXAiLCJNYXAiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwibWFwIiwia2V5IiwiZGFzaEtleSIsInN0eWxlVmFsdWUiLCJzdHlsZSIsInJlbW92ZVByb3BlcnR5Iiwic2V0UHJvcGVydHkiLCJzZXQiLCJkZWxldGUiLCJmb3JFYWNoIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLFdBQVQsUUFBNEIsVUFBNUI7QUFFQSxlQUFlLFNBQVNDLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCQyxNQUE1QixFQUFvQ0MsS0FBcEMsRUFBMkNDLElBQTNDLEVBQWlEO0FBQzlELE1BQUlELEtBQUssS0FBSyxJQUFWLElBQWtCLFFBQU9BLEtBQVAsTUFBaUIsUUFBdkMsRUFBaUQ7QUFDL0MsVUFBTUUsU0FBUyxDQUFDLHdDQUFELENBQWY7QUFDRDs7QUFFRCxNQUFNQyxXQUFXLEdBQUdGLElBQUksQ0FBQ0csUUFBTCxJQUFpQixJQUFJQyxHQUFKLEVBQXJDO0FBRUFKLEVBQUFBLElBQUksQ0FBQ0csUUFBTCxHQUFnQkUsTUFBTSxDQUFDQyxJQUFQLENBQVlQLEtBQVosRUFBbUJRLE1BQW5CLENBQTBCLFVBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFjO0FBQ3RELFFBQU1DLE9BQU8sR0FBR2YsV0FBVyxDQUFDYyxHQUFELENBQTNCO0FBQ0EsUUFBTUUsVUFBVSxHQUFHWixLQUFLLENBQUNVLEdBQUQsQ0FBeEI7O0FBRUEsUUFBSSxDQUFDRSxVQUFELElBQWVBLFVBQVUsS0FBSyxDQUFsQyxFQUFxQztBQUNuQ2IsTUFBQUEsTUFBTSxDQUFDYyxLQUFQLENBQWFDLGNBQWIsQ0FBNEJILE9BQTVCO0FBQ0QsS0FGRCxNQUVPO0FBQ0xaLE1BQUFBLE1BQU0sQ0FBQ2MsS0FBUCxDQUFhRSxXQUFiLENBQXlCSixPQUF6QixFQUFrQ0MsVUFBbEM7QUFDRDs7QUFFREgsSUFBQUEsR0FBRyxDQUFDTyxHQUFKLENBQVFMLE9BQVIsRUFBaUJDLFVBQWpCO0FBQ0FULElBQUFBLFdBQVcsQ0FBQ2MsTUFBWixDQUFtQk4sT0FBbkI7QUFFQSxXQUFPRixHQUFQO0FBQ0QsR0FkZSxFQWNiLElBQUlKLEdBQUosRUFkYSxDQUFoQjtBQWdCQUYsRUFBQUEsV0FBVyxDQUFDZSxPQUFaLENBQW9CLFVBQUNOLFVBQUQsRUFBYUYsR0FBYixFQUFxQjtBQUFFWCxJQUFBQSxNQUFNLENBQUNjLEtBQVAsQ0FBYUgsR0FBYixJQUFvQixFQUFwQjtBQUF5QixHQUFwRTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FtZWxUb0Rhc2ggfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVTdHlsZShob3N0LCB0YXJnZXQsIHZhbHVlLCBkYXRhKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKCdTdHlsZSB2YWx1ZSBtdXN0IGJlIGFuIG9iamVjdCBpbnN0YW5jZScpO1xuICB9XG5cbiAgY29uc3QgcHJldmlvdXNNYXAgPSBkYXRhLnN0eWxlTWFwIHx8IG5ldyBNYXAoKTtcblxuICBkYXRhLnN0eWxlTWFwID0gT2JqZWN0LmtleXModmFsdWUpLnJlZHVjZSgobWFwLCBrZXkpID0+IHtcbiAgICBjb25zdCBkYXNoS2V5ID0gY2FtZWxUb0Rhc2goa2V5KTtcbiAgICBjb25zdCBzdHlsZVZhbHVlID0gdmFsdWVba2V5XTtcblxuICAgIGlmICghc3R5bGVWYWx1ZSAmJiBzdHlsZVZhbHVlICE9PSAwKSB7XG4gICAgICB0YXJnZXQuc3R5bGUucmVtb3ZlUHJvcGVydHkoZGFzaEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldC5zdHlsZS5zZXRQcm9wZXJ0eShkYXNoS2V5LCBzdHlsZVZhbHVlKTtcbiAgICB9XG5cbiAgICBtYXAuc2V0KGRhc2hLZXksIHN0eWxlVmFsdWUpO1xuICAgIHByZXZpb3VzTWFwLmRlbGV0ZShkYXNoS2V5KTtcblxuICAgIHJldHVybiBtYXA7XG4gIH0sIG5ldyBNYXAoKSk7XG5cbiAgcHJldmlvdXNNYXAuZm9yRWFjaCgoc3R5bGVWYWx1ZSwga2V5KSA9PiB7IHRhcmdldC5zdHlsZVtrZXldID0gJyc7IH0pO1xufVxuIl19

@@ -1,15 +0,19 @@

var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
import { createMap, shadyCSS, stringifyElement, IS_IE } from '../utils';
import resolveStyleList from './style';
import resolveClassList from './classList';
var dataMap = createMap();
function getTemplateEnd(node) {
var data = void 0;
// eslint-disable-next-line no-cond-assign
var data; // eslint-disable-next-line no-cond-assign
while (node && (data = dataMap.get(node)) && data.endNode) {

@@ -28,3 +32,2 @@ node = data.endNode;

var endNode = getTemplateEnd(data.endNode);
var node = startNode;

@@ -42,3 +45,3 @@ var lastNextSibling = endNode.nextSibling;

function resolveValue(host, target, value) {
var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : _typeof(value);
var type = Array.isArray(value) ? 'array' : _typeof(value);
var data = dataMap.get(target, {});

@@ -48,3 +51,5 @@

removeTemplate(target);
data = dataMap.set(target, { type: type });
data = dataMap.set(target, {
type: type
});

@@ -60,2 +65,3 @@ if (target.textContent !== '') {

break;
case 'array':

@@ -65,2 +71,3 @@ // eslint-disable-next-line no-use-before-define

break;
default:

@@ -71,2 +78,3 @@ if (value !== data.value) {

}
}

@@ -79,7 +87,6 @@ }

var endNode = getTemplateEnd(data.endNode);
previousSibling.parentNode.insertBefore(target, previousSibling.nextSibling);
var prevNode = target;
var node = startNode;
while (node) {

@@ -98,4 +105,2 @@ var nextNode = node.nextSibling;

var arrayEntries = data.arrayEntries;
var indexedValue = value.map(function (item, index) {

@@ -113,3 +118,2 @@ return [Object.prototype.hasOwnProperty.call(item, 'id') ? item.id : index, item];

});
arrayEntries.forEach(function (entry) {

@@ -135,4 +139,4 @@ var id = entry.id,

});
var placeholder;
var placeholder = void 0;
if (entry) {

@@ -151,10 +155,10 @@ entry.available = false;

resolveValue(host, placeholder, item);
previousSibling = getTemplateEnd(dataMap.get(placeholder).endNode || placeholder);
if (index === 0) data.startNode = placeholder;
if (index === lastIndex) data.endNode = previousSibling;
entries.push({ available: true, id: id, placeholder: placeholder });
entries.push({
available: true,
id: id,
placeholder: placeholder
});
return entries;

@@ -180,12 +184,12 @@ }, []);

var eventName = propertyName.substr(2);
return function (host, target, value) {
if (!fnMap.has(target)) {
target.addEventListener(eventName, function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
var fn = fnMap.get(target);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var fn = fnMap.get(target);
if (fn) fn.apply(undefined, [host].concat(args));
if (fn) fn.apply(void 0, [host].concat(args));
});

@@ -201,4 +205,6 @@ }

return resolveStyleList;
case 'class':
return resolveClassList;
default:

@@ -214,2 +220,3 @@ return function (host, target, value) {

var attrValue = value === true ? '' : String(value);
if (target.getAttribute(attrName) !== attrValue) {

@@ -227,12 +234,10 @@ target.setAttribute(attrName, attrValue);

var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return '{{h-' + TIMESTAMP + '-' + id + '}}';
return "{{h-".concat(TIMESTAMP, "-").concat(id, "}}");
};
var PLACEHOLDER_REGEXP_TEXT = getPlaceholder('(\\d+)');
var PLACEHOLDER_REGEXP_EQUAL = new RegExp('^' + PLACEHOLDER_REGEXP_TEXT + '$');
var PLACEHOLDER_REGEXP_EQUAL = new RegExp("^".concat(PLACEHOLDER_REGEXP_TEXT, "$"));
var PLACEHOLDER_REGEXP_ALL = new RegExp(PLACEHOLDER_REGEXP_TEXT, 'g');
var ATTR_PREFIX = '--' + TIMESTAMP + '--';
var ATTR_PREFIX = "--".concat(TIMESTAMP, "--");
var ATTR_REGEXP = new RegExp(ATTR_PREFIX, 'g');
var preparedTemplates = new WeakMap();

@@ -242,5 +247,5 @@

if (!tagName) return template;
return shadyCSS(function (shady) {
var map = preparedTemplates.get(template);
if (!map) {

@@ -256,9 +261,7 @@ map = new Map();

clone.content.appendChild(template.content.cloneNode(true));
map.set(tagName, clone);
var styles = clone.content.querySelectorAll('style');
Array.from(styles).forEach(function (style) {
var count = style.childNodes.length + 1;
for (var i = 0; i < count; i += 1) {

@@ -268,5 +271,5 @@ style.parentNode.insertBefore(document.createTextNode(getPlaceholder()), style);

});
shady.prepareTemplate(clone, tagName.toLowerCase());
}
return clone;

@@ -277,3 +280,3 @@ }, template);

export function createId(parts, isSVG) {
return '' + (isSVG ? 'svg:' : '') + parts.join(getPlaceholder());
return "".concat(isSVG ? 'svg:' : '').concat(parts.join(getPlaceholder()));
}

@@ -286,5 +289,7 @@

}
if (parts.slice(index).join('').match(/\s*<\/\s*(table|tr|thead|tbody|tfoot|colgroup)>/)) {
return acc + '<!--' + getPlaceholder(index - 1) + '-->' + part;
return "".concat(acc, "<!--").concat(getPlaceholder(index - 1), "-->").concat(part);
}
return acc + getPlaceholder(index - 1) + part;

@@ -295,3 +300,3 @@ }, '');

return signature.replace(/style\s*=\s*(["][^"]+["]|['][^']+[']|[^\s"'<>/]+)/g, function (match) {
return '' + ATTR_PREFIX + match;
return "".concat(ATTR_PREFIX).concat(match);
});

@@ -309,4 +314,4 @@ }

var iterator = document.createNodeIterator(fragment, NodeFilter.SHOW_COMMENT, null, false);
var node = void 0;
// eslint-disable-next-line no-cond-assign
var node; // eslint-disable-next-line no-cond-assign
while (node = iterator.nextNode()) {

@@ -321,4 +326,3 @@ if (PLACEHOLDER_REGEXP_EQUAL.test(node.textContent)) {

export function createInternalWalker(context) {
var node = void 0;
var node;
return {

@@ -328,2 +332,3 @@ get currentNode() {

},
nextNode: function nextNode() {

@@ -346,4 +351,3 @@ if (node === undefined) {

function createExternalWalker(context) {
return document.createTreeWalker(context,
// eslint-disable-next-line no-bitwise
return document.createTreeWalker(context, // eslint-disable-next-line no-bitwise
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null, false);

@@ -353,3 +357,2 @@ }

var createWalker = _typeof(window.ShadyDOM) === 'object' && window.ShadyDOM.inUse ? createInternalWalker : createExternalWalker;
var container = document.createElement('div');

@@ -359,5 +362,4 @@ export function compile(rawParts, isSVG) {

var parts = [];
var signature = createSignature(rawParts);
if (isSVG) signature = '<svg>' + signature + '</svg>';
if (isSVG) signature = "<svg>".concat(signature, "</svg>");

@@ -367,3 +369,3 @@ if (IS_IE) {

} else {
container.innerHTML = '<template>' + signature + '</template>';
container.innerHTML = "<template>".concat(signature, "</template>");
template.content.appendChild(container.children[0].content);

@@ -381,3 +383,2 @@ }

replaceComments(template.content);
var compileWalker = createWalker(template.content);

@@ -394,2 +395,3 @@ var compileIndex = 0;

var results = text.match(PLACEHOLDER_REGEXP_ALL);
if (results) {

@@ -418,2 +420,3 @@ var currentNode = node;

var equal = node.textContent.match(PLACEHOLDER_REGEXP_EQUAL);
if (equal) {

@@ -428,2 +431,3 @@ if (!IS_IE) node.textContent = '';

var equal = value.match(PLACEHOLDER_REGEXP_EQUAL);
if (equal) {

@@ -435,4 +439,5 @@ var propertyName = getPropertyName(rawParts[equal[1]]);

var _results = value.match(PLACEHOLDER_REGEXP_ALL);
if (_results) {
var partialName = 'attr__' + name;
var partialName = "attr__".concat(name);

@@ -474,31 +479,31 @@ _results.forEach(function (placeholder, index) {

return function (host, target, args) {
var data = dataMap.get(target, { type: 'function' });
var data = dataMap.get(target, {
type: 'function'
});
if (template !== data.template) {
if (data.template) removeTemplate(target);
var fragment = document.importNode(applyShadyCSS(template, host.tagName).content, true);
var renderWalker = createWalker(fragment);
var clonedParts = parts.slice(0);
var renderIndex = 0;
var currentPart = clonedParts.shift();
var markers = [];
Object.assign(data, {
template: template,
markers: markers
});
Object.assign(data, { template: template, markers: markers });
while (renderWalker.nextNode()) {
var _node = renderWalker.currentNode;
var node = renderWalker.currentNode;
if (_node.nodeType === Node.TEXT_NODE) {
if (PLACEHOLDER_REGEXP_EQUAL.test(_node.textContent)) {
_node.textContent = '';
if (node.nodeType === Node.TEXT_NODE) {
if (PLACEHOLDER_REGEXP_EQUAL.test(node.textContent)) {
node.textContent = '';
} else if (IS_IE) {
_node.textContent = _node.textContent.replace(ATTR_REGEXP, '');
node.textContent = node.textContent.replace(ATTR_REGEXP, '');
}
} else if (process.env.NODE_ENV !== 'production' && _node.nodeType === Node.ELEMENT_NODE) {
if (_node.tagName.indexOf('-') > -1 && !customElements.get(_node.tagName.toLowerCase())) {
throw Error('[html] Missing \'' + stringifyElement(_node) + '\' element definition in \'' + stringifyElement(host) + '\'');
} else if (process.env.NODE_ENV !== 'production' && node.nodeType === Node.ELEMENT_NODE) {
if (node.tagName.indexOf('-') > -1 && !customElements.get(node.tagName.toLowerCase())) {
throw Error("[html] Missing '".concat(stringifyElement(node), "' element definition in '").concat(stringifyElement(host), "'"));
}

@@ -508,3 +513,3 @@ }

while (currentPart && currentPart[0] === renderIndex) {
markers.push([_node, currentPart[1]]);
markers.push([node, currentPart[1]]);
currentPart = clonedParts.shift();

@@ -517,3 +522,2 @@ }

var childList = Array.from(fragment.childNodes);
data.startNode = childList[0];

@@ -542,2 +546,2 @@ data.endNode = childList[childList.length - 1];

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3RlbXBsYXRlLmpzIl0sIm5hbWVzIjpbImNyZWF0ZU1hcCIsInNoYWR5Q1NTIiwic3RyaW5naWZ5RWxlbWVudCIsIklTX0lFIiwicmVzb2x2ZVN0eWxlTGlzdCIsInJlc29sdmVDbGFzc0xpc3QiLCJkYXRhTWFwIiwiZ2V0VGVtcGxhdGVFbmQiLCJub2RlIiwiZGF0YSIsImdldCIsImVuZE5vZGUiLCJyZW1vdmVUZW1wbGF0ZSIsInRhcmdldCIsInN0YXJ0Tm9kZSIsImxhc3ROZXh0U2libGluZyIsIm5leHRTaWJsaW5nIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwicmVzb2x2ZVZhbHVlIiwiaG9zdCIsInZhbHVlIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsInNldCIsInRleHRDb250ZW50IiwicmVzb2x2ZUFycmF5IiwibW92ZVBsYWNlaG9sZGVyIiwicHJldmlvdXNTaWJsaW5nIiwiaW5zZXJ0QmVmb3JlIiwicHJldk5vZGUiLCJuZXh0Tm9kZSIsImxhc3RJbmRleCIsImxlbmd0aCIsImFycmF5RW50cmllcyIsImluZGV4ZWRWYWx1ZSIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImlkIiwiaWRzIiwiU2V0IiwiZm9yRWFjaCIsImFkZCIsImVudHJ5IiwicGxhY2Vob2xkZXIiLCJoYXMiLCJhdmFpbGFibGUiLCJyZWR1Y2UiLCJlbnRyaWVzIiwiZmluZCIsImVudHJ5SXRlbSIsImRvY3VtZW50IiwiY3JlYXRlVGV4dE5vZGUiLCJwdXNoIiwicmVzb2x2ZVByb3BlcnR5IiwiYXR0ck5hbWUiLCJwcm9wZXJ0eU5hbWUiLCJpc1NWRyIsInN1YnN0ciIsImZuTWFwIiwiV2Vha01hcCIsImV2ZW50TmFtZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJhcmdzIiwiZm4iLCJTVkdFbGVtZW50IiwidW5kZWZpbmVkIiwicmVtb3ZlQXR0cmlidXRlIiwiYXR0clZhbHVlIiwiU3RyaW5nIiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwiVElNRVNUQU1QIiwiRGF0ZSIsIm5vdyIsImdldFBsYWNlaG9sZGVyIiwiUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQiLCJQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwiLCJSZWdFeHAiLCJQTEFDRUhPTERFUl9SRUdFWFBfQUxMIiwiQVRUUl9QUkVGSVgiLCJBVFRSX1JFR0VYUCIsInByZXBhcmVkVGVtcGxhdGVzIiwiYXBwbHlTaGFkeUNTUyIsInRlbXBsYXRlIiwidGFnTmFtZSIsInNoYWR5IiwiTWFwIiwiY2xvbmUiLCJjcmVhdGVFbGVtZW50IiwiY29udGVudCIsImFwcGVuZENoaWxkIiwiY2xvbmVOb2RlIiwic3R5bGVzIiwicXVlcnlTZWxlY3RvckFsbCIsImZyb20iLCJzdHlsZSIsImNvdW50IiwiY2hpbGROb2RlcyIsImkiLCJwcmVwYXJlVGVtcGxhdGUiLCJ0b0xvd2VyQ2FzZSIsImNyZWF0ZUlkIiwicGFydHMiLCJqb2luIiwiY3JlYXRlU2lnbmF0dXJlIiwic2lnbmF0dXJlIiwiYWNjIiwicGFydCIsInNsaWNlIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsInRlc3QiLCJjcmVhdGVJbnRlcm5hbFdhbGtlciIsImNvbnRleHQiLCJjdXJyZW50Tm9kZSIsImNyZWF0ZUV4dGVybmFsV2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIlNIT1dfVEVYVCIsImNyZWF0ZVdhbGtlciIsIndpbmRvdyIsIlNoYWR5RE9NIiwiaW5Vc2UiLCJjb250YWluZXIiLCJjb21waWxlIiwicmF3UGFydHMiLCJpbm5lckhUTUwiLCJjaGlsZHJlbiIsInN2Z1Jvb3QiLCJmaXJzdENoaWxkIiwiY29tcGlsZVdhbGtlciIsImNvbXBpbGVJbmRleCIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJyZXN1bHRzIiwiYmVmb3JlIiwibmV4dCIsImVxdWFsIiwiRUxFTUVOVF9OT0RFIiwiYXR0cmlidXRlcyIsImF0dHIiLCJ0cmltIiwibmFtZSIsInBhcnRpYWxOYW1lIiwiaW1wb3J0Tm9kZSIsInJlbmRlcldhbGtlciIsImNsb25lZFBhcnRzIiwicmVuZGVySW5kZXgiLCJjdXJyZW50UGFydCIsInNoaWZ0IiwibWFya2VycyIsImFzc2lnbiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImluZGV4T2YiLCJjdXN0b21FbGVtZW50cyIsIkVycm9yIiwiY2hpbGRMaXN0IiwicHJldmlvdXNDaGlsZCIsImNoaWxkIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FDRUEsU0FERixFQUNhQyxRQURiLEVBQ3VCQyxnQkFEdkIsRUFDeUNDLEtBRHpDLFFBRU8sVUFGUDs7QUFJQSxPQUFPQyxnQkFBUCxNQUE2QixTQUE3QjtBQUNBLE9BQU9DLGdCQUFQLE1BQTZCLGFBQTdCOztBQUVBLElBQU1DLFVBQVVOLFdBQWhCOztBQUVBLFNBQVNPLGNBQVQsQ0FBd0JDLElBQXhCLEVBQThCO0FBQzVCLE1BQUlDLGFBQUo7QUFDQTtBQUNBLFNBQU9ELFNBQVNDLE9BQU9ILFFBQVFJLEdBQVIsQ0FBWUYsSUFBWixDQUFoQixLQUFzQ0MsS0FBS0UsT0FBbEQsRUFBMkQ7QUFDekRILFdBQU9DLEtBQUtFLE9BQVo7QUFDRDs7QUFFRCxTQUFPSCxJQUFQO0FBQ0Q7O0FBRUQsU0FBU0ksY0FBVCxDQUF3QkMsTUFBeEIsRUFBZ0M7QUFDOUIsTUFBTUosT0FBT0gsUUFBUUksR0FBUixDQUFZRyxNQUFaLENBQWI7QUFDQSxNQUFNQyxZQUFZTCxLQUFLSyxTQUF2Qjs7QUFFQSxNQUFJQSxTQUFKLEVBQWU7QUFDYixRQUFNSCxVQUFVSixlQUFlRSxLQUFLRSxPQUFwQixDQUFoQjs7QUFFQSxRQUFJSCxP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QU8rSixZQUFZLENBQVosQ0FBUCxDQUFiO0FBQ0FBLHdCQUFjRixZQUFZRyxLQUFaLEVBQWQ7QUFDRDs7QUFFREYsdUJBQWUsQ0FBZjtBQUNEOztBQUVELFVBQU1XLFlBQVkxSixNQUFNOEUsSUFBTixDQUFXc0IsU0FBU25CLFVBQXBCLENBQWxCOztBQUVBL0YsV0FBS0ssU0FBTCxHQUFpQm1LLFVBQVUsQ0FBVixDQUFqQjtBQUNBeEssV0FBS0UsT0FBTCxHQUFlc0ssVUFBVUEsVUFBVS9JLE1BQVYsR0FBbUIsQ0FBN0IsQ0FBZjs7QUFFQSxVQUFJckIsT0FBT3dJLFFBQVAsS0FBb0JDLEtBQUtDLFNBQTdCLEVBQXdDO0FBQ3RDLFlBQUkyQixnQkFBZ0JySyxNQUFwQjtBQUNBb0ssa0JBQVVsSSxPQUFWLENBQWtCLFVBQUNvSSxLQUFELEVBQVc7QUFDM0J0SyxpQkFBT0ksVUFBUCxDQUFrQmEsWUFBbEIsQ0FBK0JxSixLQUEvQixFQUFzQ0QsY0FBY2xLLFdBQXBEO0FBQ0FrSywwQkFBZ0JDLEtBQWhCO0FBQ0QsU0FIRDtBQUlELE9BTkQsTUFNTztBQUNMdEssZUFBT29GLFdBQVAsQ0FBbUIwQixRQUFuQjtBQUNEO0FBQ0Y7O0FBRURsSCxTQUFLZ0ssT0FBTCxDQUFhMUgsT0FBYixDQUFxQixpQkFBYVIsS0FBYixFQUF1QjtBQUFBO0FBQUEsVUFBckIvQixJQUFxQjtBQUFBLFVBQWY4RCxFQUFlOztBQUMxQ0EsU0FBR2xELElBQUgsRUFBU1osSUFBVCxFQUFlNkQsS0FBSzlCLEtBQUwsQ0FBZixFQUE0QjlCLElBQTVCO0FBQ0QsS0FGRDtBQUdELEdBNUREO0FBNkREIiwiZmlsZSI6InRlbXBsYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlTWFwLCBzaGFkeUNTUywgc3RyaW5naWZ5RWxlbWVudCwgSVNfSUUsXG59IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHJlc29sdmVTdHlsZUxpc3QgZnJvbSAnLi9zdHlsZSc7XG5pbXBvcnQgcmVzb2x2ZUNsYXNzTGlzdCBmcm9tICcuL2NsYXNzTGlzdCc7XG5cbmNvbnN0IGRhdGFNYXAgPSBjcmVhdGVNYXAoKTtcblxuZnVuY3Rpb24gZ2V0VGVtcGxhdGVFbmQobm9kZSkge1xuICBsZXQgZGF0YTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduXG4gIHdoaWxlIChub2RlICYmIChkYXRhID0gZGF0YU1hcC5nZXQobm9kZSkpICYmIGRhdGEuZW5kTm9kZSkge1xuICAgIG5vZGUgPSBkYXRhLmVuZE5vZGU7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlVGVtcGxhdGUodGFyZ2V0KSB7XG4gIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQpO1xuICBjb25zdCBzdGFydE5vZGUgPSBkYXRhLnN0YXJ0Tm9kZTtcblxuICBpZiAoc3RhcnROb2RlKSB7XG4gICAgY29uc3QgZW5kTm9kZSA9IGdldFRlbXBsYXRlRW5kKGRhdGEuZW5kTm9kZSk7XG5cbiAgICBsZXQgbm9kZSA9IHN0YXJ0Tm9kZTtcbiAgICBjb25zdCBsYXN0TmV4dFNpYmxpbmcgPSBlbmROb2RlLm5leHRTaWJsaW5nO1xuXG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICAgIG5vZGUgPSBuZXh0U2libGluZyAhPT0gbGFzdE5leHRTaWJsaW5nICYmIG5leHRTaWJsaW5nO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlVmFsdWUoaG9zdCwgdGFyZ2V0LCB2YWx1ZSkge1xuICBjb25zdCB0eXBlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAnYXJyYXknIDogdHlwZW9mIHZhbHVlO1xuICBsZXQgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCwge30pO1xuXG4gIGlmIChkYXRhLnR5cGUgIT09IHR5cGUpIHtcbiAgICByZW1vdmVUZW1wbGF0ZSh0YXJnZXQpO1xuICAgIGRhdGEgPSBkYXRhTWFwLnNldCh0YXJnZXQsIHsgdHlwZSB9KTtcblxuICAgIGlmICh0YXJnZXQudGV4dENvbnRlbnQgIT09ICcnKSB7XG4gICAgICB0YXJnZXQudGV4dENvbnRlbnQgPSAnJztcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICB2YWx1ZShob3N0LCB0YXJnZXQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICByZXNvbHZlQXJyYXkoaG9zdCwgdGFyZ2V0LCB2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHZhbHVlICE9PSBkYXRhLnZhbHVlKSB7XG4gICAgICAgIGRhdGEudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGFyZ2V0LnRleHRDb250ZW50ID0gdHlwZSA9PT0gJ251bWJlcicgfHwgdmFsdWUgPyB2YWx1ZSA6ICcnO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1vdmVQbGFjZWhvbGRlcih0YXJnZXQsIHByZXZpb3VzU2libGluZykge1xuICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0KTtcbiAgY29uc3Qgc3RhcnROb2RlID0gZGF0YS5zdGFydE5vZGU7XG4gIGNvbnN0IGVuZE5vZGUgPSBnZXRUZW1wbGF0ZUVuZChkYXRhLmVuZE5vZGUpO1xuXG4gIHByZXZpb3VzU2libGluZy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0YXJnZXQsIHByZXZpb3VzU2libGluZy5uZXh0U2libGluZyk7XG5cbiAgbGV0IHByZXZOb2RlID0gdGFyZ2V0O1xuICBsZXQgbm9kZSA9IHN0YXJ0Tm9kZTtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBjb25zdCBuZXh0Tm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgcHJldk5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgcHJldk5vZGUubmV4dFNpYmxpbmcpO1xuICAgIHByZXZOb2RlID0gbm9kZTtcbiAgICBub2RlID0gbmV4dE5vZGUgIT09IGVuZE5vZGUubmV4dFNpYmxpbmcgJiYgbmV4dE5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUFycmF5KGhvc3QsIHRhcmdldCwgdmFsdWUpIHtcbiAgbGV0IHByZXZpb3VzU2libGluZyA9IHRhcmdldDtcbiAgY29uc3QgbGFzdEluZGV4ID0gdmFsdWUubGVuZ3RoIC0gMTtcbiAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCk7XG4gIGNvbnN0IHsgYXJyYXlFbnRyaWVzIH0gPSBkYXRhO1xuXG4gIGNvbnN0IGluZGV4ZWRWYWx1ZSA9IHZhbHVlLm1hcCgoaXRlbSwgaW5kZXgpID0+IFtcbiAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgJ2lkJykgPyBpdGVtLmlkIDogaW5kZXgsXG4gICAgaXRlbSxcbiAgXSk7XG5cbiAgaWYgKGFycmF5RW50cmllcykge1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQoKTtcbiAgICBpbmRleGVkVmFsdWUuZm9yRWFjaCgoW2lkXSkgPT4gaWRzLmFkZChpZCkpO1xuXG4gICAgYXJyYXlFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCB7IGlkLCBwbGFjZWhvbGRlciB9ID0gZW50cnk7XG4gICAgICBpZiAoIWlkcy5oYXMoaWQpKSB7XG4gICAgICAgIHJlbW92ZVRlbXBsYXRlKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgcGxhY2Vob2xkZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwbGFjZWhvbGRlcik7XG4gICAgICAgIGVudHJ5LmF2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGF0YS5hcnJheUVudHJpZXMgPSBpbmRleGVkVmFsdWUucmVkdWNlKChlbnRyaWVzLCBbaWQsIGl0ZW1dLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGVudHJ5ID0gYXJyYXlFbnRyaWVzICYmIGFycmF5RW50cmllc1xuICAgICAgLmZpbmQoZW50cnlJdGVtID0+IGVudHJ5SXRlbS5hdmFpbGFibGUgJiYgZW50cnlJdGVtLmlkID09PSBpZCk7XG5cbiAgICBsZXQgcGxhY2Vob2xkZXI7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBlbnRyeS5hdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgIHBsYWNlaG9sZGVyID0gZW50cnkucGxhY2Vob2xkZXI7XG5cbiAgICAgIGlmIChwbGFjZWhvbGRlci5wcmV2aW91c1NpYmxpbmcgIT09IHByZXZpb3VzU2libGluZykge1xuICAgICAgICBtb3ZlUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIHByZXZpb3VzU2libGluZyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpO1xuICAgICAgcHJldmlvdXNTaWJsaW5nLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHBsYWNlaG9sZGVyLCBwcmV2aW91c1NpYmxpbmcubmV4dFNpYmxpbmcpO1xuICAgIH1cblxuICAgIHJlc29sdmVWYWx1ZShob3N0LCBwbGFjZWhvbGRlciwgaXRlbSk7XG5cbiAgICBwcmV2aW91c1NpYmxpbmcgPSBnZXRUZW1wbGF0ZUVuZChkYXRhTWFwLmdldChwbGFjZWhvbGRlcikuZW5kTm9kZSB8fCBwbGFjZWhvbGRlcik7XG5cbiAgICBpZiAoaW5kZXggPT09IDApIGRhdGEuc3RhcnROb2RlID0gcGxhY2Vob2xkZXI7XG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIGRhdGEuZW5kTm9kZSA9IHByZXZpb3VzU2libGluZztcblxuICAgIGVudHJpZXMucHVzaCh7IGF2YWlsYWJsZTogdHJ1ZSwgaWQsIHBsYWNlaG9sZGVyIH0pO1xuXG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH0sIFtdKTtcblxuICBpZiAoYXJyYXlFbnRyaWVzKSB7XG4gICAgYXJyYXlFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCB7IGF2YWlsYWJsZSwgcGxhY2Vob2xkZXIgfSA9IGVudHJ5O1xuICAgICAgaWYgKGF2YWlsYWJsZSkge1xuICAgICAgICByZW1vdmVUZW1wbGF0ZShwbGFjZWhvbGRlcik7XG4gICAgICAgIHBsYWNlaG9sZGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVQcm9wZXJ0eShhdHRyTmFtZSwgcHJvcGVydHlOYW1lLCBpc1NWRykge1xuICBpZiAocHJvcGVydHlOYW1lLnN1YnN0cigwLCAyKSA9PT0gJ29uJykge1xuICAgIGNvbnN0IGZuTWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICBjb25zdCBldmVudE5hbWUgPSBwcm9wZXJ0eU5hbWUuc3Vic3RyKDIpO1xuXG4gICAgcmV0dXJuIChob3N0LCB0YXJnZXQsIHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIWZuTWFwLmhhcyh0YXJnZXQpKSB7XG4gICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjb25zdCBmbiA9IGZuTWFwLmdldCh0YXJnZXQpO1xuICAgICAgICAgIGlmIChmbikgZm4oaG9zdCwgLi4uYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBmbk1hcC5zZXQodGFyZ2V0LCB2YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHN3aXRjaCAoYXR0ck5hbWUpIHtcbiAgICBjYXNlICdzdHlsZSc6IHJldHVybiByZXNvbHZlU3R5bGVMaXN0O1xuICAgIGNhc2UgJ2NsYXNzJzogcmV0dXJuIHJlc29sdmVDbGFzc0xpc3Q7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAoaG9zdCwgdGFyZ2V0LCB2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIWlzU1ZHICYmICEodGFyZ2V0IGluc3RhbmNlb2YgU1ZHRWxlbWVudCkgJiYgKHByb3BlcnR5TmFtZSBpbiB0YXJnZXQpKSB7XG4gICAgICAgICAgaWYgKHRhcmdldFtwcm9wZXJ0eU5hbWVdICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICB0YXJnZXQucmVtb3ZlQXR0cmlidXRlKGF0dHJOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhdHRyVmFsdWUgPSB2YWx1ZSA9PT0gdHJ1ZSA/ICcnIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICBpZiAodGFyZ2V0LmdldEF0dHJpYnV0ZShhdHRyTmFtZSkgIT09IGF0dHJWYWx1ZSkge1xuICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShhdHRyTmFtZSwgYXR0clZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gIH1cbn1cblxuY29uc3QgVElNRVNUQU1QID0gRGF0ZS5ub3coKTtcblxuY29uc3QgZ2V0UGxhY2Vob2xkZXIgPSAoaWQgPSAwKSA9PiBge3toLSR7VElNRVNUQU1QfS0ke2lkfX19YDtcblxuY29uc3QgUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQgPSBnZXRQbGFjZWhvbGRlcignKFxcXFxkKyknKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCA9IG5ldyBSZWdFeHAoYF4ke1BMQUNFSE9MREVSX1JFR0VYUF9URVhUfSRgKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9BTEwgPSBuZXcgUmVnRXhwKFBMQUNFSE9MREVSX1JFR0VYUF9URVhULCAnZycpO1xuXG5jb25zdCBBVFRSX1BSRUZJWCA9IGAtLSR7VElNRVNUQU1QfS0tYDtcbmNvbnN0IEFUVFJfUkVHRVhQID0gbmV3IFJlZ0V4cChBVFRSX1BSRUZJWCwgJ2cnKTtcblxuY29uc3QgcHJlcGFyZWRUZW1wbGF0ZXMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCB0YWdOYW1lKSB7XG4gIGlmICghdGFnTmFtZSkgcmV0dXJuIHRlbXBsYXRlO1xuXG4gIHJldHVybiBzaGFkeUNTUygoc2hhZHkpID0+IHtcbiAgICBsZXQgbWFwID0gcHJlcGFyZWRUZW1wbGF0ZXMuZ2V0KHRlbXBsYXRlKTtcbiAgICBpZiAoIW1hcCkge1xuICAgICAgbWFwID0gbmV3IE1hcCgpO1xuICAgICAgcHJlcGFyZWRUZW1wbGF0ZXMuc2V0KHRlbXBsYXRlLCBtYXApO1xuICAgIH1cblxuICAgIGxldCBjbG9uZSA9IG1hcC5nZXQodGFnTmFtZSk7XG5cbiAgICBpZiAoIWNsb25lKSB7XG4gICAgICBjbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgICBjbG9uZS5jb250ZW50LmFwcGVuZENoaWxkKHRlbXBsYXRlLmNvbnRlbnQuY2xvbmVOb2RlKHRydWUpKTtcblxuICAgICAgbWFwLnNldCh0YWdOYW1lLCBjbG9uZSk7XG5cbiAgICAgIGNvbnN0IHN0eWxlcyA9IGNsb25lLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGUnKTtcblxuICAgICAgQXJyYXkuZnJvbShzdHlsZXMpLmZvckVhY2goKHN0eWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gc3R5bGUuY2hpbGROb2Rlcy5sZW5ndGggKyAxO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpICs9IDEpIHtcbiAgICAgICAgICBzdHlsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZXRQbGFjZWhvbGRlcigpKSwgc3R5bGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc2hhZHkucHJlcGFyZVRlbXBsYXRlKGNsb25lLCB0YWdOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cbiAgICByZXR1cm4gY2xvbmU7XG4gIH0sIHRlbXBsYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlkKHBhcnRzLCBpc1NWRykge1xuICByZXR1cm4gYCR7aXNTVkcgPyAnc3ZnOicgOiAnJ30ke3BhcnRzLmpvaW4oZ2V0UGxhY2Vob2xkZXIoKSl9YDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2lnbmF0dXJlKHBhcnRzKSB7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IHBhcnRzLnJlZHVjZSgoYWNjLCBwYXJ0LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgfVxuICAgIGlmIChwYXJ0cy5zbGljZShpbmRleCkuam9pbignJykubWF0Y2goL1xccyo8XFwvXFxzKih0YWJsZXx0cnx0aGVhZHx0Ym9keXx0Zm9vdHxjb2xncm91cCk+LykpIHtcbiAgICAgIHJldHVybiBgJHthY2N9PCEtLSR7Z2V0UGxhY2Vob2xkZXIoaW5kZXggLSAxKX0tLT4ke3BhcnR9YDtcbiAgICB9XG4gICAgcmV0dXJuIGFjYyArIGdldFBsYWNlaG9sZGVyKGluZGV4IC0gMSkgKyBwYXJ0O1xuICB9LCAnJyk7XG5cbiAgaWYgKElTX0lFKSB7XG4gICAgcmV0dXJuIHNpZ25hdHVyZS5yZXBsYWNlKFxuICAgICAgL3N0eWxlXFxzKj1cXHMqKFtcIl1bXlwiXStbXCJdfFsnXVteJ10rWyddfFteXFxzXCInPD4vXSspL2csXG4gICAgICBtYXRjaCA9PiBgJHtBVFRSX1BSRUZJWH0ke21hdGNofWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbmZ1bmN0aW9uIGdldFByb3BlcnR5TmFtZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXHMqPVxccypbJ1wiXSokL2csICcnKS5zcGxpdCgnICcpLnBvcCgpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlQ29tbWVudHMoZnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZnJhZ21lbnQsIE5vZGVGaWx0ZXIuU0hPV19DT01NRU5ULCBudWxsLCBmYWxzZSk7XG4gIGxldCBub2RlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgd2hpbGUgKG5vZGUgPSBpdGVyYXRvci5uZXh0Tm9kZSgpKSB7XG4gICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5vZGUudGV4dENvbnRlbnQpLCBub2RlKTtcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgbGV0IG5vZGU7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQgY3VycmVudE5vZGUoKSB7IHJldHVybiBub2RlOyB9LFxuICAgIG5leHROb2RlKCkge1xuICAgICAgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub2RlID0gY29udGV4dC5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkTm9kZXNbMF07XG4gICAgICB9IGVsc2UgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlLm5leHRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gISFub2RlO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoXG4gICAgY29udGV4dCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX1RFWFQsXG4gICAgbnVsbCxcbiAgICBmYWxzZSxcbiAgKTtcbn1cblxuY29uc3QgY3JlYXRlV2Fsa2VyID0gdHlwZW9mIHdpbmRvdy5TaGFkeURPTSA9PT0gJ29iamVjdCcgJiYgd2luZG93LlNoYWR5RE9NLmluVXNlID8gY3JlYXRlSW50ZXJuYWxXYWxrZXIgOiBjcmVhdGVFeHRlcm5hbFdhbGtlcjtcblxuY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShyYXdQYXJ0cywgaXNTVkcpIHtcbiAgY29uc3QgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICBjb25zdCBwYXJ0cyA9IFtdO1xuXG4gIGxldCBzaWduYXR1cmUgPSBjcmVhdGVTaWduYXR1cmUocmF3UGFydHMpO1xuICBpZiAoaXNTVkcpIHNpZ25hdHVyZSA9IGA8c3ZnPiR7c2lnbmF0dXJlfTwvc3ZnPmA7XG5cbiAgaWYgKElTX0lFKSB7XG4gICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gc2lnbmF0dXJlO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBgPHRlbXBsYXRlPiR7c2lnbmF0dXJlfTwvdGVtcGxhdGU+YDtcbiAgICB0ZW1wbGF0ZS5jb250ZW50LmFwcGVuZENoaWxkKGNvbnRhaW5lci5jaGlsZHJlblswXS5jb250ZW50KTtcbiAgfVxuXG4gIGlmIChpc1NWRykge1xuICAgIGNvbnN0IHN2Z1Jvb3QgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQ7XG4gICAgdGVtcGxhdGUuY29udGVudC5yZW1vdmVDaGlsZChzdmdSb290KTtcbiAgICBBcnJheS5mcm9tKHN2Z1Jvb3QuY2hpbGROb2RlcykuZm9yRWFjaChub2RlID0+IHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQobm9kZSkpO1xuICB9XG5cbiAgcmVwbGFjZUNvbW1lbnRzKHRlbXBsYXRlLmNvbnRlbnQpO1xuXG4gIGNvbnN0IGNvbXBpbGVXYWxrZXIgPSBjcmVhdGVXYWxrZXIodGVtcGxhdGUuY29udGVudCk7XG4gIGxldCBjb21waWxlSW5kZXggPSAwO1xuXG4gIHdoaWxlIChjb21waWxlV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICBjb25zdCBub2RlID0gY29tcGlsZVdhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG5cbiAgICAgIGlmICghdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSB0ZXh0Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9BTEwpO1xuICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgIGxldCBjdXJyZW50Tm9kZSA9IG5vZGU7XG4gICAgICAgICAgcmVzdWx0c1xuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBwbGFjZWhvbGRlcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBbYmVmb3JlLCBuZXh0XSA9IGFjYy5wb3AoKS5zcGxpdChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChiZWZvcmUpIGFjYy5wdXNoKGJlZm9yZSk7XG4gICAgICAgICAgICAgIGFjYy5wdXNoKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIGFjYy5wdXNoKG5leHQpO1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW3RleHRdKVxuICAgICAgICAgICAgLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlLnRleHRDb250ZW50ID0gcGFydDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGVcbiAgICAgICAgICAgICAgICAgIC5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydCksIGN1cnJlbnROb2RlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXF1YWwgPSBub2RlLnRleHRDb250ZW50Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICBpZiAoZXF1YWwpIHtcbiAgICAgICAgaWYgKCFJU19JRSkgbm9kZS50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICBwYXJ0c1tlcXVhbFsxXV0gPSBbY29tcGlsZUluZGV4LCByZXNvbHZlVmFsdWVdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIEFycmF5LmZyb20obm9kZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXR0ci52YWx1ZS50cmltKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBJU19JRSA/IGF0dHIubmFtZS5yZXBsYWNlKEFUVFJfUFJFRklYLCAnJykgOiBhdHRyLm5hbWU7XG4gICAgICAgIGNvbnN0IGVxdWFsID0gdmFsdWUubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMKTtcbiAgICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gZ2V0UHJvcGVydHlOYW1lKHJhd1BhcnRzW2VxdWFsWzFdXSk7XG4gICAgICAgICAgcGFydHNbZXF1YWxbMV1dID0gW2NvbXBpbGVJbmRleCwgcmVzb2x2ZVByb3BlcnR5KG5hbWUsIHByb3BlcnR5TmFtZSwgaXNTVkcpXTtcbiAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyLm5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSB2YWx1ZS5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfQUxMKTtcbiAgICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgICAgY29uc3QgcGFydGlhbE5hbWUgPSBgYXR0cl9fJHtuYW1lfWA7XG5cbiAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocGxhY2Vob2xkZXIsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IFssIGlkXSA9IHBsYWNlaG9sZGVyLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgICAgICAgIHBhcnRzW2lkXSA9IFtjb21waWxlSW5kZXgsIChob3N0LCB0YXJnZXQsIGF0dHJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHt9KTtcbiAgICAgICAgICAgICAgICBkYXRhW3BhcnRpYWxOYW1lXSA9IChkYXRhW3BhcnRpYWxOYW1lXSB8fCB2YWx1ZSkucmVwbGFjZShwbGFjZWhvbGRlciwgYXR0clZhbHVlID09IG51bGwgPyAnJyA6IGF0dHJWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdHMubGVuZ3RoID09PSAxKSB8fCAoaW5kZXggKyAxID09PSByZXN1bHRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUobmFtZSwgZGF0YVtwYXJ0aWFsTmFtZV0pO1xuICAgICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBhdHRyLnZhbHVlID0gJyc7XG5cbiAgICAgICAgICAgIGlmIChJU19JRSAmJiBuYW1lICE9PSBhdHRyLm5hbWUpIHtcbiAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29tcGlsZUluZGV4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gKGhvc3QsIHRhcmdldCwgYXJncykgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHsgdHlwZTogJ2Z1bmN0aW9uJyB9KTtcblxuICAgIGlmICh0ZW1wbGF0ZSAhPT0gZGF0YS50ZW1wbGF0ZSkge1xuICAgICAgaWYgKGRhdGEudGVtcGxhdGUpIHJlbW92ZVRlbXBsYXRlKHRhcmdldCk7XG5cbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuaW1wb3J0Tm9kZShhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCBob3N0LnRhZ05hbWUpLmNvbnRlbnQsIHRydWUpO1xuXG4gICAgICBjb25zdCByZW5kZXJXYWxrZXIgPSBjcmVhdGVXYWxrZXIoZnJhZ21lbnQpO1xuICAgICAgY29uc3QgY2xvbmVkUGFydHMgPSBwYXJ0cy5zbGljZSgwKTtcblxuICAgICAgbGV0IHJlbmRlckluZGV4ID0gMDtcbiAgICAgIGxldCBjdXJyZW50UGFydCA9IGNsb25lZFBhcnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNvbnN0IG1hcmtlcnMgPSBbXTtcblxuICAgICAgT2JqZWN0LmFzc2lnbihkYXRhLCB7IHRlbXBsYXRlLCBtYXJrZXJzIH0pO1xuXG4gICAgICB3aGlsZSAocmVuZGVyV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHJlbmRlcldhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICBpZiAoUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMLnRlc3Qobm9kZS50ZXh0Q29udGVudCkpIHtcbiAgICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKElTX0lFKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKEFUVFJfUkVHRVhQLCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgICBpZiAobm9kZS50YWdOYW1lLmluZGV4T2YoJy0nKSA+IC0xICYmICFjdXN0b21FbGVtZW50cy5nZXQobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgW2h0bWxdIE1pc3NpbmcgJyR7c3RyaW5naWZ5RWxlbWVudChub2RlKX0nIGVsZW1lbnQgZGVmaW5pdGlvbiBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KGhvc3QpfSdgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoY3VycmVudFBhcnQgJiYgY3VycmVudFBhcnRbMF0gPT09IHJlbmRlckluZGV4KSB7XG4gICAgICAgICAgbWFya2Vycy5wdXNoKFtub2RlLCBjdXJyZW50UGFydFsxXV0pO1xuICAgICAgICAgIGN1cnJlbnRQYXJ0ID0gY2xvbmVkUGFydHMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbmRlckluZGV4ICs9IDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNoaWxkTGlzdCA9IEFycmF5LmZyb20oZnJhZ21lbnQuY2hpbGROb2Rlcyk7XG5cbiAgICAgIGRhdGEuc3RhcnROb2RlID0gY2hpbGRMaXN0WzBdO1xuICAgICAgZGF0YS5lbmROb2RlID0gY2hpbGRMaXN0W2NoaWxkTGlzdC5sZW5ndGggLSAxXTtcblxuICAgICAgaWYgKHRhcmdldC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgbGV0IHByZXZpb3VzQ2hpbGQgPSB0YXJnZXQ7XG4gICAgICAgIGNoaWxkTGlzdC5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgIHRhcmdldC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgcHJldmlvdXNDaGlsZC5uZXh0U2libGluZyk7XG4gICAgICAgICAgcHJldmlvdXNDaGlsZCA9IGNoaWxkO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldC5hcHBlbmRDaGlsZChmcmFnbWVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGF0YS5tYXJrZXJzLmZvckVhY2goKFtub2RlLCBmbl0sIGluZGV4KSA9PiB7XG4gICAgICBmbihob3N0LCBub2RlLCBhcmdzW2luZGV4XSwgZGF0YSk7XG4gICAgfSk7XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3RlbXBsYXRlLmpzIl0sIm5hbWVzIjpbImNyZWF0ZU1hcCIsInNoYWR5Q1NTIiwic3RyaW5naWZ5RWxlbWVudCIsIklTX0lFIiwicmVzb2x2ZVN0eWxlTGlzdCIsInJlc29sdmVDbGFzc0xpc3QiLCJkYXRhTWFwIiwiZ2V0VGVtcGxhdGVFbmQiLCJub2RlIiwiZGF0YSIsImdldCIsImVuZE5vZGUiLCJyZW1vdmVUZW1wbGF0ZSIsInRhcmdldCIsInN0YXJ0Tm9kZSIsImxhc3ROZXh0U2libGluZyIsIm5leHRTaWJsaW5nIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwicmVzb2x2ZVZhbHVlIiwiaG9zdCIsInZhbHVlIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsInNldCIsInRleHRDb250ZW50IiwicmVzb2x2ZUFycmF5IiwibW92ZVBsYWNlaG9sZGVyIiwicHJldmlvdXNTaWJsaW5nIiwiaW5zZXJ0QmVmb3JlIiwicHJldk5vZGUiLCJuZXh0Tm9kZSIsImxhc3RJbmRleCIsImxlbmd0aCIsImFycmF5RW50cmllcyIsImluZGV4ZWRWYWx1ZSIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImlkIiwiaWRzIiwiU2V0IiwiZm9yRWFjaCIsImFkZCIsImVudHJ5IiwicGxhY2Vob2xkZXIiLCJoYXMiLCJhdmFpbGFibGUiLCJyZWR1Y2UiLCJlbnRyaWVzIiwiZmluZCIsImVudHJ5SXRlbSIsImRvY3VtZW50IiwiY3JlYXRlVGV4dE5vZGUiLCJwdXNoIiwicmVzb2x2ZVByb3BlcnR5IiwiYXR0ck5hbWUiLCJwcm9wZXJ0eU5hbWUiLCJpc1NWRyIsInN1YnN0ciIsImZuTWFwIiwiV2Vha01hcCIsImV2ZW50TmFtZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJmbiIsImFyZ3MiLCJTVkdFbGVtZW50IiwidW5kZWZpbmVkIiwicmVtb3ZlQXR0cmlidXRlIiwiYXR0clZhbHVlIiwiU3RyaW5nIiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwiVElNRVNUQU1QIiwiRGF0ZSIsIm5vdyIsImdldFBsYWNlaG9sZGVyIiwiUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQiLCJQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwiLCJSZWdFeHAiLCJQTEFDRUhPTERFUl9SRUdFWFBfQUxMIiwiQVRUUl9QUkVGSVgiLCJBVFRSX1JFR0VYUCIsInByZXBhcmVkVGVtcGxhdGVzIiwiYXBwbHlTaGFkeUNTUyIsInRlbXBsYXRlIiwidGFnTmFtZSIsInNoYWR5IiwiTWFwIiwiY2xvbmUiLCJjcmVhdGVFbGVtZW50IiwiY29udGVudCIsImFwcGVuZENoaWxkIiwiY2xvbmVOb2RlIiwic3R5bGVzIiwicXVlcnlTZWxlY3RvckFsbCIsImZyb20iLCJzdHlsZSIsImNvdW50IiwiY2hpbGROb2RlcyIsImkiLCJwcmVwYXJlVGVtcGxhdGUiLCJ0b0xvd2VyQ2FzZSIsImNyZWF0ZUlkIiwicGFydHMiLCJqb2luIiwiY3JlYXRlU2lnbmF0dXJlIiwic2lnbmF0dXJlIiwiYWNjIiwicGFydCIsInNsaWNlIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsInRlc3QiLCJjcmVhdGVJbnRlcm5hbFdhbGtlciIsImNvbnRleHQiLCJjdXJyZW50Tm9kZSIsImNyZWF0ZUV4dGVybmFsV2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIlNIT1dfVEVYVCIsImNyZWF0ZVdhbGtlciIsIndpbmRvdyIsIlNoYWR5RE9NIiwiaW5Vc2UiLCJjb250YWluZXIiLCJjb21waWxlIiwicmF3UGFydHMiLCJpbm5lckhUTUwiLCJjaGlsZHJlbiIsInN2Z1Jvb3QiLCJmaXJzdENoaWxkIiwiY29tcGlsZVdhbGtlciIsImNvbXBpbGVJbmRleCIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJyZXN1bHRzIiwiYmVmb3JlIiwibmV4dCIsImVxdWFsIiwiRUxFTUVOVF9OT0RFIiwiYXR0cmlidXRlcyIsImF0dHIiLCJ0cmltIiwibmFtZSIsInBhcnRpYWxOYW1lIiwiaW1wb3J0Tm9kZSIsInJlbmRlcldhbGtlciIsImNsb25lZFBhcnRzIiwicmVuZGVySW5kZXgiLCJjdXJyZW50UGFydCIsInNoaWZ0IiwibWFya2VycyIsImFzc2lnbiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImluZGV4T2YiLCJjdXN0b21FbGVtZW50cyIsIkVycm9yIiwiY2hpbGRMaXN0IiwicHJldmlvdXNDaGlsZCIsImNoaWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsU0FDRUEsU0FERixFQUNhQyxRQURiLEVBQ3VCQyxnQkFEdkIsRUFDeUNDLEtBRHpDLFFBRU8sVUFGUDtBQUlBLE9BQU9DLGdCQUFQLE1BQTZCLFNBQTdCO0FBQ0EsT0FBT0MsZ0JBQVAsTUFBNkIsYUFBN0I7QUFFQSxJQUFNQyxPQUFPLEdBQUdOLFNBQVMsRUFBekI7O0FBRUEsU0FBU08sY0FBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDNUIsTUFBSUMsSUFBSixDQUQ0QixDQUU1Qjs7QUFDQSxTQUFPRCxJQUFJLEtBQUtDLElBQUksR0FBR0gsT0FBTyxDQUFDSSxHQUFSLENBQVlGLElBQVosQ0FBWixDQUFKLElBQXNDQyxJQUFJLENBQUNFLE9BQWxELEVBQTJEO0FBQ3pESCxJQUFBQSxJQUFJLEdBQUdDLElBQUksQ0FBQ0UsT0FBWjtBQUNEOztBQUVELFNBQU9ILElBQVA7QUFDRDs7QUFFRCxTQUFTSSxjQUFULENBQXdCQyxNQUF4QixFQUFnQztBQUM5QixNQUFNSixJQUFJLEdBQUdILE9BQU8sQ0FBQ0ksR0FBUixDQUFZRyxNQUFaLENBQWI7QUFDQSxNQUFNQyxTQUFTLEdBQUdMLElBQUksQ0FBQ0ss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LEtBQW9CQyxJQUFJLENBQUNDLFNBQTdCLEVBQXdDO0FBQ3RDLFlBQUkyQixhQUFhLEdBQUdySyxNQUFwQjtBQUNBb0ssUUFBQUEsU0FBUyxDQUFDbEksT0FBVixDQUFrQixVQUFDb0ksS0FBRCxFQUFXO0FBQzNCdEssVUFBQUEsTUFBTSxDQUFDSSxVQUFQLENBQWtCYSxZQUFsQixDQUErQnFKLEtBQS9CLEVBQXNDRCxhQUFhLENBQUNsSyxXQUFwRDtBQUNBa0ssVUFBQUEsYUFBYSxHQUFHQyxLQUFoQjtBQUNELFNBSEQ7QUFJRCxPQU5ELE1BTU87QUFDTHRLLFFBQUFBLE1BQU0sQ0FBQ29GLFdBQVAsQ0FBbUIwQixRQUFuQjtBQUNEO0FBQ0Y7O0FBRURsSCxJQUFBQSxJQUFJLENBQUNnSyxPQUFMLENBQWExSCxPQUFiLENBQXFCLGlCQUFhUixLQUFiLEVBQXVCO0FBQUE7QUFBQSxVQUFyQi9CLElBQXFCO0FBQUEsVUFBZjZELEVBQWU7O0FBQzFDQSxNQUFBQSxFQUFFLENBQUNqRCxJQUFELEVBQU9aLElBQVAsRUFBYThELElBQUksQ0FBQy9CLEtBQUQsQ0FBakIsRUFBMEI5QixJQUExQixDQUFGO0FBQ0QsS0FGRDtBQUdELEdBNUREO0FBNkREIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlTWFwLCBzaGFkeUNTUywgc3RyaW5naWZ5RWxlbWVudCwgSVNfSUUsXG59IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHJlc29sdmVTdHlsZUxpc3QgZnJvbSAnLi9zdHlsZSc7XG5pbXBvcnQgcmVzb2x2ZUNsYXNzTGlzdCBmcm9tICcuL2NsYXNzTGlzdCc7XG5cbmNvbnN0IGRhdGFNYXAgPSBjcmVhdGVNYXAoKTtcblxuZnVuY3Rpb24gZ2V0VGVtcGxhdGVFbmQobm9kZSkge1xuICBsZXQgZGF0YTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduXG4gIHdoaWxlIChub2RlICYmIChkYXRhID0gZGF0YU1hcC5nZXQobm9kZSkpICYmIGRhdGEuZW5kTm9kZSkge1xuICAgIG5vZGUgPSBkYXRhLmVuZE5vZGU7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlVGVtcGxhdGUodGFyZ2V0KSB7XG4gIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQpO1xuICBjb25zdCBzdGFydE5vZGUgPSBkYXRhLnN0YXJ0Tm9kZTtcblxuICBpZiAoc3RhcnROb2RlKSB7XG4gICAgY29uc3QgZW5kTm9kZSA9IGdldFRlbXBsYXRlRW5kKGRhdGEuZW5kTm9kZSk7XG5cbiAgICBsZXQgbm9kZSA9IHN0YXJ0Tm9kZTtcbiAgICBjb25zdCBsYXN0TmV4dFNpYmxpbmcgPSBlbmROb2RlLm5leHRTaWJsaW5nO1xuXG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICAgIG5vZGUgPSBuZXh0U2libGluZyAhPT0gbGFzdE5leHRTaWJsaW5nICYmIG5leHRTaWJsaW5nO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlVmFsdWUoaG9zdCwgdGFyZ2V0LCB2YWx1ZSkge1xuICBjb25zdCB0eXBlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAnYXJyYXknIDogdHlwZW9mIHZhbHVlO1xuICBsZXQgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCwge30pO1xuXG4gIGlmIChkYXRhLnR5cGUgIT09IHR5cGUpIHtcbiAgICByZW1vdmVUZW1wbGF0ZSh0YXJnZXQpO1xuICAgIGRhdGEgPSBkYXRhTWFwLnNldCh0YXJnZXQsIHsgdHlwZSB9KTtcblxuICAgIGlmICh0YXJnZXQudGV4dENvbnRlbnQgIT09ICcnKSB7XG4gICAgICB0YXJnZXQudGV4dENvbnRlbnQgPSAnJztcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICB2YWx1ZShob3N0LCB0YXJnZXQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICByZXNvbHZlQXJyYXkoaG9zdCwgdGFyZ2V0LCB2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHZhbHVlICE9PSBkYXRhLnZhbHVlKSB7XG4gICAgICAgIGRhdGEudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGFyZ2V0LnRleHRDb250ZW50ID0gdHlwZSA9PT0gJ251bWJlcicgfHwgdmFsdWUgPyB2YWx1ZSA6ICcnO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1vdmVQbGFjZWhvbGRlcih0YXJnZXQsIHByZXZpb3VzU2libGluZykge1xuICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0KTtcbiAgY29uc3Qgc3RhcnROb2RlID0gZGF0YS5zdGFydE5vZGU7XG4gIGNvbnN0IGVuZE5vZGUgPSBnZXRUZW1wbGF0ZUVuZChkYXRhLmVuZE5vZGUpO1xuXG4gIHByZXZpb3VzU2libGluZy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0YXJnZXQsIHByZXZpb3VzU2libGluZy5uZXh0U2libGluZyk7XG5cbiAgbGV0IHByZXZOb2RlID0gdGFyZ2V0O1xuICBsZXQgbm9kZSA9IHN0YXJ0Tm9kZTtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBjb25zdCBuZXh0Tm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgcHJldk5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgcHJldk5vZGUubmV4dFNpYmxpbmcpO1xuICAgIHByZXZOb2RlID0gbm9kZTtcbiAgICBub2RlID0gbmV4dE5vZGUgIT09IGVuZE5vZGUubmV4dFNpYmxpbmcgJiYgbmV4dE5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUFycmF5KGhvc3QsIHRhcmdldCwgdmFsdWUpIHtcbiAgbGV0IHByZXZpb3VzU2libGluZyA9IHRhcmdldDtcbiAgY29uc3QgbGFzdEluZGV4ID0gdmFsdWUubGVuZ3RoIC0gMTtcbiAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCk7XG4gIGNvbnN0IHsgYXJyYXlFbnRyaWVzIH0gPSBkYXRhO1xuXG4gIGNvbnN0IGluZGV4ZWRWYWx1ZSA9IHZhbHVlLm1hcCgoaXRlbSwgaW5kZXgpID0+IFtcbiAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgJ2lkJykgPyBpdGVtLmlkIDogaW5kZXgsXG4gICAgaXRlbSxcbiAgXSk7XG5cbiAgaWYgKGFycmF5RW50cmllcykge1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQoKTtcbiAgICBpbmRleGVkVmFsdWUuZm9yRWFjaCgoW2lkXSkgPT4gaWRzLmFkZChpZCkpO1xuXG4gICAgYXJyYXlFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCB7IGlkLCBwbGFjZWhvbGRlciB9ID0gZW50cnk7XG4gICAgICBpZiAoIWlkcy5oYXMoaWQpKSB7XG4gICAgICAgIHJlbW92ZVRlbXBsYXRlKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgcGxhY2Vob2xkZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwbGFjZWhvbGRlcik7XG4gICAgICAgIGVudHJ5LmF2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGF0YS5hcnJheUVudHJpZXMgPSBpbmRleGVkVmFsdWUucmVkdWNlKChlbnRyaWVzLCBbaWQsIGl0ZW1dLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGVudHJ5ID0gYXJyYXlFbnRyaWVzICYmIGFycmF5RW50cmllc1xuICAgICAgLmZpbmQoZW50cnlJdGVtID0+IGVudHJ5SXRlbS5hdmFpbGFibGUgJiYgZW50cnlJdGVtLmlkID09PSBpZCk7XG5cbiAgICBsZXQgcGxhY2Vob2xkZXI7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBlbnRyeS5hdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgIHBsYWNlaG9sZGVyID0gZW50cnkucGxhY2Vob2xkZXI7XG5cbiAgICAgIGlmIChwbGFjZWhvbGRlci5wcmV2aW91c1NpYmxpbmcgIT09IHByZXZpb3VzU2libGluZykge1xuICAgICAgICBtb3ZlUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIHByZXZpb3VzU2libGluZyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpO1xuICAgICAgcHJldmlvdXNTaWJsaW5nLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHBsYWNlaG9sZGVyLCBwcmV2aW91c1NpYmxpbmcubmV4dFNpYmxpbmcpO1xuICAgIH1cblxuICAgIHJlc29sdmVWYWx1ZShob3N0LCBwbGFjZWhvbGRlciwgaXRlbSk7XG5cbiAgICBwcmV2aW91c1NpYmxpbmcgPSBnZXRUZW1wbGF0ZUVuZChkYXRhTWFwLmdldChwbGFjZWhvbGRlcikuZW5kTm9kZSB8fCBwbGFjZWhvbGRlcik7XG5cbiAgICBpZiAoaW5kZXggPT09IDApIGRhdGEuc3RhcnROb2RlID0gcGxhY2Vob2xkZXI7XG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIGRhdGEuZW5kTm9kZSA9IHByZXZpb3VzU2libGluZztcblxuICAgIGVudHJpZXMucHVzaCh7IGF2YWlsYWJsZTogdHJ1ZSwgaWQsIHBsYWNlaG9sZGVyIH0pO1xuXG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH0sIFtdKTtcblxuICBpZiAoYXJyYXlFbnRyaWVzKSB7XG4gICAgYXJyYXlFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCB7IGF2YWlsYWJsZSwgcGxhY2Vob2xkZXIgfSA9IGVudHJ5O1xuICAgICAgaWYgKGF2YWlsYWJsZSkge1xuICAgICAgICByZW1vdmVUZW1wbGF0ZShwbGFjZWhvbGRlcik7XG4gICAgICAgIHBsYWNlaG9sZGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVQcm9wZXJ0eShhdHRyTmFtZSwgcHJvcGVydHlOYW1lLCBpc1NWRykge1xuICBpZiAocHJvcGVydHlOYW1lLnN1YnN0cigwLCAyKSA9PT0gJ29uJykge1xuICAgIGNvbnN0IGZuTWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICBjb25zdCBldmVudE5hbWUgPSBwcm9wZXJ0eU5hbWUuc3Vic3RyKDIpO1xuXG4gICAgcmV0dXJuIChob3N0LCB0YXJnZXQsIHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIWZuTWFwLmhhcyh0YXJnZXQpKSB7XG4gICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjb25zdCBmbiA9IGZuTWFwLmdldCh0YXJnZXQpO1xuICAgICAgICAgIGlmIChmbikgZm4oaG9zdCwgLi4uYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBmbk1hcC5zZXQodGFyZ2V0LCB2YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHN3aXRjaCAoYXR0ck5hbWUpIHtcbiAgICBjYXNlICdzdHlsZSc6IHJldHVybiByZXNvbHZlU3R5bGVMaXN0O1xuICAgIGNhc2UgJ2NsYXNzJzogcmV0dXJuIHJlc29sdmVDbGFzc0xpc3Q7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAoaG9zdCwgdGFyZ2V0LCB2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIWlzU1ZHICYmICEodGFyZ2V0IGluc3RhbmNlb2YgU1ZHRWxlbWVudCkgJiYgKHByb3BlcnR5TmFtZSBpbiB0YXJnZXQpKSB7XG4gICAgICAgICAgaWYgKHRhcmdldFtwcm9wZXJ0eU5hbWVdICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICB0YXJnZXQucmVtb3ZlQXR0cmlidXRlKGF0dHJOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhdHRyVmFsdWUgPSB2YWx1ZSA9PT0gdHJ1ZSA/ICcnIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICBpZiAodGFyZ2V0LmdldEF0dHJpYnV0ZShhdHRyTmFtZSkgIT09IGF0dHJWYWx1ZSkge1xuICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShhdHRyTmFtZSwgYXR0clZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gIH1cbn1cblxuY29uc3QgVElNRVNUQU1QID0gRGF0ZS5ub3coKTtcblxuY29uc3QgZ2V0UGxhY2Vob2xkZXIgPSAoaWQgPSAwKSA9PiBge3toLSR7VElNRVNUQU1QfS0ke2lkfX19YDtcblxuY29uc3QgUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQgPSBnZXRQbGFjZWhvbGRlcignKFxcXFxkKyknKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCA9IG5ldyBSZWdFeHAoYF4ke1BMQUNFSE9MREVSX1JFR0VYUF9URVhUfSRgKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9BTEwgPSBuZXcgUmVnRXhwKFBMQUNFSE9MREVSX1JFR0VYUF9URVhULCAnZycpO1xuXG5jb25zdCBBVFRSX1BSRUZJWCA9IGAtLSR7VElNRVNUQU1QfS0tYDtcbmNvbnN0IEFUVFJfUkVHRVhQID0gbmV3IFJlZ0V4cChBVFRSX1BSRUZJWCwgJ2cnKTtcblxuY29uc3QgcHJlcGFyZWRUZW1wbGF0ZXMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCB0YWdOYW1lKSB7XG4gIGlmICghdGFnTmFtZSkgcmV0dXJuIHRlbXBsYXRlO1xuXG4gIHJldHVybiBzaGFkeUNTUygoc2hhZHkpID0+IHtcbiAgICBsZXQgbWFwID0gcHJlcGFyZWRUZW1wbGF0ZXMuZ2V0KHRlbXBsYXRlKTtcbiAgICBpZiAoIW1hcCkge1xuICAgICAgbWFwID0gbmV3IE1hcCgpO1xuICAgICAgcHJlcGFyZWRUZW1wbGF0ZXMuc2V0KHRlbXBsYXRlLCBtYXApO1xuICAgIH1cblxuICAgIGxldCBjbG9uZSA9IG1hcC5nZXQodGFnTmFtZSk7XG5cbiAgICBpZiAoIWNsb25lKSB7XG4gICAgICBjbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgICBjbG9uZS5jb250ZW50LmFwcGVuZENoaWxkKHRlbXBsYXRlLmNvbnRlbnQuY2xvbmVOb2RlKHRydWUpKTtcblxuICAgICAgbWFwLnNldCh0YWdOYW1lLCBjbG9uZSk7XG5cbiAgICAgIGNvbnN0IHN0eWxlcyA9IGNsb25lLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGUnKTtcblxuICAgICAgQXJyYXkuZnJvbShzdHlsZXMpLmZvckVhY2goKHN0eWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gc3R5bGUuY2hpbGROb2Rlcy5sZW5ndGggKyAxO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpICs9IDEpIHtcbiAgICAgICAgICBzdHlsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZXRQbGFjZWhvbGRlcigpKSwgc3R5bGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc2hhZHkucHJlcGFyZVRlbXBsYXRlKGNsb25lLCB0YWdOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cbiAgICByZXR1cm4gY2xvbmU7XG4gIH0sIHRlbXBsYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlkKHBhcnRzLCBpc1NWRykge1xuICByZXR1cm4gYCR7aXNTVkcgPyAnc3ZnOicgOiAnJ30ke3BhcnRzLmpvaW4oZ2V0UGxhY2Vob2xkZXIoKSl9YDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2lnbmF0dXJlKHBhcnRzKSB7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IHBhcnRzLnJlZHVjZSgoYWNjLCBwYXJ0LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgfVxuICAgIGlmIChwYXJ0cy5zbGljZShpbmRleCkuam9pbignJykubWF0Y2goL1xccyo8XFwvXFxzKih0YWJsZXx0cnx0aGVhZHx0Ym9keXx0Zm9vdHxjb2xncm91cCk+LykpIHtcbiAgICAgIHJldHVybiBgJHthY2N9PCEtLSR7Z2V0UGxhY2Vob2xkZXIoaW5kZXggLSAxKX0tLT4ke3BhcnR9YDtcbiAgICB9XG4gICAgcmV0dXJuIGFjYyArIGdldFBsYWNlaG9sZGVyKGluZGV4IC0gMSkgKyBwYXJ0O1xuICB9LCAnJyk7XG5cbiAgaWYgKElTX0lFKSB7XG4gICAgcmV0dXJuIHNpZ25hdHVyZS5yZXBsYWNlKFxuICAgICAgL3N0eWxlXFxzKj1cXHMqKFtcIl1bXlwiXStbXCJdfFsnXVteJ10rWyddfFteXFxzXCInPD4vXSspL2csXG4gICAgICBtYXRjaCA9PiBgJHtBVFRSX1BSRUZJWH0ke21hdGNofWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbmZ1bmN0aW9uIGdldFByb3BlcnR5TmFtZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXHMqPVxccypbJ1wiXSokL2csICcnKS5zcGxpdCgnICcpLnBvcCgpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlQ29tbWVudHMoZnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZnJhZ21lbnQsIE5vZGVGaWx0ZXIuU0hPV19DT01NRU5ULCBudWxsLCBmYWxzZSk7XG4gIGxldCBub2RlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgd2hpbGUgKG5vZGUgPSBpdGVyYXRvci5uZXh0Tm9kZSgpKSB7XG4gICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5vZGUudGV4dENvbnRlbnQpLCBub2RlKTtcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgbGV0IG5vZGU7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQgY3VycmVudE5vZGUoKSB7IHJldHVybiBub2RlOyB9LFxuICAgIG5leHROb2RlKCkge1xuICAgICAgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub2RlID0gY29udGV4dC5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkTm9kZXNbMF07XG4gICAgICB9IGVsc2UgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlLm5leHRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gISFub2RlO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoXG4gICAgY29udGV4dCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX1RFWFQsXG4gICAgbnVsbCxcbiAgICBmYWxzZSxcbiAgKTtcbn1cblxuY29uc3QgY3JlYXRlV2Fsa2VyID0gdHlwZW9mIHdpbmRvdy5TaGFkeURPTSA9PT0gJ29iamVjdCcgJiYgd2luZG93LlNoYWR5RE9NLmluVXNlID8gY3JlYXRlSW50ZXJuYWxXYWxrZXIgOiBjcmVhdGVFeHRlcm5hbFdhbGtlcjtcblxuY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShyYXdQYXJ0cywgaXNTVkcpIHtcbiAgY29uc3QgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICBjb25zdCBwYXJ0cyA9IFtdO1xuXG4gIGxldCBzaWduYXR1cmUgPSBjcmVhdGVTaWduYXR1cmUocmF3UGFydHMpO1xuICBpZiAoaXNTVkcpIHNpZ25hdHVyZSA9IGA8c3ZnPiR7c2lnbmF0dXJlfTwvc3ZnPmA7XG5cbiAgaWYgKElTX0lFKSB7XG4gICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gc2lnbmF0dXJlO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBgPHRlbXBsYXRlPiR7c2lnbmF0dXJlfTwvdGVtcGxhdGU+YDtcbiAgICB0ZW1wbGF0ZS5jb250ZW50LmFwcGVuZENoaWxkKGNvbnRhaW5lci5jaGlsZHJlblswXS5jb250ZW50KTtcbiAgfVxuXG4gIGlmIChpc1NWRykge1xuICAgIGNvbnN0IHN2Z1Jvb3QgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQ7XG4gICAgdGVtcGxhdGUuY29udGVudC5yZW1vdmVDaGlsZChzdmdSb290KTtcbiAgICBBcnJheS5mcm9tKHN2Z1Jvb3QuY2hpbGROb2RlcykuZm9yRWFjaChub2RlID0+IHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQobm9kZSkpO1xuICB9XG5cbiAgcmVwbGFjZUNvbW1lbnRzKHRlbXBsYXRlLmNvbnRlbnQpO1xuXG4gIGNvbnN0IGNvbXBpbGVXYWxrZXIgPSBjcmVhdGVXYWxrZXIodGVtcGxhdGUuY29udGVudCk7XG4gIGxldCBjb21waWxlSW5kZXggPSAwO1xuXG4gIHdoaWxlIChjb21waWxlV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICBjb25zdCBub2RlID0gY29tcGlsZVdhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG5cbiAgICAgIGlmICghdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSB0ZXh0Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9BTEwpO1xuICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgIGxldCBjdXJyZW50Tm9kZSA9IG5vZGU7XG4gICAgICAgICAgcmVzdWx0c1xuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBwbGFjZWhvbGRlcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBbYmVmb3JlLCBuZXh0XSA9IGFjYy5wb3AoKS5zcGxpdChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChiZWZvcmUpIGFjYy5wdXNoKGJlZm9yZSk7XG4gICAgICAgICAgICAgIGFjYy5wdXNoKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIGFjYy5wdXNoKG5leHQpO1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW3RleHRdKVxuICAgICAgICAgICAgLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlLnRleHRDb250ZW50ID0gcGFydDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGVcbiAgICAgICAgICAgICAgICAgIC5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydCksIGN1cnJlbnROb2RlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXF1YWwgPSBub2RlLnRleHRDb250ZW50Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICBpZiAoZXF1YWwpIHtcbiAgICAgICAgaWYgKCFJU19JRSkgbm9kZS50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICBwYXJ0c1tlcXVhbFsxXV0gPSBbY29tcGlsZUluZGV4LCByZXNvbHZlVmFsdWVdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIEFycmF5LmZyb20obm9kZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXR0ci52YWx1ZS50cmltKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBJU19JRSA/IGF0dHIubmFtZS5yZXBsYWNlKEFUVFJfUFJFRklYLCAnJykgOiBhdHRyLm5hbWU7XG4gICAgICAgIGNvbnN0IGVxdWFsID0gdmFsdWUubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMKTtcbiAgICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gZ2V0UHJvcGVydHlOYW1lKHJhd1BhcnRzW2VxdWFsWzFdXSk7XG4gICAgICAgICAgcGFydHNbZXF1YWxbMV1dID0gW2NvbXBpbGVJbmRleCwgcmVzb2x2ZVByb3BlcnR5KG5hbWUsIHByb3BlcnR5TmFtZSwgaXNTVkcpXTtcbiAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyLm5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSB2YWx1ZS5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfQUxMKTtcbiAgICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgICAgY29uc3QgcGFydGlhbE5hbWUgPSBgYXR0cl9fJHtuYW1lfWA7XG5cbiAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocGxhY2Vob2xkZXIsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IFssIGlkXSA9IHBsYWNlaG9sZGVyLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgICAgICAgIHBhcnRzW2lkXSA9IFtjb21waWxlSW5kZXgsIChob3N0LCB0YXJnZXQsIGF0dHJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHt9KTtcbiAgICAgICAgICAgICAgICBkYXRhW3BhcnRpYWxOYW1lXSA9IChkYXRhW3BhcnRpYWxOYW1lXSB8fCB2YWx1ZSkucmVwbGFjZShwbGFjZWhvbGRlciwgYXR0clZhbHVlID09IG51bGwgPyAnJyA6IGF0dHJWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdHMubGVuZ3RoID09PSAxKSB8fCAoaW5kZXggKyAxID09PSByZXN1bHRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUobmFtZSwgZGF0YVtwYXJ0aWFsTmFtZV0pO1xuICAgICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBhdHRyLnZhbHVlID0gJyc7XG5cbiAgICAgICAgICAgIGlmIChJU19JRSAmJiBuYW1lICE9PSBhdHRyLm5hbWUpIHtcbiAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29tcGlsZUluZGV4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gKGhvc3QsIHRhcmdldCwgYXJncykgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHsgdHlwZTogJ2Z1bmN0aW9uJyB9KTtcblxuICAgIGlmICh0ZW1wbGF0ZSAhPT0gZGF0YS50ZW1wbGF0ZSkge1xuICAgICAgaWYgKGRhdGEudGVtcGxhdGUpIHJlbW92ZVRlbXBsYXRlKHRhcmdldCk7XG5cbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuaW1wb3J0Tm9kZShhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCBob3N0LnRhZ05hbWUpLmNvbnRlbnQsIHRydWUpO1xuXG4gICAgICBjb25zdCByZW5kZXJXYWxrZXIgPSBjcmVhdGVXYWxrZXIoZnJhZ21lbnQpO1xuICAgICAgY29uc3QgY2xvbmVkUGFydHMgPSBwYXJ0cy5zbGljZSgwKTtcblxuICAgICAgbGV0IHJlbmRlckluZGV4ID0gMDtcbiAgICAgIGxldCBjdXJyZW50UGFydCA9IGNsb25lZFBhcnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNvbnN0IG1hcmtlcnMgPSBbXTtcblxuICAgICAgT2JqZWN0LmFzc2lnbihkYXRhLCB7IHRlbXBsYXRlLCBtYXJrZXJzIH0pO1xuXG4gICAgICB3aGlsZSAocmVuZGVyV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHJlbmRlcldhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICBpZiAoUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMLnRlc3Qobm9kZS50ZXh0Q29udGVudCkpIHtcbiAgICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKElTX0lFKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKEFUVFJfUkVHRVhQLCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgICBpZiAobm9kZS50YWdOYW1lLmluZGV4T2YoJy0nKSA+IC0xICYmICFjdXN0b21FbGVtZW50cy5nZXQobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgW2h0bWxdIE1pc3NpbmcgJyR7c3RyaW5naWZ5RWxlbWVudChub2RlKX0nIGVsZW1lbnQgZGVmaW5pdGlvbiBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KGhvc3QpfSdgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoY3VycmVudFBhcnQgJiYgY3VycmVudFBhcnRbMF0gPT09IHJlbmRlckluZGV4KSB7XG4gICAgICAgICAgbWFya2Vycy5wdXNoKFtub2RlLCBjdXJyZW50UGFydFsxXV0pO1xuICAgICAgICAgIGN1cnJlbnRQYXJ0ID0gY2xvbmVkUGFydHMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbmRlckluZGV4ICs9IDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNoaWxkTGlzdCA9IEFycmF5LmZyb20oZnJhZ21lbnQuY2hpbGROb2Rlcyk7XG5cbiAgICAgIGRhdGEuc3RhcnROb2RlID0gY2hpbGRMaXN0WzBdO1xuICAgICAgZGF0YS5lbmROb2RlID0gY2hpbGRMaXN0W2NoaWxkTGlzdC5sZW5ndGggLSAxXTtcblxuICAgICAgaWYgKHRhcmdldC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgbGV0IHByZXZpb3VzQ2hpbGQgPSB0YXJnZXQ7XG4gICAgICAgIGNoaWxkTGlzdC5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgIHRhcmdldC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgcHJldmlvdXNDaGlsZC5uZXh0U2libGluZyk7XG4gICAgICAgICAgcHJldmlvdXNDaGlsZCA9IGNoaWxkO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldC5hcHBlbmRDaGlsZChmcmFnbWVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGF0YS5tYXJrZXJzLmZvckVhY2goKFtub2RlLCBmbl0sIGluZGV4KSA9PiB7XG4gICAgICBmbihob3N0LCBub2RlLCBhcmdzW2luZGV4XSwgZGF0YSk7XG4gICAgfSk7XG4gIH07XG59XG4iXX0=

@@ -6,6 +6,4 @@ export { default as define } from './define';

export { default as render } from './render';
export { dispatch } from './utils';
export { html, svg } from './html';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiZGVmaW5lIiwicHJvcGVydHkiLCJwYXJlbnQiLCJjaGlsZHJlbiIsInJlbmRlciIsImRpc3BhdGNoIiwiaHRtbCIsInN2ZyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBV0MsTUFBcEIsUUFBa0MsVUFBbEM7QUFDQSxTQUFTRCxXQUFXRSxRQUFwQixRQUFvQyxZQUFwQztBQUNBLFNBQVNGLFdBQVdHLE1BQXBCLFFBQWtDLFVBQWxDO0FBQ0EsU0FBU0gsV0FBV0ksUUFBcEIsUUFBb0MsWUFBcEM7QUFDQSxTQUFTSixXQUFXSyxNQUFwQixRQUFrQyxVQUFsQzs7QUFFQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCOztBQUVBLFNBQVNDLElBQVQsRUFBZUMsR0FBZixRQUEwQixRQUExQiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgZGVmaW5lIH0gZnJvbSAnLi9kZWZpbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwcm9wZXJ0eSB9IGZyb20gJy4vcHJvcGVydHknO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJlbnQgfSBmcm9tICcuL3BhcmVudCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNoaWxkcmVuIH0gZnJvbSAnLi9jaGlsZHJlbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbmRlciB9IGZyb20gJy4vcmVuZGVyJztcblxuZXhwb3J0IHsgZGlzcGF0Y2ggfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgaHRtbCwgc3ZnIH0gZnJvbSAnLi9odG1sJztcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiZGVmaW5lIiwicHJvcGVydHkiLCJwYXJlbnQiLCJjaGlsZHJlbiIsInJlbmRlciIsImRpc3BhdGNoIiwiaHRtbCIsInN2ZyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxJQUFJQyxNQUFwQixRQUFrQyxVQUFsQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsUUFBcEIsUUFBb0MsWUFBcEM7QUFDQSxTQUFTRixPQUFPLElBQUlHLE1BQXBCLFFBQWtDLFVBQWxDO0FBQ0EsU0FBU0gsT0FBTyxJQUFJSSxRQUFwQixRQUFvQyxZQUFwQztBQUNBLFNBQVNKLE9BQU8sSUFBSUssTUFBcEIsUUFBa0MsVUFBbEM7QUFFQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCO0FBRUEsU0FBU0MsSUFBVCxFQUFlQyxHQUFmLFFBQTBCLFFBQTFCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBkZWZpbmUgfSBmcm9tICcuL2RlZmluZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHByb3BlcnR5IH0gZnJvbSAnLi9wcm9wZXJ0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhcmVudCB9IGZyb20gJy4vcGFyZW50JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY2hpbGRyZW4gfSBmcm9tICcuL2NoaWxkcmVuJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVuZGVyIH0gZnJvbSAnLi9yZW5kZXInO1xuXG5leHBvcnQgeyBkaXNwYXRjaCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgeyBodG1sLCBzdmcgfSBmcm9tICcuL2h0bWwnO1xuIl19
var map = new WeakMap();
document.addEventListener('@invalidate', function (event) {

@@ -39,2 +38,3 @@ var set = map.get(event.composedPath()[0]);

var set = map.get(target);
if (!set) {

@@ -46,3 +46,2 @@ set = new Set();

set.add(invalidate);
return function () {

@@ -58,2 +57,2 @@ set.delete(invalidate);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJlbnQuanMiXSwibmFtZXMiOlsibWFwIiwiV2Vha01hcCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50Iiwic2V0IiwiZ2V0IiwiY29tcG9zZWRQYXRoIiwiZm9yRWFjaCIsImZuIiwid2FsayIsIm5vZGUiLCJwYXJlbnRFbGVtZW50IiwicGFyZW50Tm9kZSIsImhvc3QiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJwYXJlbnQiLCJoeWJyaWRzT3JGbiIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwidGFyZ2V0IiwiU2V0IiwiYWRkIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxNQUFNLElBQUlDLE9BQUosRUFBWjs7QUFFQUMsU0FBU0MsZ0JBQVQsQ0FBMEIsYUFBMUIsRUFBeUMsVUFBQ0MsS0FBRCxFQUFXO0FBQ2xELE1BQU1DLE1BQU1MLElBQUlNLEdBQUosQ0FBUUYsTUFBTUcsWUFBTixHQUFxQixDQUFyQixDQUFSLENBQVo7QUFDQSxNQUFJRixHQUFKLEVBQVNBLElBQUlHLE9BQUosQ0FBWTtBQUFBLFdBQU1DLElBQU47QUFBQSxHQUFaO0FBQ1YsQ0FIRDs7QUFLQSxTQUFTQyxJQUFULENBQWNDLElBQWQsRUFBb0JGLEVBQXBCLEVBQXdCO0FBQ3RCLE1BQUlHLGdCQUFnQkQsS0FBS0MsYUFBTCxJQUFzQkQsS0FBS0UsVUFBTCxDQUFnQkMsSUFBMUQ7O0FBRUEsU0FBT0YsYUFBUCxFQUFzQjtBQUNwQixRQUFNRyxVQUFVSCxjQUFjSSxXQUFkLENBQTBCRCxPQUExQzs7QUFFQSxRQUFJQSxXQUFXTixHQUFHTSxPQUFILENBQWYsRUFBNEI7QUFDMUIsYUFBT0gsYUFBUDtBQUNEOztBQUVEQSxvQkFBZ0JBLGNBQWNBLGFBQWQsSUFDVkEsY0FBY0MsVUFBZCxJQUE0QkQsY0FBY0MsVUFBZCxDQUF5QkMsSUFEM0Q7QUFFRDs7QUFFRCxTQUFPRixpQkFBaUIsSUFBeEI7QUFDRDs7QUFFRCxlQUFlLFNBQVNLLE1BQVQsQ0FBZ0JDLFdBQWhCLEVBQTZCO0FBQzFDLE1BQU1ULEtBQUssT0FBT1MsV0FBUCxLQUF1QixVQUF2QixHQUFvQ0EsV0FBcEMsR0FBa0Q7QUFBQSxXQUFXSCxZQUFZRyxXQUF2QjtBQUFBLEdBQTdEO0FBQ0EsU0FBTztBQUNMWixTQUFLO0FBQUEsYUFBUUksS0FBS0ksSUFBTCxFQUFXTCxFQUFYLENBQVI7QUFBQSxLQURBO0FBRUxVLFdBRkssbUJBRUdMLElBRkgsRUFFU00sR0FGVCxFQUVjQyxVQUZkLEVBRTBCO0FBQzdCLFVBQU1DLFNBQVNSLEtBQUtNLEdBQUwsQ0FBZjs7QUFFQSxVQUFJRSxNQUFKLEVBQVk7QUFDVixZQUFJakIsTUFBTUwsSUFBSU0sR0FBSixDQUFRZ0IsTUFBUixDQUFWO0FBQ0EsWUFBSSxDQUFDakIsR0FBTCxFQUFVO0FBQ1JBLGdCQUFNLElBQUlrQixHQUFKLEVBQU47QUFDQXZCLGNBQUlLLEdBQUosQ0FBUWlCLE1BQVIsRUFBZ0JqQixHQUFoQjtBQUNEOztBQUVEQSxZQUFJbUIsR0FBSixDQUFRSCxVQUFSOztBQUVBLGVBQU8sWUFBTTtBQUNYaEIsY0FBSW9CLE1BQUosQ0FBV0osVUFBWDtBQUNBQTtBQUNELFNBSEQ7QUFJRDs7QUFFRCxhQUFPLEtBQVA7QUFDRDtBQXJCSSxHQUFQO0FBdUJEIiwiZmlsZSI6InBhcmVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0BpbnZhbGlkYXRlJywgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHNldCA9IG1hcC5nZXQoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0pO1xuICBpZiAoc2V0KSBzZXQuZm9yRWFjaChmbiA9PiBmbigpKTtcbn0pO1xuXG5mdW5jdGlvbiB3YWxrKG5vZGUsIGZuKSB7XG4gIGxldCBwYXJlbnRFbGVtZW50ID0gbm9kZS5wYXJlbnRFbGVtZW50IHx8IG5vZGUucGFyZW50Tm9kZS5ob3N0O1xuXG4gIHdoaWxlIChwYXJlbnRFbGVtZW50KSB7XG4gICAgY29uc3QgaHlicmlkcyA9IHBhcmVudEVsZW1lbnQuY29uc3RydWN0b3IuaHlicmlkcztcblxuICAgIGlmIChoeWJyaWRzICYmIGZuKGh5YnJpZHMpKSB7XG4gICAgICByZXR1cm4gcGFyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50XG4gICAgICB8fCAocGFyZW50RWxlbWVudC5wYXJlbnROb2RlICYmIHBhcmVudEVsZW1lbnQucGFyZW50Tm9kZS5ob3N0KTtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRFbGVtZW50IHx8IG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcmVudChoeWJyaWRzT3JGbikge1xuICBjb25zdCBmbiA9IHR5cGVvZiBoeWJyaWRzT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IGh5YnJpZHNPckZuIDogaHlicmlkcyA9PiBoeWJyaWRzID09PSBoeWJyaWRzT3JGbjtcbiAgcmV0dXJuIHtcbiAgICBnZXQ6IGhvc3QgPT4gd2Fsayhob3N0LCBmbiksXG4gICAgY29ubmVjdChob3N0LCBrZXksIGludmFsaWRhdGUpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGhvc3Rba2V5XTtcblxuICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICBsZXQgc2V0ID0gbWFwLmdldCh0YXJnZXQpO1xuICAgICAgICBpZiAoIXNldCkge1xuICAgICAgICAgIHNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICBtYXAuc2V0KHRhcmdldCwgc2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldC5hZGQoaW52YWxpZGF0ZSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBzZXQuZGVsZXRlKGludmFsaWRhdGUpO1xuICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJlbnQuanMiXSwibmFtZXMiOlsibWFwIiwiV2Vha01hcCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50Iiwic2V0IiwiZ2V0IiwiY29tcG9zZWRQYXRoIiwiZm9yRWFjaCIsImZuIiwid2FsayIsIm5vZGUiLCJwYXJlbnRFbGVtZW50IiwicGFyZW50Tm9kZSIsImhvc3QiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJwYXJlbnQiLCJoeWJyaWRzT3JGbiIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwidGFyZ2V0IiwiU2V0IiwiYWRkIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxHQUFHLEdBQUcsSUFBSUMsT0FBSixFQUFaO0FBRUFDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsYUFBMUIsRUFBeUMsVUFBQ0MsS0FBRCxFQUFXO0FBQ2xELE1BQU1DLEdBQUcsR0FBR0wsR0FBRyxDQUFDTSxHQUFKLENBQVFGLEtBQUssQ0FBQ0csWUFBTixHQUFxQixDQUFyQixDQUFSLENBQVo7QUFDQSxNQUFJRixHQUFKLEVBQVNBLEdBQUcsQ0FBQ0csT0FBSixDQUFZLFVBQUFDLEVBQUU7QUFBQSxXQUFJQSxFQUFFLEVBQU47QUFBQSxHQUFkO0FBQ1YsQ0FIRDs7QUFLQSxTQUFTQyxJQUFULENBQWNDLElBQWQsRUFBb0JGLEVBQXBCLEVBQXdCO0FBQ3RCLE1BQUlHLGFBQWEsR0FBR0QsSUFBSSxDQUFDQyxhQUFMLElBQXNCRCxJQUFJLENBQUNFLFVBQUwsQ0FBZ0JDLElBQTFEOztBQUVBLFNBQU9GLGFBQVAsRUFBc0I7QUFDcEIsUUFBTUcsT0FBTyxHQUFHSCxhQUFhLENBQUNJLFdBQWQsQ0FBMEJELE9BQTFDOztBQUVBLFFBQUlBLE9BQU8sSUFBSU4sRUFBRSxDQUFDTSxPQUFELENBQWpCLEVBQTRCO0FBQzFCLGFBQU9ILGFBQVA7QUFDRDs7QUFFREEsSUFBQUEsYUFBYSxHQUFHQSxhQUFhLENBQUNBLGFBQWQsSUFDVkEsYUFBYSxDQUFDQyxVQUFkLElBQTRCRCxhQUFhLENBQUNDLFVBQWQsQ0FBeUJDLElBRDNEO0FBRUQ7O0FBRUQsU0FBT0YsYUFBYSxJQUFJLElBQXhCO0FBQ0Q7O0FBRUQsZUFBZSxTQUFTSyxNQUFULENBQWdCQyxXQUFoQixFQUE2QjtBQUMxQyxNQUFNVCxFQUFFLEdBQUcsT0FBT1MsV0FBUCxLQUF1QixVQUF2QixHQUFvQ0EsV0FBcEMsR0FBa0QsVUFBQUgsT0FBTztBQUFBLFdBQUlBLE9BQU8sS0FBS0csV0FBaEI7QUFBQSxHQUFwRTtBQUNBLFNBQU87QUFDTFosSUFBQUEsR0FBRyxFQUFFLGFBQUFRLElBQUk7QUFBQSxhQUFJSixJQUFJLENBQUNJLElBQUQsRUFBT0wsRUFBUCxDQUFSO0FBQUEsS0FESjtBQUVMVSxJQUFBQSxPQUZLLG1CQUVHTCxJQUZILEVBRVNNLEdBRlQsRUFFY0MsVUFGZCxFQUUwQjtBQUM3QixVQUFNQyxNQUFNLEdBQUdSLElBQUksQ0FBQ00sR0FBRCxDQUFuQjs7QUFFQSxVQUFJRSxNQUFKLEVBQVk7QUFDVixZQUFJakIsR0FBRyxHQUFHTCxHQUFHLENBQUNNLEdBQUosQ0FBUWdCLE1BQVIsQ0FBVjs7QUFDQSxZQUFJLENBQUNqQixHQUFMLEVBQVU7QUFDUkEsVUFBQUEsR0FBRyxHQUFHLElBQUlrQixHQUFKLEVBQU47QUFDQXZCLFVBQUFBLEdBQUcsQ0FBQ0ssR0FBSixDQUFRaUIsTUFBUixFQUFnQmpCLEdBQWhCO0FBQ0Q7O0FBRURBLFFBQUFBLEdBQUcsQ0FBQ21CLEdBQUosQ0FBUUgsVUFBUjtBQUVBLGVBQU8sWUFBTTtBQUNYaEIsVUFBQUEsR0FBRyxDQUFDb0IsTUFBSixDQUFXSixVQUFYO0FBQ0FBLFVBQUFBLFVBQVU7QUFDWCxTQUhEO0FBSUQ7O0FBRUQsYUFBTyxLQUFQO0FBQ0Q7QUFyQkksR0FBUDtBQXVCRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0BpbnZhbGlkYXRlJywgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHNldCA9IG1hcC5nZXQoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0pO1xuICBpZiAoc2V0KSBzZXQuZm9yRWFjaChmbiA9PiBmbigpKTtcbn0pO1xuXG5mdW5jdGlvbiB3YWxrKG5vZGUsIGZuKSB7XG4gIGxldCBwYXJlbnRFbGVtZW50ID0gbm9kZS5wYXJlbnRFbGVtZW50IHx8IG5vZGUucGFyZW50Tm9kZS5ob3N0O1xuXG4gIHdoaWxlIChwYXJlbnRFbGVtZW50KSB7XG4gICAgY29uc3QgaHlicmlkcyA9IHBhcmVudEVsZW1lbnQuY29uc3RydWN0b3IuaHlicmlkcztcblxuICAgIGlmIChoeWJyaWRzICYmIGZuKGh5YnJpZHMpKSB7XG4gICAgICByZXR1cm4gcGFyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50XG4gICAgICB8fCAocGFyZW50RWxlbWVudC5wYXJlbnROb2RlICYmIHBhcmVudEVsZW1lbnQucGFyZW50Tm9kZS5ob3N0KTtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRFbGVtZW50IHx8IG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcmVudChoeWJyaWRzT3JGbikge1xuICBjb25zdCBmbiA9IHR5cGVvZiBoeWJyaWRzT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IGh5YnJpZHNPckZuIDogaHlicmlkcyA9PiBoeWJyaWRzID09PSBoeWJyaWRzT3JGbjtcbiAgcmV0dXJuIHtcbiAgICBnZXQ6IGhvc3QgPT4gd2Fsayhob3N0LCBmbiksXG4gICAgY29ubmVjdChob3N0LCBrZXksIGludmFsaWRhdGUpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGhvc3Rba2V5XTtcblxuICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICBsZXQgc2V0ID0gbWFwLmdldCh0YXJnZXQpO1xuICAgICAgICBpZiAoIXNldCkge1xuICAgICAgICAgIHNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICBtYXAuc2V0KHRhcmdldCwgc2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldC5hZGQoaW52YWxpZGF0ZSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBzZXQuZGVsZXRlKGludmFsaWRhdGUpO1xuICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gIH07XG59XG4iXX0=

@@ -1,2 +0,2 @@

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

@@ -10,5 +10,6 @@ import { camelToDash } from './utils';

var objectTransform = function objectTransform(value) {
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {
throw TypeError('[property] Argument is not an object: ' + (typeof v === 'undefined' ? 'undefined' : _typeof(v)));
if (_typeof(value) !== 'object') {
throw TypeError("[property] Argument is not an object: ".concat(typeof v === "undefined" ? "undefined" : _typeof(v)));
}
return value && Object.freeze(value);

@@ -18,3 +19,4 @@ };

export default function property(value, connect) {
var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);
var type = _typeof(value);
var transform = defaultTransform;

@@ -26,8 +28,11 @@

break;
case 'number':
transform = Number;
break;
case 'boolean':
transform = Boolean;
break;
case 'function':

@@ -37,2 +42,3 @@ transform = value;

break;
case 'object':

@@ -42,2 +48,3 @@ if (value) Object.freeze(value);

break;
default:

@@ -54,3 +61,3 @@ break;

var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : value;
var oldValue = arguments[2];
var oldValue = arguments.length > 2 ? arguments[2] : undefined;
return transform(val, oldValue);

@@ -72,2 +79,2 @@ },

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wZXJ0eS5qcyJdLCJuYW1lcyI6WyJjYW1lbFRvRGFzaCIsImRlZmF1bHRUcmFuc2Zvcm0iLCJ2Iiwib2JqZWN0VHJhbnNmb3JtIiwidmFsdWUiLCJUeXBlRXJyb3IiLCJPYmplY3QiLCJmcmVlemUiLCJwcm9wZXJ0eSIsImNvbm5lY3QiLCJ0eXBlIiwidHJhbnNmb3JtIiwiU3RyaW5nIiwiTnVtYmVyIiwiQm9vbGVhbiIsImdldCIsImhvc3QiLCJ2YWwiLCJzZXQiLCJvbGRWYWx1ZSIsImtleSIsImludmFsaWRhdGUiLCJhdHRyTmFtZSIsImhhc0F0dHJpYnV0ZSIsImF0dHJWYWx1ZSIsImdldEF0dHJpYnV0ZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxXQUFULFFBQTRCLFNBQTVCOztBQUVBLElBQU1DLG1CQUFtQixTQUFuQkEsZ0JBQW1CO0FBQUEsU0FBS0MsQ0FBTDtBQUFBLENBQXpCOztBQUVBLElBQU1DLGtCQUFrQixTQUFsQkEsZUFBa0IsQ0FBQ0MsS0FBRCxFQUFXO0FBQ2pDLE1BQUksUUFBT0EsS0FBUCx5Q0FBT0EsS0FBUCxPQUFpQixRQUFyQixFQUErQjtBQUM3QixVQUFNQyw2REFBMERILENBQTFELHlDQUEwREEsQ0FBMUQsR0FBTjtBQUNEO0FBQ0QsU0FBT0UsU0FBU0UsT0FBT0MsTUFBUCxDQUFjSCxLQUFkLENBQWhCO0FBQ0QsQ0FMRDs7QUFPQSxlQUFlLFNBQVNJLFFBQVQsQ0FBa0JKLEtBQWxCLEVBQXlCSyxPQUF6QixFQUFrQztBQUMvQyxNQUFNQyxjQUFjTixLQUFkLHlDQUFjQSxLQUFkLENBQU47QUFDQSxNQUFJTyxZQUFZVixnQkFBaEI7O0FBRUEsVUFBUVMsSUFBUjtBQUNFLFNBQUssUUFBTDtBQUNFQyxrQkFBWUMsTUFBWjtBQUNBO0FBQ0YsU0FBSyxRQUFMO0FBQ0VELGtCQUFZRSxNQUFaO0FBQ0E7QUFDRixTQUFLLFNBQUw7QUFDRUYsa0JBQVlHLE9BQVo7QUFDQTtBQUNGLFNBQUssVUFBTDtBQUNFSCxrQkFBWVAsS0FBWjtBQUNBQSxjQUFRTyxXQUFSO0FBQ0E7QUFDRixTQUFLLFFBQUw7QUFDRSxVQUFJUCxLQUFKLEVBQVdFLE9BQU9DLE1BQVAsQ0FBY0gsS0FBZDtBQUNYTyxrQkFBWVIsZUFBWjtBQUNBO0FBQ0Y7QUFBUztBQWxCWDs7QUFxQkEsU0FBTztBQUNMWSxTQUFLLGFBQUNDLElBQUQ7QUFBQSxVQUFPQyxHQUFQLHVFQUFhYixLQUFiO0FBQUEsYUFBdUJhLEdBQXZCO0FBQUEsS0FEQTtBQUVMQyxTQUFLLGFBQUNGLElBQUQ7QUFBQSxVQUFPQyxHQUFQLHVFQUFhYixLQUFiO0FBQUEsVUFBb0JlLFFBQXBCO0FBQUEsYUFBaUNSLFVBQVVNLEdBQVYsRUFBZUUsUUFBZixDQUFqQztBQUFBLEtBRkE7QUFHTFYsYUFBU0MsU0FBUyxRQUFULElBQXFCQSxTQUFTLFdBQTlCLEdBQ0wsVUFBQ00sSUFBRCxFQUFPSSxHQUFQLEVBQVlDLFVBQVosRUFBMkI7QUFDM0IsVUFBSUwsS0FBS0ksR0FBTCxNQUFjaEIsS0FBbEIsRUFBeUI7QUFDdkIsWUFBTWtCLFdBQVd0QixZQUFZb0IsR0FBWixDQUFqQjs7QUFFQSxZQUFJSixLQUFLTyxZQUFMLENBQWtCRCxRQUFsQixDQUFKLEVBQWlDO0FBQy9CLGNBQU1FLFlBQVlSLEtBQUtTLFlBQUwsQ0FBa0JILFFBQWxCLENBQWxCO0FBQ0FOLGVBQUtJLEdBQUwsSUFBWUksY0FBYyxFQUFkLEdBQW1CQSxTQUFuQixHQUErQixJQUEzQztBQUNEO0FBQ0Y7O0FBRUQsYUFBT2YsV0FBV0EsUUFBUU8sSUFBUixFQUFjSSxHQUFkLEVBQW1CQyxVQUFuQixDQUFsQjtBQUNELEtBWk0sR0FhTFo7QUFoQkMsR0FBUDtBQWtCRCIsImZpbGUiOiJwcm9wZXJ0eS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlZmF1bHRUcmFuc2Zvcm0gPSB2ID0+IHY7XG5cbmNvbnN0IG9iamVjdFRyYW5zZm9ybSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IFR5cGVFcnJvcihgW3Byb3BlcnR5XSBBcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0OiAke3R5cGVvZiB2fWApO1xuICB9XG4gIHJldHVybiB2YWx1ZSAmJiBPYmplY3QuZnJlZXplKHZhbHVlKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByb3BlcnR5KHZhbHVlLCBjb25uZWN0KSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxldCB0cmFuc2Zvcm0gPSBkZWZhdWx0VHJhbnNmb3JtO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICB0cmFuc2Zvcm0gPSBTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgdHJhbnNmb3JtID0gTnVtYmVyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICB0cmFuc2Zvcm0gPSBCb29sZWFuO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgdHJhbnNmb3JtID0gdmFsdWU7XG4gICAgICB2YWx1ZSA9IHRyYW5zZm9ybSgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIGlmICh2YWx1ZSkgT2JqZWN0LmZyZWV6ZSh2YWx1ZSk7XG4gICAgICB0cmFuc2Zvcm0gPSBvYmplY3RUcmFuc2Zvcm07XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OiBicmVhaztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZ2V0OiAoaG9zdCwgdmFsID0gdmFsdWUpID0+IHZhbCxcbiAgICBzZXQ6IChob3N0LCB2YWwgPSB2YWx1ZSwgb2xkVmFsdWUpID0+IHRyYW5zZm9ybSh2YWwsIG9sZFZhbHVlKSxcbiAgICBjb25uZWN0OiB0eXBlICE9PSAnb2JqZWN0JyAmJiB0eXBlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgPyAoaG9zdCwga2V5LCBpbnZhbGlkYXRlKSA9PiB7XG4gICAgICAgIGlmIChob3N0W2tleV0gPT09IHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgYXR0ck5hbWUgPSBjYW1lbFRvRGFzaChrZXkpO1xuXG4gICAgICAgICAgaWYgKGhvc3QuaGFzQXR0cmlidXRlKGF0dHJOYW1lKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0clZhbHVlID0gaG9zdC5nZXRBdHRyaWJ1dGUoYXR0ck5hbWUpO1xuICAgICAgICAgICAgaG9zdFtrZXldID0gYXR0clZhbHVlICE9PSAnJyA/IGF0dHJWYWx1ZSA6IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbm5lY3QgJiYgY29ubmVjdChob3N0LCBrZXksIGludmFsaWRhdGUpO1xuICAgICAgfVxuICAgICAgOiBjb25uZWN0LFxuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wZXJ0eS5qcyJdLCJuYW1lcyI6WyJjYW1lbFRvRGFzaCIsImRlZmF1bHRUcmFuc2Zvcm0iLCJ2Iiwib2JqZWN0VHJhbnNmb3JtIiwidmFsdWUiLCJUeXBlRXJyb3IiLCJPYmplY3QiLCJmcmVlemUiLCJwcm9wZXJ0eSIsImNvbm5lY3QiLCJ0eXBlIiwidHJhbnNmb3JtIiwiU3RyaW5nIiwiTnVtYmVyIiwiQm9vbGVhbiIsImdldCIsImhvc3QiLCJ2YWwiLCJzZXQiLCJvbGRWYWx1ZSIsImtleSIsImludmFsaWRhdGUiLCJhdHRyTmFtZSIsImhhc0F0dHJpYnV0ZSIsImF0dHJWYWx1ZSIsImdldEF0dHJpYnV0ZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxXQUFULFFBQTRCLFNBQTVCOztBQUVBLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQUMsQ0FBQztBQUFBLFNBQUlBLENBQUo7QUFBQSxDQUExQjs7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLEtBQUQsRUFBVztBQUNqQyxNQUFJLFFBQU9BLEtBQVAsTUFBaUIsUUFBckIsRUFBK0I7QUFDN0IsVUFBTUMsU0FBUyx3REFBaURILENBQWpELHlDQUFpREEsQ0FBakQsR0FBZjtBQUNEOztBQUNELFNBQU9FLEtBQUssSUFBSUUsTUFBTSxDQUFDQyxNQUFQLENBQWNILEtBQWQsQ0FBaEI7QUFDRCxDQUxEOztBQU9BLGVBQWUsU0FBU0ksUUFBVCxDQUFrQkosS0FBbEIsRUFBeUJLLE9BQXpCLEVBQWtDO0FBQy9DLE1BQU1DLElBQUksV0FBVU4sS0FBVixDQUFWOztBQUNBLE1BQUlPLFNBQVMsR0FBR1YsZ0JBQWhCOztBQUVBLFVBQVFTLElBQVI7QUFDRSxTQUFLLFFBQUw7QUFDRUMsTUFBQUEsU0FBUyxHQUFHQyxNQUFaO0FBQ0E7O0FBQ0YsU0FBSyxRQUFMO0FBQ0VELE1BQUFBLFNBQVMsR0FBR0UsTUFBWjtBQUNBOztBQUNGLFNBQUssU0FBTDtBQUNFRixNQUFBQSxTQUFTLEdBQUdHLE9BQVo7QUFDQTs7QUFDRixTQUFLLFVBQUw7QUFDRUgsTUFBQUEsU0FBUyxHQUFHUCxLQUFaO0FBQ0FBLE1BQUFBLEtBQUssR0FBR08sU0FBUyxFQUFqQjtBQUNBOztBQUNGLFNBQUssUUFBTDtBQUNFLFVBQUlQLEtBQUosRUFBV0UsTUFBTSxDQUFDQyxNQUFQLENBQWNILEtBQWQ7QUFDWE8sTUFBQUEsU0FBUyxHQUFHUixlQUFaO0FBQ0E7O0FBQ0Y7QUFBUztBQWxCWDs7QUFxQkEsU0FBTztBQUNMWSxJQUFBQSxHQUFHLEVBQUUsYUFBQ0MsSUFBRDtBQUFBLFVBQU9DLEdBQVAsdUVBQWFiLEtBQWI7QUFBQSxhQUF1QmEsR0FBdkI7QUFBQSxLQURBO0FBRUxDLElBQUFBLEdBQUcsRUFBRSxhQUFDRixJQUFEO0FBQUEsVUFBT0MsR0FBUCx1RUFBYWIsS0FBYjtBQUFBLFVBQW9CZSxRQUFwQjtBQUFBLGFBQWlDUixTQUFTLENBQUNNLEdBQUQsRUFBTUUsUUFBTixDQUExQztBQUFBLEtBRkE7QUFHTFYsSUFBQUEsT0FBTyxFQUFFQyxJQUFJLEtBQUssUUFBVCxJQUFxQkEsSUFBSSxLQUFLLFdBQTlCLEdBQ0wsVUFBQ00sSUFBRCxFQUFPSSxHQUFQLEVBQVlDLFVBQVosRUFBMkI7QUFDM0IsVUFBSUwsSUFBSSxDQUFDSSxHQUFELENBQUosS0FBY2hCLEtBQWxCLEVBQXlCO0FBQ3ZCLFlBQU1rQixRQUFRLEdBQUd0QixXQUFXLENBQUNvQixHQUFELENBQTVCOztBQUVBLFlBQUlKLElBQUksQ0FBQ08sWUFBTCxDQUFrQkQsUUFBbEIsQ0FBSixFQUFpQztBQUMvQixjQUFNRSxTQUFTLEdBQUdSLElBQUksQ0FBQ1MsWUFBTCxDQUFrQkgsUUFBbEIsQ0FBbEI7QUFDQU4sVUFBQUEsSUFBSSxDQUFDSSxHQUFELENBQUosR0FBWUksU0FBUyxLQUFLLEVBQWQsR0FBbUJBLFNBQW5CLEdBQStCLElBQTNDO0FBQ0Q7QUFDRjs7QUFFRCxhQUFPZixPQUFPLElBQUlBLE9BQU8sQ0FBQ08sSUFBRCxFQUFPSSxHQUFQLEVBQVlDLFVBQVosQ0FBekI7QUFDRCxLQVpNLEdBYUxaO0FBaEJDLEdBQVA7QUFrQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYW1lbFRvRGFzaCB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBkZWZhdWx0VHJhbnNmb3JtID0gdiA9PiB2O1xuXG5jb25zdCBvYmplY3RUcmFuc2Zvcm0gPSAodmFsdWUpID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYFtwcm9wZXJ0eV0gQXJndW1lbnQgaXMgbm90IGFuIG9iamVjdDogJHt0eXBlb2Ygdn1gKTtcbiAgfVxuICByZXR1cm4gdmFsdWUgJiYgT2JqZWN0LmZyZWV6ZSh2YWx1ZSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwcm9wZXJ0eSh2YWx1ZSwgY29ubmVjdCkge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBsZXQgdHJhbnNmb3JtID0gZGVmYXVsdFRyYW5zZm9ybTtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgdHJhbnNmb3JtID0gU3RyaW5nO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHRyYW5zZm9ybSA9IE51bWJlcjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgdHJhbnNmb3JtID0gQm9vbGVhbjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgIHRyYW5zZm9ybSA9IHZhbHVlO1xuICAgICAgdmFsdWUgPSB0cmFuc2Zvcm0oKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpZiAodmFsdWUpIE9iamVjdC5mcmVlemUodmFsdWUpO1xuICAgICAgdHJhbnNmb3JtID0gb2JqZWN0VHJhbnNmb3JtO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogYnJlYWs7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGdldDogKGhvc3QsIHZhbCA9IHZhbHVlKSA9PiB2YWwsXG4gICAgc2V0OiAoaG9zdCwgdmFsID0gdmFsdWUsIG9sZFZhbHVlKSA9PiB0cmFuc2Zvcm0odmFsLCBvbGRWYWx1ZSksXG4gICAgY29ubmVjdDogdHlwZSAhPT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgID8gKGhvc3QsIGtleSwgaW52YWxpZGF0ZSkgPT4ge1xuICAgICAgICBpZiAoaG9zdFtrZXldID09PSB2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGF0dHJOYW1lID0gY2FtZWxUb0Rhc2goa2V5KTtcblxuICAgICAgICAgIGlmIChob3N0Lmhhc0F0dHJpYnV0ZShhdHRyTmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGhvc3QuZ2V0QXR0cmlidXRlKGF0dHJOYW1lKTtcbiAgICAgICAgICAgIGhvc3Rba2V5XSA9IGF0dHJWYWx1ZSAhPT0gJycgPyBhdHRyVmFsdWUgOiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25uZWN0ICYmIGNvbm5lY3QoaG9zdCwga2V5LCBpbnZhbGlkYXRlKTtcbiAgICAgIH1cbiAgICAgIDogY29ubmVjdCxcbiAgfTtcbn1cbiJdfQ==

@@ -1,14 +0,13 @@

export { render as default };
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
import { shadyCSS } from './utils';
var map = new WeakMap();
var cache = new WeakMap();
var FPS_THRESHOLD = 1000 / 60; // 60 FPS ~ 16,67ms time window
var queue = [];
export function update() {

@@ -37,4 +36,6 @@ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

var prevUpdate = cache.get(target);
try {
var nextUpdate = target[key];
if (nextUpdate !== prevUpdate) {

@@ -52,2 +53,3 @@ cache.set(target, nextUpdate);

}
update(index + 1, nextTime);

@@ -60,2 +62,3 @@ }

var target = event.composedPath()[0];
if (target === event.currentTarget) {

@@ -67,2 +70,3 @@ if (!queue[0]) {

}
if (queue.indexOf(target) === -1) {

@@ -74,10 +78,12 @@ queue.push(target);

function render(_get) {
export default function render(_get) {
var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (typeof _get !== 'function') {
throw TypeError('[render] The first argument must be a function: ' + (typeof _get === 'undefined' ? 'undefined' : _typeof(_get)));
throw TypeError("[render] The first argument must be a function: ".concat(_typeof(_get)));
}
var options = _extends({ shadowRoot: true }, customOptions);
var options = _objectSpread({
shadowRoot: true
}, customOptions);

@@ -87,2 +93,3 @@ return {

var fn = _get(host);
return function () {

@@ -94,10 +101,14 @@ return fn(host, options.shadowRoot ? host.shadowRoot : host);

if (map.has(host)) {
throw Error('[render] Render factory already used in \'' + map.get(host) + '\' key');
throw Error("[render] Render factory already used in '".concat(map.get(host), "' key"));
}
if (options.shadowRoot && !host.shadowRoot) {
var shadowRootInit = { mode: 'open' };
var shadowRootInit = {
mode: 'open'
};
if (_typeof(options.shadowRoot) === 'object') {
Object.assign(shadowRootInit, options.shadowRoot);
}
host.attachShadow(shadowRootInit);

@@ -108,3 +119,2 @@ }

map.set(host, key);
return function () {

@@ -117,2 +127,2 @@ host.removeEventListener('@invalidate', addToQueue);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXIuanMiXSwibmFtZXMiOlsic2hhZHlDU1MiLCJtYXAiLCJXZWFrTWFwIiwiY2FjaGUiLCJGUFNfVEhSRVNIT0xEIiwicXVldWUiLCJ1cGRhdGUiLCJpbmRleCIsInN0YXJ0VGltZSIsInBlcmZvcm1hbmNlIiwibm93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwidGFyZ2V0IiwibmV4dFRpbWUiLCJmb3JFYWNoIiwic2hhZHkiLCJzdHlsZVN1YnRyZWUiLCJ0IiwiaGFzIiwia2V5IiwiZ2V0IiwicHJldlVwZGF0ZSIsIm5leHRVcGRhdGUiLCJzZXQiLCJzdHlsZUVsZW1lbnQiLCJlIiwiYWRkVG9RdWV1ZSIsImV2ZW50IiwiY29tcG9zZWRQYXRoIiwiY3VycmVudFRhcmdldCIsImluZGV4T2YiLCJwdXNoIiwicmVuZGVyIiwiY3VzdG9tT3B0aW9ucyIsIlR5cGVFcnJvciIsIm9wdGlvbnMiLCJzaGFkb3dSb290IiwiaG9zdCIsImZuIiwiY29ubmVjdCIsIkVycm9yIiwic2hhZG93Um9vdEluaXQiLCJtb2RlIiwiT2JqZWN0IiwiYXNzaWduIiwiYXR0YWNoU2hhZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkZWxldGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLFFBQVQsUUFBeUIsU0FBekI7O0FBRUEsSUFBTUMsTUFBTSxJQUFJQyxPQUFKLEVBQVo7QUFDQSxJQUFNQyxRQUFRLElBQUlELE9BQUosRUFBZDtBQUNBLElBQU1FLGdCQUFnQixPQUFPLEVBQTdCLEMsQ0FBaUM7QUFDakMsSUFBSUMsUUFBUSxFQUFaOztBQUVBLE9BQU8sU0FBU0MsTUFBVCxHQUEwQztBQUFBLE1BQTFCQyxLQUEwQix1RUFBbEIsQ0FBa0I7QUFBQSxNQUFmQyxTQUFlLHVFQUFILENBQUc7O0FBQy9DLE1BQUlBLGFBQWNDLFlBQVlDLEdBQVosS0FBb0JGLFNBQXBCLEdBQWdDSixhQUFsRCxFQUFrRTtBQUNo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RUFBOEJOLFFBQVFDLFVBQXRDO0FBQ0Q7QUFDREMsYUFBS1EsWUFBTCxDQUFrQkosY0FBbEI7QUFDRDs7QUFFREosV0FBS1MsZ0JBQUwsQ0FBc0IsYUFBdEIsRUFBcUNwQixVQUFyQztBQUNBekIsVUFBSXNCLEdBQUosQ0FBUWMsSUFBUixFQUFjbEIsR0FBZDs7QUFFQSxhQUFPLFlBQU07QUFDWGtCLGFBQUtVLG1CQUFMLENBQXlCLGFBQXpCLEVBQXdDckIsVUFBeEM7QUFDQXpCLFlBQUkrQyxNQUFKLENBQVdYLElBQVg7QUFDRCxPQUhEO0FBSUQ7QUF6QkksR0FBUDtBQTJCRCIsImZpbGUiOiJyZW5kZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFkeUNTUyB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBtYXAgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgY2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgRlBTX1RIUkVTSE9MRCA9IDEwMDAgLyA2MDsgLy8gNjAgRlBTIH4gMTYsNjdtcyB0aW1lIHdpbmRvd1xubGV0IHF1ZXVlID0gW107XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGUoaW5kZXggPSAwLCBzdGFydFRpbWUgPSAwKSB7XG4gIGlmIChzdGFydFRpbWUgJiYgKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lID4gRlBTX1RIUkVTSE9MRCkpIHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdXBkYXRlKGluZGV4KSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gcXVldWVbaW5kZXhdO1xuICAgIGNvbnN0IG5leHRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgc2hhZHlDU1Moc2hhZHkgPT4gcXVldWUuZm9yRWFjaCh0ID0+IHNoYWR5LnN0eWxlU3VidHJlZSh0KSkpO1xuICAgICAgcXVldWUgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG1hcC5oYXModGFyZ2V0KSkge1xuICAgICAgICBjb25zdCBrZXkgPSBtYXAuZ2V0KHRhcmdldCk7XG4gICAgICAgIGNvbnN0IHByZXZVcGRhdGUgPSBjYWNoZS5nZXQodGFyZ2V0KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBuZXh0VXBkYXRlID0gdGFyZ2V0W2tleV07XG4gICAgICAgICAgaWYgKG5leHRVcGRhdGUgIT09IHByZXZVcGRhdGUpIHtcbiAgICAgICAgICAgIGNhY2hlLnNldCh0YXJnZXQsIG5leHRVcGRhdGUpO1xuICAgICAgICAgICAgbmV4dFVwZGF0ZSgpO1xuICAgICAgICAgICAgaWYgKCFwcmV2VXBkYXRlKSBzaGFkeUNTUyhzaGFkeSA9PiBzaGFkeS5zdHlsZUVsZW1lbnQodGFyZ2V0KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdXBkYXRlKGluZGV4ICsgMSwgbmV4dFRpbWUpO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHVwZGF0ZShpbmRleCArIDEsIG5leHRUaW1lKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVG9RdWV1ZShldmVudCkge1xuICBjb25zdCB0YXJnZXQgPSBldmVudC5jb21wb3NlZFBhdGgoKVswXTtcbiAgaWYgKHRhcmdldCA9PT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgIGlmICghcXVldWVbMF0pIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCkgPT4gdXBkYXRlKCkpKTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmluZGV4T2YodGFyZ2V0KSA9PT0gLTEpIHtcbiAgICAgIHF1ZXVlLnB1c2godGFyZ2V0KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVuZGVyKGdldCwgY3VzdG9tT3B0aW9ucyA9IHt9KSB7XG4gIGlmICh0eXBlb2YgZ2V0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGBbcmVuZGVyXSBUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uOiAke3R5cGVvZiBnZXR9YCk7XG4gIH1cblxuICBjb25zdCBvcHRpb25zID0geyBzaGFkb3dSb290OiB0cnVlLCAuLi5jdXN0b21PcHRpb25zIH07XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQ6IChob3N0KSA9PiB7XG4gICAgICBjb25zdCBmbiA9IGdldChob3N0KTtcbiAgICAgIHJldHVybiAoKSA9PiBmbihob3N0LCBvcHRpb25zLnNoYWRvd1Jvb3QgPyBob3N0LnNoYWRvd1Jvb3QgOiBob3N0KTtcbiAgICB9LFxuICAgIGNvbm5lY3QoaG9zdCwga2V5KSB7XG4gICAgICBpZiAobWFwLmhhcyhob3N0KSkge1xuICAgICAgICB0aHJvdyBFcnJvcihgW3JlbmRlcl0gUmVuZGVyIGZhY3RvcnkgYWxyZWFkeSB1c2VkIGluICcke21hcC5nZXQoaG9zdCl9JyBrZXlgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuc2hhZG93Um9vdCAmJiAhaG9zdC5zaGFkb3dSb290KSB7XG4gICAgICAgIGNvbnN0IHNoYWRvd1Jvb3RJbml0ID0geyBtb2RlOiAnb3BlbicgfTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnNoYWRvd1Jvb3QgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihzaGFkb3dSb290SW5pdCwgb3B0aW9ucy5zaGFkb3dSb290KTtcbiAgICAgICAgfVxuICAgICAgICBob3N0LmF0dGFjaFNoYWRvdyhzaGFkb3dSb290SW5pdCk7XG4gICAgICB9XG5cbiAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignQGludmFsaWRhdGUnLCBhZGRUb1F1ZXVlKTtcbiAgICAgIG1hcC5zZXQoaG9zdCwga2V5KTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIGFkZFRvUXVldWUpO1xuICAgICAgICBtYXAuZGVsZXRlKGhvc3QpO1xuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXIuanMiXSwibmFtZXMiOlsic2hhZHlDU1MiLCJtYXAiLCJXZWFrTWFwIiwiY2FjaGUiLCJGUFNfVEhSRVNIT0xEIiwicXVldWUiLCJ1cGRhdGUiLCJpbmRleCIsInN0YXJ0VGltZSIsInBlcmZvcm1hbmNlIiwibm93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwidGFyZ2V0IiwibmV4dFRpbWUiLCJzaGFkeSIsImZvckVhY2giLCJ0Iiwic3R5bGVTdWJ0cmVlIiwiaGFzIiwia2V5IiwiZ2V0IiwicHJldlVwZGF0ZSIsIm5leHRVcGRhdGUiLCJzZXQiLCJzdHlsZUVsZW1lbnQiLCJlIiwiYWRkVG9RdWV1ZSIsImV2ZW50IiwiY29tcG9zZWRQYXRoIiwiY3VycmVudFRhcmdldCIsImluZGV4T2YiLCJwdXNoIiwicmVuZGVyIiwiY3VzdG9tT3B0aW9ucyIsIlR5cGVFcnJvciIsIm9wdGlvbnMiLCJzaGFkb3dSb290IiwiaG9zdCIsImZuIiwiY29ubmVjdCIsIkVycm9yIiwic2hhZG93Um9vdEluaXQiLCJtb2RlIiwiT2JqZWN0IiwiYXNzaWduIiwiYXR0YWNoU2hhZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkZWxldGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLFFBQVQsUUFBeUIsU0FBekI7QUFFQSxJQUFNQyxHQUFHLEdBQUcsSUFBSUMsT0FBSixFQUFaO0FBQ0EsSUFBTUMsS0FBSyxHQUFHLElBQUlELE9BQUosRUFBZDtBQUNBLElBQU1FLGFBQWEsR0FBRyxPQUFPLEVBQTdCLEMsQ0FBaUM7O0FBQ2pDLElBQUlDLEtBQUssR0FBRyxFQUFaO0FBRUEsT0FBTyxTQUFTQyxNQUFULEdBQTBDO0FBQUEsTUFBMUJDLEtBQTBCLHVFQUFsQixDQUFrQjtBQUFBLE1BQWZDLFNBQWUsdUVBQUgsQ0FBRzs7QUFDL0MsTUFBSUEsU0FBUyxJQUFLQyxXQUFXLENBQUNDLEdBQVosS0FBb0JGLFNB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QUFDRCxVQUExQixHQUF1Q0MsSUFBOUMsQ0FBUjtBQUFBLE9BQVA7QUFDRCxLQUpJO0FBS0xFLElBQUFBLE9BTEssbUJBS0dGLElBTEgsRUFLU2xCLEdBTFQsRUFLYztBQUNqQixVQUFJbEIsR0FBRyxDQUFDaUIsR0FBSixDQUFRbUIsSUFBUixDQUFKLEVBQW1CO0FBQ2pCLGNBQU1HLEtBQUssb0RBQTZDdkMsR0FBRyxDQUFDbUIsR0FBSixDQUFRaUIsSUFBUixDQUE3QyxXQUFYO0FBQ0Q7O0FBRUQsVUFBSUYsT0FBTyxDQUFDQyxVQUFSLElBQXNCLENBQUNDLElBQUksQ0FBQ0QsVUFBaEMsRUFBNEM7QUFDMUMsWUFBTUssY0FBYyxHQUFHO0FBQUVDLFVBQUFBLElBQUksRUFBRTtBQUFSLFNBQXZCOztBQUNBLFlBQUksUUFBT1AsT0FBTyxDQUFDQyxVQUFmLE1BQThCLFFBQWxDLEVBQTRDO0FBQzFDTyxVQUFBQSxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsY0FBZCxFQUE4Qk4sT0FBTyxDQUFDQyxVQUF0QztBQUNEOztBQUNEQyxRQUFBQSxJQUFJLENBQUNRLFlBQUwsQ0FBa0JKLGNBQWxCO0FBQ0Q7O0FBRURKLE1BQUFBLElBQUksQ0FBQ1MsZ0JBQUwsQ0FBc0IsYUFBdEIsRUFBcUNwQixVQUFyQztBQUNBekIsTUFBQUEsR0FBRyxDQUFDc0IsR0FBSixDQUFRYyxJQUFSLEVBQWNsQixHQUFkO0FBRUEsYUFBTyxZQUFNO0FBQ1hrQixRQUFBQSxJQUFJLENBQUNVLG1CQUFMLENBQXlCLGFBQXpCLEVBQXdDckIsVUFBeEM7QUFDQXpCLFFBQUFBLEdBQUcsQ0FBQytDLE1BQUosQ0FBV1gsSUFBWDtBQUNELE9BSEQ7QUFJRDtBQXpCSSxHQUFQO0FBMkJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhZHlDU1MgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgbWFwID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IGNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IEZQU19USFJFU0hPTEQgPSAxMDAwIC8gNjA7IC8vIDYwIEZQUyB+IDE2LDY3bXMgdGltZSB3aW5kb3dcbmxldCBxdWV1ZSA9IFtdO1xuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlKGluZGV4ID0gMCwgc3RhcnRUaW1lID0gMCkge1xuICBpZiAoc3RhcnRUaW1lICYmIChwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZSA+IEZQU19USFJFU0hPTEQpKSB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHVwZGF0ZShpbmRleCkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHRhcmdldCA9IHF1ZXVlW2luZGV4XTtcbiAgICBjb25zdCBuZXh0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHNoYWR5Q1NTKHNoYWR5ID0+IHF1ZXVlLmZvckVhY2godCA9PiBzaGFkeS5zdHlsZVN1YnRyZWUodCkpKTtcbiAgICAgIHF1ZXVlID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtYXAuaGFzKHRhcmdldCkpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gbWFwLmdldCh0YXJnZXQpO1xuICAgICAgICBjb25zdCBwcmV2VXBkYXRlID0gY2FjaGUuZ2V0KHRhcmdldCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbmV4dFVwZGF0ZSA9IHRhcmdldFtrZXldO1xuICAgICAgICAgIGlmIChuZXh0VXBkYXRlICE9PSBwcmV2VXBkYXRlKSB7XG4gICAgICAgICAgICBjYWNoZS5zZXQodGFyZ2V0LCBuZXh0VXBkYXRlKTtcbiAgICAgICAgICAgIG5leHRVcGRhdGUoKTtcbiAgICAgICAgICAgIGlmICghcHJldlVwZGF0ZSkgc2hhZHlDU1Moc2hhZHkgPT4gc2hhZHkuc3R5bGVFbGVtZW50KHRhcmdldCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHVwZGF0ZShpbmRleCArIDEsIG5leHRUaW1lKTtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB1cGRhdGUoaW5kZXggKyAxLCBuZXh0VGltZSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFkZFRvUXVldWUoZXZlbnQpIHtcbiAgY29uc3QgdGFyZ2V0ID0gZXZlbnQuY29tcG9zZWRQYXRoKClbMF07XG4gIGlmICh0YXJnZXQgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICBpZiAoIXF1ZXVlWzBdKSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpID0+IHVwZGF0ZSgpKSk7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5pbmRleE9mKHRhcmdldCkgPT09IC0xKSB7XG4gICAgICBxdWV1ZS5wdXNoKHRhcmdldCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmRlcihnZXQsIGN1c3RvbU9wdGlvbnMgPSB7fSkge1xuICBpZiAodHlwZW9mIGdldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IFR5cGVFcnJvcihgW3JlbmRlcl0gVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbjogJHt0eXBlb2YgZ2V0fWApO1xuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHsgc2hhZG93Um9vdDogdHJ1ZSwgLi4uY3VzdG9tT3B0aW9ucyB9O1xuXG4gIHJldHVybiB7XG4gICAgZ2V0OiAoaG9zdCkgPT4ge1xuICAgICAgY29uc3QgZm4gPSBnZXQoaG9zdCk7XG4gICAgICByZXR1cm4gKCkgPT4gZm4oaG9zdCwgb3B0aW9ucy5zaGFkb3dSb290ID8gaG9zdC5zaGFkb3dSb290IDogaG9zdCk7XG4gICAgfSxcbiAgICBjb25uZWN0KGhvc3QsIGtleSkge1xuICAgICAgaWYgKG1hcC5oYXMoaG9zdCkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFtyZW5kZXJdIFJlbmRlciBmYWN0b3J5IGFscmVhZHkgdXNlZCBpbiAnJHttYXAuZ2V0KGhvc3QpfScga2V5YCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLnNoYWRvd1Jvb3QgJiYgIWhvc3Quc2hhZG93Um9vdCkge1xuICAgICAgICBjb25zdCBzaGFkb3dSb290SW5pdCA9IHsgbW9kZTogJ29wZW4nIH07XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zaGFkb3dSb290ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2hhZG93Um9vdEluaXQsIG9wdGlvbnMuc2hhZG93Um9vdCk7XG4gICAgICAgIH1cbiAgICAgICAgaG9zdC5hdHRhY2hTaGFkb3coc2hhZG93Um9vdEluaXQpO1xuICAgICAgfVxuXG4gICAgICBob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ0BpbnZhbGlkYXRlJywgYWRkVG9RdWV1ZSk7XG4gICAgICBtYXAuc2V0KGhvc3QsIGtleSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignQGludmFsaWRhdGUnLCBhZGRUb1F1ZXVlKTtcbiAgICAgICAgbWFwLmRlbGV0ZShob3N0KTtcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==

@@ -1,7 +0,8 @@

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
export function camelToDash(str) {
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
export function pascalToDash(str) {

@@ -11,12 +12,10 @@ str = str[0].toLowerCase() + str.slice(1);

}
export function dispatch(host, eventType) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
return host.dispatchEvent(new CustomEvent(eventType, _extends({ bubbles: false }, options)));
return host.dispatchEvent(new CustomEvent(eventType, _objectSpread({
bubbles: false
}, options)));
}
export function createMap() {
var map = new WeakMap();
return {

@@ -40,5 +39,5 @@ get: function get(key, defaultValue) {

}
export function shadyCSS(fn, fallback) {
var shady = window.ShadyCSS;
if (shady && !shady.nativeShadow) {

@@ -50,9 +49,7 @@ return fn(shady);

}
export function stringifyElement(element) {
var tagName = String(element.tagName).toLowerCase();
return '<' + tagName + '>';
return "<".concat(tagName, ">");
}
export var IS_IE = 'ActiveXObject' in global;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJjYW1lbFRvRGFzaCIsInN0ciIsInJlcGxhY2UiLCJ0b0xvd2VyQ2FzZSIsInBhc2NhbFRvRGFzaCIsInNsaWNlIiwiZGlzcGF0Y2giLCJob3N0IiwiZXZlbnRUeXBlIiwib3B0aW9ucyIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImJ1YmJsZXMiLCJjcmVhdGVNYXAiLCJtYXAiLCJXZWFrTWFwIiwiZ2V0Iiwia2V5IiwiZGVmYXVsdFZhbHVlIiwiaGFzIiwidW5kZWZpbmVkIiwic2V0IiwidmFsdWUiLCJzaGFkeUNTUyIsImZuIiwiZmFsbGJhY2siLCJzaGFkeSIsIndpbmRvdyIsIlNoYWR5Q1NTIiwibmF0aXZlU2hhZG93Iiwic3RyaW5naWZ5RWxlbWVudCIsImVsZW1lbnQiLCJ0YWdOYW1lIiwiU3RyaW5nIiwiSVNfSUUiLCJnbG9iYWwiXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxTQUFTQSxXQUFULENBQXFCQyxHQUFyQixFQUEwQjtBQUMvQixTQUFPQSxJQUFJQyxPQUFKLENBQVksaUJBQVosRUFBK0IsT0FBL0IsRUFBd0NDLFdBQXhDLEVBQVA7QUFDRDs7QUFFRCxPQUFPLFNBQVNDLFlBQVQsQ0FBc0JILEdBQXRCLEVBQTJCO0FBQ2hDQSxRQUFNQSxJQUFJLENBQUosRUFBT0UsV0FBUCxLQUF1QkYsSUFBSUksS0FBSixDQUFVLENBQVYsQ0FBN0I7QUFDQSxTQUFPTCxZQUFZQyxHQUFaLENBQVA7QUFDRDs7QUFFRCxPQUFPLFNBQVNLLFFBQVQsQ0FBa0JDLElBQWxCLEVBQXdCQyxTQUF4QixFQUFpRDtBQUFBLE1BQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFDdEQsU0FBT0YsS0FBS0csYUFBTCxDQUFtQixJQUFJQyxXQUFKLENBQWdCSCxTQUFoQixhQUE2QkksU0FBUyxLQUF0QyxJQUFnREgsT0FBaEQsRUFBbkIsQ0FBUDtBQUNEOztBQUVELE9BQU8sU0FBU0ksU0FBVCxHQUFxQjtBQUMxQixNQUFNQyxNQUFNLElBQUlDLE9BQUosRUFBWjs7QUFFQSxTQUFPO0FBQ0xDLE9BREssZUFDREMsR0FEQyxFQUNJQyxZQURKLEVBQ2tCO0FBQ3JCLFVBQUlKLElBQUlLLEdBQUosQ0FBUUYsR0FBUixDQUFKLEVBQWtCO0FBQ2hCLGVBQU9ILElBQUlFLEdBQUosQ0FBUUMsR0FBUixDQUFQO0FBQ0Q7O0FBRUQsVUFBSUMsaUJBQWlCRSxTQUFyQixFQUFnQztBQUM5Qk4sWUFBSU8sR0FBSixDQUFRSixHQUFSLEVBQWFDLFlBQWI7QUFDRDs7QUFFRCxhQUFPQSxZQUFQO0FBQ0QsS0FYSTtBQVlMRyxPQVpLLGVBWURKLEdBWkMsRUFZSUssS0FaSixFQVlXO0FBQ2RSLFVBQUlPLEdBQUosQ0FBUUosR0FBUixFQUFhSyxLQUFiO0FBQ0EsYUFBT0EsS0FBUDtBQUNEO0FBZkksR0FBUDtBQWlCRDs7QUFFRCxPQUFPLFNBQVNDLFFBQVQsQ0FBa0JDLEVBQWxCLEVBQXNCQyxRQUF0QixFQUFnQztBQUNyQyxNQUFNQyxRQUFRQyxPQUFPQyxRQUFyQjtBQUNBLE1BQUlGLFNBQVMsQ0FBQ0EsTUFBTUcsWUFBcEIsRUFBa0M7QUFDaEMsV0FBT0wsR0FBR0UsS0FBSCxDQUFQO0FBQ0Q7O0FBRUQsU0FBT0QsUUFBUDtBQUNEOztBQUVELE9BQU8sU0FBU0ssZ0JBQVQsQ0FBMEJDLE9BQTFCLEVBQW1DO0FBQ3hDLE1BQU1DLFVBQVVDLE9BQU9GLFFBQVFDLE9BQWYsRUFBd0I3QixXQUF4QixFQUFoQjtBQUNBLGVBQVc2QixPQUFYO0FBQ0Q7O0FBRUQsT0FBTyxJQUFNRSxRQUFRLG1CQUFtQkMsTUFBakMiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2FtZWxUb0Rhc2goc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbFRvRGFzaChzdHIpIHtcbiAgc3RyID0gc3RyWzBdLnRvTG93ZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG4gIHJldHVybiBjYW1lbFRvRGFzaChzdHIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGF0Y2goaG9zdCwgZXZlbnRUeXBlLCBvcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIGhvc3QuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoZXZlbnRUeXBlLCB7IGJ1YmJsZXM6IGZhbHNlLCAuLi5vcHRpb25zIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hcCgpIHtcbiAgY29uc3QgbWFwID0gbmV3IFdlYWtNYXAoKTtcblxuICByZXR1cm4ge1xuICAgIGdldChrZXksIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgaWYgKG1hcC5oYXMoa2V5KSkge1xuICAgICAgICByZXR1cm4gbWFwLmdldChrZXkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbWFwLnNldChrZXksIGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfSxcbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgbWFwLnNldChrZXksIHZhbHVlKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhZHlDU1MoZm4sIGZhbGxiYWNrKSB7XG4gIGNvbnN0IHNoYWR5ID0gd2luZG93LlNoYWR5Q1NTO1xuICBpZiAoc2hhZHkgJiYgIXNoYWR5Lm5hdGl2ZVNoYWRvdykge1xuICAgIHJldHVybiBmbihzaGFkeSk7XG4gIH1cblxuICByZXR1cm4gZmFsbGJhY2s7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFbGVtZW50KGVsZW1lbnQpIHtcbiAgY29uc3QgdGFnTmFtZSA9IFN0cmluZyhlbGVtZW50LnRhZ05hbWUpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBgPCR7dGFnTmFtZX0+YDtcbn1cblxuZXhwb3J0IGNvbnN0IElTX0lFID0gJ0FjdGl2ZVhPYmplY3QnIGluIGdsb2JhbDtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJjYW1lbFRvRGFzaCIsInN0ciIsInJlcGxhY2UiLCJ0b0xvd2VyQ2FzZSIsInBhc2NhbFRvRGFzaCIsInNsaWNlIiwiZGlzcGF0Y2giLCJob3N0IiwiZXZlbnRUeXBlIiwib3B0aW9ucyIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImJ1YmJsZXMiLCJjcmVhdGVNYXAiLCJtYXAiLCJXZWFrTWFwIiwiZ2V0Iiwia2V5IiwiZGVmYXVsdFZhbHVlIiwiaGFzIiwidW5kZWZpbmVkIiwic2V0IiwidmFsdWUiLCJzaGFkeUNTUyIsImZuIiwiZmFsbGJhY2siLCJzaGFkeSIsIndpbmRvdyIsIlNoYWR5Q1NTIiwibmF0aXZlU2hhZG93Iiwic3RyaW5naWZ5RWxlbWVudCIsImVsZW1lbnQiLCJ0YWdOYW1lIiwiU3RyaW5nIiwiSVNfSUUiLCJnbG9iYWwiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLFNBQVNBLFdBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0FBQy9CLFNBQU9BLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLGlCQUFaLEVBQStCLE9BQS9CLEVBQXdDQyxXQUF4QyxFQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNDLFlBQVQsQ0FBc0JILEdBQXRCLEVBQTJCO0FBQ2hDQSxFQUFBQSxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFELENBQUgsQ0FBT0UsV0FBUCxLQUF1QkYsR0FBRyxDQUFDSSxLQUFKLENBQVUsQ0FBVixDQUE3QjtBQUNBLFNBQU9MLFdBQVcsQ0FBQ0MsR0FBRCxDQUFsQjtBQUNEO0FBRUQsT0FBTyxTQUFTSyxRQUFULENBQWtCQyxJQUFsQixFQUF3QkMsU0FBeEIsRUFBaUQ7QUFBQSxNQUFkQyxPQUFjLHVFQUFKLEVBQUk7QUFDdEQsU0FBT0YsSUFBSSxDQUFDRyxhQUFMLENBQW1CLElBQUlDLFdBQUosQ0FBZ0JILFNBQWhCO0FBQTZCSSxJQUFBQSxPQUFPLEVBQUU7QUFBdEMsS0FBZ0RILE9BQWhELEVBQW5CLENBQVA7QUFDRDtBQUVELE9BQU8sU0FBU0ksU0FBVCxHQUFxQjtBQUMxQixNQUFNQyxHQUFHLEdBQUcsSUFBSUMsT0FBSixFQUFaO0FBRUEsU0FBTztBQUNMQyxJQUFBQSxHQURLLGVBQ0RDLEdBREMsRUFDSUMsWUFESixFQUNrQjtBQUNyQixVQUFJSixHQUFHLENBQUNLLEdBQUosQ0FBUUYsR0FBUixDQUFKLEVBQWtCO0FBQ2hCLGVBQU9ILEdBQUcsQ0FBQ0UsR0FBSixDQUFRQyxHQUFSLENBQVA7QUFDRDs7QUFFRCxVQUFJQyxZQUFZLEtBQUtFLFNBQXJCLEVBQWdDO0FBQzlCTixRQUFBQSxHQUFHLENBQUNPLEdBQUosQ0FBUUosR0FBUixFQUFhQyxZQUFiO0FBQ0Q7O0FBRUQsYUFBT0EsWUFBUDtBQUNELEtBWEk7QUFZTEcsSUFBQUEsR0FaSyxlQVlESixHQVpDLEVBWUlLLEtBWkosRUFZVztBQUNkUixNQUFBQSxHQUFHLENBQUNPLEdBQUosQ0FBUUosR0FBUixFQUFhSyxLQUFiO0FBQ0EsYUFBT0EsS0FBUDtBQUNEO0FBZkksR0FBUDtBQWlCRDtBQUVELE9BQU8sU0FBU0MsUUFBVCxDQUFrQkMsRUFBbEIsRUFBc0JDLFFBQXRCLEVBQWdDO0FBQ3JDLE1BQU1DLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxRQUFyQjs7QUFDQSxNQUFJRixLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDRyxZQUFwQixFQUFrQztBQUNoQyxXQUFPTCxFQUFFLENBQUNFLEtBQUQsQ0FBVDtBQUNEOztBQUVELFNBQU9ELFFBQVA7QUFDRDtBQUVELE9BQU8sU0FBU0ssZ0JBQVQsQ0FBMEJDLE9BQTFCLEVBQW1DO0FBQ3hDLE1BQU1DLE9BQU8sR0FBR0MsTUFBTSxDQUFDRixPQUFPLENBQUNDLE9BQVQsQ0FBTixDQUF3QjdCLFdBQXhCLEVBQWhCO0FBQ0Esb0JBQVc2QixPQUFYO0FBQ0Q7QUFFRCxPQUFPLElBQU1FLEtBQUssR0FBRyxtQkFBbUJDLE1BQWpDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhbWVsVG9EYXNoKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMS0kMicpLnRvTG93ZXJDYXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXNjYWxUb0Rhc2goc3RyKSB7XG4gIHN0ciA9IHN0clswXS50b0xvd2VyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xuICByZXR1cm4gY2FtZWxUb0Rhc2goc3RyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoKGhvc3QsIGV2ZW50VHlwZSwgb3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBob3N0LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KGV2ZW50VHlwZSwgeyBidWJibGVzOiBmYWxzZSwgLi4ub3B0aW9ucyB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXAoKSB7XG4gIGNvbnN0IG1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQoa2V5LCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIGlmIChtYXAuaGFzKGtleSkpIHtcbiAgICAgICAgcmV0dXJuIG1hcC5nZXQoa2V5KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG1hcC5zZXQoa2V5LCBkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH0sXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIG1hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYWR5Q1NTKGZuLCBmYWxsYmFjaykge1xuICBjb25zdCBzaGFkeSA9IHdpbmRvdy5TaGFkeUNTUztcbiAgaWYgKHNoYWR5ICYmICFzaGFkeS5uYXRpdmVTaGFkb3cpIHtcbiAgICByZXR1cm4gZm4oc2hhZHkpO1xuICB9XG5cbiAgcmV0dXJuIGZhbGxiYWNrO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RWxlbWVudChlbGVtZW50KSB7XG4gIGNvbnN0IHRhZ05hbWUgPSBTdHJpbmcoZWxlbWVudC50YWdOYW1lKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gYDwke3RhZ05hbWV9PmA7XG59XG5cbmV4cG9ydCBjb25zdCBJU19JRSA9ICdBY3RpdmVYT2JqZWN0JyBpbiBnbG9iYWw7XG4iXX0=

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -11,7 +11,9 @@ Object.defineProperty(exports, "__esModule", {

var _utils = require('./utils');
var _utils = require("./utils");
var entries = new WeakMap();
function getEntry(target, key) {
var targetMap = entries.get(target);
if (!targetMap) {

@@ -42,3 +44,2 @@ targetMap = new Map();

deps = _ref.deps;
var checksum = state;

@@ -50,3 +51,2 @@ deps.forEach(function (entry) {

});
return checksum;

@@ -56,2 +56,3 @@ }

var context = null;
function get(target, key, getter) {

@@ -62,3 +63,3 @@ var entry = getEntry(target, key);

context = null;
throw Error('[cache] Circular \'' + key + '\' get invocation in \'' + (0, _utils.stringifyElement)(target) + '\'');
throw Error("[cache] Circular '".concat(key, "' get invocation in '").concat((0, _utils.stringifyElement)(target), "'"));
}

@@ -101,3 +102,3 @@

context = null;
throw Error('[cache] Try to set \'' + key + '\' of \'' + (0, _utils.stringifyElement)(target) + '\' in get call');
throw Error("[cache] Try to set '".concat(key, "' of '").concat((0, _utils.stringifyElement)(target), "' in get call"));
}

@@ -111,3 +112,2 @@

entry.value = newValue;
callback();

@@ -120,7 +120,6 @@ }

context = null;
throw Error('[cache] Try to invalidate \'' + key + '\' in \'' + (0, _utils.stringifyElement)(target) + '\' get call');
throw Error("[cache] Try to invalidate '".concat(key, "' in '").concat((0, _utils.stringifyElement)(target), "' get call"));
}
var entry = getEntry(target, key);
entry.checksum = 0;

@@ -132,2 +131,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJnZXRFbnRyeSIsImdldCIsInNldCIsImludmFsaWRhdGUiLCJlbnRyaWVzIiwiV2Vha01hcCIsInRhcmdldCIsImtleSIsInRhcmdldE1hcCIsIk1hcCIsImVudHJ5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJkZXBzIiwiU2V0Iiwic3RhdGUiLCJjaGVja3N1bSIsImNhbGN1bGF0ZUNoZWNrc3VtIiwiZm9yRWFjaCIsImNvbnRleHQiLCJnZXR0ZXIiLCJFcnJvciIsImFkZCIsInBhcmVudENvbnRleHQiLCJjbGVhciIsIm5leHRWYWx1ZSIsImUiLCJzZXR0ZXIiLCJjYWxsYmFjayIsIm5ld1ZhbHVlIiwiY2xlYXJWYWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFHZ0JBLFEsR0FBQUEsUTtRQW9DQUMsRyxHQUFBQSxHO1FBd0NBQyxHLEdBQUFBLEc7UUFpQkFDLFUsR0FBQUEsVTs7QUFoR2hCOztBQUVBLElBQU1DLFVBQVUsSUFBSUMsT0FBSixFQUFoQjtBQUNPLFNBQVNMLFFBQVQsQ0FBa0JNLE1BQWxCLEVBQTBCQyxHQUExQixFQUErQjtBQUNwQyxNQUFJQyxZQUFZSixRQUFRSCxHQUFSLENBQVlLLE1BQVosQ0FBaEI7QUFDQSxNQUFJLENBQUNFLFNBQUwsRUFBZ0I7QUFDZEEsZ0JBQVksSUFBSUMsR0FBSixFQUFaO0FBQ0FMLFlBQVFGLEdBQVIsQ0FBWUksTUFBWixFQUFvQkUsU0FBcEI7QUFDRDs7QUFFRCxNQUFJRSxRQUFRRixVQUFVUCxHQUFWLENBQWNNLEdBQWQsQ0FBWjs7QUFFQSxNQUFJLENBQUNHLEtBQUwsRUFBWTtBQUNWQSxZQUFRO0FBQ05KLG9CQURNO0FBRU5DLGNBRk07QUFHTkksYUFBT0MsU0FIRDtBQUlOQyxZQUFNLElBQUlDLEdBQUosRUFKQTtBQUtOQyxhQUFPLENBTEQ7QUFNTkMsZ0JBQVU7QUFOSixLQUFSO0FBUUFSLGNBQVVOLEdBQVYsQ0FBY0ssR0FBZCxFQUFtQkcsS0FBbkI7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LCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmdpZnlFbGVtZW50IH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGVudHJpZXMgPSBuZXcgV2Vha01hcCgpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudHJ5KHRhcmdldCwga2V5KSB7XG4gIGxldCB0YXJnZXRNYXAgPSBlbnRyaWVzLmdldCh0YXJnZXQpO1xuICBpZiAoIXRhcmdldE1hcCkge1xuICAgIHRhcmdldE1hcCA9IG5ldyBNYXAoKTtcbiAgICBlbnRyaWVzLnNldCh0YXJnZXQsIHRhcmdldE1hcCk7XG4gIH1cblxuICBsZXQgZW50cnkgPSB0YXJnZXRNYXAuZ2V0KGtleSk7XG5cbiAgaWYgKCFlbnRyeSkge1xuICAgIGVudHJ5ID0ge1xuICAgICAgdGFyZ2V0LFxuICAgICAga2V5LFxuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGRlcHM6IG5ldyBTZXQoKSxcbiAgICAgIHN0YXRlOiAxLFxuICAgICAgY2hlY2tzdW06IDAsXG4gICAgfTtcbiAgICB0YXJnZXRNYXAuc2V0KGtleSwgZW50cnkpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJ5O1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVDaGVja3N1bSh7IHN0YXRlLCBkZXBzIH0pIHtcbiAgbGV0IGNoZWNrc3VtID0gc3RhdGU7XG4gIGRlcHMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG4gICAgZW50cnkudGFyZ2V0W2VudHJ5LmtleV07XG4gICAgY2hlY2tzdW0gKz0gZW50cnkuc3RhdGU7XG4gIH0pO1xuXG4gIHJldHVybiBjaGVja3N1bTtcbn1cblxubGV0IGNvbnRleHQgPSBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldCh0YXJnZXQsIGtleSwgZ2V0dGVyKSB7XG4gIGNvbnN0IGVudHJ5ID0gZ2V0RW50cnkodGFyZ2V0LCBrZXkpO1xuXG4gIGlmIChjb250ZXh0ID09PSBlbnRyeSkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IEVycm9yKGBbY2FjaGVdIENpcmN1bGFyICcke2tleX0nIGdldCBpbnZvY2F0aW9uIGluICcke3N0cmluZ2lmeUVsZW1lbnQodGFyZ2V0KX0nYCk7XG4gIH1cblxuICBpZiAoY29udGV4dCkge1xuICAgIGNvbnRleHQuZGVwcy5hZGQoZW50cnkpO1xuICB9XG5cbiAgY29uc3QgcGFyZW50Q29udGV4dCA9IGNvbnRleHQ7XG4gIGNvbnRleHQgPSBlbnRyeTtcblxuICBpZiAoZW50cnkuY2hlY2tzdW0gJiYgZW50cnkuY2hlY2tzdW0gPT09IGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KSkge1xuICAgIGNvbnRleHQgPSBwYXJlbnRDb250ZXh0O1xuICAgIHJldHVybiBlbnRyeS52YWx1ZTtcbiAgfVxuXG4gIGVudHJ5LmRlcHMuY2xlYXIoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IG5leHRWYWx1ZSA9IGdldHRlcih0YXJnZXQsIGVudHJ5LnZhbHVlKTtcblxuICAgIGlmIChuZXh0VmFsdWUgIT09IGVudHJ5LnZhbHVlKSB7XG4gICAgICBlbnRyeS5zdGF0ZSArPSAxO1xuICAgICAgZW50cnkudmFsdWUgPSBuZXh0VmFsdWU7XG4gICAgfVxuXG4gICAgZW50cnkuY2hlY2tzdW0gPSBjYWxjdWxhdGVDaGVja3N1bShlbnRyeSk7XG4gICAgY29udGV4dCA9IHBhcmVudENvbnRleHQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb250ZXh0ID0gbnVsbDtcbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgcmV0dXJuIGVudHJ5LnZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0KHRhcmdldCwga2V5LCBzZXR0ZXIsIHZhbHVlLCBjYWxsYmFjaykge1xuICBpZiAoY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IEVycm9yKGBbY2FjaGVdIFRyeSB0byBzZXQgJyR7a2V5fScgb2YgJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfScgaW4gZ2V0IGNhbGxgKTtcbiAgfVxuXG4gIGNvbnN0IGVudHJ5ID0gZ2V0RW50cnkodGFyZ2V0LCBrZXkpO1xuICBjb25zdCBuZXdWYWx1ZSA9IHNldHRlcih0YXJnZXQsIHZhbHVlLCBlbnRyeS52YWx1ZSk7XG5cbiAgaWYgKG5ld1ZhbHVlICE9PSBlbnRyeS52YWx1ZSkge1xuICAgIGVudHJ5LnN0YXRlICs9IDE7XG4gICAgZW50cnkudmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRhdGUodGFyZ2V0LCBrZXksIGNsZWFyVmFsdWUpIHtcbiAgaWYgKGNvbnRleHQpIHtcbiAgICBjb250ZXh0ID0gbnVsbDtcbiAgICB0aHJvdyBFcnJvcihgW2NhY2hlXSBUcnkgdG8gaW52YWxpZGF0ZSAnJHtrZXl9JyBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9JyBnZXQgY2FsbGApO1xuICB9XG5cbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgZW50cnkuY2hlY2tzdW0gPSAwO1xuXG4gIGlmIChjbGVhclZhbHVlKSB7XG4gICAgZW50cnkudmFsdWUgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYWNoZS5qcyJdLCJuYW1lcyI6WyJlbnRyaWVzIiwiV2Vha01hcCIsImdldEVudHJ5IiwidGFyZ2V0Iiwia2V5IiwidGFyZ2V0TWFwIiwiZ2V0IiwiTWFwIiwic2V0IiwiZW50cnkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImRlcHMiLCJTZXQiLCJzdGF0ZSIsImNoZWNrc3VtIiwiY2FsY3VsYXRlQ2hlY2tzdW0iLCJmb3JFYWNoIiwiY29udGV4dCIsImdldHRlciIsIkVycm9yIiwiYWRkIiwicGFyZW50Q29udGV4dCIsImNsZWFyIiwibmV4dFZhbHVlIiwiZSIsInNldHRlciIsImNhbGxiYWNrIiwibmV3VmFsdWUiLCJpbnZhbGlkYXRlIiwiY2xlYXJWYWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUVBLElBQU1BLE9BQU8sR0FBRyxJQUFJQyxPQUFKLEVBQWhCOztBQUNPLFNBQVNDLFFBQVQsQ0FBa0JDLE1BQWxCLEVBQTBCQyxHQUExQixFQUErQjtBQUNwQyxNQUFJQyxTQUFTLEdBQUdMLE9BQU8sQ0FBQ00sR0FBUixDQUFZSCxNQUFaLENBQWhCOztBQUNBLE1BQUksQ0FBQ0UsU0FBTCxFQUFnQjtBQUNkQSxJQUFBQSxTQUFTLEdBQUcsSUFBSUUsR0FBSixFQUFaO0FBQ0FQLElBQUFBLE9BQU8sQ0FBQ1EsR0FBUixDQUFZTCxNQUFaLEVBQW9CRSxTQUFwQjtBQUNEOztBQUVELE1BQUlJLEtBQUssR0FBR0osU0FBUyxDQUFDQyxHQUFWLENBQWNGLEdBQWQsQ0FBWjs7QUFFQSxNQUFJLENBQUNLLEtBQUwsRUFBWTtBQUNWQSxJQUFBQSxLQUFLLEdBQUc7QUFDTk4sTUFBQUEsTUFBTSxFQUFOQSxNQURNO0FBRU5DLE1BQUFBLEdBQUcsRUFBSEEsR0FGTTtBQUdOTSxNQUFBQSxLQUFLLEVBQUVDLFNBSEQ7QUFJTkMsTUFBQUEsSUFBSSxFQUFFLElBQUlDLEdBQUosRUFKQTtBQUtOQyxNQUFBQSxLQUFLLEVBQUUsQ0FMRDtBQU1O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QSxLQUFLLENBQUNLLEtBQU4sSUFBZSxDQUFmO0FBQ0FMLElBQUFBLEtBQUssQ0FBQ0MsS0FBTixHQUFja0IsUUFBZDtBQUVBRCxJQUFBQSxRQUFRO0FBQ1Q7QUFDRjs7QUFFTSxTQUFTRSxVQUFULENBQW9CMUIsTUFBcEIsRUFBNEJDLEdBQTVCLEVBQWlDMEIsVUFBakMsRUFBNkM7QUFDbEQsTUFBSVosT0FBSixFQUFhO0FBQ1hBLElBQUFBLE9BQU8sR0FBRyxJQUFWO0FBQ0EsVUFBTUUsS0FBSyxzQ0FBK0JoQixHQUEvQixtQkFBMkMsNkJBQWlCRCxNQUFqQixDQUEzQyxnQkFBWDtBQUNEOztBQUVELE1BQU1NLEtBQUssR0FBR1AsUUFBUSxDQUFDQyxNQUFELEVBQVNDLEdBQVQsQ0FBdEI7QUFFQUssRUFBQUEsS0FBSyxDQUFDTSxRQUFOLEdBQWlCLENBQWpCOztBQUVBLE1BQUllLFVBQUosRUFBZ0I7QUFDZHJCLElBQUFBLEtBQUssQ0FBQ0MsS0FBTixHQUFjQyxTQUFkO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ2lmeUVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgZW50cmllcyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50cnkodGFyZ2V0LCBrZXkpIHtcbiAgbGV0IHRhcmdldE1hcCA9IGVudHJpZXMuZ2V0KHRhcmdldCk7XG4gIGlmICghdGFyZ2V0TWFwKSB7XG4gICAgdGFyZ2V0TWFwID0gbmV3IE1hcCgpO1xuICAgIGVudHJpZXMuc2V0KHRhcmdldCwgdGFyZ2V0TWFwKTtcbiAgfVxuXG4gIGxldCBlbnRyeSA9IHRhcmdldE1hcC5nZXQoa2V5KTtcblxuICBpZiAoIWVudHJ5KSB7XG4gICAgZW50cnkgPSB7XG4gICAgICB0YXJnZXQsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgZGVwczogbmV3IFNldCgpLFxuICAgICAgc3RhdGU6IDEsXG4gICAgICBjaGVja3N1bTogMCxcbiAgICB9O1xuICAgIHRhcmdldE1hcC5zZXQoa2V5LCBlbnRyeSk7XG4gIH1cblxuICByZXR1cm4gZW50cnk7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNoZWNrc3VtKHsgc3RhdGUsIGRlcHMgfSkge1xuICBsZXQgY2hlY2tzdW0gPSBzdGF0ZTtcbiAgZGVwcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgICBlbnRyeS50YXJnZXRbZW50cnkua2V5XTtcbiAgICBjaGVja3N1bSArPSBlbnRyeS5zdGF0ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNoZWNrc3VtO1xufVxuXG5sZXQgY29udGV4dCA9IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0KHRhcmdldCwga2V5LCBnZXR0ZXIpIHtcbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG5cbiAgaWYgKGNvbnRleHQgPT09IGVudHJ5KSB7XG4gICAgY29udGV4dCA9IG51bGw7XG4gICAgdGhyb3cgRXJyb3IoYFtjYWNoZV0gQ2lyY3VsYXIgJyR7a2V5fScgZ2V0IGludm9jYXRpb24gaW4gJyR7c3RyaW5naWZ5RWxlbWVudCh0YXJnZXQpfSdgKTtcbiAgfVxuXG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29udGV4dC5kZXBzLmFkZChlbnRyeSk7XG4gIH1cblxuICBjb25zdCBwYXJlbnRDb250ZXh0ID0gY29udGV4dDtcbiAgY29udGV4dCA9IGVudHJ5O1xuXG4gIGlmIChlbnRyeS5jaGVja3N1bSAmJiBlbnRyeS5jaGVja3N1bSA9PT0gY2FsY3VsYXRlQ2hlY2tzdW0oZW50cnkpKSB7XG4gICAgY29udGV4dCA9IHBhcmVudENvbnRleHQ7XG4gICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICB9XG5cbiAgZW50cnkuZGVwcy5jbGVhcigpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gZ2V0dGVyKHRhcmdldCwgZW50cnkudmFsdWUpO1xuXG4gICAgaWYgKG5leHRWYWx1ZSAhPT0gZW50cnkudmFsdWUpIHtcbiAgICAgIGVudHJ5LnN0YXRlICs9IDE7XG4gICAgICBlbnRyeS52YWx1ZSA9IG5leHRWYWx1ZTtcbiAgICB9XG5cbiAgICBlbnRyeS5jaGVja3N1bSA9IGNhbGN1bGF0ZUNoZWNrc3VtKGVudHJ5KTtcbiAgICBjb250ZXh0ID0gcGFyZW50Q29udGV4dDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IGU7XG4gIH1cblxuICByZXR1cm4gZW50cnkudmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQodGFyZ2V0LCBrZXksIHNldHRlciwgdmFsdWUsIGNhbGxiYWNrKSB7XG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29udGV4dCA9IG51bGw7XG4gICAgdGhyb3cgRXJyb3IoYFtjYWNoZV0gVHJ5IHRvIHNldCAnJHtrZXl9JyBvZiAnJHtzdHJpbmdpZnlFbGVtZW50KHRhcmdldCl9JyBpbiBnZXQgY2FsbGApO1xuICB9XG5cbiAgY29uc3QgZW50cnkgPSBnZXRFbnRyeSh0YXJnZXQsIGtleSk7XG4gIGNvbnN0IG5ld1ZhbHVlID0gc2V0dGVyKHRhcmdldCwgdmFsdWUsIGVudHJ5LnZhbHVlKTtcblxuICBpZiAobmV3VmFsdWUgIT09IGVudHJ5LnZhbHVlKSB7XG4gICAgZW50cnkuc3RhdGUgKz0gMTtcbiAgICBlbnRyeS52YWx1ZSA9IG5ld1ZhbHVlO1xuXG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZSh0YXJnZXQsIGtleSwgY2xlYXJWYWx1ZSkge1xuICBpZiAoY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBudWxsO1xuICAgIHRocm93IEVycm9yKGBbY2FjaGVdIFRyeSB0byBpbnZhbGlkYXRlICcke2tleX0nIGluICcke3N0cmluZ2lmeUVsZW1lbnQodGFyZ2V0KX0nIGdldCBjYWxsYCk7XG4gIH1cblxuICBjb25zdCBlbnRyeSA9IGdldEVudHJ5KHRhcmdldCwga2V5KTtcblxuICBlbnRyeS5jaGVja3N1bSA9IDA7XG5cbiAgaWYgKGNsZWFyVmFsdWUpIHtcbiAgICBlbnRyeS52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -8,11 +8,10 @@ Object.defineProperty(exports, "__esModule", {

function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function walk(node, fn, options) {
var items = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
Array.from(node.children).forEach(function (child) {
var hybrids = child.constructor.hybrids;
if (hybrids && fn(hybrids)) {
items.push(child);
if (options.deep && options.nested) {

@@ -25,3 +24,2 @@ walk(child, fn, options, items);

});
return items;

@@ -31,4 +29,6 @@ }

function children(hybridsOrFn) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { deep: false, nested: false };
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
deep: false,
nested: false
};
var fn = typeof hybridsOrFn === 'function' ? hybridsOrFn : function (hybrids) {

@@ -50,7 +50,6 @@ return hybrids === hybridsOrFn;

Promise.resolve().then(function () {
var targets = [].concat(_toConsumableArray(set));
var list = host[key];
for (var i = 0; i < list.length; i += 1) {
if (list.indexOf(targets[i]) > -1) {
if (set.has(list[i])) {
invalidate(false);

@@ -60,5 +59,7 @@ break;

}
set.clear();
});
}
set.add(target);

@@ -68,7 +69,6 @@ };

observer.observe(host, {
childList: true, subtree: !!options.deep
childList: true,
subtree: !!options.deep
});
host.addEventListener('@invalidate', childEventListener);
return function () {

@@ -81,2 +81,2 @@ observer.disconnect();

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGlsZHJlbi5qcyJdLCJuYW1lcyI6WyJjaGlsZHJlbiIsIndhbGsiLCJub2RlIiwiZm4iLCJvcHRpb25zIiwiaXRlbXMiLCJBcnJheSIsImZyb20iLCJmb3JFYWNoIiwiY2hpbGQiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJwdXNoIiwiZGVlcCIsIm5lc3RlZCIsImh5YnJpZHNPckZuIiwiZ2V0IiwiaG9zdCIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwic2V0IiwiU2V0IiwiY2hpbGRFdmVudExpc3RlbmVyIiwidGFyZ2V0Iiwic2l6ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInRhcmdldHMiLCJsaXN0IiwiaSIsImxlbmd0aCIsImluZGV4T2YiLCJjbGVhciIsImFkZCIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRpc2Nvbm5lY3QiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiOzs7OztrQkFnQndCQSxROzs7O0FBaEJ4QixTQUFTQyxJQUFULENBQWNDLElBQWQsRUFBb0JDLEVBQXBCLEVBQXdCQyxPQUF4QixFQUE2QztBQUFBLE1BQVpDLEtBQVksdUVBQUosRUFBSTs7QUFDM0NDLFFBQU1DLElBQU4sQ0FBV0wsS0FBS0YsUUFBaEIsRUFBMEJRLE9BQTFCLENBQWtDLFVBQUNDLEtBQUQsRUFBVztBQUMzQyxRQUFNQyxVQUFVRCxNQUFNRSxXQUFOLENBQWtCRCxPQUFsQztBQUNBLFFBQUlBLFdBQVdQLEdBQUdPLE9BQUgsQ0FBZixFQUE0QjtBQUMxQkwsWUFBTU8sSUFBTixDQUFXSCxLQUFYO0FBQ0EsVUFBSUwsUUFBUVMsSUFBUixJQUFnQlQsUUFBUVUsTUFBNUIsRUFBb0M7QUFDbENiLGFBQUtRLEtBQUwsRUFBWU4sRUFBWixFQUFnQkMsT0FBaEIsRUFBeUJDLEtBQXpCO0FBQ0Q7QUFDRixLQUxELE1BS08sSUFBSUQsUUFBUVMsSUFBWixFQUFrQjtBQUN2QlosV0FBS1EsS0FBTCxFQUFZTixFQUFaLEVBQWdCQyxPQUFoQixFQUF5QkMsS0FBekI7QUFDRDtBQUNGLEdBVkQ7O0FBWUEsU0FBT0EsS0FBUDtBQUNEOztBQUVjLFNBQVNMLFFBQVQsQ0FBa0JlLFdBQWxCLEVBQXlFO0FBQUEsTUFBMUNYLE9BQTBDLHVFQUFoQyxFQUFFUyxNQUFNLEtBQVIsRUFBZUMsUUFBUSxLQUF2QixFQUFnQzs7QUFDdEYsTUFBTVgsS0FBSyxPQUFPWSxXQUFQLEtBQXVCLFVBQXZCLEdBQW9DQSxXQUFwQyxHQUFrRDtBQUFBLFdBQVdMLFlBQVlLLFdBQXZCO0FBQUEsR0FBN0Q7QUFDQSxTQUFPO0FBQ0xDLE9BREssZUFDREMsSUFEQyxFQUNLO0FBQUUsYUFBT2hCLEtBQUtnQixJQUFMLEVBQVdkLEVBQVgsRUFBZUMsT0FBZixDQUFQO0FBQWlDLEtBRHhDO0FBRUxjLFdBRkssbUJBRUdELElBRkgsRUFFU0UsR0FGVCxFQUVjQyxVQUZkLEVBRTBCO0FBQzdCLFVBQU1DLFdBQVcsSUFBSUMsZ0JBQUosQ0FBcUJGLFVBQXJCLENBQWpCO0FBQ0EsVUFBTUcsTUFBTSxJQUFJQyxHQUFKLEVBQVo7O0FBRUEsVUFBTUMscUJBQXFCLFNBQXJCQSxrQkFBcUIsT0FBZ0I7QUFBQSxZQUFiQyxNQUFhLFFBQWJBLE1BQWE7O0FBQ3pDLFlBQUksQ0FBQ0gsSUFBSUksSUFBVCxFQUFlO0FBQ2JDLGtCQUFRQyxPQUFSLEdBQWtCQyxJQUFsQixDQUF1QixZQUFNO0FBQzNCLGdCQUFNQyx1Q0FBY1IsR0FBZCxFQUFOO0FBQ0EsZ0JBQU1TLE9BQU9mLEtBQUtFLEdBQUwsQ0FBYjs7QUFFQSxpQkFBSyxJQUFJYyxJQUFJLENBQWIsRUFBZ0JBLElBQUlELEtBQUtFLE1BQXpCLEVBQWlDRCxLQUFLLENBQXRDLEVBQXlDO0FBQ3ZDLGtCQUFJRCxLQUFLRyxPQUFMLENBQWFKLFFBQVFFLENBQVIsQ0FBYixJQUEyQixDQUFDLENBQWhDLEVBQW1DO0FBQ2pDYiwyQkFBVyxLQUFYO0FBQ0E7QUFDRDtBQUNGO0FBQ0RHLGdCQUFJYSxLQUFKO0FBQ0QsV0FYRDtBQVlEO0FBQ0RiLFlBQUljLEdBQUosQ0FBUVgsTUFBUjtBQUNELE9BaEJEOztBQWtCQUwsZUFBU2lCLE9BQVQsQ0FBaUJyQixJQUFqQixFQUF1QjtBQUNyQnNCLG1CQUFXLElBRFUsRUFDSkMsU0FBUyxDQUFDLENBQUNwQyxRQUFRUztBQURmLE9BQXZCOztBQUlBSSxXQUFLd0IsZ0JBQUwsQ0FBc0IsYUFBdEIsRUFBcUNoQixrQkFBckM7O0FBRUEsYUFBTyxZQUFNO0FBQ1hKLGlCQUFTcUIsVUFBVDtBQUNBekIsYUFBSzBCLG1CQUFMLENBQXlCLGFBQXpCLEVBQXdDbEIsa0JBQXhDO0FBQ0QsT0FIRDtBQUlEO0FBbENJLEdBQVA7QUFvQ0QiLCJmaWxlIjoiY2hpbGRyZW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiB3YWxrKG5vZGUsIGZuLCBvcHRpb25zLCBpdGVtcyA9IFtdKSB7XG4gIEFycmF5LmZyb20obm9kZS5jaGlsZHJlbikuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICBjb25zdCBoeWJyaWRzID0gY2hpbGQuY29uc3RydWN0b3IuaHlicmlkcztcbiAgICBpZiAoaHlicmlkcyAmJiBmbihoeWJyaWRzKSkge1xuICAgICAgaXRlbXMucHVzaChjaGlsZCk7XG4gICAgICBpZiAob3B0aW9ucy5kZWVwICYmIG9wdGlvbnMubmVzdGVkKSB7XG4gICAgICAgIHdhbGsoY2hpbGQsIGZuLCBvcHRpb25zLCBpdGVtcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRlZXApIHtcbiAgICAgIHdhbGsoY2hpbGQsIGZuLCBvcHRpb25zLCBpdGVtcyk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaXRlbXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNoaWxkcmVuKGh5YnJpZHNPckZuLCBvcHRpb25zID0geyBkZWVwOiBmYWxzZSwgbmVzdGVkOiBmYWxzZSB9KSB7XG4gIGNvbnN0IGZuID0gdHlwZW9mIGh5YnJpZHNPckZuID09PSAnZnVuY3Rpb24nID8gaHlicmlkc09yRm4gOiBoeWJyaWRzID0+IGh5YnJpZHMgPT09IGh5YnJpZHNPckZuO1xuICByZXR1cm4ge1xuICAgIGdldChob3N0KSB7IHJldHVybiB3YWxrKGhvc3QsIGZuLCBvcHRpb25zKTsgfSxcbiAgICBjb25uZWN0KGhvc3QsIGtleSwgaW52YWxpZGF0ZSkge1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihpbnZhbGlkYXRlKTtcbiAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQoKTtcblxuICAgICAgY29uc3QgY2hpbGRFdmVudExpc3RlbmVyID0gKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgICAgaWYgKCFzZXQuc2l6ZSkge1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IFsuLi5zZXRdO1xuICAgICAgICAgICAgY29uc3QgbGlzdCA9IGhvc3Rba2V5XTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgIGlmIChsaXN0LmluZGV4T2YodGFyZ2V0c1tpXSkgPiAtMSkge1xuICAgICAgICAgICAgICAgIGludmFsaWRhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXQuY2xlYXIoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBzZXQuYWRkKHRhcmdldCk7XG4gICAgICB9O1xuXG4gICAgICBvYnNlcnZlci5vYnNlcnZlKGhvc3QsIHtcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiAhIW9wdGlvbnMuZGVlcCxcbiAgICAgIH0pO1xuXG4gICAgICBob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ0BpbnZhbGlkYXRlJywgY2hpbGRFdmVudExpc3RlbmVyKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICBob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0BpbnZhbGlkYXRlJywgY2hpbGRFdmVudExpc3RlbmVyKTtcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGlsZHJlbi5qcyJdLCJuYW1lcyI6WyJ3YWxrIiwibm9kZSIsImZuIiwib3B0aW9ucyIsIml0ZW1zIiwiQXJyYXkiLCJmcm9tIiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiY2hpbGQiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJwdXNoIiwiZGVlcCIsIm5lc3RlZCIsImh5YnJpZHNPckZuIiwiZ2V0IiwiaG9zdCIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwic2V0IiwiU2V0IiwiY2hpbGRFdmVudExpc3RlbmVyIiwidGFyZ2V0Iiwic2l6ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImxpc3QiLCJpIiwibGVuZ3RoIiwiaGFzIiwiY2xlYXIiLCJhZGQiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJkaXNjb25uZWN0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLFNBQVNBLElBQVQsQ0FBY0MsSUFBZCxFQUFvQkMsRUFBcEIsRUFBd0JDLE9BQXhCLEVBQTZDO0FBQUEsTUFBWkMsS0FBWSx1RUFBSixFQUFJO0FBQzNDQyxFQUFBQSxLQUFLLENBQUNDLElBQU4sQ0FBV0wsSUFBSSxDQUFDTSxRQUFoQixFQUEwQkMsT0FBMUIsQ0FBa0MsVUFBQ0MsS0FBRCxFQUFXO0FBQzNDLFFBQU1DLE9BQU8sR0FBR0QsS0FBSyxDQUFDRSxXQUFOLENBQWtCRCxPQUFsQzs7QUFDQSxRQUFJQSxPQUFPLElBQUlSLEVBQUUsQ0FBQ1EsT0FBRCxDQUFqQixFQUE0QjtBQUMxQk4sTUFBQUEsS0FBSyxDQUFDUSxJQUFOLENBQVdILEtBQVg7O0FBQ0EsVUFBSU4sT0FBTyxDQUFDVSxJQUFSLElBQWdCVixPQUFPLENBQUNXLE1BQTVCLEVBQW9DO0FBQ2xDZCxRQUFBQSxJQUFJLENBQUNTLEtBQUQsRUFBUVAsRUFBUixFQUFZQyxPQUFaLEVBQXFCQyxLQUFyQixDQUFKO0FBQ0Q7QUFDRixLQUxELE1BS08sSUFBSUQsT0FBTyxDQUFDVSxJQUFaLEVBQWtCO0FBQ3ZCYixNQUFBQSxJQUFJLENBQUNTLEtBQUQsRUFBUVAsRUFBUixFQUFZQyxPQUFaLEVBQXFCQyxLQUFyQixDQUFKO0FBQ0Q7QUFDRixHQVZEO0FBWUEsU0FBT0EsS0FBUDtBQUNEOztBQUVjLFNBQVNHLFFBQVQsQ0FBa0JRLFdBQWxCLEVBQXlFO0FBQUEsTUFBMUNaLE9BQTBDLHVFQUFoQztBQUFFVSxJQUFBQSxJQUFJLEVBQUUsS0FBUjtBQUFlQyxJQUFBQSxNQUFNLEVBQUU7QUFBdkIsR0FBZ0M7QUFDdEYsTUFBTVosRUFBRSxHQUFHLE9BQU9hLFdBQVAsS0FBdUIsVUFBdkIsR0FBb0NBLFdBQXBDLEdBQWtELFVBQUFMLE9BQU87QUFBQSxXQUFJQSxPQUFPLEtBQUtLLFdBQWhCO0FBQUEsR0FBcEU7QUFDQSxTQUFPO0FBQ0xDLElBQUFBLEdBREssZUFDREMsSUFEQyxFQUNLO0FBQUUsYUFBT2pCLElBQUksQ0FBQ2lCLElBQUQsRUFBT2YsRUFBUCxFQUFXQyxPQUFYLENBQVg7QUFBaUMsS0FEeEM7QUFFTGUsSUFBQUEsT0FGSyxtQkFFR0QsSUFGSCxFQUVTRSxHQUZULEVBRWNDLFVBRmQsRUFFMEI7QUFDN0IsVUFBTUMsUUFBUSxHQUFHLElBQUlDLGdCQUFKLENBQXFCRixVQUFyQixDQUFqQjtBQUNBLFVBQU1HLEdBQUcsR0FBRyxJQUFJQyxHQUFKLEVBQVo7O0FBRUEsVUFBTUMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFxQixPQUFnQjtBQUFBLFlBQWJDLE1BQWEsUUFBYkEsTUFBYTs7QUFDekMsWUFBSSxDQUFDSCxHQUFHLENBQUNJLElBQVQsRUFBZTtBQUNiQyxVQUFBQSxPQUFPLENBQUNDLE9BQVIsR0FBa0JDLElBQWxCLENBQXVCLFlBQU07QUFDM0IsZ0JBQU1DLElBQUksR0FBR2QsSUFBSSxDQUFDRSxHQUFELENBQWpCOztBQUNBLGlCQUFLLElBQUlhLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdELElBQUksQ0FBQ0UsTUFBekIsRUFBaUNELENBQUMsSUFBSSxDQUF0QyxFQUF5QztBQUN2QyxrQkFBSVQsR0FBRyxDQUFDVyxHQUFKLENBQVFILElBQUksQ0FBQ0MsQ0FBRCxDQUFaLENBQUosRUFBc0I7QUFDcEJaLGdCQUFBQSxVQUFVLENBQUMsS0FBRCxDQUFWO0FBQ0E7QUFDRDtBQUNGOztBQUNERyxZQUFBQSxHQUFHLENBQUNZLEtBQUo7QUFDRCxXQVREO0FBVUQ7O0FBQ0RaLFFBQUFBLEdBQUcsQ0FBQ2EsR0FBSixDQUFRVixNQUFSO0FBQ0QsT0FkRDs7QUFnQkFMLE1BQUFBLFFBQVEsQ0FBQ2dCLE9BQVQsQ0FBaUJwQixJQUFqQixFQUF1QjtBQUNyQnFCLFFBQUFBLFNBQVMsRUFBRSxJQURVO0FBQ0pDLFFBQUFBLE9BQU8sRUFBRSxDQUFDLENBQUNwQyxPQUFPLENBQUNVO0FBRGYsT0FBdkI7QUFJQUksTUFBQUEsSUFBSSxDQUFDdUIsZ0JBQUwsQ0FBc0IsYUFBdEIsRUFBcUNmLGtCQUFyQztBQUVBLGFBQU8sWUFBTTtBQUNYSixRQUFBQSxRQUFRLENBQUNvQixVQUFUO0FBQ0F4QixRQUFBQSxJQUFJLENBQUN5QixtQkFBTCxDQUF5QixhQUF6QixFQUF3Q2pCLGtCQUF4QztBQUNELE9BSEQ7QUFJRDtBQWhDSSxHQUFQO0FBa0NEIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gd2Fsayhub2RlLCBmbiwgb3B0aW9ucywgaXRlbXMgPSBbXSkge1xuICBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgY29uc3QgaHlicmlkcyA9IGNoaWxkLmNvbnN0cnVjdG9yLmh5YnJpZHM7XG4gICAgaWYgKGh5YnJpZHMgJiYgZm4oaHlicmlkcykpIHtcbiAgICAgIGl0ZW1zLnB1c2goY2hpbGQpO1xuICAgICAgaWYgKG9wdGlvbnMuZGVlcCAmJiBvcHRpb25zLm5lc3RlZCkge1xuICAgICAgICB3YWxrKGNoaWxkLCBmbiwgb3B0aW9ucywgaXRlbXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5kZWVwKSB7XG4gICAgICB3YWxrKGNoaWxkLCBmbiwgb3B0aW9ucywgaXRlbXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGl0ZW1zO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjaGlsZHJlbihoeWJyaWRzT3JGbiwgb3B0aW9ucyA9IHsgZGVlcDogZmFsc2UsIG5lc3RlZDogZmFsc2UgfSkge1xuICBjb25zdCBmbiA9IHR5cGVvZiBoeWJyaWRzT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IGh5YnJpZHNPckZuIDogaHlicmlkcyA9PiBoeWJyaWRzID09PSBoeWJyaWRzT3JGbjtcbiAgcmV0dXJuIHtcbiAgICBnZXQoaG9zdCkgeyByZXR1cm4gd2Fsayhob3N0LCBmbiwgb3B0aW9ucyk7IH0sXG4gICAgY29ubmVjdChob3N0LCBrZXksIGludmFsaWRhdGUpIHtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoaW52YWxpZGF0ZSk7XG4gICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XG5cbiAgICAgIGNvbnN0IGNoaWxkRXZlbnRMaXN0ZW5lciA9ICh7IHRhcmdldCB9KSA9PiB7XG4gICAgICAgIGlmICghc2V0LnNpemUpIHtcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBob3N0W2tleV07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgaWYgKHNldC5oYXMobGlzdFtpXSkpIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0LmNsZWFyKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0LmFkZCh0YXJnZXQpO1xuICAgICAgfTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShob3N0LCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogISFvcHRpb25zLmRlZXAsXG4gICAgICB9KTtcblxuICAgICAgaG9zdC5hZGRFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIGNoaWxkRXZlbnRMaXN0ZW5lcik7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIGNoaWxkRXZlbnRMaXN0ZW5lcik7XG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG4iXX0=

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,36 +6,47 @@ Object.defineProperty(exports, "__esModule", {

});
exports.default = define;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _property = _interopRequireDefault(require("./property"));
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _render = _interopRequireDefault(require("./render"));
exports.HTMLBridge = HTMLBridge;
exports.default = define;
var cache = _interopRequireWildcard(require("./cache"));
var _property = require('./property');
var _utils = require("./utils");
var _property2 = _interopRequireDefault(_property);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
var _render = require('./render');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _render2 = _interopRequireDefault(_render);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var _cache = require('./cache');
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
var cache = _interopRequireWildcard(_cache);
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var _utils = require('./utils');
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function dispatchInvalidate(host) {
(0, _utils.dispatch)(host, '@invalidate', { bubbles: true, composed: true });
(0, _utils.dispatch)(host, '@invalidate', {
bubbles: true,
composed: true
});
}

@@ -50,15 +61,16 @@

Hybrid.connects = [];
Object.keys(hybrids).forEach(function (key) {
var config = hybrids[key];
var type = typeof config === 'undefined' ? 'undefined' : _typeof(config);
var type = _typeof(config);
if (type === 'function') {
config = key === 'render' ? (0, _render2.default)(config) : { get: config };
config = key === 'render' ? (0, _render.default)(config) : {
get: config
};
} else if (config === null || type !== 'object' || type === 'object' && !config.get && !config.set) {
config = (0, _property2.default)(config);
config = (0, _property.default)(config);
}
config.get = config.get || defaultGet;
Object.defineProperty(Hybrid.prototype, key, {

@@ -83,3 +95,2 @@ get: function get() {

var clearCache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
if (clearCache) cache.invalidate(host, key);

@@ -93,7 +104,7 @@ dispatchInvalidate(host);

var update = void 0;
var update;
if (process.env.NODE_ENV !== 'production') {
var walkInShadow = function walkInShadow(node, fn) {
fn(node);
Array.from(node.children).forEach(function (el) {

@@ -111,2 +122,3 @@ return walkInShadow(el, fn);

var updateQueue = new Map();
update = function update(Hybrid, lastHybrids) {

@@ -119,7 +131,5 @@ if (!updateQueue.size) {

node.disconnectedCallback();
Object.keys(node.constructor.hybrids).forEach(function (key) {
cache.invalidate(node, key, node[key] === hybrids[key]);
});
node.connectedCallback();

@@ -132,2 +142,3 @@ dispatchInvalidate(node);

}
updateQueue.set(Hybrid, lastHybrids);

@@ -137,16 +148,7 @@ };

// BUG: Babel v6 transpiled class breaks native custom elements
function HTMLBridge() {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return Reflect.construct(HTMLElement, args, this.constructor);
}
Object.setPrototypeOf(HTMLBridge.prototype, HTMLElement.prototype);
var connects = new WeakMap();
function defineElement(tagName, hybridsOrConstructor) {
var type = typeof hybridsOrConstructor === 'undefined' ? 'undefined' : _typeof(hybridsOrConstructor);
var type = _typeof(hybridsOrConstructor);
if (type !== 'object' && type !== 'function') {

@@ -162,2 +164,3 @@ throw TypeError('[define] Invalid second argument. It must be an object or a function');

}
return CustomElement;

@@ -170,2 +173,3 @@ }

}
if (process.env.NODE_ENV !== 'production' && CustomElement.hybrids) {

@@ -175,16 +179,15 @@ Object.keys(CustomElement.hybrids).forEach(function (key) {

});
var lastHybrids = CustomElement.hybrids;
compile(CustomElement, hybridsOrConstructor);
update(CustomElement, lastHybrids);
return CustomElement;
}
throw Error('[define] Element \'' + tagName + '\' already defined');
throw Error("[define] Element '".concat(tagName, "' already defined"));
}
var Hybrid = function (_HTMLBridge) {
_inherits(Hybrid, _HTMLBridge);
var Hybrid =
/*#__PURE__*/
function (_HTMLElement) {
_inherits(Hybrid, _HTMLElement);

@@ -194,16 +197,15 @@ function Hybrid() {

return _possibleConstructorReturn(this, (Hybrid.__proto__ || Object.getPrototypeOf(Hybrid)).apply(this, arguments));
return _possibleConstructorReturn(this, _getPrototypeOf(Hybrid).apply(this, arguments));
}
_createClass(Hybrid, [{
key: 'connectedCallback',
key: "connectedCallback",
value: function connectedCallback() {
var _this3 = this;
var _this2 = this;
var list = this.constructor.connects.reduce(function (acc, fn) {
var result = fn(_this3);
var result = fn(_this2);
if (result) acc.add(result);
return acc;
}, new Set());
connects.set(this, list);

@@ -213,3 +215,3 @@ dispatchInvalidate(this);

}, {
key: 'disconnectedCallback',
key: "disconnectedCallback",
value: function disconnectedCallback() {

@@ -222,3 +224,3 @@ var list = connects.get(this);

}], [{
key: 'name',
key: "name",
get: function get() {

@@ -230,7 +232,6 @@ return tagName;

return Hybrid;
}(HTMLBridge);
}(_wrapNativeSuper(HTMLElement));
compile(Hybrid, hybridsOrConstructor);
customElements.define(tagName, Hybrid);
return Hybrid;

@@ -243,3 +244,2 @@ }

acc[key] = defineElement(tagName, elements[key]);
return acc;

@@ -254,4 +254,4 @@ }, {});

return defineElement.apply(undefined, arguments);
return defineElement.apply(void 0, arguments);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsiSFRNTEJyaWRnZSIsImRlZmluZSIsImNhY2hlIiwiZGlzcGF0Y2hJbnZhbGlkYXRlIiwiaG9zdCIsImJ1YmJsZXMiLCJjb21wb3NlZCIsImRlZmF1bHRHZXQiLCJ2YWx1ZSIsImNvbXBpbGUiLCJIeWJyaWQiLCJoeWJyaWRzIiwiY29ubmVjdHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImNvbmZpZyIsInR5cGUiLCJnZXQiLCJzZXQiLCJkZWZpbmVQcm9wZXJ0eSIsInByb3RvdHlwZSIsIm5ld1ZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbm5lY3QiLCJwdXNoIiwiY2xlYXJDYWNoZSIsImludmFsaWRhdGUiLCJ1cGRhdGUiLCJ3YWxrSW5TaGFkb3ciLCJub2RlIiwiZm4iLCJBcnJheSIsImZyb20iLCJjaGlsZHJlbiIsImVsIiwic2hhZG93Um9vdCIsInVwZGF0ZVF1ZXVlIiwiTWFwIiwibGFzdEh5YnJpZHMiLCJzaXplIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZG9jdW1lbnQiLCJib2R5IiwiaGFzIiwiY29uc3RydWN0b3IiLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImNvbm5lY3RlZENhbGxiYWNrIiwiY2xlYXIiLCJhcmdzIiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIkhUTUxFbGVtZW50Iiwic2V0UHJvdG90eXBlT2YiLCJXZWFrTWFwIiwiZGVmaW5lRWxlbWVudCIsInRhZ05hbWUiLCJoeWJyaWRzT3JDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIkN1c3RvbUVsZW1lbnQiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsIkVycm9yIiwibGlzdCIsInJlZHVjZSIsImFjYyIsInJlc3VsdCIsImFkZCIsIlNldCIsImRlZmluZU1hcCIsImVsZW1lbnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O1FB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QUFDQyxHQUFELEVBQU14RCxHQUFOLEVBQWM7QUFDaEQsUUFBTStDLFVBQVUseUJBQWEvQyxHQUFiLENBQWhCO0FBQ0F3RCxRQUFJeEQsR0FBSixJQUFXOEMsY0FBY0MsT0FBZCxFQUF1QmMsU0FBUzdELEdBQVQsQ0FBdkIsQ0FBWDs7QUFFQSxXQUFPd0QsR0FBUDtBQUNELEdBTE0sRUFLSixFQUxJLENBQVA7QUFNRDs7QUFFYyxTQUFTdkUsTUFBVCxHQUF5QjtBQUN0QyxNQUFJLDhEQUFtQixRQUF2QixFQUFpQztBQUMvQixXQUFPMkUsMkRBQVA7QUFDRDs7QUFFRCxTQUFPZCx5Q0FBUDtBQUNEIiwiZmlsZSI6ImRlZmluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcm9wZXJ0eSBmcm9tICcuL3Byb3BlcnR5JztcbmltcG9ydCByZW5kZXIgZnJvbSAnLi9yZW5kZXInO1xuXG5pbXBvcnQgKiBhcyBjYWNoZSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCB7IGRpc3BhdGNoLCBwYXNjYWxUb0Rhc2ggfSBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gZGlzcGF0Y2hJbnZhbGlkYXRlKGhvc3QpIHtcbiAgZGlzcGF0Y2goaG9zdCwgJ0BpbnZhbGlkYXRlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KTtcbn1cblxuY29uc3QgZGVmYXVsdEdldCA9IChob3N0LCB2YWx1ZSkgPT4gdmFsdWU7XG5cbmZ1bmN0aW9uIGNvbXBpbGUoSHlicmlkLCBoeWJyaWRzKSB7XG4gIEh5YnJpZC5oeWJyaWRzID0gaHlicmlkcztcbiAgSHlicmlkLmNvbm5lY3RzID0gW107XG5cbiAgT2JqZWN0LmtleXMoaHlicmlkcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgbGV0IGNvbmZpZyA9IGh5YnJpZHNba2V5XTtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIGNvbmZpZztcblxuICAgIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcgPSBrZXkgPT09ICdyZW5kZXInID8gcmVuZGVyKGNvbmZpZykgOiB7IGdldDogY29uZmlnIH07XG4gICAgfSBlbHNlIGlmIChjb25maWcgPT09IG51bGwgfHwgdHlwZSAhPT0gJ29iamVjdCcgfHwgKHR5cGUgPT09ICdvYmplY3QnICYmICFjb25maWcuZ2V0ICYmICFjb25maWcuc2V0KSkge1xuICAgICAgY29uZmlnID0gcHJvcGVydHkoY29uZmlnKTtcbiAgICB9XG5cbiAgICBjb25maWcuZ2V0ID0gY29uZmlnLmdldCB8fCBkZWZhdWx0R2V0O1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEh5YnJpZC5wcm90b3R5cGUsIGtleSwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQodGhpcywga2V5LCBjb25maWcuZ2V0KTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGNvbmZpZy5zZXQgJiYgZnVuY3Rpb24gc2V0KG5ld1ZhbHVlKSB7XG4gICAgICAgIGNhY2hlLnNldCh0aGlzLCBrZXksIGNvbmZpZy5zZXQsIG5ld1ZhbHVlLCAoKSA9PiBkaXNwYXRjaEludmFsaWRhdGUodGhpcykpO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG4gICAgfSk7XG5cbiAgICBpZiAoY29uZmlnLmNvbm5lY3QpIHtcbiAgICAgIEh5YnJpZC5jb25uZWN0cy5wdXNoKGhvc3QgPT4gY29uZmlnLmNvbm5lY3QoaG9zdCwga2V5LCAoY2xlYXJDYWNoZSA9IHRydWUpID0+IHtcbiAgICAgICAgaWYgKGNsZWFyQ2FjaGUpIGNhY2hlLmludmFsaWRhdGUoaG9zdCwga2V5KTtcbiAgICAgICAgZGlzcGF0Y2hJbnZhbGlkYXRlKGhvc3QpO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfSk7XG59XG5cbmxldCB1cGRhdGU7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YWxrSW5TaGFkb3cgPSAobm9kZSwgZm4pID0+IHtcbiAgICBmbihub2RlKTtcblxuICAgIEFycmF5LmZyb20obm9kZS5jaGlsZHJlbilcbiAgICAgIC5mb3JFYWNoKGVsID0+IHdhbGtJblNoYWRvdyhlbCwgZm4pKTtcblxuICAgIGlmIChub2RlLnNoYWRvd1Jvb3QpIHtcbiAgICAgIEFycmF5LmZyb20obm9kZS5zaGFkb3dSb290LmNoaWxkcmVuKVxuICAgICAgICAuZm9yRWFjaChlbCA9PiB3YWxrSW5TaGFkb3coZWwsIGZuKSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVF1ZXVlID0gbmV3IE1hcCgpO1xuICB1cGRhdGUgPSAoSHlicmlkLCBsYXN0SHlicmlkcykgPT4ge1xuICAgIGlmICghdXBkYXRlUXVldWUuc2l6ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHdhbGtJblNoYWRvdyhkb2N1bWVudC5ib2R5LCAobm9kZSkgPT4ge1xuICAgICAgICAgIGlmICh1cGRhdGVRdWV1ZS5oYXMobm9kZS5jb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGh5YnJpZHMgPSB1cGRhdGVRdWV1ZS5nZXQobm9kZS5jb25zdHJ1Y3Rvcik7XG4gICAgICAgICAgICBub2RlLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5vZGUuY29uc3RydWN0b3IuaHlicmlkcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNhY2hlLmludmFsaWRhdGUobm9kZSwga2V5LCBub2RlW2tleV0gPT09IGh5YnJpZHNba2V5XSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbm9kZS5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgICAgICAgZGlzcGF0Y2hJbnZhbGlkYXRlKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHVwZGF0ZVF1ZXVlLmNsZWFyKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdXBkYXRlUXVldWUuc2V0KEh5YnJpZCwgbGFzdEh5YnJpZHMpO1xuICB9O1xufVxuXG4vLyBCVUc6IEJhYmVsIHY2IHRyYW5zcGlsZWQgY2xhc3MgYnJlYWtzIG5hdGl2ZSBjdXN0b20gZWxlbWVudHNcbmV4cG9ydCBmdW5jdGlvbiBIVE1MQnJpZGdlKC4uLmFyZ3MpIHtcbiAgcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KEhUTUxFbGVtZW50LCBhcmdzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbn1cbk9iamVjdC5zZXRQcm90b3R5cGVPZihIVE1MQnJpZGdlLnByb3RvdHlwZSwgSFRNTEVsZW1lbnQucHJvdG90eXBlKTtcblxuY29uc3QgY29ubmVjdHMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBkZWZpbmVFbGVtZW50KHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgaHlicmlkc09yQ29uc3RydWN0b3I7XG4gIGlmICh0eXBlICE9PSAnb2JqZWN0JyAmJiB0eXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKCdbZGVmaW5lXSBJbnZhbGlkIHNlY29uZCBhcmd1bWVudC4gSXQgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgY29uc3QgQ3VzdG9tRWxlbWVudCA9IHdpbmRvdy5jdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSk7XG5cbiAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoQ3VzdG9tRWxlbWVudCAhPT0gaHlicmlkc09yQ29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIEN1c3RvbUVsZW1lbnQ7XG4gIH1cblxuICBpZiAoQ3VzdG9tRWxlbWVudCkge1xuICAgIGlmIChDdXN0b21FbGVtZW50Lmh5YnJpZHMgPT09IGh5YnJpZHNPckNvbnN0cnVjdG9yKSB7XG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgQ3VzdG9tRWxlbWVudC5oeWJyaWRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhDdXN0b21FbGVtZW50Lmh5YnJpZHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkZWxldGUgQ3VzdG9tRWxlbWVudC5wcm90b3R5cGVba2V5XTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBsYXN0SHlicmlkcyA9IEN1c3RvbUVsZW1lbnQuaHlicmlkcztcblxuICAgICAgY29tcGlsZShDdXN0b21FbGVtZW50LCBoeWJyaWRzT3JDb25zdHJ1Y3Rvcik7XG4gICAgICB1cGRhdGUoQ3VzdG9tRWxlbWVudCwgbGFzdEh5YnJpZHMpO1xuXG4gICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcihgW2RlZmluZV0gRWxlbWVudCAnJHt0YWdOYW1lfScgYWxyZWFkeSBkZWZpbmVkYCk7XG4gIH1cblxuICBjbGFzcyBIeWJyaWQgZXh0ZW5kcyBIVE1MQnJpZGdlIHtcbiAgICBzdGF0aWMgZ2V0IG5hbWUoKSB7IHJldHVybiB0YWdOYW1lOyB9XG5cbiAgICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNvbnN0cnVjdG9yLmNvbm5lY3RzLnJlZHVjZSgoYWNjLCBmbikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBmbih0aGlzKTtcbiAgICAgICAgaWYgKHJlc3VsdCkgYWNjLmFkZChyZXN1bHQpO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgbmV3IFNldCgpKTtcblxuICAgICAgY29ubmVjdHMuc2V0KHRoaXMsIGxpc3QpO1xuICAgICAgZGlzcGF0Y2hJbnZhbGlkYXRlKHRoaXMpO1xuICAgIH1cblxuICAgIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgICAgY29uc3QgbGlzdCA9IGNvbm5lY3RzLmdldCh0aGlzKTtcbiAgICAgIGxpc3QuZm9yRWFjaChmbiA9PiBmbigpKTtcbiAgICB9XG4gIH1cblxuICBjb21waWxlKEh5YnJpZCwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgSHlicmlkKTtcblxuICByZXR1cm4gSHlicmlkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVNYXAoZWxlbWVudHMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGVsZW1lbnRzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgY29uc3QgdGFnTmFtZSA9IHBhc2NhbFRvRGFzaChrZXkpO1xuICAgIGFjY1trZXldID0gZGVmaW5lRWxlbWVudCh0YWdOYW1lLCBlbGVtZW50c1trZXldKTtcblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVmaW5lKC4uLmFyZ3MpIHtcbiAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBkZWZpbmVNYXAoYXJnc1swXSk7XG4gIH1cblxuICByZXR1cm4gZGVmaW5lRWxlbWVudCguLi5hcmdzKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbmUuanMiXSwibmFtZXMiOlsiZGlzcGF0Y2hJbnZhbGlkYXRlIiwiaG9zdCIsImJ1YmJsZXMiLCJjb21wb3NlZCIsImRlZmF1bHRHZXQiLCJ2YWx1ZSIsImNvbXBpbGUiLCJIeWJyaWQiLCJoeWJyaWRzIiwiY29ubmVjdHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImNvbmZpZyIsInR5cGUiLCJnZXQiLCJzZXQiLCJkZWZpbmVQcm9wZXJ0eSIsInByb3RvdHlwZSIsImNhY2hlIiwibmV3VmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdCIsInB1c2giLCJjbGVhckNhY2hlIiwiaW52YWxpZGF0ZSIsInVwZGF0ZSIsIndhbGtJblNoYWRvdyIsIm5vZGUiLCJmbiIsIkFycmF5IiwiZnJvbSIsImNoaWxkcmVuIiwiZWwiLCJzaGFkb3dSb290IiwidXBkYXRlUXVldWUiLCJNYXAiLCJsYXN0SHlicmlkcyIsInNpemUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJkb2N1bWVudCIsImJvZHkiLCJoYXMiLCJjb25zdHJ1Y3RvciIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiY29ubmVjdGVkQ2FsbGJhY2siLCJjbGVhciIsIldlYWtNYXAiLCJkZWZpbmVFbGVtZW50IiwidGFnTmFtZSIsImh5YnJpZHNPckNvbnN0cnVjdG9yIiwiVHlwZUVycm9yIiwiQ3VzdG9tRWxlbWVudCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIiwiRXJyb3IiLCJsaXN0IiwicmVkdWNlIiwiYWNjIiwicmVzdWx0IiwiYWRkIiwiU2V0IiwiSFRNTEVsZW1lbnQiLCJkZWZpbmVNYXAiLCJlbGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFNBQVNB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ZnJvbSAnLi9yZW5kZXInO1xuXG5pbXBvcnQgKiBhcyBjYWNoZSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCB7IGRpc3BhdGNoLCBwYXNjYWxUb0Rhc2ggfSBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gZGlzcGF0Y2hJbnZhbGlkYXRlKGhvc3QpIHtcbiAgZGlzcGF0Y2goaG9zdCwgJ0BpbnZhbGlkYXRlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KTtcbn1cblxuY29uc3QgZGVmYXVsdEdldCA9IChob3N0LCB2YWx1ZSkgPT4gdmFsdWU7XG5cbmZ1bmN0aW9uIGNvbXBpbGUoSHlicmlkLCBoeWJyaWRzKSB7XG4gIEh5YnJpZC5oeWJyaWRzID0gaHlicmlkcztcbiAgSHlicmlkLmNvbm5lY3RzID0gW107XG5cbiAgT2JqZWN0LmtleXMoaHlicmlkcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgbGV0IGNvbmZpZyA9IGh5YnJpZHNba2V5XTtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIGNvbmZpZztcblxuICAgIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcgPSBrZXkgPT09ICdyZW5kZXInID8gcmVuZGVyKGNvbmZpZykgOiB7IGdldDogY29uZmlnIH07XG4gICAgfSBlbHNlIGlmIChjb25maWcgPT09IG51bGwgfHwgdHlwZSAhPT0gJ29iamVjdCcgfHwgKHR5cGUgPT09ICdvYmplY3QnICYmICFjb25maWcuZ2V0ICYmICFjb25maWcuc2V0KSkge1xuICAgICAgY29uZmlnID0gcHJvcGVydHkoY29uZmlnKTtcbiAgICB9XG5cbiAgICBjb25maWcuZ2V0ID0gY29uZmlnLmdldCB8fCBkZWZhdWx0R2V0O1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEh5YnJpZC5wcm90b3R5cGUsIGtleSwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQodGhpcywga2V5LCBjb25maWcuZ2V0KTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGNvbmZpZy5zZXQgJiYgZnVuY3Rpb24gc2V0KG5ld1ZhbHVlKSB7XG4gICAgICAgIGNhY2hlLnNldCh0aGlzLCBrZXksIGNvbmZpZy5zZXQsIG5ld1ZhbHVlLCAoKSA9PiBkaXNwYXRjaEludmFsaWRhdGUodGhpcykpO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG4gICAgfSk7XG5cbiAgICBpZiAoY29uZmlnLmNvbm5lY3QpIHtcbiAgICAgIEh5YnJpZC5jb25uZWN0cy5wdXNoKGhvc3QgPT4gY29uZmlnLmNvbm5lY3QoaG9zdCwga2V5LCAoY2xlYXJDYWNoZSA9IHRydWUpID0+IHtcbiAgICAgICAgaWYgKGNsZWFyQ2FjaGUpIGNhY2hlLmludmFsaWRhdGUoaG9zdCwga2V5KTtcbiAgICAgICAgZGlzcGF0Y2hJbnZhbGlkYXRlKGhvc3QpO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfSk7XG59XG5cbmxldCB1cGRhdGU7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YWxrSW5TaGFkb3cgPSAobm9kZSwgZm4pID0+IHtcbiAgICBmbihub2RlKTtcblxuICAgIEFycmF5LmZyb20obm9kZS5jaGlsZHJlbilcbiAgICAgIC5mb3JFYWNoKGVsID0+IHdhbGtJblNoYWRvdyhlbCwgZm4pKTtcblxuICAgIGlmIChub2RlLnNoYWRvd1Jvb3QpIHtcbiAgICAgIEFycmF5LmZyb20obm9kZS5zaGFkb3dSb290LmNoaWxkcmVuKVxuICAgICAgICAuZm9yRWFjaChlbCA9PiB3YWxrSW5TaGFkb3coZWwsIGZuKSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVF1ZXVlID0gbmV3IE1hcCgpO1xuICB1cGRhdGUgPSAoSHlicmlkLCBsYXN0SHlicmlkcykgPT4ge1xuICAgIGlmICghdXBkYXRlUXVldWUuc2l6ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHdhbGtJblNoYWRvdyhkb2N1bWVudC5ib2R5LCAobm9kZSkgPT4ge1xuICAgICAgICAgIGlmICh1cGRhdGVRdWV1ZS5oYXMobm9kZS5jb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGh5YnJpZHMgPSB1cGRhdGVRdWV1ZS5nZXQobm9kZS5jb25zdHJ1Y3Rvcik7XG4gICAgICAgICAgICBub2RlLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5vZGUuY29uc3RydWN0b3IuaHlicmlkcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNhY2hlLmludmFsaWRhdGUobm9kZSwga2V5LCBub2RlW2tleV0gPT09IGh5YnJpZHNba2V5XSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbm9kZS5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgICAgICAgZGlzcGF0Y2hJbnZhbGlkYXRlKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHVwZGF0ZVF1ZXVlLmNsZWFyKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdXBkYXRlUXVldWUuc2V0KEh5YnJpZCwgbGFzdEh5YnJpZHMpO1xuICB9O1xufVxuXG5jb25zdCBjb25uZWN0cyA9IG5ldyBXZWFrTWFwKCk7XG5cbmZ1bmN0aW9uIGRlZmluZUVsZW1lbnQodGFnTmFtZSwgaHlicmlkc09yQ29uc3RydWN0b3IpIHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiBoeWJyaWRzT3JDb25zdHJ1Y3RvcjtcbiAgaWYgKHR5cGUgIT09ICdvYmplY3QnICYmIHR5cGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ1tkZWZpbmVdIEludmFsaWQgc2Vjb25kIGFyZ3VtZW50LiBJdCBtdXN0IGJlIGFuIG9iamVjdCBvciBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBDdXN0b21FbGVtZW50ID0gd2luZG93LmN1c3RvbUVsZW1lbnRzLmdldCh0YWdOYW1lKTtcblxuICBpZiAodHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChDdXN0b21FbGVtZW50ICE9PSBoeWJyaWRzT3JDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICAgIH1cbiAgICByZXR1cm4gQ3VzdG9tRWxlbWVudDtcbiAgfVxuXG4gIGlmIChDdXN0b21FbGVtZW50KSB7XG4gICAgaWYgKEN1c3RvbUVsZW1lbnQuaHlicmlkcyA9PT0gaHlicmlkc09yQ29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiBDdXN0b21FbGVtZW50O1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBDdXN0b21FbGVtZW50Lmh5YnJpZHMpIHtcbiAgICAgIE9iamVjdC5rZXlzKEN1c3RvbUVsZW1lbnQuaHlicmlkcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBDdXN0b21FbGVtZW50LnByb3RvdHlwZVtrZXldO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGxhc3RIeWJyaWRzID0gQ3VzdG9tRWxlbWVudC5oeWJyaWRzO1xuXG4gICAgICBjb21waWxlKEN1c3RvbUVsZW1lbnQsIGh5YnJpZHNPckNvbnN0cnVjdG9yKTtcbiAgICAgIHVwZGF0ZShDdXN0b21FbGVtZW50LCBsYXN0SHlicmlkcyk7XG5cbiAgICAgIHJldHVybiBDdXN0b21FbGVtZW50O1xuICAgIH1cblxuICAgIHRocm93IEVycm9yKGBbZGVmaW5lXSBFbGVtZW50ICcke3RhZ05hbWV9JyBhbHJlYWR5IGRlZmluZWRgKTtcbiAgfVxuXG4gIGNsYXNzIEh5YnJpZCBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgICBzdGF0aWMgZ2V0IG5hbWUoKSB7IHJldHVybiB0YWdOYW1lOyB9XG5cbiAgICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNvbnN0cnVjdG9yLmNvbm5lY3RzLnJlZHVjZSgoYWNjLCBmbikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBmbih0aGlzKTtcbiAgICAgICAgaWYgKHJlc3VsdCkgYWNjLmFkZChyZXN1bHQpO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgbmV3IFNldCgpKTtcblxuICAgICAgY29ubmVjdHMuc2V0KHRoaXMsIGxpc3QpO1xuICAgICAgZGlzcGF0Y2hJbnZhbGlkYXRlKHRoaXMpO1xuICAgIH1cblxuICAgIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgICAgY29uc3QgbGlzdCA9IGNvbm5lY3RzLmdldCh0aGlzKTtcbiAgICAgIGxpc3QuZm9yRWFjaChmbiA9PiBmbigpKTtcbiAgICB9XG4gIH1cblxuICBjb21waWxlKEh5YnJpZCwgaHlicmlkc09yQ29uc3RydWN0b3IpO1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgSHlicmlkKTtcblxuICByZXR1cm4gSHlicmlkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVNYXAoZWxlbWVudHMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGVsZW1lbnRzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgY29uc3QgdGFnTmFtZSA9IHBhc2NhbFRvRGFzaChrZXkpO1xuICAgIGFjY1trZXldID0gZGVmaW5lRWxlbWVudCh0YWdOYW1lLCBlbGVtZW50c1trZXldKTtcblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVmaW5lKC4uLmFyZ3MpIHtcbiAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBkZWZpbmVNYXAoYXJnc1swXSk7XG4gIH1cblxuICByZXR1cm4gZGVmaW5lRWxlbWVudCguLi5hcmdzKTtcbn1cbiJdfQ==

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,6 +6,6 @@ Object.defineProperty(exports, "__esModule", {

});
exports.default = resolveClassList;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
exports.default = resolveClassList;
function normalizeValue(value) {

@@ -18,3 +18,3 @@ var set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();

});
} else if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
} else if (value !== null && _typeof(value) === 'object') {
Object.keys(value).forEach(function (key) {

@@ -33,5 +33,3 @@ return value[key] && set.add(key);

var list = normalizeValue(value);
data.classSet = list;
list.forEach(function (className) {

@@ -41,3 +39,2 @@ target.classList.add(className);

});
previousList.forEach(function (className) {

@@ -47,2 +44,2 @@ target.classList.remove(className);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2NsYXNzTGlzdC5qcyJdLCJuYW1lcyI6WyJyZXNvbHZlQ2xhc3NMaXN0Iiwibm9ybWFsaXplVmFsdWUiLCJ2YWx1ZSIsInNldCIsIlNldCIsIkFycmF5IiwiaXNBcnJheSIsImZvckVhY2giLCJhZGQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwia2V5IiwiaG9zdCIsInRhcmdldCIsImRhdGEiLCJwcmV2aW91c0xpc3QiLCJjbGFzc1NldCIsImxpc3QiLCJjbGFzc0xpc3QiLCJkZWxldGUiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2tCQVl3QkEsZ0I7QUFaeEIsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBZ0Q7QUFBQSxNQUFqQkMsR0FBaUIsdUVBQVgsSUFBSUMsR0FBSixFQUFXOztBQUM5QyxNQUFJQyxNQUFNQyxPQUFOLENBQWNKLEtBQWQsQ0FBSixFQUEwQjtBQUN4QkEsVUFBTUssT0FBTixDQUFjO0FBQUEsYUFBYUosSUFBSUssR0FBSixDQUFRQyxTQUFSLENBQWI7QUFBQSxLQUFkO0FBQ0QsR0FGRCxNQUVPLElBQUlQLFVBQVUsSUFBVixJQUFrQixRQUFPQSxLQUFQLHlDQUFPQSxLQUFQLE9BQWlCLFFBQXZDLEVBQWlEO0FBQ3REUSxXQUFPQyxJQUFQLENBQVlULEtBQVosRUFBbUJLLE9BQW5CLENBQTJCO0FBQUEsYUFBT0wsTUFBTVUsR0FBTixLQUFjVCxJQUFJSyxHQUFKLENBQVFJLEdBQVIsQ0FBckI7QUFBQSxLQUEzQjtBQUNELEdBRk0sTUFFQTtBQUNMVCxRQUFJSyxHQUFKLENBQVFOLEtBQVI7QUFDRDs7QUFFRCxTQUFPQyxHQUFQO0FBQ0Q7O0FBRWMsU0FBU0gsZ0JBQVQsQ0FBMEJhLElBQTFCLEVBQWdDQyxNQUFoQyxFQUF3Q1osS0FBeEMsRUFBK0NhLElBQS9DLEVBQXFEO0FBQ2xFLE1BQU1DLGVBQWVELEtBQUtFLFFBQUwsSUFBaUIsSUFBSWIsR0FBSixFQUF0QztBQUNBLE1BQU1jLE9BQU9qQixlQUFlQyxLQUFmLENBQWI7O0FBRUFhLE9BQUtFLFFBQUwsR0FBZ0JDLElBQWhCOztBQUVBQSxPQUFLWCxPQUFMLENBQWEsVUFBQ0UsU0FBRCxFQUFlO0FBQzFCSyxXQUFPSyxTQUFQLENBQWlCWCxHQUFqQixDQUFxQkMsU0FBckI7QUFDQU8saUJBQWFJLE1BQWIsQ0FBb0JYLFNBQXBCO0FBQ0QsR0FIRDs7QUFLQU8sZUFBYVQsT0FBYixDQUFxQixVQUFDRSxTQUFELEVBQWU7QUFDbENLLFdBQU9LLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCWixTQUF4QjtBQUNELEdBRkQ7QUFHRCIsImZpbGUiOiJjbGFzc0xpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgc2V0ID0gbmV3IFNldCgpKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHZhbHVlLmZvckVhY2goY2xhc3NOYW1lID0+IHNldC5hZGQoY2xhc3NOYW1lKSk7XG4gIH0gZWxzZSBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIE9iamVjdC5rZXlzKHZhbHVlKS5mb3JFYWNoKGtleSA9PiB2YWx1ZVtrZXldICYmIHNldC5hZGQoa2V5KSk7XG4gIH0gZWxzZSB7XG4gICAgc2V0LmFkZCh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gc2V0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlQ2xhc3NMaXN0KGhvc3QsIHRhcmdldCwgdmFsdWUsIGRhdGEpIHtcbiAgY29uc3QgcHJldmlvdXNMaXN0ID0gZGF0YS5jbGFzc1NldCB8fCBuZXcgU2V0KCk7XG4gIGNvbnN0IGxpc3QgPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSk7XG5cbiAgZGF0YS5jbGFzc1NldCA9IGxpc3Q7XG5cbiAgbGlzdC5mb3JFYWNoKChjbGFzc05hbWUpID0+IHtcbiAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuICAgIHByZXZpb3VzTGlzdC5kZWxldGUoY2xhc3NOYW1lKTtcbiAgfSk7XG5cbiAgcHJldmlvdXNMaXN0LmZvckVhY2goKGNsYXNzTmFtZSkgPT4ge1xuICAgIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSk7XG4gIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2NsYXNzTGlzdC5qcyJdLCJuYW1lcyI6WyJub3JtYWxpemVWYWx1ZSIsInZhbHVlIiwic2V0IiwiU2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiZm9yRWFjaCIsImNsYXNzTmFtZSIsImFkZCIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJyZXNvbHZlQ2xhc3NMaXN0IiwiaG9zdCIsInRhcmdldCIsImRhdGEiLCJwcmV2aW91c0xpc3QiLCJjbGFzc1NldCIsImxpc3QiLCJjbGFzc0xpc3QiLCJkZWxldGUiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLFNBQVNBLGNBQVQsQ0FBd0JDLEtBQXhCLEVBQWdEO0FBQUEsTUFBakJDLEdBQWlCLHVFQUFYLElBQUlDLEdBQUosRUFBVzs7QUFDOUMsTUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNKLEtBQWQsQ0FBSixFQUEwQjtBQUN4QkEsSUFBQUEsS0FBSyxDQUFDSyxPQUFOLENBQWMsVUFBQUMsU0FBUztBQUFBLGFBQUlMLEdBQUcsQ0FBQ00sR0FBSixDQUFRRCxTQUFSLENBQUo7QUFBQSxLQUF2QjtBQUNELEdBRkQsTUFFTyxJQUFJTixLQUFLLEtBQUssSUFBVixJQUFrQixRQUFPQSxLQUFQLE1BQWlCLFFBQXZDLEVBQWlEO0FBQ3REUSxJQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWVQsS0FBWixFQUFtQkssT0FBbkIsQ0FBMkIsVUFBQUssR0FBRztBQUFBLGFBQUlWLEtBQUssQ0FBQ1UsR0FBRCxDQUFMLElBQWNULEdBQUcsQ0FBQ00sR0FBSixDQUFRRyxHQUFSLENBQWxCO0FBQUEsS0FBOUI7QUFDRCxHQUZNLE1BRUE7QUFDTFQsSUFBQUEsR0FBRyxDQUFDTSxHQUFKLENBQVFQLEtBQVI7QUFDRDs7QUFFRCxTQUFPQyxHQUFQO0FBQ0Q7O0FBRWMsU0FBU1UsZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQWdDQyxNQUFoQyxFQUF3Q2IsS0FBeEMsRUFBK0NjLElBQS9DLEVBQXFEO0FBQ2xFLE1BQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDRSxRQUFMLElBQWlCLElBQUlkLEdBQUosRUFBdEM7QUFDQSxNQUFNZSxJQUFJLEdBQUdsQixjQUFjLENBQUNDLEtBQUQsQ0FBM0I7QUFFQWMsRUFBQUEsSUFBSSxDQUFDRSxRQUFMLEdBQWdCQyxJQUFoQjtBQUVBQSxFQUFBQSxJQUFJLENBQUNaLE9BQUwsQ0FBYSxVQUFDQyxTQUFELEVBQWU7QUFDMUJPLElBQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQlgsR0FBakIsQ0FBcUJELFNBQXJCO0FBQ0FTLElBQUFBLFlBQVksQ0FBQ0ksTUFBYixDQUFvQmIsU0FBcEI7QUFDRCxHQUhEO0FBS0FTLEVBQUFBLFlBQVksQ0FBQ1YsT0FBYixDQUFxQixVQUFDQyxTQUFELEVBQWU7QUFDbENPLElBQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkUsTUFBakIsQ0FBd0JkLFNBQXhCO0FBQ0QsR0FGRDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gbm9ybWFsaXplVmFsdWUodmFsdWUsIHNldCA9IG5ldyBTZXQoKSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB2YWx1ZS5mb3JFYWNoKGNsYXNzTmFtZSA9PiBzZXQuYWRkKGNsYXNzTmFtZSkpO1xuICB9IGVsc2UgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaChrZXkgPT4gdmFsdWVba2V5XSAmJiBzZXQuYWRkKGtleSkpO1xuICB9IGVsc2Uge1xuICAgIHNldC5hZGQodmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIHNldDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZUNsYXNzTGlzdChob3N0LCB0YXJnZXQsIHZhbHVlLCBkYXRhKSB7XG4gIGNvbnN0IHByZXZpb3VzTGlzdCA9IGRhdGEuY2xhc3NTZXQgfHwgbmV3IFNldCgpO1xuICBjb25zdCBsaXN0ID0gbm9ybWFsaXplVmFsdWUodmFsdWUpO1xuXG4gIGRhdGEuY2xhc3NTZXQgPSBsaXN0O1xuXG4gIGxpc3QuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiB7XG4gICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgICBwcmV2aW91c0xpc3QuZGVsZXRlKGNsYXNzTmFtZSk7XG4gIH0pO1xuXG4gIHByZXZpb3VzTGlzdC5mb3JFYWNoKChjbGFzc05hbWUpID0+IHtcbiAgICB0YXJnZXQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICB9KTtcbn1cbiJdfQ==

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -9,16 +9,12 @@ Object.defineProperty(exports, "__esModule", {

var _define = require('../define');
var _define = _interopRequireDefault(require("../define"));
var _define2 = _interopRequireDefault(_define);
var _template = require("./template");
var _template = require('./template');
var _resolve = _interopRequireDefault(require("./resolve"));
var _resolve = require('./resolve');
var _resolve2 = _interopRequireDefault(_resolve);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function defineElements(elements) {
(0, _define2.default)(elements);
(0, _define.default)(elements);
return this;

@@ -37,3 +33,2 @@ }

var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : host;
var id = (0, _template.createId)(parts, isSVG);

@@ -50,7 +45,10 @@ var render = updates.get(id);

return Object.assign(update, { define: defineElements, key: key });
return Object.assign(update, {
define: defineElements,
key: key
});
}
function html(parts) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];

@@ -63,3 +61,3 @@ }

function svg(parts) {
for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];

@@ -71,4 +69,8 @@ }

Object.assign(html, { resolve: _resolve2.default });
Object.assign(svg, { resolve: _resolve2.default });
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2luZGV4LmpzIl0sIm5hbWVzIjpbImh0bWwiLCJzdmciLCJkZWZpbmVFbGVtZW50cyIsImVsZW1lbnRzIiwia2V5IiwiaWQiLCJ1cGRhdGVzIiwiTWFwIiwiY3JlYXRlIiwicGFydHMiLCJhcmdzIiwiaXNTVkciLCJ1cGRhdGUiLCJob3N0IiwidGFyZ2V0IiwicmVuZGVyIiwiZ2V0Iiwic2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmaW5lIiwicmVzb2x2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFpQ2dCQSxJLEdBQUFBLEk7UUFJQUMsRyxHQUFBQSxHOztBQXJDaEI7Ozs7QUFFQTs7QUFDQTs7Ozs7O0FBRUEsU0FBU0MsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0M7QUFDaEMsd0JBQU9BLFFBQVA7QUFDQSxTQUFPLElBQVA7QUFDRDs7QUFFRCxTQUFTQyxHQUFULENBQWFDLEVBQWIsRUFBaUI7QUFDZixPQUFLQSxFQUFMLEdBQVVBLEVBQVY7QUFDQSxTQUFPLElBQVA7QUFDRDs7QUFFRCxJQUFNQyxVQUFVLElBQUlDLEdBQUosRUFBaEI7O0FBRUEsU0FBU0MsTUFBVCxDQUFnQkMsS0FBaEIsRUFBdUJDLElBQXZCLEVBQTZCQyxLQUE3QixFQUFvQztBQUNsQyxNQUFNQyxTQUFTLFNBQVRBLE1BQVMsQ0FBQ0MsSUFBRCxFQUF5QjtBQUFBLFFBQWxCQyxNQUFrQix1RUFBVEQsSUFBUzs7QUFDdEMsUUFBTVIsS0FBSyx3QkFBU0ksS0FBVCxFQUFnQkUsS0FBaEIsQ0FBWDtBQUNBLFFBQUlJLFNBQVNULFFBQVFVLEdBQVIsQ0FBWVgsRUFBWixDQUFiOztBQUVBLFFBQUksQ0FBQ1UsTUFBTCxFQUFhO0FBQ1hBLGVBQVMsdUJBQVFOLEtBQVIsRUFBZUUsS0FBZixDQUFUO0FBQ0FMLGNBQVFXLEdBQVIsQ0FBWVosRUFBWixFQUFnQlUsTUFBaEI7QUFDRDs7QUFFREEsV0FBT0YsSUFBUCxFQUFhQyxNQUFiLEVBQXFCSixJQUFyQjtBQUNELEdBVkQ7O0FBWUEsU0FBT1EsT0FBT0MsTUFBUCxDQUFjUCxNQUFkLEVBQXNCLEVBQUVRLFFBQVFsQixjQUFWLEVBQTBCRSxRQUExQixFQUF0QixDQUFQO0FBQ0Q7O0FBRU0sU0FBU0osSUFBVCxDQUFjUyxLQUFkLEVBQThCO0FBQUEsb0NBQU5DLElBQU07QUFBTkEsUUFBTTtBQUFBOztBQUNuQyxTQUFPRixPQUFPQyxLQUFQLEVBQWNDLElBQWQsQ0FBUDtBQUNEOztBQUVNLFNBQVNULEdBQVQsQ0FBYVEsS0FBYixFQUE2QjtBQUFBLHFDQUFOQyxJQUFNO0FBQU5BLFFBQU07QUFBQTs7QUFDbEMsU0FBT0YsT0FBT0MsS0FBUCxFQUFjQyxJQUFkLEVBQW9CLElBQXBCLENBQVA7QUFDRDs7QUFFRFEsT0FBT0MsTUFBUCxDQUFjbkIsSUFBZCxFQUFvQixFQUFFcUIsMEJBQUYsRUFBcEI7QUFDQUgsT0FBT0MsTUFBUCxDQUFjbEIsR0FBZCxFQUFtQixFQUFFb0IsMEJBQUYsRUFBbkIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVmaW5lIGZyb20gJy4uL2RlZmluZSc7XG5cbmltcG9ydCB7IGNvbXBpbGUsIGNyZWF0ZUlkIH0gZnJvbSAnLi90ZW1wbGF0ZSc7XG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuL3Jlc29sdmUnO1xuXG5mdW5jdGlvbiBkZWZpbmVFbGVtZW50cyhlbGVtZW50cykge1xuICBkZWZpbmUoZWxlbWVudHMpO1xuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24ga2V5KGlkKSB7XG4gIHRoaXMuaWQgPSBpZDtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbmNvbnN0IHVwZGF0ZXMgPSBuZXcgTWFwKCk7XG5cbmZ1bmN0aW9uIGNyZWF0ZShwYXJ0cywgYXJncywgaXNTVkcpIHtcbiAgY29uc3QgdXBkYXRlID0gKGhvc3QsIHRhcmdldCA9IGhvc3QpID0+IHtcbiAgICBjb25zdCBpZCA9IGNyZWF0ZUlkKHBhcnRzLCBpc1NWRyk7XG4gICAgbGV0IHJlbmRlciA9IHVwZGF0ZXMuZ2V0KGlkKTtcblxuICAgIGlmICghcmVuZGVyKSB7XG4gICAgICByZW5kZXIgPSBjb21waWxlKHBhcnRzLCBpc1NWRyk7XG4gICAgICB1cGRhdGVzLnNldChpZCwgcmVuZGVyKTtcbiAgICB9XG5cbiAgICByZW5kZXIoaG9zdCwgdGFyZ2V0LCBhcmdzKTtcbiAgfTtcblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih1cGRhdGUsIHsgZGVmaW5lOiBkZWZpbmVFbGVtZW50cywga2V5IH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbChwYXJ0cywgLi4uYXJncykge1xuICByZXR1cm4gY3JlYXRlKHBhcnRzLCBhcmdzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN2ZyhwYXJ0cywgLi4uYXJncykge1xuICByZXR1cm4gY3JlYXRlKHBhcnRzLCBhcmdzLCB0cnVlKTtcbn1cblxuT2JqZWN0LmFzc2lnbihodG1sLCB7IHJlc29sdmUgfSk7XG5PYmplY3QuYXNzaWduKHN2ZywgeyByZXNvbHZlIH0pO1xuIl19
Object.assign(html, {
resolve: _resolve.default
});
Object.assign(svg, {
resolve: _resolve.default
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmluZUVsZW1lbnRzIiwiZWxlbWVudHMiLCJrZXkiLCJpZCIsInVwZGF0ZXMiLCJNYXAiLCJjcmVhdGUiLCJwYXJ0cyIsImFyZ3MiLCJpc1NWRyIsInVwZGF0ZSIsImhvc3QiLCJ0YXJnZXQiLCJyZW5kZXIiLCJnZXQiLCJzZXQiLCJPYmplY3QiLCJhc3NpZ24iLCJkZWZpbmUiLCJodG1sIiwic3ZnIiwicmVzb2x2ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7OztBQUVBLFNBQVNBLGNBQVQsQ0FBd0JDLFFBQXhCLEVBQWtDO0FBQ2hDLHVCQUFPQSxRQUFQO0FBQ0EsU0FBTyxJQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsR0FBVCxDQUFhQyxFQUFiLEVBQWlCO0FBQ2YsT0FBS0EsRUFBTCxHQUFVQSxFQUFWO0FBQ0EsU0FBTyxJQUFQO0FBQ0Q7O0FBRUQsSUFBTUMsT0FBTyxHQUFHLElBQUlDLEdBQUosRUFBaEI7O0FBRUEsU0FBU0MsTUFBVCxDQUFnQkMsS0FBaEIsRUFBdUJDLElBQXZCLEVBQTZCQyxLQUE3QixFQUFvQztBQUNsQyxNQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxJQUFELEVBQXlCO0FBQUEsUUFBbEJDLE1BQWtCLHVFQUFURCxJQUFTO0FBQ3RDLFFBQU1SLEVBQUUsR0FBRyx3QkFBU0ksS0FBVCxFQUFnQkUsS0FBaEIsQ0FBWDtBQUNBLFFBQUlJLE1BQU0sR0FBR1QsT0FBTyxDQUFDVSxHQUFSLENBQVlYLEVBQVosQ0FBYjs7QUFFQSxRQUFJLENBQUNVLE1BQUwsRUFBYTtBQUNYQSxNQUFBQSxNQUFNLEdBQUcsdUJBQVFOLEtBQVIsRUFBZUUsS0FBZixDQUFUO0FBQ0FMLE1BQUFBLE9BQU8sQ0FBQ1csR0FBUixDQUFZWixFQUFaLEVBQWdCVSxNQUFoQjtBQUNEOztBQUVEQSxJQUFBQSxNQUFNLENBQUNGLElBQUQsRUFBT0MsTUFBUCxFQUFlSixJQUFmLENBQU47QUFDRCxHQVZEOztBQVlBLFNBQU9RLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUCxNQUFkLEVBQXNCO0FBQUVRLElBQUFBLE1BQU0sRUFBRWxCLGNBQVY7QUFBMEJFLElBQUFBLEdBQUcsRUFBSEE7QUFBMUIsR0FBdEIsQ0FBUDtBQUNEOztBQUVNLFNBQVNpQixJQUFULENBQWNaLEtBQWQsRUFBOEI7QUFBQSxvQ0FBTkMsSUFBTTtBQUFOQSxJQUFBQSxJQUFNO0FBQUE7O0FBQ25DLFNBQU9GLE1BQU0sQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLENBQWI7QUFDRDs7QUFFTSxTQUFTWSxHQUFULENBQWFiLEtBQWIsRUFBNkI7QUFBQSxxQ0FBTkMsSUFBTTtBQUFOQSxJQUFBQSxJQUFNO0FBQUE7O0FBQ2xDLFNBQU9GLE1BQU0sQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLEVBQWMsSUFBZCxDQUFiO0FBQ0Q7O0FBRURRLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRSxJQUFkLEVBQW9CO0FBQUVFLEVBQUFBLE9BQU8sRUFBUEE7QUFBRixDQUFwQjtBQUNBTCxNQUFNLENBQUNDLE1BQVAsQ0FBY0csR0FBZCxFQUFtQjtBQUFFQyxFQUFBQSxPQUFPLEVBQVBBO0FBQUYsQ0FBbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVmaW5lIGZyb20gJy4uL2RlZmluZSc7XG5cbmltcG9ydCB7IGNvbXBpbGUsIGNyZWF0ZUlkIH0gZnJvbSAnLi90ZW1wbGF0ZSc7XG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuL3Jlc29sdmUnO1xuXG5mdW5jdGlvbiBkZWZpbmVFbGVtZW50cyhlbGVtZW50cykge1xuICBkZWZpbmUoZWxlbWVudHMpO1xuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24ga2V5KGlkKSB7XG4gIHRoaXMuaWQgPSBpZDtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbmNvbnN0IHVwZGF0ZXMgPSBuZXcgTWFwKCk7XG5cbmZ1bmN0aW9uIGNyZWF0ZShwYXJ0cywgYXJncywgaXNTVkcpIHtcbiAgY29uc3QgdXBkYXRlID0gKGhvc3QsIHRhcmdldCA9IGhvc3QpID0+IHtcbiAgICBjb25zdCBpZCA9IGNyZWF0ZUlkKHBhcnRzLCBpc1NWRyk7XG4gICAgbGV0IHJlbmRlciA9IHVwZGF0ZXMuZ2V0KGlkKTtcblxuICAgIGlmICghcmVuZGVyKSB7XG4gICAgICByZW5kZXIgPSBjb21waWxlKHBhcnRzLCBpc1NWRyk7XG4gICAgICB1cGRhdGVzLnNldChpZCwgcmVuZGVyKTtcbiAgICB9XG5cbiAgICByZW5kZXIoaG9zdCwgdGFyZ2V0LCBhcmdzKTtcbiAgfTtcblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih1cGRhdGUsIHsgZGVmaW5lOiBkZWZpbmVFbGVtZW50cywga2V5IH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbChwYXJ0cywgLi4uYXJncykge1xuICByZXR1cm4gY3JlYXRlKHBhcnRzLCBhcmdzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN2ZyhwYXJ0cywgLi4uYXJncykge1xuICByZXR1cm4gY3JlYXRlKHBhcnRzLCBhcmdzLCB0cnVlKTtcbn1cblxuT2JqZWN0LmFzc2lnbihodG1sLCB7IHJlc29sdmUgfSk7XG5PYmplY3QuYXNzaWduKHN2ZywgeyByZXNvbHZlIH0pO1xuIl19

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -8,3 +8,3 @@ Object.defineProperty(exports, "__esModule", {

var _utils = require('../utils');
var _utils = require("../utils");

@@ -15,5 +15,4 @@ var map = (0, _utils.createMap)();

var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
return function (host, target) {
var timeout = void 0;
var timeout;

@@ -23,3 +22,2 @@ if (placeholder) {

timeout = undefined;
requestAnimationFrame(function () {

@@ -42,2 +40,2 @@ placeholder(host, target);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3Jlc29sdmUuanMiXSwibmFtZXMiOlsicmVzb2x2ZSIsIm1hcCIsInByb21pc2UiLCJwbGFjZWhvbGRlciIsImRlbGF5IiwiaG9zdCIsInRhcmdldCIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidW5kZWZpbmVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0IiwidGhlbiIsInRlbXBsYXRlIiwiY2xlYXJUaW1lb3V0IiwiZ2V0Il0sIm1hcHBpbmdzIjoiOzs7OztrQkFJd0JBLE87O0FBSnhCOztBQUVBLElBQU1DLE1BQU0sdUJBQVo7O0FBRWUsU0FBU0QsT0FBVCxDQUFpQkUsT0FBakIsRUFBMEJDLFdBQTFCLEVBQW9EO0FBQUEsTUFBYkMsS0FBYSx1RUFBTCxHQUFLOztBQUNqRSxTQUFPLFVBQUNDLElBQUQsRUFBT0MsTUFBUCxFQUFrQjtBQUN2QixRQUFJQyxnQkFBSjs7QUFFQSxRQUFJSixXQUFKLEVBQWlCO0FBQ2ZJLGdCQUFVQyxXQUFXLFlBQU07QUFDekJELGtCQUFVRSxTQUFWOztBQUVBQyw4QkFBc0IsWUFBTTtBQUMxQlAsc0JBQVlFLElBQVosRUFBa0JDLE1BQWxCO0FBQ0QsU0FGRDtBQUdELE9BTlMsRUFNUEYsS0FOTyxDQUFWO0FBT0Q7O0FBRURILFFBQUlVLEdBQUosQ0FBUUwsTUFBUixFQUFnQkosT0FBaEI7QUFDQUEsWUFBUVUsSUFBUixDQUFhLFVBQUNDLFFBQUQsRUFBYztBQUN6QixVQUFJTixPQUFKLEVBQWFPLGFBQWFQLE9BQWI7O0FBRWIsVUFBSU4sSUFBSWMsR0FBSixDQUFRVCxNQUFSLE1BQW9CSixPQUF4QixFQUFpQztBQUMvQlcsaUJBQVNSLElBQVQsRUFBZUMsTUFBZjtBQUNBTCxZQUFJVSxHQUFKLENBQVFMLE1BQVIsRUFBZ0IsSUFBaEI7QUFDRDtBQUNGLEtBUEQ7QUFRRCxHQXRCRDtBQXVCRCIsImZpbGUiOiJyZXNvbHZlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTWFwIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBtYXAgPSBjcmVhdGVNYXAoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZShwcm9taXNlLCBwbGFjZWhvbGRlciwgZGVsYXkgPSAyMDApIHtcbiAgcmV0dXJuIChob3N0LCB0YXJnZXQpID0+IHtcbiAgICBsZXQgdGltZW91dDtcblxuICAgIGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aW1lb3V0ID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgcGxhY2Vob2xkZXIoaG9zdCwgdGFyZ2V0KTtcbiAgICAgICAgfSk7XG4gICAgICB9LCBkZWxheSk7XG4gICAgfVxuXG4gICAgbWFwLnNldCh0YXJnZXQsIHByb21pc2UpO1xuICAgIHByb21pc2UudGhlbigodGVtcGxhdGUpID0+IHtcbiAgICAgIGlmICh0aW1lb3V0KSBjbGVhclRpbWVvdXQodGltZW91dCk7XG5cbiAgICAgIGlmIChtYXAuZ2V0KHRhcmdldCkgPT09IHByb21pc2UpIHtcbiAgICAgICAgdGVtcGxhdGUoaG9zdCwgdGFyZ2V0KTtcbiAgICAgICAgbWFwLnNldCh0YXJnZXQsIG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3Jlc29sdmUuanMiXSwibmFtZXMiOlsibWFwIiwicmVzb2x2ZSIsInByb21pc2UiLCJwbGFjZWhvbGRlciIsImRlbGF5IiwiaG9zdCIsInRhcmdldCIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidW5kZWZpbmVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0IiwidGhlbiIsInRlbXBsYXRlIiwiY2xlYXJUaW1lb3V0IiwiZ2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFaOztBQUVlLFNBQVNDLE9BQVQsQ0FBaUJDLE9BQWpCLEVBQTBCQyxXQUExQixFQUFvRDtBQUFBLE1BQWJDLEtBQWEsdUVBQUwsR0FBSztBQUNqRSxTQUFPLFVBQUNDLElBQUQsRUFBT0MsTUFBUCxFQUFrQjtBQUN2QixRQUFJQyxPQUFKOztBQUVBLFFBQUlKLFdBQUosRUFBaUI7QUFDZkksTUFBQUEsT0FBTyxHQUFHQyxVQUFVLENBQUMsWUFBTTtBQUN6QkQsUUFBQUEsT0FBTyxHQUFHRSxTQUFWO0FBRUFDLFFBQUFBLHFCQUFxQixDQUFDLFlBQU07QUFDMUJQLFVBQUFBLFdBQVcsQ0FBQ0UsSUFBRCxFQUFPQyxNQUFQLENBQVg7QUFDRCxTQUZvQixDQUFyQjtBQUdELE9BTm1CLEVBTWpCRixLQU5pQixDQUFwQjtBQU9EOztBQUVESixJQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUUwsTUFBUixFQUFnQkosT0FBaEI7QUFDQUEsSUFBQUEsT0FBTyxDQUFDVSxJQUFSLENBQWEsVUFBQ0MsUUFBRCxFQUFjO0FBQ3pCLFVBQUlOLE9BQUosRUFBYU8sWUFBWSxDQUFDUCxPQUFELENBQVo7O0FBRWIsVUFBSVAsR0FBRyxDQUFDZSxHQUFKLENBQVFULE1BQVIsTUFBb0JKLE9BQXhCLEVBQWlDO0FBQy9CVyxRQUFBQSxRQUFRLENBQUNSLElBQUQsRUFBT0MsTUFBUCxDQUFSO0FBQ0FOLFFBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRTCxNQUFSLEVBQWdCLElBQWhCO0FBQ0Q7QUFDRixLQVBEO0FBUUQsR0F0QkQ7QUF1QkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVNYXAgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IG1hcCA9IGNyZWF0ZU1hcCgpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlKHByb21pc2UsIHBsYWNlaG9sZGVyLCBkZWxheSA9IDIwMCkge1xuICByZXR1cm4gKGhvc3QsIHRhcmdldCkgPT4ge1xuICAgIGxldCB0aW1lb3V0O1xuXG4gICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRpbWVvdXQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICBwbGFjZWhvbGRlcihob3N0LCB0YXJnZXQpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGRlbGF5KTtcbiAgICB9XG5cbiAgICBtYXAuc2V0KHRhcmdldCwgcHJvbWlzZSk7XG4gICAgcHJvbWlzZS50aGVuKCh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgaWYgKHRpbWVvdXQpIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblxuICAgICAgaWYgKG1hcC5nZXQodGFyZ2V0KSA9PT0gcHJvbWlzZSkge1xuICAgICAgICB0ZW1wbGF0ZShob3N0LCB0YXJnZXQpO1xuICAgICAgICBtYXAuc2V0KHRhcmdldCwgbnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG4iXX0=

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,11 +6,10 @@ Object.defineProperty(exports, "__esModule", {

});
exports.default = resolveStyle;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _utils = require("../utils");
exports.default = resolveStyle;
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var _utils = require('../utils');
function resolveStyle(host, target, value, data) {
if (value === null || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {
if (value === null || _typeof(value) !== 'object') {
throw TypeError('Style value must be an object instance');

@@ -20,3 +19,2 @@ }

var previousMap = data.styleMap || new Map();
data.styleMap = Object.keys(value).reduce(function (map, key) {

@@ -34,6 +32,4 @@ var dashKey = (0, _utils.camelToDash)(key);

previousMap.delete(dashKey);
return map;
}, new Map());
previousMap.forEach(function (styleValue, key) {

@@ -43,2 +39,2 @@ target.style[key] = '';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3N0eWxlLmpzIl0sIm5hbWVzIjpbInJlc29sdmVTdHlsZSIsImhvc3QiLCJ0YXJnZXQiLCJ2YWx1ZSIsImRhdGEiLCJUeXBlRXJyb3IiLCJwcmV2aW91c01hcCIsInN0eWxlTWFwIiwiTWFwIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm1hcCIsImtleSIsImRhc2hLZXkiLCJzdHlsZVZhbHVlIiwic3R5bGUiLCJyZW1vdmVQcm9wZXJ0eSIsInNldFByb3BlcnR5Iiwic2V0IiwiZGVsZXRlIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7a0JBRXdCQSxZOztBQUZ4Qjs7QUFFZSxTQUFTQSxZQUFULENBQXNCQyxJQUF0QixFQUE0QkMsTUFBNUIsRUFBb0NDLEtBQXBDLEVBQTJDQyxJQUEzQyxFQUFpRDtBQUM5RCxNQUFJRCxVQUFVLElBQVYsSUFBa0IsUUFBT0EsS0FBUCx5Q0FBT0EsS0FBUCxPQUFpQixRQUF2QyxFQUFpRDtBQUMvQyxVQUFNRSxVQUFVLHdDQUFWLENBQU47QUFDRDs7QUFFRCxNQUFNQyxjQUFjRixLQUFLRyxRQUFMLElBQWlCLElBQUlDLEdBQUosRUFBckM7O0FBRUFKLE9BQUtHLFFBQUwsR0FBZ0JFLE9BQU9DLElBQVAsQ0FBWVAsS0FBWixFQUFtQlEsTUFBbkIsQ0FBMEIsVUFBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQWM7QUFDdEQsUUFBTUMsVUFBVSx3QkFBWUQsR0FBWixDQUFoQjtBQUNBLFFBQU1FLGFBQWFaLE1BQU1VLEdBQU4sQ0FBbkI7O0FBRUEsUUFBSSxDQUFDRSxVQUFELElBQWVBLGVBQWUsQ0FBbEMsRUFBcUM7QUFDbkNiLGFBQU9jLEtBQVAsQ0FBYUMsY0FBYixDQUE0QkgsT0FBNUI7QUFDRCxLQUZELE1BRU87QUFDTFosYUFBT2MsS0FBUCxDQUFhRSxXQUFiLENBQXlCSixPQUF6QixFQUFrQ0MsVUFBbEM7QUFDRDs7QUFFREgsUUFBSU8sR0FBSixDQUFRTCxPQUFSLEVBQWlCQyxVQUFqQjtBQUNBVCxnQkFBWWMsTUFBWixDQUFtQk4sT0FBbkI7O0FBRUEsV0FBT0YsR0FBUDtBQUNELEdBZGUsRUFjYixJQUFJSixHQUFKLEVBZGEsQ0FBaEI7O0FBZ0JBRixjQUFZZSxPQUFaLENBQW9CLFVBQUNOLFVBQUQsRUFBYUYsR0FBYixFQUFxQjtBQUFFWCxXQUFPYyxLQUFQLENBQWFILEdBQWIsSUFBb0IsRUFBcEI7QUFBeUIsR0FBcEU7QUFDRCIsImZpbGUiOiJzdHlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlU3R5bGUoaG9zdCwgdGFyZ2V0LCB2YWx1ZSwgZGF0YSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IFR5cGVFcnJvcignU3R5bGUgdmFsdWUgbXVzdCBiZSBhbiBvYmplY3QgaW5zdGFuY2UnKTtcbiAgfVxuXG4gIGNvbnN0IHByZXZpb3VzTWFwID0gZGF0YS5zdHlsZU1hcCB8fCBuZXcgTWFwKCk7XG5cbiAgZGF0YS5zdHlsZU1hcCA9IE9iamVjdC5rZXlzKHZhbHVlKS5yZWR1Y2UoKG1hcCwga2V5KSA9PiB7XG4gICAgY29uc3QgZGFzaEtleSA9IGNhbWVsVG9EYXNoKGtleSk7XG4gICAgY29uc3Qgc3R5bGVWYWx1ZSA9IHZhbHVlW2tleV07XG5cbiAgICBpZiAoIXN0eWxlVmFsdWUgJiYgc3R5bGVWYWx1ZSAhPT0gMCkge1xuICAgICAgdGFyZ2V0LnN0eWxlLnJlbW92ZVByb3BlcnR5KGRhc2hLZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXQuc3R5bGUuc2V0UHJvcGVydHkoZGFzaEtleSwgc3R5bGVWYWx1ZSk7XG4gICAgfVxuXG4gICAgbWFwLnNldChkYXNoS2V5LCBzdHlsZVZhbHVlKTtcbiAgICBwcmV2aW91c01hcC5kZWxldGUoZGFzaEtleSk7XG5cbiAgICByZXR1cm4gbWFwO1xuICB9LCBuZXcgTWFwKCkpO1xuXG4gIHByZXZpb3VzTWFwLmZvckVhY2goKHN0eWxlVmFsdWUsIGtleSkgPT4geyB0YXJnZXQuc3R5bGVba2V5XSA9ICcnOyB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3N0eWxlLmpzIl0sIm5hbWVzIjpbInJlc29sdmVTdHlsZSIsImhvc3QiLCJ0YXJnZXQiLCJ2YWx1ZSIsImRhdGEiLCJUeXBlRXJyb3IiLCJwcmV2aW91c01hcCIsInN0eWxlTWFwIiwiTWFwIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm1hcCIsImtleSIsImRhc2hLZXkiLCJzdHlsZVZhbHVlIiwic3R5bGUiLCJyZW1vdmVQcm9wZXJ0eSIsInNldFByb3BlcnR5Iiwic2V0IiwiZGVsZXRlIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRWUsU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEJDLE1BQTVCLEVBQW9DQyxLQUFwQyxFQUEyQ0MsSUFBM0MsRUFBaUQ7QUFDOUQsTUFBSUQsS0FBSyxLQUFLLElBQVYsSUFBa0IsUUFBT0EsS0FBUCxNQUFpQixRQUF2QyxFQUFpRDtBQUMvQyxVQUFNRSxTQUFTLENBQUMsd0NBQUQsQ0FBZjtBQUNEOztBQUVELE1BQU1DLFdBQVcsR0FBR0YsSUFBSSxDQUFDRyxRQUFMLElBQWlCLElBQUlDLEdBQUosRUFBckM7QUFFQUosRUFBQUEsSUFBSSxDQUFDRyxRQUFMLEdBQWdCRSxNQUFNLENBQUNDLElBQVAsQ0FBWVAsS0FBWixFQUFtQlEsTUFBbkIsQ0FBMEIsVUFBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQWM7QUFDdEQsUUFBTUMsT0FBTyxHQUFHLHdCQUFZRCxHQUFaLENBQWhCO0FBQ0EsUUFBTUUsVUFBVSxHQUFHWixLQUFLLENBQUNVLEdBQUQsQ0FBeEI7O0FBRUEsUUFBSSxDQUFDRSxVQUFELElBQWVBLFVBQVUsS0FBSyxDQUFsQyxFQUFxQztBQUNuQ2IsTUFBQUEsTUFBTSxDQUFDYyxLQUFQLENBQWFDLGNBQWIsQ0FBNEJILE9BQTVCO0FBQ0QsS0FGRCxNQUVPO0FBQ0xaLE1BQUFBLE1BQU0sQ0FBQ2MsS0FBUCxDQUFhRSxXQUFiLENBQXlCSixPQUF6QixFQUFrQ0MsVUFBbEM7QUFDRDs7QUFFREgsSUFBQUEsR0FBRyxDQUFDTyxHQUFKLENBQVFMLE9BQVIsRUFBaUJDLFVBQWpCO0FBQ0FULElBQUFBLFdBQVcsQ0FBQ2MsTUFBWixDQUFtQk4sT0FBbkI7QUFFQSxXQUFPRixHQUFQO0FBQ0QsR0FkZSxFQWNiLElBQUlKLEdBQUosRUFkYSxDQUFoQjtBQWdCQUYsRUFBQUEsV0FBVyxDQUFDZSxPQUFaLENBQW9CLFVBQUNOLFVBQUQsRUFBYUYsR0FBYixFQUFxQjtBQUFFWCxJQUFBQSxNQUFNLENBQUNjLEtBQVAsQ0FBYUgsR0FBYixJQUFvQixFQUFwQjtBQUF5QixHQUFwRTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FtZWxUb0Rhc2ggfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVTdHlsZShob3N0LCB0YXJnZXQsIHZhbHVlLCBkYXRhKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKCdTdHlsZSB2YWx1ZSBtdXN0IGJlIGFuIG9iamVjdCBpbnN0YW5jZScpO1xuICB9XG5cbiAgY29uc3QgcHJldmlvdXNNYXAgPSBkYXRhLnN0eWxlTWFwIHx8IG5ldyBNYXAoKTtcblxuICBkYXRhLnN0eWxlTWFwID0gT2JqZWN0LmtleXModmFsdWUpLnJlZHVjZSgobWFwLCBrZXkpID0+IHtcbiAgICBjb25zdCBkYXNoS2V5ID0gY2FtZWxUb0Rhc2goa2V5KTtcbiAgICBjb25zdCBzdHlsZVZhbHVlID0gdmFsdWVba2V5XTtcblxuICAgIGlmICghc3R5bGVWYWx1ZSAmJiBzdHlsZVZhbHVlICE9PSAwKSB7XG4gICAgICB0YXJnZXQuc3R5bGUucmVtb3ZlUHJvcGVydHkoZGFzaEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldC5zdHlsZS5zZXRQcm9wZXJ0eShkYXNoS2V5LCBzdHlsZVZhbHVlKTtcbiAgICB9XG5cbiAgICBtYXAuc2V0KGRhc2hLZXksIHN0eWxlVmFsdWUpO1xuICAgIHByZXZpb3VzTWFwLmRlbGV0ZShkYXNoS2V5KTtcblxuICAgIHJldHVybiBtYXA7XG4gIH0sIG5ldyBNYXAoKSk7XG5cbiAgcHJldmlvdXNNYXAuZm9yRWFjaCgoc3R5bGVWYWx1ZSwga2V5KSA9PiB7IHRhcmdldC5zdHlsZVtrZXldID0gJyc7IH0pO1xufVxuIl19

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,7 +6,2 @@ Object.defineProperty(exports, "__esModule", {

});
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports.createId = createId;

@@ -16,19 +11,25 @@ exports.createInternalWalker = createInternalWalker;

var _utils = require('../utils');
var _utils = require("../utils");
var _style = require('./style');
var _style = _interopRequireDefault(require("./style"));
var _style2 = _interopRequireDefault(_style);
var _classList = _interopRequireDefault(require("./classList"));
var _classList = require('./classList');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _classList2 = _interopRequireDefault(_classList);
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var dataMap = (0, _utils.createMap)();
function getTemplateEnd(node) {
var data = void 0;
// eslint-disable-next-line no-cond-assign
var data; // eslint-disable-next-line no-cond-assign
while (node && (data = dataMap.get(node)) && data.endNode) {

@@ -47,3 +48,2 @@ node = data.endNode;

var endNode = getTemplateEnd(data.endNode);
var node = startNode;

@@ -61,3 +61,3 @@ var lastNextSibling = endNode.nextSibling;

function resolveValue(host, target, value) {
var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : _typeof(value);
var type = Array.isArray(value) ? 'array' : _typeof(value);
var data = dataMap.get(target, {});

@@ -67,3 +67,5 @@

removeTemplate(target);
data = dataMap.set(target, { type: type });
data = dataMap.set(target, {
type: type
});

@@ -79,2 +81,3 @@ if (target.textContent !== '') {

break;
case 'array':

@@ -84,2 +87,3 @@ // eslint-disable-next-line no-use-before-define

break;
default:

@@ -90,2 +94,3 @@ if (value !== data.value) {

}
}

@@ -98,7 +103,6 @@ }

var endNode = getTemplateEnd(data.endNode);
previousSibling.parentNode.insertBefore(target, previousSibling.nextSibling);
var prevNode = target;
var node = startNode;
while (node) {

@@ -117,4 +121,2 @@ var nextNode = node.nextSibling;

var arrayEntries = data.arrayEntries;
var indexedValue = value.map(function (item, index) {

@@ -132,3 +134,2 @@ return [Object.prototype.hasOwnProperty.call(item, 'id') ? item.id : index, item];

});
arrayEntries.forEach(function (entry) {

@@ -154,4 +155,4 @@ var id = entry.id,

});
var placeholder;
var placeholder = void 0;
if (entry) {

@@ -170,10 +171,10 @@ entry.available = false;

resolveValue(host, placeholder, item);
previousSibling = getTemplateEnd(dataMap.get(placeholder).endNode || placeholder);
if (index === 0) data.startNode = placeholder;
if (index === lastIndex) data.endNode = previousSibling;
entries.push({ available: true, id: id, placeholder: placeholder });
entries.push({
available: true,
id: id,
placeholder: placeholder
});
return entries;

@@ -199,12 +200,12 @@ }, []);

var eventName = propertyName.substr(2);
return function (host, target, value) {
if (!fnMap.has(target)) {
target.addEventListener(eventName, function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
var fn = fnMap.get(target);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var fn = fnMap.get(target);
if (fn) fn.apply(undefined, [host].concat(args));
if (fn) fn.apply(void 0, [host].concat(args));
});

@@ -219,5 +220,7 @@ }

case 'style':
return _style2.default;
return _style.default;
case 'class':
return _classList2.default;
return _classList.default;
default:

@@ -233,2 +236,3 @@ return function (host, target, value) {

var attrValue = value === true ? '' : String(value);
if (target.getAttribute(attrName) !== attrValue) {

@@ -246,12 +250,10 @@ target.setAttribute(attrName, attrValue);

var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return '{{h-' + TIMESTAMP + '-' + id + '}}';
return "{{h-".concat(TIMESTAMP, "-").concat(id, "}}");
};
var PLACEHOLDER_REGEXP_TEXT = getPlaceholder('(\\d+)');
var PLACEHOLDER_REGEXP_EQUAL = new RegExp('^' + PLACEHOLDER_REGEXP_TEXT + '$');
var PLACEHOLDER_REGEXP_EQUAL = new RegExp("^".concat(PLACEHOLDER_REGEXP_TEXT, "$"));
var PLACEHOLDER_REGEXP_ALL = new RegExp(PLACEHOLDER_REGEXP_TEXT, 'g');
var ATTR_PREFIX = '--' + TIMESTAMP + '--';
var ATTR_PREFIX = "--".concat(TIMESTAMP, "--");
var ATTR_REGEXP = new RegExp(ATTR_PREFIX, 'g');
var preparedTemplates = new WeakMap();

@@ -261,5 +263,5 @@

if (!tagName) return template;
return (0, _utils.shadyCSS)(function (shady) {
var map = preparedTemplates.get(template);
if (!map) {

@@ -275,9 +277,7 @@ map = new Map();

clone.content.appendChild(template.content.cloneNode(true));
map.set(tagName, clone);
var styles = clone.content.querySelectorAll('style');
Array.from(styles).forEach(function (style) {
var count = style.childNodes.length + 1;
for (var i = 0; i < count; i += 1) {

@@ -287,5 +287,5 @@ style.parentNode.insertBefore(document.createTextNode(getPlaceholder()), style);

});
shady.prepareTemplate(clone, tagName.toLowerCase());
}
return clone;

@@ -296,3 +296,3 @@ }, template);

function createId(parts, isSVG) {
return '' + (isSVG ? 'svg:' : '') + parts.join(getPlaceholder());
return "".concat(isSVG ? 'svg:' : '').concat(parts.join(getPlaceholder()));
}

@@ -305,5 +305,7 @@

}
if (parts.slice(index).join('').match(/\s*<\/\s*(table|tr|thead|tbody|tfoot|colgroup)>/)) {
return acc + '<!--' + getPlaceholder(index - 1) + '-->' + part;
return "".concat(acc, "<!--").concat(getPlaceholder(index - 1), "-->").concat(part);
}
return acc + getPlaceholder(index - 1) + part;

@@ -314,3 +316,3 @@ }, '');

return signature.replace(/style\s*=\s*(["][^"]+["]|['][^']+[']|[^\s"'<>/]+)/g, function (match) {
return '' + ATTR_PREFIX + match;
return "".concat(ATTR_PREFIX).concat(match);
});

@@ -328,4 +330,4 @@ }

var iterator = document.createNodeIterator(fragment, NodeFilter.SHOW_COMMENT, null, false);
var node = void 0;
// eslint-disable-next-line no-cond-assign
var node; // eslint-disable-next-line no-cond-assign
while (node = iterator.nextNode()) {

@@ -340,4 +342,3 @@ if (PLACEHOLDER_REGEXP_EQUAL.test(node.textContent)) {

function createInternalWalker(context) {
var node = void 0;
var node;
return {

@@ -347,2 +348,3 @@ get currentNode() {

},
nextNode: function nextNode() {

@@ -365,4 +367,3 @@ if (node === undefined) {

function createExternalWalker(context) {
return document.createTreeWalker(context,
// eslint-disable-next-line no-bitwise
return document.createTreeWalker(context, // eslint-disable-next-line no-bitwise
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null, false);

@@ -372,10 +373,9 @@ }

var createWalker = _typeof(window.ShadyDOM) === 'object' && window.ShadyDOM.inUse ? createInternalWalker : createExternalWalker;
var container = document.createElement('div');
var container = document.createElement('div');
function compile(rawParts, isSVG) {
var template = document.createElement('template');
var parts = [];
var signature = createSignature(rawParts);
if (isSVG) signature = '<svg>' + signature + '</svg>';
if (isSVG) signature = "<svg>".concat(signature, "</svg>");

@@ -385,3 +385,3 @@ if (_utils.IS_IE) {

} else {
container.innerHTML = '<template>' + signature + '</template>';
container.innerHTML = "<template>".concat(signature, "</template>");
template.content.appendChild(container.children[0].content);

@@ -399,3 +399,2 @@ }

replaceComments(template.content);
var compileWalker = createWalker(template.content);

@@ -412,2 +411,3 @@ var compileIndex = 0;

var results = text.match(PLACEHOLDER_REGEXP_ALL);
if (results) {

@@ -436,2 +436,3 @@ var currentNode = node;

var equal = node.textContent.match(PLACEHOLDER_REGEXP_EQUAL);
if (equal) {

@@ -446,2 +447,3 @@ if (!_utils.IS_IE) node.textContent = '';

var equal = value.match(PLACEHOLDER_REGEXP_EQUAL);
if (equal) {

@@ -453,4 +455,5 @@ var propertyName = getPropertyName(rawParts[equal[1]]);

var _results = value.match(PLACEHOLDER_REGEXP_ALL);
if (_results) {
var partialName = 'attr__' + name;
var partialName = "attr__".concat(name);

@@ -492,31 +495,31 @@ _results.forEach(function (placeholder, index) {

return function (host, target, args) {
var data = dataMap.get(target, { type: 'function' });
var data = dataMap.get(target, {
type: 'function'
});
if (template !== data.template) {
if (data.template) removeTemplate(target);
var fragment = document.importNode(applyShadyCSS(template, host.tagName).content, true);
var renderWalker = createWalker(fragment);
var clonedParts = parts.slice(0);
var renderIndex = 0;
var currentPart = clonedParts.shift();
var markers = [];
Object.assign(data, {
template: template,
markers: markers
});
Object.assign(data, { template: template, markers: markers });
while (renderWalker.nextNode()) {
var _node = renderWalker.currentNode;
var node = renderWalker.currentNode;
if (_node.nodeType === Node.TEXT_NODE) {
if (PLACEHOLDER_REGEXP_EQUAL.test(_node.textContent)) {
_node.textContent = '';
if (node.nodeType === Node.TEXT_NODE) {
if (PLACEHOLDER_REGEXP_EQUAL.test(node.textContent)) {
node.textContent = '';
} else if (_utils.IS_IE) {
_node.textContent = _node.textContent.replace(ATTR_REGEXP, '');
node.textContent = node.textContent.replace(ATTR_REGEXP, '');
}
} else if (process.env.NODE_ENV !== 'production' && _node.nodeType === Node.ELEMENT_NODE) {
if (_node.tagName.indexOf('-') > -1 && !customElements.get(_node.tagName.toLowerCase())) {
throw Error('[html] Missing \'' + (0, _utils.stringifyElement)(_node) + '\' element definition in \'' + (0, _utils.stringifyElement)(host) + '\'');
} else if (process.env.NODE_ENV !== 'production' && node.nodeType === Node.ELEMENT_NODE) {
if (node.tagName.indexOf('-') > -1 && !customElements.get(node.tagName.toLowerCase())) {
throw Error("[html] Missing '".concat((0, _utils.stringifyElement)(node), "' element definition in '").concat((0, _utils.stringifyElement)(host), "'"));
}

@@ -526,3 +529,3 @@ }

while (currentPart && currentPart[0] === renderIndex) {
markers.push([_node, currentPart[1]]);
markers.push([node, currentPart[1]]);
currentPart = clonedParts.shift();

@@ -535,3 +538,2 @@ }

var childList = Array.from(fragment.childNodes);
data.startNode = childList[0];

@@ -560,2 +562,2 @@ data.endNode = childList[childList.length - 1];

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3RlbXBsYXRlLmpzIl0sIm5hbWVzIjpbImNyZWF0ZUlkIiwiY3JlYXRlSW50ZXJuYWxXYWxrZXIiLCJjb21waWxlIiwiZGF0YU1hcCIsImdldFRlbXBsYXRlRW5kIiwibm9kZSIsImRhdGEiLCJnZXQiLCJlbmROb2RlIiwicmVtb3ZlVGVtcGxhdGUiLCJ0YXJnZXQiLCJzdGFydE5vZGUiLCJsYXN0TmV4dFNpYmxpbmciLCJuZXh0U2libGluZyIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInJlc29sdmVWYWx1ZSIsImhvc3QiLCJ2YWx1ZSIsInR5cGUiLCJBcnJheSIsImlzQXJyYXkiLCJzZXQiLCJ0ZXh0Q29udGVudCIsInJlc29sdmVBcnJheSIsIm1vdmVQbGFjZWhvbGRlciIsInByZXZpb3VzU2libGluZyIsImluc2VydEJlZm9yZSIsInByZXZOb2RlIiwibmV4dE5vZGUiLCJsYXN0SW5kZXgiLCJsZW5ndGgiLCJhcnJheUVudHJpZXMiLCJpbmRleGVkVmFsdWUiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpZCIsImlkcyIsIlNldCIsImZvckVhY2giLCJhZGQiLCJlbnRyeSIsInBsYWNlaG9sZGVyIiwiaGFzIiwiYXZhaWxhYmxlIiwicmVkdWNlIiwiZW50cmllcyIsImZpbmQiLCJlbnRyeUl0ZW0iLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwicHVzaCIsInJlc29sdmVQcm9wZXJ0eSIsImF0dHJOYW1lIiwicHJvcGVydHlOYW1lIiwiaXNTVkciLCJzdWJzdHIiLCJmbk1hcCIsIldlYWtNYXAiLCJldmVudE5hbWUiLCJhZGRFdmVudExpc3RlbmVyIiwiYXJncyIsImZuIiwicmVzb2x2ZVN0eWxlTGlzdCIsInJlc29sdmVDbGFzc0xpc3QiLCJTVkdFbGVtZW50IiwidW5kZWZpbmVkIiwicmVtb3ZlQXR0cmlidXRlIiwiYXR0clZhbHVlIiwiU3RyaW5nIiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwiVElNRVNUQU1QIiwiRGF0ZSIsIm5vdyIsImdldFBsYWNlaG9sZGVyIiwiUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQiLCJQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwiLCJSZWdFeHAiLCJQTEFDRUhPTERFUl9SRUdFWFBfQUxMIiwiQVRUUl9QUkVGSVgiLCJBVFRSX1JFR0VYUCIsInByZXBhcmVkVGVtcGxhdGVzIiwiYXBwbHlTaGFkeUNTUyIsInRlbXBsYXRlIiwidGFnTmFtZSIsInNoYWR5IiwiTWFwIiwiY2xvbmUiLCJjcmVhdGVFbGVtZW50IiwiY29udGVudCIsImFwcGVuZENoaWxkIiwiY2xvbmVOb2RlIiwic3R5bGVzIiwicXVlcnlTZWxlY3RvckFsbCIsImZyb20iLCJzdHlsZSIsImNvdW50IiwiY2hpbGROb2RlcyIsImkiLCJwcmVwYXJlVGVtcGxhdGUiLCJ0b0xvd2VyQ2FzZSIsInBhcnRzIiwiam9pbiIsImNyZWF0ZVNpZ25hdHVyZSIsInNpZ25hdHVyZSIsImFjYyIsInBhcnQiLCJzbGljZSIsIm1hdGNoIiwiSVNfSUUiLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsInRlc3QiLCJjb250ZXh0IiwiY3VycmVudE5vZGUiLCJjcmVhdGVFeHRlcm5hbFdhbGtlciIsImNyZWF0ZVRyZWVXYWxrZXIiLCJTSE9XX0VMRU1FTlQiLCJTSE9XX1RFWFQiLCJjcmVhdGVXYWxrZXIiLCJ3aW5kb3ciLCJTaGFkeURPTSIsImluVXNlIiwiY29udGFpbmVyIiwicmF3UGFydHMiLCJpbm5lckhUTUwiLCJjaGlsZHJlbiIsInN2Z1Jvb3QiLCJmaXJzdENoaWxkIiwiY29tcGlsZVdhbGtlciIsImNvbXBpbGVJbmRleCIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJyZXN1bHRzIiwiYmVmb3JlIiwibmV4dCIsImVxdWFsIiwiRUxFTUVOVF9OT0RFIiwiYXR0cmlidXRlcyIsImF0dHIiLCJ0cmltIiwibmFtZSIsInBhcnRpYWxOYW1lIiwiaW1wb3J0Tm9kZSIsInJlbmRlcldhbGtlciIsImNsb25lZFBhcnRzIiwicmVuZGVySW5kZXgiLCJjdXJyZW50UGFydCIsInNoaWZ0IiwibWFya2VycyIsImFzc2lnbiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImluZGV4T2YiLCJjdXN0b21FbGVtZW50cyIsIkVycm9yIiwiY2hpbGRMaXN0IiwicHJldmlvdXNDaGlsZCIsImNoaWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O1FBd09nQkEsUSxHQUFBQSxRO1FBeUNBQyxvQixHQUFBQSxvQjtRQWtDQUMsTyxHQUFBQSxPOztBQW5UaEI7O0FBSUE7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUMsVUFBVSx1QkFBaEI7O0FBRUEsU0FBU0MsY0FBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDNUIsTUFBSUMsYUFBSjtBQUNBO0FBQ0EsU0FBT0QsU0FBU0MsT0FBT0gsUUFBUUksR0FBUixDQUFZRixJQUFaLENBQWhCLEtBQXNDQyxLQUFLRSxPQUFsRCxFQUEyRDtBQUN6REgsV0FBT0MsS0FBS0UsT0FBWjtBQUNEOztBQUVELFNBQU9ILElBQVA7QUFDRDs7QUFFRCxTQUFTSSxjQUFULENBQXdCQyxNQUF4QixFQUFnQztBQUM5QixNQUFNSixPQUFPSCxRQUFRSSxHQUFSLENBQVlHLE1BQVosQ0FBYjtBQUNBLE1BQU1DLFlBQVlMLEtBQUtLLFNBQXZCOztBQUVBLE1BQUlBLFNBQUosRUFBZTtBQUNiLFFBQU1ILFVBQVVKLGVBQWVFLEtBQUtFLE9BQXBCLENBQWhCOztBQUVBLFFBQUlILE9BQU9NLFNBQVg7QUFDQSxRQUFNQyxrQkFBa0JKLFFBQVFLLFdBQWhDOztBQUVBLFdBQU9SLElBQVAsRUFBYTtBQUNYLFVBQU1RLGNBQWNS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QVkxSixNQUFNZ0YsSUFBTixDQUFXc0IsU0FBU25CLFVBQXBCLENBQWxCOztBQUVBakcsV0FBS0ssU0FBTCxHQUFpQm1LLFVBQVUsQ0FBVixDQUFqQjtBQUNBeEssV0FBS0UsT0FBTCxHQUFlc0ssVUFBVUEsVUFBVS9JLE1BQVYsR0FBbUIsQ0FBN0IsQ0FBZjs7QUFFQSxVQUFJckIsT0FBT3dJLFFBQVAsS0FBb0JDLEtBQUtDLFNBQTdCLEVBQXdDO0FBQ3RDLFlBQUkyQixnQkFBZ0JySyxNQUFwQjtBQUNBb0ssa0JBQVVsSSxPQUFWLENBQWtCLFVBQUNvSSxLQUFELEVBQVc7QUFDM0J0SyxpQkFBT0ksVUFBUCxDQUFrQmEsWUFBbEIsQ0FBK0JxSixLQUEvQixFQUFzQ0QsY0FBY2xLLFdBQXBEO0FBQ0FrSywwQkFBZ0JDLEtBQWhCO0FBQ0QsU0FIRDtBQUlELE9BTkQsTUFNTztBQUNMdEssZUFBT3NGLFdBQVAsQ0FBbUIwQixRQUFuQjtBQUNEO0FBQ0Y7O0FBRURwSCxTQUFLZ0ssT0FBTCxDQUFhMUgsT0FBYixDQUFxQixpQkFBYVIsS0FBYixFQUF1QjtBQUFBO0FBQUEsVUFBckIvQixJQUFxQjtBQUFBLFVBQWY4RCxFQUFlOztBQUMxQ0EsU0FBR2xELElBQUgsRUFBU1osSUFBVCxFQUFlNkQsS0FBSzlCLEtBQUwsQ0FBZixFQUE0QjlCLElBQTVCO0FBQ0QsS0FGRDtBQUdELEdBNUREO0FBNkREIiwiZmlsZSI6InRlbXBsYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlTWFwLCBzaGFkeUNTUywgc3RyaW5naWZ5RWxlbWVudCwgSVNfSUUsXG59IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHJlc29sdmVTdHlsZUxpc3QgZnJvbSAnLi9zdHlsZSc7XG5pbXBvcnQgcmVzb2x2ZUNsYXNzTGlzdCBmcm9tICcuL2NsYXNzTGlzdCc7XG5cbmNvbnN0IGRhdGFNYXAgPSBjcmVhdGVNYXAoKTtcblxuZnVuY3Rpb24gZ2V0VGVtcGxhdGVFbmQobm9kZSkge1xuICBsZXQgZGF0YTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduXG4gIHdoaWxlIChub2RlICYmIChkYXRhID0gZGF0YU1hcC5nZXQobm9kZSkpICYmIGRhdGEuZW5kTm9kZSkge1xuICAgIG5vZGUgPSBkYXRhLmVuZE5vZGU7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlVGVtcGxhdGUodGFyZ2V0KSB7XG4gIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQpO1xuICBjb25zdCBzdGFydE5vZGUgPSBkYXRhLnN0YXJ0Tm9kZTtcblxuICBpZiAoc3RhcnROb2RlKSB7XG4gICAgY29uc3QgZW5kTm9kZSA9IGdldFRlbXBsYXRlRW5kKGRhdGEuZW5kTm9kZSk7XG5cbiAgICBsZXQgbm9kZSA9IHN0YXJ0Tm9kZTtcbiAgICBjb25zdCBsYXN0TmV4dFNpYmxpbmcgPSBlbmROb2RlLm5leHRTaWJsaW5nO1xuXG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICAgIG5vZGUgPSBuZXh0U2libGluZyAhPT0gbGFzdE5leHRTaWJsaW5nICYmIG5leHRTaWJsaW5nO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlVmFsdWUoaG9zdCwgdGFyZ2V0LCB2YWx1ZSkge1xuICBjb25zdCB0eXBlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAnYXJyYXknIDogdHlwZW9mIHZhbHVlO1xuICBsZXQgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCwge30pO1xuXG4gIGlmIChkYXRhLnR5cGUgIT09IHR5cGUpIHtcbiAgICByZW1vdmVUZW1wbGF0ZSh0YXJnZXQpO1xuICAgIGRhdGEgPSBkYXRhTWFwLnNldCh0YXJnZXQsIHsgdHlwZSB9KTtcblxuICAgIGlmICh0YXJnZXQudGV4dENvbnRlbnQgIT09ICcnKSB7XG4gICAgICB0YXJnZXQudGV4dENvbnRlbnQgPSAnJztcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICB2YWx1ZShob3N0LCB0YXJnZXQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICByZXNvbHZlQXJyYXkoaG9zdCwgdGFyZ2V0LCB2YWx1ZSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHZhbHVlICE9PSBkYXRhLnZhbHVlKSB7XG4gICAgICAgIGRhdGEudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGFyZ2V0LnRleHRDb250ZW50ID0gdHlwZSA9PT0gJ251bWJlcicgfHwgdmFsdWUgPyB2YWx1ZSA6ICcnO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1vdmVQbGFjZWhvbGRlcih0YXJnZXQsIHByZXZpb3VzU2libGluZykge1xuICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0KTtcbiAgY29uc3Qgc3RhcnROb2RlID0gZGF0YS5zdGFydE5vZGU7XG4gIGNvbnN0IGVuZE5vZGUgPSBnZXRUZW1wbGF0ZUVuZChkYXRhLmVuZE5vZGUpO1xuXG4gIHByZXZpb3VzU2libGluZy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0YXJnZXQsIHByZXZpb3VzU2libGluZy5uZXh0U2libGluZyk7XG5cbiAgbGV0IHByZXZOb2RlID0gdGFyZ2V0O1xuICBsZXQgbm9kZSA9IHN0YXJ0Tm9kZTtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBjb25zdCBuZXh0Tm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgcHJldk5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgcHJldk5vZGUubmV4dFNpYmxpbmcpO1xuICAgIHByZXZOb2RlID0gbm9kZTtcbiAgICBub2RlID0gbmV4dE5vZGUgIT09IGVuZE5vZGUubmV4dFNpYmxpbmcgJiYgbmV4dE5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUFycmF5KGhvc3QsIHRhcmdldCwgdmFsdWUpIHtcbiAgbGV0IHByZXZpb3VzU2libGluZyA9IHRhcmdldDtcbiAgY29uc3QgbGFzdEluZGV4ID0gdmFsdWUubGVuZ3RoIC0gMTtcbiAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCk7XG4gIGNvbnN0IHsgYXJyYXlFbnRyaWVzIH0gPSBkYXRhO1xuXG4gIGNvbnN0IGluZGV4ZWRWYWx1ZSA9IHZhbHVlLm1hcCgoaXRlbSwgaW5kZXgpID0+IFtcbiAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgJ2lkJykgPyBpdGVtLmlkIDogaW5kZXgsXG4gICAgaXRlbSxcbiAgXSk7XG5cbiAgaWYgKGFycmF5RW50cmllcykge1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQoKTtcbiAgICBpbmRleGVkVmFsdWUuZm9yRWFjaCgoW2lkXSkgPT4gaWRzLmFkZChpZCkpO1xuXG4gICAgYXJyYXlFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCB7IGlkLCBwbGFjZWhvbGRlciB9ID0gZW50cnk7XG4gICAgICBpZiAoIWlkcy5oYXMoaWQpKSB7XG4gICAgICAgIHJlbW92ZVRlbXBsYXRlKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgcGxhY2Vob2xkZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwbGFjZWhvbGRlcik7XG4gICAgICAgIGVudHJ5LmF2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGF0YS5hcnJheUVudHJpZXMgPSBpbmRleGVkVmFsdWUucmVkdWNlKChlbnRyaWVzLCBbaWQsIGl0ZW1dLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGVudHJ5ID0gYXJyYXlFbnRyaWVzICYmIGFycmF5RW50cmllc1xuICAgICAgLmZpbmQoZW50cnlJdGVtID0+IGVudHJ5SXRlbS5hdmFpbGFibGUgJiYgZW50cnlJdGVtLmlkID09PSBpZCk7XG5cbiAgICBsZXQgcGxhY2Vob2xkZXI7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBlbnRyeS5hdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgIHBsYWNlaG9sZGVyID0gZW50cnkucGxhY2Vob2xkZXI7XG5cbiAgICAgIGlmIChwbGFjZWhvbGRlci5wcmV2aW91c1NpYmxpbmcgIT09IHByZXZpb3VzU2libGluZykge1xuICAgICAgICBtb3ZlUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIHByZXZpb3VzU2libGluZyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpO1xuICAgICAgcHJldmlvdXNTaWJsaW5nLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHBsYWNlaG9sZGVyLCBwcmV2aW91c1NpYmxpbmcubmV4dFNpYmxpbmcpO1xuICAgIH1cblxuICAgIHJlc29sdmVWYWx1ZShob3N0LCBwbGFjZWhvbGRlciwgaXRlbSk7XG5cbiAgICBwcmV2aW91c1NpYmxpbmcgPSBnZXRUZW1wbGF0ZUVuZChkYXRhTWFwLmdldChwbGFjZWhvbGRlcikuZW5kTm9kZSB8fCBwbGFjZWhvbGRlcik7XG5cbiAgICBpZiAoaW5kZXggPT09IDApIGRhdGEuc3RhcnROb2RlID0gcGxhY2Vob2xkZXI7XG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIGRhdGEuZW5kTm9kZSA9IHByZXZpb3VzU2libGluZztcblxuICAgIGVudHJpZXMucHVzaCh7IGF2YWlsYWJsZTogdHJ1ZSwgaWQsIHBsYWNlaG9sZGVyIH0pO1xuXG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH0sIFtdKTtcblxuICBpZiAoYXJyYXlFbnRyaWVzKSB7XG4gICAgYXJyYXlFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCB7IGF2YWlsYWJsZSwgcGxhY2Vob2xkZXIgfSA9IGVudHJ5O1xuICAgICAgaWYgKGF2YWlsYWJsZSkge1xuICAgICAgICByZW1vdmVUZW1wbGF0ZShwbGFjZWhvbGRlcik7XG4gICAgICAgIHBsYWNlaG9sZGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVQcm9wZXJ0eShhdHRyTmFtZSwgcHJvcGVydHlOYW1lLCBpc1NWRykge1xuICBpZiAocHJvcGVydHlOYW1lLnN1YnN0cigwLCAyKSA9PT0gJ29uJykge1xuICAgIGNvbnN0IGZuTWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICBjb25zdCBldmVudE5hbWUgPSBwcm9wZXJ0eU5hbWUuc3Vic3RyKDIpO1xuXG4gICAgcmV0dXJuIChob3N0LCB0YXJnZXQsIHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIWZuTWFwLmhhcyh0YXJnZXQpKSB7XG4gICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjb25zdCBmbiA9IGZuTWFwLmdldCh0YXJnZXQpO1xuICAgICAgICAgIGlmIChmbikgZm4oaG9zdCwgLi4uYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBmbk1hcC5zZXQodGFyZ2V0LCB2YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHN3aXRjaCAoYXR0ck5hbWUpIHtcbiAgICBjYXNlICdzdHlsZSc6IHJldHVybiByZXNvbHZlU3R5bGVMaXN0O1xuICAgIGNhc2UgJ2NsYXNzJzogcmV0dXJuIHJlc29sdmVDbGFzc0xpc3Q7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAoaG9zdCwgdGFyZ2V0LCB2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIWlzU1ZHICYmICEodGFyZ2V0IGluc3RhbmNlb2YgU1ZHRWxlbWVudCkgJiYgKHByb3BlcnR5TmFtZSBpbiB0YXJnZXQpKSB7XG4gICAgICAgICAgaWYgKHRhcmdldFtwcm9wZXJ0eU5hbWVdICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICB0YXJnZXQucmVtb3ZlQXR0cmlidXRlKGF0dHJOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhdHRyVmFsdWUgPSB2YWx1ZSA9PT0gdHJ1ZSA/ICcnIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICBpZiAodGFyZ2V0LmdldEF0dHJpYnV0ZShhdHRyTmFtZSkgIT09IGF0dHJWYWx1ZSkge1xuICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShhdHRyTmFtZSwgYXR0clZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gIH1cbn1cblxuY29uc3QgVElNRVNUQU1QID0gRGF0ZS5ub3coKTtcblxuY29uc3QgZ2V0UGxhY2Vob2xkZXIgPSAoaWQgPSAwKSA9PiBge3toLSR7VElNRVNUQU1QfS0ke2lkfX19YDtcblxuY29uc3QgUExBQ0VIT0xERVJfUkVHRVhQX1RFWFQgPSBnZXRQbGFjZWhvbGRlcignKFxcXFxkKyknKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCA9IG5ldyBSZWdFeHAoYF4ke1BMQUNFSE9MREVSX1JFR0VYUF9URVhUfSRgKTtcbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9BTEwgPSBuZXcgUmVnRXhwKFBMQUNFSE9MREVSX1JFR0VYUF9URVhULCAnZycpO1xuXG5jb25zdCBBVFRSX1BSRUZJWCA9IGAtLSR7VElNRVNUQU1QfS0tYDtcbmNvbnN0IEFUVFJfUkVHRVhQID0gbmV3IFJlZ0V4cChBVFRSX1BSRUZJWCwgJ2cnKTtcblxuY29uc3QgcHJlcGFyZWRUZW1wbGF0ZXMgPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCB0YWdOYW1lKSB7XG4gIGlmICghdGFnTmFtZSkgcmV0dXJuIHRlbXBsYXRlO1xuXG4gIHJldHVybiBzaGFkeUNTUygoc2hhZHkpID0+IHtcbiAgICBsZXQgbWFwID0gcHJlcGFyZWRUZW1wbGF0ZXMuZ2V0KHRlbXBsYXRlKTtcbiAgICBpZiAoIW1hcCkge1xuICAgICAgbWFwID0gbmV3IE1hcCgpO1xuICAgICAgcHJlcGFyZWRUZW1wbGF0ZXMuc2V0KHRlbXBsYXRlLCBtYXApO1xuICAgIH1cblxuICAgIGxldCBjbG9uZSA9IG1hcC5nZXQodGFnTmFtZSk7XG5cbiAgICBpZiAoIWNsb25lKSB7XG4gICAgICBjbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgICBjbG9uZS5jb250ZW50LmFwcGVuZENoaWxkKHRlbXBsYXRlLmNvbnRlbnQuY2xvbmVOb2RlKHRydWUpKTtcblxuICAgICAgbWFwLnNldCh0YWdOYW1lLCBjbG9uZSk7XG5cbiAgICAgIGNvbnN0IHN0eWxlcyA9IGNsb25lLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGUnKTtcblxuICAgICAgQXJyYXkuZnJvbShzdHlsZXMpLmZvckVhY2goKHN0eWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gc3R5bGUuY2hpbGROb2Rlcy5sZW5ndGggKyAxO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpICs9IDEpIHtcbiAgICAgICAgICBzdHlsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZXRQbGFjZWhvbGRlcigpKSwgc3R5bGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc2hhZHkucHJlcGFyZVRlbXBsYXRlKGNsb25lLCB0YWdOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cbiAgICByZXR1cm4gY2xvbmU7XG4gIH0sIHRlbXBsYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlkKHBhcnRzLCBpc1NWRykge1xuICByZXR1cm4gYCR7aXNTVkcgPyAnc3ZnOicgOiAnJ30ke3BhcnRzLmpvaW4oZ2V0UGxhY2Vob2xkZXIoKSl9YDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2lnbmF0dXJlKHBhcnRzKSB7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IHBhcnRzLnJlZHVjZSgoYWNjLCBwYXJ0LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgfVxuICAgIGlmIChwYXJ0cy5zbGljZShpbmRleCkuam9pbignJykubWF0Y2goL1xccyo8XFwvXFxzKih0YWJsZXx0cnx0aGVhZHx0Ym9keXx0Zm9vdHxjb2xncm91cCk+LykpIHtcbiAgICAgIHJldHVybiBgJHthY2N9PCEtLSR7Z2V0UGxhY2Vob2xkZXIoaW5kZXggLSAxKX0tLT4ke3BhcnR9YDtcbiAgICB9XG4gICAgcmV0dXJuIGFjYyArIGdldFBsYWNlaG9sZGVyKGluZGV4IC0gMSkgKyBwYXJ0O1xuICB9LCAnJyk7XG5cbiAgaWYgKElTX0lFKSB7XG4gICAgcmV0dXJuIHNpZ25hdHVyZS5yZXBsYWNlKFxuICAgICAgL3N0eWxlXFxzKj1cXHMqKFtcIl1bXlwiXStbXCJdfFsnXVteJ10rWyddfFteXFxzXCInPD4vXSspL2csXG4gICAgICBtYXRjaCA9PiBgJHtBVFRSX1BSRUZJWH0ke21hdGNofWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbmZ1bmN0aW9uIGdldFByb3BlcnR5TmFtZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXHMqPVxccypbJ1wiXSokL2csICcnKS5zcGxpdCgnICcpLnBvcCgpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlQ29tbWVudHMoZnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZnJhZ21lbnQsIE5vZGVGaWx0ZXIuU0hPV19DT01NRU5ULCBudWxsLCBmYWxzZSk7XG4gIGxldCBub2RlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgd2hpbGUgKG5vZGUgPSBpdGVyYXRvci5uZXh0Tm9kZSgpKSB7XG4gICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5vZGUudGV4dENvbnRlbnQpLCBub2RlKTtcbiAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgbGV0IG5vZGU7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQgY3VycmVudE5vZGUoKSB7IHJldHVybiBub2RlOyB9LFxuICAgIG5leHROb2RlKCkge1xuICAgICAgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub2RlID0gY29udGV4dC5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkTm9kZXNbMF07XG4gICAgICB9IGVsc2UgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlLm5leHRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gISFub2RlO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV4dGVybmFsV2Fsa2VyKGNvbnRleHQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoXG4gICAgY29udGV4dCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX1RFWFQsXG4gICAgbnVsbCxcbiAgICBmYWxzZSxcbiAgKTtcbn1cblxuY29uc3QgY3JlYXRlV2Fsa2VyID0gdHlwZW9mIHdpbmRvdy5TaGFkeURPTSA9PT0gJ29iamVjdCcgJiYgd2luZG93LlNoYWR5RE9NLmluVXNlID8gY3JlYXRlSW50ZXJuYWxXYWxrZXIgOiBjcmVhdGVFeHRlcm5hbFdhbGtlcjtcblxuY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShyYXdQYXJ0cywgaXNTVkcpIHtcbiAgY29uc3QgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICBjb25zdCBwYXJ0cyA9IFtdO1xuXG4gIGxldCBzaWduYXR1cmUgPSBjcmVhdGVTaWduYXR1cmUocmF3UGFydHMpO1xuICBpZiAoaXNTVkcpIHNpZ25hdHVyZSA9IGA8c3ZnPiR7c2lnbmF0dXJlfTwvc3ZnPmA7XG5cbiAgaWYgKElTX0lFKSB7XG4gICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gc2lnbmF0dXJlO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBgPHRlbXBsYXRlPiR7c2lnbmF0dXJlfTwvdGVtcGxhdGU+YDtcbiAgICB0ZW1wbGF0ZS5jb250ZW50LmFwcGVuZENoaWxkKGNvbnRhaW5lci5jaGlsZHJlblswXS5jb250ZW50KTtcbiAgfVxuXG4gIGlmIChpc1NWRykge1xuICAgIGNvbnN0IHN2Z1Jvb3QgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQ7XG4gICAgdGVtcGxhdGUuY29udGVudC5yZW1vdmVDaGlsZChzdmdSb290KTtcbiAgICBBcnJheS5mcm9tKHN2Z1Jvb3QuY2hpbGROb2RlcykuZm9yRWFjaChub2RlID0+IHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQobm9kZSkpO1xuICB9XG5cbiAgcmVwbGFjZUNvbW1lbnRzKHRlbXBsYXRlLmNvbnRlbnQpO1xuXG4gIGNvbnN0IGNvbXBpbGVXYWxrZXIgPSBjcmVhdGVXYWxrZXIodGVtcGxhdGUuY29udGVudCk7XG4gIGxldCBjb21waWxlSW5kZXggPSAwO1xuXG4gIHdoaWxlIChjb21waWxlV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICBjb25zdCBub2RlID0gY29tcGlsZVdhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG5cbiAgICAgIGlmICghdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSB0ZXh0Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9BTEwpO1xuICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgIGxldCBjdXJyZW50Tm9kZSA9IG5vZGU7XG4gICAgICAgICAgcmVzdWx0c1xuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBwbGFjZWhvbGRlcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBbYmVmb3JlLCBuZXh0XSA9IGFjYy5wb3AoKS5zcGxpdChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChiZWZvcmUpIGFjYy5wdXNoKGJlZm9yZSk7XG4gICAgICAgICAgICAgIGFjYy5wdXNoKHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIGFjYy5wdXNoKG5leHQpO1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW3RleHRdKVxuICAgICAgICAgICAgLmZvckVhY2goKHBhcnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlLnRleHRDb250ZW50ID0gcGFydDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGVcbiAgICAgICAgICAgICAgICAgIC5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydCksIGN1cnJlbnROb2RlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXF1YWwgPSBub2RlLnRleHRDb250ZW50Lm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICBpZiAoZXF1YWwpIHtcbiAgICAgICAgaWYgKCFJU19JRSkgbm9kZS50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICBwYXJ0c1tlcXVhbFsxXV0gPSBbY29tcGlsZUluZGV4LCByZXNvbHZlVmFsdWVdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIEFycmF5LmZyb20obm9kZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXR0ci52YWx1ZS50cmltKCk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBJU19JRSA/IGF0dHIubmFtZS5yZXBsYWNlKEFUVFJfUFJFRklYLCAnJykgOiBhdHRyLm5hbWU7XG4gICAgICAgIGNvbnN0IGVxdWFsID0gdmFsdWUubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMKTtcbiAgICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gZ2V0UHJvcGVydHlOYW1lKHJhd1BhcnRzW2VxdWFsWzFdXSk7XG4gICAgICAgICAgcGFydHNbZXF1YWxbMV1dID0gW2NvbXBpbGVJbmRleCwgcmVzb2x2ZVByb3BlcnR5KG5hbWUsIHByb3BlcnR5TmFtZSwgaXNTVkcpXTtcbiAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyLm5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSB2YWx1ZS5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfQUxMKTtcbiAgICAgICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAgICAgY29uc3QgcGFydGlhbE5hbWUgPSBgYXR0cl9fJHtuYW1lfWA7XG5cbiAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocGxhY2Vob2xkZXIsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IFssIGlkXSA9IHBsYWNlaG9sZGVyLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgICAgICAgIHBhcnRzW2lkXSA9IFtjb21waWxlSW5kZXgsIChob3N0LCB0YXJnZXQsIGF0dHJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHt9KTtcbiAgICAgICAgICAgICAgICBkYXRhW3BhcnRpYWxOYW1lXSA9IChkYXRhW3BhcnRpYWxOYW1lXSB8fCB2YWx1ZSkucmVwbGFjZShwbGFjZWhvbGRlciwgYXR0clZhbHVlID09IG51bGwgPyAnJyA6IGF0dHJWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoKHJlc3VsdHMubGVuZ3RoID09PSAxKSB8fCAoaW5kZXggKyAxID09PSByZXN1bHRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUobmFtZSwgZGF0YVtwYXJ0aWFsTmFtZV0pO1xuICAgICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBhdHRyLnZhbHVlID0gJyc7XG5cbiAgICAgICAgICAgIGlmIChJU19JRSAmJiBuYW1lICE9PSBhdHRyLm5hbWUpIHtcbiAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29tcGlsZUluZGV4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gKGhvc3QsIHRhcmdldCwgYXJncykgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHsgdHlwZTogJ2Z1bmN0aW9uJyB9KTtcblxuICAgIGlmICh0ZW1wbGF0ZSAhPT0gZGF0YS50ZW1wbGF0ZSkge1xuICAgICAgaWYgKGRhdGEudGVtcGxhdGUpIHJlbW92ZVRlbXBsYXRlKHRhcmdldCk7XG5cbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuaW1wb3J0Tm9kZShhcHBseVNoYWR5Q1NTKHRlbXBsYXRlLCBob3N0LnRhZ05hbWUpLmNvbnRlbnQsIHRydWUpO1xuXG4gICAgICBjb25zdCByZW5kZXJXYWxrZXIgPSBjcmVhdGVXYWxrZXIoZnJhZ21lbnQpO1xuICAgICAgY29uc3QgY2xvbmVkUGFydHMgPSBwYXJ0cy5zbGljZSgwKTtcblxuICAgICAgbGV0IHJlbmRlckluZGV4ID0gMDtcbiAgICAgIGxldCBjdXJyZW50UGFydCA9IGNsb25lZFBhcnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNvbnN0IG1hcmtlcnMgPSBbXTtcblxuICAgICAgT2JqZWN0LmFzc2lnbihkYXRhLCB7IHRlbXBsYXRlLCBtYXJrZXJzIH0pO1xuXG4gICAgICB3aGlsZSAocmVuZGVyV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHJlbmRlcldhbGtlci5jdXJyZW50Tm9kZTtcblxuICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICBpZiAoUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMLnRlc3Qobm9kZS50ZXh0Q29udGVudCkpIHtcbiAgICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgICB9IGVsc2UgaWYgKElTX0lFKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKEFUVFJfUkVHRVhQLCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgICBpZiAobm9kZS50YWdOYW1lLmluZGV4T2YoJy0nKSA+IC0xICYmICFjdXN0b21FbGVtZW50cy5nZXQobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgW2h0bWxdIE1pc3NpbmcgJyR7c3RyaW5naWZ5RWxlbWVudChub2RlKX0nIGVsZW1lbnQgZGVmaW5pdGlvbiBpbiAnJHtzdHJpbmdpZnlFbGVtZW50KGhvc3QpfSdgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoY3VycmVudFBhcnQgJiYgY3VycmVudFBhcnRbMF0gPT09IHJlbmRlckluZGV4KSB7XG4gICAgICAgICAgbWFya2Vycy5wdXNoKFtub2RlLCBjdXJyZW50UGFydFsxXV0pO1xuICAgICAgICAgIGN1cnJlbnRQYXJ0ID0gY2xvbmVkUGFydHMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbmRlckluZGV4ICs9IDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNoaWxkTGlzdCA9IEFycmF5LmZyb20oZnJhZ21lbnQuY2hpbGROb2Rlcyk7XG5cbiAgICAgIGRhdGEuc3RhcnROb2RlID0gY2hpbGRMaXN0WzBdO1xuICAgICAgZGF0YS5lbmROb2RlID0gY2hpbGRMaXN0W2NoaWxkTGlzdC5sZW5ndGggLSAxXTtcblxuICAgICAgaWYgKHRhcmdldC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgbGV0IHByZXZpb3VzQ2hpbGQgPSB0YXJnZXQ7XG4gICAgICAgIGNoaWxkTGlzdC5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgIHRhcmdldC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgcHJldmlvdXNDaGlsZC5uZXh0U2libGluZyk7XG4gICAgICAgICAgcHJldmlvdXNDaGlsZCA9IGNoaWxkO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldC5hcHBlbmRDaGlsZChmcmFnbWVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGF0YS5tYXJrZXJzLmZvckVhY2goKFtub2RlLCBmbl0sIGluZGV4KSA9PiB7XG4gICAgICBmbihob3N0LCBub2RlLCBhcmdzW2luZGV4XSwgZGF0YSk7XG4gICAgfSk7XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL3RlbXBsYXRlLmpzIl0sIm5hbWVzIjpbImRhdGFNYXAiLCJnZXRUZW1wbGF0ZUVuZCIsIm5vZGUiLCJkYXRhIiwiZ2V0IiwiZW5kTm9kZSIsInJlbW92ZVRlbXBsYXRlIiwidGFyZ2V0Iiwic3RhcnROb2RlIiwibGFzdE5leHRTaWJsaW5nIiwibmV4dFNpYmxpbmciLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJyZXNvbHZlVmFsdWUiLCJob3N0IiwidmFsdWUiLCJ0eXBlIiwiQXJyYXkiLCJpc0FycmF5Iiwic2V0IiwidGV4dENvbnRlbnQiLCJyZXNvbHZlQXJyYXkiLCJtb3ZlUGxhY2Vob2xkZXIiLCJwcmV2aW91c1NpYmxpbmciLCJpbnNlcnRCZWZvcmUiLCJwcmV2Tm9kZSIsIm5leHROb2RlIiwibGFzdEluZGV4IiwibGVuZ3RoIiwiYXJyYXlFbnRyaWVzIiwiaW5kZXhlZFZhbHVlIiwibWFwIiwiaXRlbSIsImluZGV4IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaWQiLCJpZHMiLCJTZXQiLCJmb3JFYWNoIiwiYWRkIiwiZW50cnkiLCJwbGFjZWhvbGRlciIsImhhcyIsImF2YWlsYWJsZSIsInJlZHVjZSIsImVudHJpZXMiLCJmaW5kIiwiZW50cnlJdGVtIiwiZG9jdW1lbnQiLCJjcmVhdGVUZXh0Tm9kZSIsInB1c2giLCJyZXNvbHZlUHJvcGVydHkiLCJhdHRyTmFtZSIsInByb3BlcnR5TmFtZSIsImlzU1ZHIiwic3Vic3RyIiwiZm5NYXAiLCJXZWFrTWFwIiwiZXZlbnROYW1lIiwiYWRkRXZlbnRMaXN0ZW5lciIsImZuIiwiYXJncyIsInJlc29sdmVTdHlsZUxpc3QiLCJyZXNvbHZlQ2xhc3NMaXN0IiwiU1ZHRWxlbWVudCIsInVuZGVmaW5lZCIsInJlbW92ZUF0dHJpYnV0ZSIsImF0dHJWYWx1ZSIsIlN0cmluZyIsImdldEF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZSIsIlRJTUVTVEFNUCIsIkRhdGUiLCJub3ciLCJnZXRQbGFjZWhvbGRlciIsIlBMQUNFSE9MREVSX1JFR0VYUF9URVhUIiwiUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMIiwiUmVnRXhwIiwiUExBQ0VIT0xERVJfUkVHRVhQX0FMTCIsIkFUVFJfUFJFRklYIiwiQVRUUl9SRUdFWFAiLCJwcmVwYXJlZFRlbXBsYXRlcyIsImFwcGx5U2hhZHlDU1MiLCJ0ZW1wbGF0ZSIsInRhZ05hbWUiLCJzaGFkeSIsIk1hcCIsImNsb25lIiwiY3JlYXRlRWxlbWVudCIsImNvbnRlbnQiLCJhcHBlbmRDaGlsZCIsImNsb25lTm9kZSIsInN0eWxlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmcm9tIiwic3R5bGUiLCJjb3VudCIsImNoaWxkTm9kZXMiLCJpIiwicHJlcGFyZVRlbXBsYXRlIiwidG9Mb3dlckNhc2UiLCJjcmVhdGVJZCIsInBhcnRzIiwiam9pbiIsImNyZWF0ZVNpZ25hdHVyZSIsInNpZ25hdHVyZSIsImFjYyIsInBhcnQiLCJzbGljZSIsIm1hdGNoIiwiSVNfSUUiLCJyZXBsYWNlIiwiZ2V0UHJvcGVydHlOYW1lIiwic3RyaW5nIiwic3BsaXQiLCJwb3AiLCJyZXBsYWNlQ29tbWVudHMiLCJmcmFnbWVudCIsIml0ZXJhdG9yIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiTm9kZUZpbHRlciIsIlNIT1dfQ09NTUVOVCIsInRlc3QiLCJjcmVhdGVJbnRlcm5hbFdhbGtlciIsImNvbnRleHQiLCJjdXJyZW50Tm9kZSIsImNyZWF0ZUV4dGVybmFsV2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIlNIT1dfVEVYVCIsImNyZWF0ZVdhbGtlciIsIndpbmRvdyIsIlNoYWR5RE9NIiwiaW5Vc2UiLCJjb250YWluZXIiLCJjb21waWxlIiwicmF3UGFydHMiLCJpbm5lckhUTUwiLCJjaGlsZHJlbiIsInN2Z1Jvb3QiLCJmaXJzdENoaWxkIiwiY29tcGlsZVdhbGtlciIsImNvbXBpbGVJbmRleCIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsInRleHQiLCJyZXN1bHRzIiwiYmVmb3JlIiwibmV4dCIsImVxdWFsIiwiRUxFTUVOVF9OT0RFIiwiYXR0cmlidXRlcyIsImF0dHIiLCJ0cmltIiwibmFtZSIsInBhcnRpYWxOYW1lIiwiaW1wb3J0Tm9kZSIsInJlbmRlcldhbGtlciIsImNsb25lZFBhcnRzIiwicmVuZGVySW5kZXgiLCJjdXJyZW50UGFydCIsInNoaWZ0IiwibWFya2VycyIsImFzc2lnbiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImluZGV4T2YiLCJjdXN0b21FbGVtZW50cyIsIkVycm9yIiwiY2hpbGRMaXN0IiwicHJldmlvdXNDaGlsZCIsImNoaWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFJQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUcsdUJBQWhCOztBQUVBLFNBQVNDLGNBQVQsQ0FBd0JDLElBQXhCLEVBQThCO0FBQzVCLE1BQUlDLElBQUosQ0FENEIsQ0FFNUI7O0FBQ0EsU0FBT0QsSUFBSSxLQUFLQyxJQUFJLEdBQUdILE9BQU8sQ0FBQ0ksR0FBUixDQUFZRixJQUFaLENBQVosQ0FBSixJQUFzQ0MsSUFBSSxDQUFDRSxPQUFsRCxFQUEyRDtBQUN6REgsSUFBQUEsSUFBSSxHQUFHQyxJQUFJLENBQUNFLE9BQVo7QUFDRDs7QUFFRCxTQUFPSCxJQUFQO0FBQ0Q7O0FBRUQsU0FBU0ksY0FBVCxDQUF3QkMsTUFBeEIsRUFBZ0M7QUFDOUIsTUFBTUosSUFBSSxHQUFHSCxPQUFPLENBQUNJLEdBQVIsQ0FBWUcsTUFBWixDQUFiO0FBQ0EsTUFBTUMsU0FBUyxHQUFHTCxJQUFJLENBQUNLLFNBQXZCOztBQUVBLE1BQUlBLFNBQUosRUFBZTtBQUNiLFFBQU1ILE9BQU8sR0FBR0osY0FBYyxDQUFDRSxJQUFJLENBQUNFLE9BQU4sQ0FBOUI7QUFFQSxRQUFJSCxJQUFJLEdBQUdNLFNBQVg7QUFDQSxRQUFNQyxlQUFlLEdBQUdKLE9BQU8sQ0FB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YSxDQUFDckssV0FBcEQ7QUFDQXFLLFVBQUFBLGFBQWEsR0FBR0MsS0FBaEI7QUFDRCxTQUhEO0FBSUQsT0FORCxNQU1PO0FBQ0x6SyxRQUFBQSxNQUFNLENBQUNzRixXQUFQLENBQW1CMkIsUUFBbkI7QUFDRDtBQUNGOztBQUVEckgsSUFBQUEsSUFBSSxDQUFDbUssT0FBTCxDQUFhN0gsT0FBYixDQUFxQixpQkFBYVIsS0FBYixFQUF1QjtBQUFBO0FBQUEsVUFBckIvQixJQUFxQjtBQUFBLFVBQWY2RCxFQUFlOztBQUMxQ0EsTUFBQUEsRUFBRSxDQUFDakQsSUFBRCxFQUFPWixJQUFQLEVBQWE4RCxJQUFJLENBQUMvQixLQUFELENBQWpCLEVBQTBCOUIsSUFBMUIsQ0FBRjtBQUNELEtBRkQ7QUFHRCxHQTVERDtBQTZERCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZU1hcCwgc2hhZHlDU1MsIHN0cmluZ2lmeUVsZW1lbnQsIElTX0lFLFxufSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCByZXNvbHZlU3R5bGVMaXN0IGZyb20gJy4vc3R5bGUnO1xuaW1wb3J0IHJlc29sdmVDbGFzc0xpc3QgZnJvbSAnLi9jbGFzc0xpc3QnO1xuXG5jb25zdCBkYXRhTWFwID0gY3JlYXRlTWFwKCk7XG5cbmZ1bmN0aW9uIGdldFRlbXBsYXRlRW5kKG5vZGUpIHtcbiAgbGV0IGRhdGE7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICB3aGlsZSAobm9kZSAmJiAoZGF0YSA9IGRhdGFNYXAuZ2V0KG5vZGUpKSAmJiBkYXRhLmVuZE5vZGUpIHtcbiAgICBub2RlID0gZGF0YS5lbmROb2RlO1xuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVRlbXBsYXRlKHRhcmdldCkge1xuICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0KTtcbiAgY29uc3Qgc3RhcnROb2RlID0gZGF0YS5zdGFydE5vZGU7XG5cbiAgaWYgKHN0YXJ0Tm9kZSkge1xuICAgIGNvbnN0IGVuZE5vZGUgPSBnZXRUZW1wbGF0ZUVuZChkYXRhLmVuZE5vZGUpO1xuXG4gICAgbGV0IG5vZGUgPSBzdGFydE5vZGU7XG4gICAgY29uc3QgbGFzdE5leHRTaWJsaW5nID0gZW5kTm9kZS5uZXh0U2libGluZztcblxuICAgIHdoaWxlIChub2RlKSB7XG4gICAgICBjb25zdCBuZXh0U2libGluZyA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgICBub2RlID0gbmV4dFNpYmxpbmcgIT09IGxhc3ROZXh0U2libGluZyAmJiBuZXh0U2libGluZztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVZhbHVlKGhvc3QsIHRhcmdldCwgdmFsdWUpIHtcbiAgY29uc3QgdHlwZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gJ2FycmF5JyA6IHR5cGVvZiB2YWx1ZTtcbiAgbGV0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQsIHt9KTtcblxuICBpZiAoZGF0YS50eXBlICE9PSB0eXBlKSB7XG4gICAgcmVtb3ZlVGVtcGxhdGUodGFyZ2V0KTtcbiAgICBkYXRhID0gZGF0YU1hcC5zZXQodGFyZ2V0LCB7IHR5cGUgfSk7XG5cbiAgICBpZiAodGFyZ2V0LnRleHRDb250ZW50ICE9PSAnJykge1xuICAgICAgdGFyZ2V0LnRleHRDb250ZW50ID0gJyc7XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgdmFsdWUoaG9zdCwgdGFyZ2V0KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgcmVzb2x2ZUFycmF5KGhvc3QsIHRhcmdldCwgdmFsdWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh2YWx1ZSAhPT0gZGF0YS52YWx1ZSkge1xuICAgICAgICBkYXRhLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRhcmdldC50ZXh0Q29udGVudCA9IHR5cGUgPT09ICdudW1iZXInIHx8IHZhbHVlID8gdmFsdWUgOiAnJztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtb3ZlUGxhY2Vob2xkZXIodGFyZ2V0LCBwcmV2aW91c1NpYmxpbmcpIHtcbiAgY29uc3QgZGF0YSA9IGRhdGFNYXAuZ2V0KHRhcmdldCk7XG4gIGNvbnN0IHN0YXJ0Tm9kZSA9IGRhdGEuc3RhcnROb2RlO1xuICBjb25zdCBlbmROb2RlID0gZ2V0VGVtcGxhdGVFbmQoZGF0YS5lbmROb2RlKTtcblxuICBwcmV2aW91c1NpYmxpbmcucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGFyZ2V0LCBwcmV2aW91c1NpYmxpbmcubmV4dFNpYmxpbmcpO1xuXG4gIGxldCBwcmV2Tm9kZSA9IHRhcmdldDtcbiAgbGV0IG5vZGUgPSBzdGFydE5vZGU7XG4gIHdoaWxlIChub2RlKSB7XG4gICAgY29uc3QgbmV4dE5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgIHByZXZOb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsIHByZXZOb2RlLm5leHRTaWJsaW5nKTtcbiAgICBwcmV2Tm9kZSA9IG5vZGU7XG4gICAgbm9kZSA9IG5leHROb2RlICE9PSBlbmROb2RlLm5leHRTaWJsaW5nICYmIG5leHROb2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVBcnJheShob3N0LCB0YXJnZXQsIHZhbHVlKSB7XG4gIGxldCBwcmV2aW91c1NpYmxpbmcgPSB0YXJnZXQ7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHZhbHVlLmxlbmd0aCAtIDE7XG4gIGNvbnN0IGRhdGEgPSBkYXRhTWFwLmdldCh0YXJnZXQpO1xuICBjb25zdCB7IGFycmF5RW50cmllcyB9ID0gZGF0YTtcblxuICBjb25zdCBpbmRleGVkVmFsdWUgPSB2YWx1ZS5tYXAoKGl0ZW0sIGluZGV4KSA9PiBbXG4gICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0ZW0sICdpZCcpID8gaXRlbS5pZCA6IGluZGV4LFxuICAgIGl0ZW0sXG4gIF0pO1xuXG4gIGlmIChhcnJheUVudHJpZXMpIHtcbiAgICBjb25zdCBpZHMgPSBuZXcgU2V0KCk7XG4gICAgaW5kZXhlZFZhbHVlLmZvckVhY2goKFtpZF0pID0+IGlkcy5hZGQoaWQpKTtcblxuICAgIGFycmF5RW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgeyBpZCwgcGxhY2Vob2xkZXIgfSA9IGVudHJ5O1xuICAgICAgaWYgKCFpZHMuaGFzKGlkKSkge1xuICAgICAgICByZW1vdmVUZW1wbGF0ZShwbGFjZWhvbGRlcik7XG4gICAgICAgIHBsYWNlaG9sZGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGxhY2Vob2xkZXIpO1xuICAgICAgICBlbnRyeS5hdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRhdGEuYXJyYXlFbnRyaWVzID0gaW5kZXhlZFZhbHVlLnJlZHVjZSgoZW50cmllcywgW2lkLCBpdGVtXSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBlbnRyeSA9IGFycmF5RW50cmllcyAmJiBhcnJheUVudHJpZXNcbiAgICAgIC5maW5kKGVudHJ5SXRlbSA9PiBlbnRyeUl0ZW0uYXZhaWxhYmxlICYmIGVudHJ5SXRlbS5pZCA9PT0gaWQpO1xuXG4gICAgbGV0IHBsYWNlaG9sZGVyO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgZW50cnkuYXZhaWxhYmxlID0gZmFsc2U7XG4gICAgICBwbGFjZWhvbGRlciA9IGVudHJ5LnBsYWNlaG9sZGVyO1xuXG4gICAgICBpZiAocGxhY2Vob2xkZXIucHJldmlvdXNTaWJsaW5nICE9PSBwcmV2aW91c1NpYmxpbmcpIHtcbiAgICAgICAgbW92ZVBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyLCBwcmV2aW91c1NpYmxpbmcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKTtcbiAgICAgIHByZXZpb3VzU2libGluZy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShwbGFjZWhvbGRlciwgcHJldmlvdXNTaWJsaW5nLm5leHRTaWJsaW5nKTtcbiAgICB9XG5cbiAgICByZXNvbHZlVmFsdWUoaG9zdCwgcGxhY2Vob2xkZXIsIGl0ZW0pO1xuXG4gICAgcHJldmlvdXNTaWJsaW5nID0gZ2V0VGVtcGxhdGVFbmQoZGF0YU1hcC5nZXQocGxhY2Vob2xkZXIpLmVuZE5vZGUgfHwgcGxhY2Vob2xkZXIpO1xuXG4gICAgaWYgKGluZGV4ID09PSAwKSBkYXRhLnN0YXJ0Tm9kZSA9IHBsYWNlaG9sZGVyO1xuICAgIGlmIChpbmRleCA9PT0gbGFzdEluZGV4KSBkYXRhLmVuZE5vZGUgPSBwcmV2aW91c1NpYmxpbmc7XG5cbiAgICBlbnRyaWVzLnB1c2goeyBhdmFpbGFibGU6IHRydWUsIGlkLCBwbGFjZWhvbGRlciB9KTtcblxuICAgIHJldHVybiBlbnRyaWVzO1xuICB9LCBbXSk7XG5cbiAgaWYgKGFycmF5RW50cmllcykge1xuICAgIGFycmF5RW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgeyBhdmFpbGFibGUsIHBsYWNlaG9sZGVyIH0gPSBlbnRyeTtcbiAgICAgIGlmIChhdmFpbGFibGUpIHtcbiAgICAgICAgcmVtb3ZlVGVtcGxhdGUocGxhY2Vob2xkZXIpO1xuICAgICAgICBwbGFjZWhvbGRlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHBsYWNlaG9sZGVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlUHJvcGVydHkoYXR0ck5hbWUsIHByb3BlcnR5TmFtZSwgaXNTVkcpIHtcbiAgaWYgKHByb3BlcnR5TmFtZS5zdWJzdHIoMCwgMikgPT09ICdvbicpIHtcbiAgICBjb25zdCBmbk1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgY29uc3QgZXZlbnROYW1lID0gcHJvcGVydHlOYW1lLnN1YnN0cigyKTtcblxuICAgIHJldHVybiAoaG9zdCwgdGFyZ2V0LCB2YWx1ZSkgPT4ge1xuICAgICAgaWYgKCFmbk1hcC5oYXModGFyZ2V0KSkge1xuICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm4gPSBmbk1hcC5nZXQodGFyZ2V0KTtcbiAgICAgICAgICBpZiAoZm4pIGZuKGhvc3QsIC4uLmFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZm5NYXAuc2V0KHRhcmdldCwgdmFsdWUpO1xuICAgIH07XG4gIH1cblxuICBzd2l0Y2ggKGF0dHJOYW1lKSB7XG4gICAgY2FzZSAnc3R5bGUnOiByZXR1cm4gcmVzb2x2ZVN0eWxlTGlzdDtcbiAgICBjYXNlICdjbGFzcyc6IHJldHVybiByZXNvbHZlQ2xhc3NMaXN0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKGhvc3QsIHRhcmdldCwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFpc1NWRyAmJiAhKHRhcmdldCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQpICYmIChwcm9wZXJ0eU5hbWUgaW4gdGFyZ2V0KSkge1xuICAgICAgICAgIGlmICh0YXJnZXRbcHJvcGVydHlOYW1lXSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRhcmdldFtwcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgdGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZShhdHRyTmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYXR0clZhbHVlID0gdmFsdWUgPT09IHRydWUgPyAnJyA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgaWYgKHRhcmdldC5nZXRBdHRyaWJ1dGUoYXR0ck5hbWUpICE9PSBhdHRyVmFsdWUpIHtcbiAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICB9XG59XG5cbmNvbnN0IFRJTUVTVEFNUCA9IERhdGUubm93KCk7XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyID0gKGlkID0gMCkgPT4gYHt7aC0ke1RJTUVTVEFNUH0tJHtpZH19fWA7XG5cbmNvbnN0IFBMQUNFSE9MREVSX1JFR0VYUF9URVhUID0gZ2V0UGxhY2Vob2xkZXIoJyhcXFxcZCspJyk7XG5jb25zdCBQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwgPSBuZXcgUmVnRXhwKGBeJHtQTEFDRUhPTERFUl9SRUdFWFBfVEVYVH0kYCk7XG5jb25zdCBQTEFDRUhPTERFUl9SRUdFWFBfQUxMID0gbmV3IFJlZ0V4cChQTEFDRUhPTERFUl9SRUdFWFBfVEVYVCwgJ2cnKTtcblxuY29uc3QgQVRUUl9QUkVGSVggPSBgLS0ke1RJTUVTVEFNUH0tLWA7XG5jb25zdCBBVFRSX1JFR0VYUCA9IG5ldyBSZWdFeHAoQVRUUl9QUkVGSVgsICdnJyk7XG5cbmNvbnN0IHByZXBhcmVkVGVtcGxhdGVzID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gYXBwbHlTaGFkeUNTUyh0ZW1wbGF0ZSwgdGFnTmFtZSkge1xuICBpZiAoIXRhZ05hbWUpIHJldHVybiB0ZW1wbGF0ZTtcblxuICByZXR1cm4gc2hhZHlDU1MoKHNoYWR5KSA9PiB7XG4gICAgbGV0IG1hcCA9IHByZXBhcmVkVGVtcGxhdGVzLmdldCh0ZW1wbGF0ZSk7XG4gICAgaWYgKCFtYXApIHtcbiAgICAgIG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgIHByZXBhcmVkVGVtcGxhdGVzLnNldCh0ZW1wbGF0ZSwgbWFwKTtcbiAgICB9XG5cbiAgICBsZXQgY2xvbmUgPSBtYXAuZ2V0KHRhZ05hbWUpO1xuXG4gICAgaWYgKCFjbG9uZSkge1xuICAgICAgY2xvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICAgICAgY2xvbmUuY29udGVudC5hcHBlbmRDaGlsZCh0ZW1wbGF0ZS5jb250ZW50LmNsb25lTm9kZSh0cnVlKSk7XG5cbiAgICAgIG1hcC5zZXQodGFnTmFtZSwgY2xvbmUpO1xuXG4gICAgICBjb25zdCBzdHlsZXMgPSBjbG9uZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJyk7XG5cbiAgICAgIEFycmF5LmZyb20oc3R5bGVzKS5mb3JFYWNoKChzdHlsZSkgPT4ge1xuICAgICAgICBjb25zdCBjb3VudCA9IHN0eWxlLmNoaWxkTm9kZXMubGVuZ3RoICsgMTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSArPSAxKSB7XG4gICAgICAgICAgc3R5bGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZ2V0UGxhY2Vob2xkZXIoKSksIHN0eWxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHNoYWR5LnByZXBhcmVUZW1wbGF0ZShjbG9uZSwgdGFnTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lO1xuICB9LCB0ZW1wbGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJZChwYXJ0cywgaXNTVkcpIHtcbiAgcmV0dXJuIGAke2lzU1ZHID8gJ3N2ZzonIDogJyd9JHtwYXJ0cy5qb2luKGdldFBsYWNlaG9sZGVyKCkpfWA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNpZ25hdHVyZShwYXJ0cykge1xuICBjb25zdCBzaWduYXR1cmUgPSBwYXJ0cy5yZWR1Y2UoKGFjYywgcGFydCwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybiBwYXJ0O1xuICAgIH1cbiAgICBpZiAocGFydHMuc2xpY2UoaW5kZXgpLmpvaW4oJycpLm1hdGNoKC9cXHMqPFxcL1xccyoodGFibGV8dHJ8dGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3JvdXApPi8pKSB7XG4gICAgICByZXR1cm4gYCR7YWNjfTwhLS0ke2dldFBsYWNlaG9sZGVyKGluZGV4IC0gMSl9LS0+JHtwYXJ0fWA7XG4gICAgfVxuICAgIHJldHVybiBhY2MgKyBnZXRQbGFjZWhvbGRlcihpbmRleCAtIDEpICsgcGFydDtcbiAgfSwgJycpO1xuXG4gIGlmIChJU19JRSkge1xuICAgIHJldHVybiBzaWduYXR1cmUucmVwbGFjZShcbiAgICAgIC9zdHlsZVxccyo9XFxzKihbXCJdW15cIl0rW1wiXXxbJ11bXiddK1snXXxbXlxcc1wiJzw+L10rKS9nLFxuICAgICAgbWF0Y2ggPT4gYCR7QVRUUl9QUkVGSVh9JHttYXRjaH1gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gc2lnbmF0dXJlO1xufVxuXG5mdW5jdGlvbiBnZXRQcm9wZXJ0eU5hbWUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxzKj1cXHMqWydcIl0qJC9nLCAnJykuc3BsaXQoJyAnKS5wb3AoKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUNvbW1lbnRzKGZyYWdtZW50KSB7XG4gIGNvbnN0IGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZyYWdtZW50LCBOb2RlRmlsdGVyLlNIT1dfQ09NTUVOVCwgbnVsbCwgZmFsc2UpO1xuICBsZXQgbm9kZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbmQtYXNzaWduXG4gIHdoaWxlIChub2RlID0gaXRlcmF0b3IubmV4dE5vZGUoKSkge1xuICAgIGlmIChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwudGVzdChub2RlLnRleHRDb250ZW50KSkge1xuICAgICAgbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShub2RlLnRleHRDb250ZW50KSwgbm9kZSk7XG4gICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnRlcm5hbFdhbGtlcihjb250ZXh0KSB7XG4gIGxldCBub2RlO1xuXG4gIHJldHVybiB7XG4gICAgZ2V0IGN1cnJlbnROb2RlKCkgeyByZXR1cm4gbm9kZTsgfSxcbiAgICBuZXh0Tm9kZSgpIHtcbiAgICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbm9kZSA9IGNvbnRleHQuY2hpbGROb2Rlc1swXTtcbiAgICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZE5vZGVzWzBdO1xuICAgICAgfSBlbHNlIGlmIChub2RlLm5leHRTaWJsaW5nKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZS5uZXh0U2libGluZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICEhbm9kZTtcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFeHRlcm5hbFdhbGtlcihjb250ZXh0KSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgIGNvbnRleHQsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19URVhULFxuICAgIG51bGwsXG4gICAgZmFsc2UsXG4gICk7XG59XG5cbmNvbnN0IGNyZWF0ZVdhbGtlciA9IHR5cGVvZiB3aW5kb3cuU2hhZHlET00gPT09ICdvYmplY3QnICYmIHdpbmRvdy5TaGFkeURPTS5pblVzZSA/IGNyZWF0ZUludGVybmFsV2Fsa2VyIDogY3JlYXRlRXh0ZXJuYWxXYWxrZXI7XG5cbmNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGUocmF3UGFydHMsIGlzU1ZHKSB7XG4gIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgY29uc3QgcGFydHMgPSBbXTtcblxuICBsZXQgc2lnbmF0dXJlID0gY3JlYXRlU2lnbmF0dXJlKHJhd1BhcnRzKTtcbiAgaWYgKGlzU1ZHKSBzaWduYXR1cmUgPSBgPHN2Zz4ke3NpZ25hdHVyZX08L3N2Zz5gO1xuXG4gIGlmIChJU19JRSkge1xuICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IHNpZ25hdHVyZTtcbiAgfSBlbHNlIHtcbiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gYDx0ZW1wbGF0ZT4ke3NpZ25hdHVyZX08L3RlbXBsYXRlPmA7XG4gICAgdGVtcGxhdGUuY29udGVudC5hcHBlbmRDaGlsZChjb250YWluZXIuY2hpbGRyZW5bMF0uY29udGVudCk7XG4gIH1cblxuICBpZiAoaXNTVkcpIHtcbiAgICBjb25zdCBzdmdSb290ID0gdGVtcGxhdGUuY29udGVudC5maXJzdENoaWxkO1xuICAgIHRlbXBsYXRlLmNvbnRlbnQucmVtb3ZlQ2hpbGQoc3ZnUm9vdCk7XG4gICAgQXJyYXkuZnJvbShzdmdSb290LmNoaWxkTm9kZXMpLmZvckVhY2gobm9kZSA9PiB0ZW1wbGF0ZS5jb250ZW50LmFwcGVuZENoaWxkKG5vZGUpKTtcbiAgfVxuXG4gIHJlcGxhY2VDb21tZW50cyh0ZW1wbGF0ZS5jb250ZW50KTtcblxuICBjb25zdCBjb21waWxlV2Fsa2VyID0gY3JlYXRlV2Fsa2VyKHRlbXBsYXRlLmNvbnRlbnQpO1xuICBsZXQgY29tcGlsZUluZGV4ID0gMDtcblxuICB3aGlsZSAoY29tcGlsZVdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbXBpbGVXYWxrZXIuY3VycmVudE5vZGU7XG5cbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIGNvbnN0IHRleHQgPSBub2RlLnRleHRDb250ZW50O1xuXG4gICAgICBpZiAoIXRleHQubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0VRVUFMKSkge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gdGV4dC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfQUxMKTtcbiAgICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgICBsZXQgY3VycmVudE5vZGUgPSBub2RlO1xuICAgICAgICAgIHJlc3VsdHNcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgcGxhY2Vob2xkZXIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgW2JlZm9yZSwgbmV4dF0gPSBhY2MucG9wKCkuc3BsaXQocGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgICBpZiAoYmVmb3JlKSBhY2MucHVzaChiZWZvcmUpO1xuICAgICAgICAgICAgICBhY2MucHVzaChwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgIGlmIChuZXh0KSBhY2MucHVzaChuZXh0KTtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFt0ZXh0XSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChwYXJ0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZS50ZXh0Q29udGVudCA9IHBhcnQ7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5wYXJlbnROb2RlXG4gICAgICAgICAgICAgICAgICAuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHBhcnQpLCBjdXJyZW50Tm9kZS5uZXh0U2libGluZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVxdWFsID0gbm9kZS50ZXh0Q29udGVudC5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgaWYgKGVxdWFsKSB7XG4gICAgICAgIGlmICghSVNfSUUpIG5vZGUudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgcGFydHNbZXF1YWxbMV1dID0gW2NvbXBpbGVJbmRleCwgcmVzb2x2ZVZhbHVlXTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICBBcnJheS5mcm9tKG5vZGUuYXR0cmlidXRlcykuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHIudmFsdWUudHJpbSgpO1xuICAgICAgICBjb25zdCBuYW1lID0gSVNfSUUgPyBhdHRyLm5hbWUucmVwbGFjZShBVFRSX1BSRUZJWCwgJycpIDogYXR0ci5uYW1lO1xuICAgICAgICBjb25zdCBlcXVhbCA9IHZhbHVlLm1hdGNoKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTCk7XG4gICAgICAgIGlmIChlcXVhbCkge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGdldFByb3BlcnR5TmFtZShyYXdQYXJ0c1tlcXVhbFsxXV0pO1xuICAgICAgICAgIHBhcnRzW2VxdWFsWzFdXSA9IFtjb21waWxlSW5kZXgsIHJlc29sdmVQcm9wZXJ0eShuYW1lLCBwcm9wZXJ0eU5hbWUsIGlzU1ZHKV07XG4gICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZXN1bHRzID0gdmFsdWUubWF0Y2goUExBQ0VIT0xERVJfUkVHRVhQX0FMTCk7XG4gICAgICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRpYWxOYW1lID0gYGF0dHJfXyR7bmFtZX1gO1xuXG4gICAgICAgICAgICByZXN1bHRzLmZvckVhY2goKHBsYWNlaG9sZGVyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBbLCBpZF0gPSBwbGFjZWhvbGRlci5tYXRjaChQTEFDRUhPTERFUl9SRUdFWFBfRVFVQUwpO1xuICAgICAgICAgICAgICBwYXJ0c1tpZF0gPSBbY29tcGlsZUluZGV4LCAoaG9zdCwgdGFyZ2V0LCBhdHRyVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0LCB7fSk7XG4gICAgICAgICAgICAgICAgZGF0YVtwYXJ0aWFsTmFtZV0gPSAoZGF0YVtwYXJ0aWFsTmFtZV0gfHwgdmFsdWUpLnJlcGxhY2UocGxhY2Vob2xkZXIsIGF0dHJWYWx1ZSA9PSBudWxsID8gJycgOiBhdHRyVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKChyZXN1bHRzLmxlbmd0aCA9PT0gMSkgfHwgKGluZGV4ICsgMSA9PT0gcmVzdWx0cy5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgICB0YXJnZXQuc2V0QXR0cmlidXRlKG5hbWUsIGRhdGFbcGFydGlhbE5hbWVdKTtcbiAgICAgICAgICAgICAgICAgIGRhdGFbcGFydGlhbE5hbWVdID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfV07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXR0ci52YWx1ZSA9ICcnO1xuXG4gICAgICAgICAgICBpZiAoSVNfSUUgJiYgbmFtZSAhPT0gYXR0ci5uYW1lKSB7XG4gICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKGF0dHIubmFtZSk7XG4gICAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKG5hbWUsICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbXBpbGVJbmRleCArPSAxO1xuICB9XG5cbiAgcmV0dXJuIChob3N0LCB0YXJnZXQsIGFyZ3MpID0+IHtcbiAgICBjb25zdCBkYXRhID0gZGF0YU1hcC5nZXQodGFyZ2V0LCB7IHR5cGU6ICdmdW5jdGlvbicgfSk7XG5cbiAgICBpZiAodGVtcGxhdGUgIT09IGRhdGEudGVtcGxhdGUpIHtcbiAgICAgIGlmIChkYXRhLnRlbXBsYXRlKSByZW1vdmVUZW1wbGF0ZSh0YXJnZXQpO1xuXG4gICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmltcG9ydE5vZGUoYXBwbHlTaGFkeUNTUyh0ZW1wbGF0ZSwgaG9zdC50YWdOYW1lKS5jb250ZW50LCB0cnVlKTtcblxuICAgICAgY29uc3QgcmVuZGVyV2Fsa2VyID0gY3JlYXRlV2Fsa2VyKGZyYWdtZW50KTtcbiAgICAgIGNvbnN0IGNsb25lZFBhcnRzID0gcGFydHMuc2xpY2UoMCk7XG5cbiAgICAgIGxldCByZW5kZXJJbmRleCA9IDA7XG4gICAgICBsZXQgY3VycmVudFBhcnQgPSBjbG9uZWRQYXJ0cy5zaGlmdCgpO1xuXG4gICAgICBjb25zdCBtYXJrZXJzID0gW107XG5cbiAgICAgIE9iamVjdC5hc3NpZ24oZGF0YSwgeyB0ZW1wbGF0ZSwgbWFya2VycyB9KTtcblxuICAgICAgd2hpbGUgKHJlbmRlcldhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZW5kZXJXYWxrZXIuY3VycmVudE5vZGU7XG5cbiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgICAgaWYgKFBMQUNFSE9MREVSX1JFR0VYUF9FUVVBTC50ZXN0KG5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICAgICAgICBub2RlLnRleHRDb250ZW50ID0gJyc7XG4gICAgICAgICAgfSBlbHNlIGlmIChJU19JRSkge1xuICAgICAgICAgICAgbm9kZS50ZXh0Q29udGVudCA9IG5vZGUudGV4dENvbnRlbnQucmVwbGFjZShBVFRSX1JFR0VYUCwgJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgaWYgKG5vZGUudGFnTmFtZS5pbmRleE9mKCctJykgPiAtMSAmJiAhY3VzdG9tRWxlbWVudHMuZ2V0KG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYFtodG1sXSBNaXNzaW5nICcke3N0cmluZ2lmeUVsZW1lbnQobm9kZSl9JyBlbGVtZW50IGRlZmluaXRpb24gaW4gJyR7c3RyaW5naWZ5RWxlbWVudChob3N0KX0nYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKGN1cnJlbnRQYXJ0ICYmIGN1cnJlbnRQYXJ0WzBdID09PSByZW5kZXJJbmRleCkge1xuICAgICAgICAgIG1hcmtlcnMucHVzaChbbm9kZSwgY3VycmVudFBhcnRbMV1dKTtcbiAgICAgICAgICBjdXJyZW50UGFydCA9IGNsb25lZFBhcnRzLnNoaWZ0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZW5kZXJJbmRleCArPSAxO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaGlsZExpc3QgPSBBcnJheS5mcm9tKGZyYWdtZW50LmNoaWxkTm9kZXMpO1xuXG4gICAgICBkYXRhLnN0YXJ0Tm9kZSA9IGNoaWxkTGlzdFswXTtcbiAgICAgIGRhdGEuZW5kTm9kZSA9IGNoaWxkTGlzdFtjaGlsZExpc3QubGVuZ3RoIC0gMV07XG5cbiAgICAgIGlmICh0YXJnZXQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgIGxldCBwcmV2aW91c0NoaWxkID0gdGFyZ2V0O1xuICAgICAgICBjaGlsZExpc3QuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICB0YXJnZXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY2hpbGQsIHByZXZpb3VzQ2hpbGQubmV4dFNpYmxpbmcpO1xuICAgICAgICAgIHByZXZpb3VzQ2hpbGQgPSBjaGlsZDtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRhdGEubWFya2Vycy5mb3JFYWNoKChbbm9kZSwgZm5dLCBpbmRleCkgPT4ge1xuICAgICAgZm4oaG9zdCwgbm9kZSwgYXJnc1tpbmRleF0sIGRhdGEpO1xuICAgIH0pO1xuICB9O1xufVxuIl19

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,51 +6,33 @@ Object.defineProperty(exports, "__esModule", {

});
var _define = require('./define');
Object.defineProperty(exports, 'define', {
Object.defineProperty(exports, "define", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_define).default;
return _define.default;
}
});
var _property = require('./property');
Object.defineProperty(exports, 'property', {
Object.defineProperty(exports, "property", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_property).default;
return _property.default;
}
});
var _parent = require('./parent');
Object.defineProperty(exports, 'parent', {
Object.defineProperty(exports, "parent", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_parent).default;
return _parent.default;
}
});
var _children = require('./children');
Object.defineProperty(exports, 'children', {
Object.defineProperty(exports, "children", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_children).default;
return _children.default;
}
});
var _render = require('./render');
Object.defineProperty(exports, 'render', {
Object.defineProperty(exports, "render", {
enumerable: true,
get: function get() {
return _interopRequireDefault(_render).default;
return _render.default;
}
});
var _utils = require('./utils');
Object.defineProperty(exports, 'dispatch', {
Object.defineProperty(exports, "dispatch", {
enumerable: true,

@@ -61,6 +43,3 @@ get: function get() {

});
var _html = require('./html');
Object.defineProperty(exports, 'html', {
Object.defineProperty(exports, "html", {
enumerable: true,

@@ -71,3 +50,3 @@ get: function get() {

});
Object.defineProperty(exports, 'svg', {
Object.defineProperty(exports, "svg", {
enumerable: true,

@@ -79,3 +58,17 @@ get: function get() {

var _define = _interopRequireDefault(require("./define"));
var _property = _interopRequireDefault(require("./property"));
var _parent = _interopRequireDefault(require("./parent"));
var _children = _interopRequireDefault(require("./children"));
var _render = _interopRequireDefault(require("./render"));
var _utils = require("./utils");
var _html = require("./html");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiZGlzcGF0Y2giLCJodG1sIiwic3ZnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OzsyQ0FBU0EsTzs7Ozs7Ozs7OzZDQUNBQSxPOzs7Ozs7Ozs7MkNBQ0FBLE87Ozs7Ozs7Ozs2Q0FDQUEsTzs7Ozs7Ozs7OzJDQUNBQSxPOzs7Ozs7Ozs7a0JBRUFDLFE7Ozs7Ozs7OztpQkFFQUMsSTs7Ozs7O2lCQUFNQyxHIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBkZWZpbmUgfSBmcm9tICcuL2RlZmluZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHByb3BlcnR5IH0gZnJvbSAnLi9wcm9wZXJ0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhcmVudCB9IGZyb20gJy4vcGFyZW50JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY2hpbGRyZW4gfSBmcm9tICcuL2NoaWxkcmVuJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVuZGVyIH0gZnJvbSAnLi9yZW5kZXInO1xuXG5leHBvcnQgeyBkaXNwYXRjaCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgeyBodG1sLCBzdmcgfSBmcm9tICcuL2h0bWwnO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgZGVmaW5lIH0gZnJvbSAnLi9kZWZpbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwcm9wZXJ0eSB9IGZyb20gJy4vcHJvcGVydHknO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJlbnQgfSBmcm9tICcuL3BhcmVudCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNoaWxkcmVuIH0gZnJvbSAnLi9jaGlsZHJlbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbmRlciB9IGZyb20gJy4vcmVuZGVyJztcblxuZXhwb3J0IHsgZGlzcGF0Y2ggfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgaHRtbCwgc3ZnIH0gZnJvbSAnLi9odG1sJztcbiJdfQ==

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -8,3 +8,2 @@ Object.defineProperty(exports, "__esModule", {

var map = new WeakMap();
document.addEventListener('@invalidate', function (event) {

@@ -46,2 +45,3 @@ var set = map.get(event.composedPath()[0]);

var set = map.get(target);
if (!set) {

@@ -53,3 +53,2 @@ set = new Set();

set.add(invalidate);
return function () {

@@ -65,2 +64,2 @@ set.delete(invalidate);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJlbnQuanMiXSwibmFtZXMiOlsicGFyZW50IiwibWFwIiwiV2Vha01hcCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50Iiwic2V0IiwiZ2V0IiwiY29tcG9zZWRQYXRoIiwiZm9yRWFjaCIsImZuIiwid2FsayIsIm5vZGUiLCJwYXJlbnRFbGVtZW50IiwicGFyZW50Tm9kZSIsImhvc3QiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJoeWJyaWRzT3JGbiIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwidGFyZ2V0IiwiU2V0IiwiYWRkIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7OztrQkF3QndCQSxNO0FBeEJ4QixJQUFNQyxNQUFNLElBQUlDLE9BQUosRUFBWjs7QUFFQUMsU0FBU0MsZ0JBQVQsQ0FBMEIsYUFBMUIsRUFBeUMsVUFBQ0MsS0FBRCxFQUFXO0FBQ2xELE1BQU1DLE1BQU1MLElBQUlNLEdBQUosQ0FBUUYsTUFBTUcsWUFBTixHQUFxQixDQUFyQixDQUFSLENBQVo7QUFDQSxNQUFJRixHQUFKLEVBQVNBLElBQUlHLE9BQUosQ0FBWTtBQUFBLFdBQU1DLElBQU47QUFBQSxHQUFaO0FBQ1YsQ0FIRDs7QUFLQSxTQUFTQyxJQUFULENBQWNDLElBQWQsRUFBb0JGLEVBQXBCLEVBQXdCO0FBQ3RCLE1BQUlHLGdCQUFnQkQsS0FBS0MsYUFBTCxJQUFzQkQsS0FBS0UsVUFBTCxDQUFnQkMsSUFBMUQ7O0FBRUEsU0FBT0YsYUFBUCxFQUFzQjtBQUNwQixRQUFNRyxVQUFVSCxjQUFjSSxXQUFkLENBQTBCRCxPQUExQzs7QUFFQSxRQUFJQSxXQUFXTixHQUFHTSxPQUFILENBQWYsRUFBNEI7QUFDMUIsYUFBT0gsYUFBUDtBQUNEOztBQUVEQSxvQkFBZ0JBLGNBQWNBLGFBQWQsSUFDVkEsY0FBY0MsVUFBZCxJQUE0QkQsY0FBY0MsVUFBZCxDQUF5QkMsSUFEM0Q7QUFFRDs7QUFFRCxTQUFPRixpQkFBaUIsSUFBeEI7QUFDRDs7QUFFYyxTQUFTYixNQUFULENBQWdCa0IsV0FBaEIsRUFBNkI7QUFDMUMsTUFBTVIsS0FBSyxPQUFPUSxXQUFQLEtBQXVCLFVBQXZCLEdBQW9DQSxXQUFwQyxHQUFrRDtBQUFBLFdBQVdGLFlBQVlFLFdBQXZCO0FBQUEsR0FBN0Q7QUFDQSxTQUFPO0FBQ0xYLFNBQUs7QUFBQSxhQUFRSSxLQUFLSSxJQUFMLEVBQVdMLEVBQVgsQ0FBUjtBQUFBLEtBREE7QUFFTFMsV0FGSyxtQkFFR0osSUFGSCxFQUVTSyxHQUZULEVBRWNDLFVBRmQsRUFFMEI7QUFDN0IsVUFBTUMsU0FBU1AsS0FBS0ssR0FBTCxDQUFmOztBQUVBLFVBQUlFLE1BQUosRUFBWTtBQUNWLFlBQUloQixNQUFNTCxJQUFJTSxHQUFKLENBQVFlLE1BQVIsQ0FBVjtBQUNBLFlBQUksQ0FBQ2hCLEdBQUwsRUFBVTtBQUNSQSxnQkFBTSxJQUFJaUIsR0FBSixFQUFOO0FBQ0F0QixjQUFJSyxHQUFKLENBQVFnQixNQUFSLEVBQWdCaEIsR0FBaEI7QUFDRDs7QUFFREEsWUFBSWtCLEdBQUosQ0FBUUgsVUFBUjs7QUFFQSxlQUFPLFlBQU07QUFDWGYsY0FBSW1CLE1BQUosQ0FBV0osVUFBWDtBQUNBQTtBQUNELFNBSEQ7QUFJRDs7QUFFRCxhQUFPLEtBQVA7QUFDRDtBQXJCSSxHQUFQO0FBdUJEIiwiZmlsZSI6InBhcmVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0BpbnZhbGlkYXRlJywgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHNldCA9IG1hcC5nZXQoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0pO1xuICBpZiAoc2V0KSBzZXQuZm9yRWFjaChmbiA9PiBmbigpKTtcbn0pO1xuXG5mdW5jdGlvbiB3YWxrKG5vZGUsIGZuKSB7XG4gIGxldCBwYXJlbnRFbGVtZW50ID0gbm9kZS5wYXJlbnRFbGVtZW50IHx8IG5vZGUucGFyZW50Tm9kZS5ob3N0O1xuXG4gIHdoaWxlIChwYXJlbnRFbGVtZW50KSB7XG4gICAgY29uc3QgaHlicmlkcyA9IHBhcmVudEVsZW1lbnQuY29uc3RydWN0b3IuaHlicmlkcztcblxuICAgIGlmIChoeWJyaWRzICYmIGZuKGh5YnJpZHMpKSB7XG4gICAgICByZXR1cm4gcGFyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50XG4gICAgICB8fCAocGFyZW50RWxlbWVudC5wYXJlbnROb2RlICYmIHBhcmVudEVsZW1lbnQucGFyZW50Tm9kZS5ob3N0KTtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRFbGVtZW50IHx8IG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcmVudChoeWJyaWRzT3JGbikge1xuICBjb25zdCBmbiA9IHR5cGVvZiBoeWJyaWRzT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IGh5YnJpZHNPckZuIDogaHlicmlkcyA9PiBoeWJyaWRzID09PSBoeWJyaWRzT3JGbjtcbiAgcmV0dXJuIHtcbiAgICBnZXQ6IGhvc3QgPT4gd2Fsayhob3N0LCBmbiksXG4gICAgY29ubmVjdChob3N0LCBrZXksIGludmFsaWRhdGUpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGhvc3Rba2V5XTtcblxuICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICBsZXQgc2V0ID0gbWFwLmdldCh0YXJnZXQpO1xuICAgICAgICBpZiAoIXNldCkge1xuICAgICAgICAgIHNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICBtYXAuc2V0KHRhcmdldCwgc2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldC5hZGQoaW52YWxpZGF0ZSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBzZXQuZGVsZXRlKGludmFsaWRhdGUpO1xuICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJlbnQuanMiXSwibmFtZXMiOlsibWFwIiwiV2Vha01hcCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50Iiwic2V0IiwiZ2V0IiwiY29tcG9zZWRQYXRoIiwiZm9yRWFjaCIsImZuIiwid2FsayIsIm5vZGUiLCJwYXJlbnRFbGVtZW50IiwicGFyZW50Tm9kZSIsImhvc3QiLCJoeWJyaWRzIiwiY29uc3RydWN0b3IiLCJwYXJlbnQiLCJoeWJyaWRzT3JGbiIsImNvbm5lY3QiLCJrZXkiLCJpbnZhbGlkYXRlIiwidGFyZ2V0IiwiU2V0IiwiYWRkIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFNQSxHQUFHLEdBQUcsSUFBSUMsT0FBSixFQUFaO0FBRUFDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsYUFBMUIsRUFBeUMsVUFBQ0MsS0FBRCxFQUFXO0FBQ2xELE1BQU1DLEdBQUcsR0FBR0wsR0FBRyxDQUFDTSxHQUFKLENBQVFGLEtBQUssQ0FBQ0csWUFBTixHQUFxQixDQUFyQixDQUFSLENBQVo7QUFDQSxNQUFJRixHQUFKLEVBQVNBLEdBQUcsQ0FBQ0csT0FBSixDQUFZLFVBQUFDLEVBQUU7QUFBQSxXQUFJQSxFQUFFLEVBQU47QUFBQSxHQUFkO0FBQ1YsQ0FIRDs7QUFLQSxTQUFTQyxJQUFULENBQWNDLElBQWQsRUFBb0JGLEVBQXBCLEVBQXdCO0FBQ3RCLE1BQUlHLGFBQWEsR0FBR0QsSUFBSSxDQUFDQyxhQUFMLElBQXNCRCxJQUFJLENBQUNFLFVBQUwsQ0FBZ0JDLElBQTFEOztBQUVBLFNBQU9GLGFBQVAsRUFBc0I7QUFDcEIsUUFBTUcsT0FBTyxHQUFHSCxhQUFhLENBQUNJLFdBQWQsQ0FBMEJELE9BQTFDOztBQUVBLFFBQUlBLE9BQU8sSUFBSU4sRUFBRSxDQUFDTSxPQUFELENBQWpCLEVBQTRCO0FBQzFCLGFBQU9ILGFBQVA7QUFDRDs7QUFFREEsSUFBQUEsYUFBYSxHQUFHQSxhQUFhLENBQUNBLGFBQWQsSUFDVkEsYUFBYSxDQUFDQyxVQUFkLElBQTRCRCxhQUFhLENBQUNDLFVBQWQsQ0FBeUJDLElBRDNEO0FBRUQ7O0FBRUQsU0FBT0YsYUFBYSxJQUFJLElBQXhCO0FBQ0Q7O0FBRWMsU0FBU0ssTUFBVCxDQUFnQkMsV0FBaEIsRUFBNkI7QUFDMUMsTUFBTVQsRUFBRSxHQUFHLE9BQU9TLFdBQVAsS0FBdUIsVUFBdkIsR0FBb0NBLFdBQXBDLEdBQWtELFVBQUFILE9BQU87QUFBQSxXQUFJQSxPQUFPLEtBQUtHLFdBQWhCO0FBQUEsR0FBcEU7QUFDQSxTQUFPO0FBQ0xaLElBQUFBLEdBQUcsRUFBRSxhQUFBUSxJQUFJO0FBQUEsYUFBSUosSUFBSSxDQUFDSSxJQUFELEVBQU9MLEVBQVAsQ0FBUjtBQUFBLEtBREo7QUFFTFUsSUFBQUEsT0FGSyxtQkFFR0wsSUFGSCxFQUVTTSxHQUZULEVBRWNDLFVBRmQsRUFFMEI7QUFDN0IsVUFBTUMsTUFBTSxHQUFHUixJQUFJLENBQUNNLEdBQUQsQ0FBbkI7O0FBRUEsVUFBSUUsTUFBSixFQUFZO0FBQ1YsWUFBSWpCLEdBQUcsR0FBR0wsR0FBRyxDQUFDTSxHQUFKLENBQVFnQixNQUFSLENBQVY7O0FBQ0EsWUFBSSxDQUFDakIsR0FBTCxFQUFVO0FBQ1JBLFVBQUFBLEdBQUcsR0FBRyxJQUFJa0IsR0FBSixFQUFOO0FBQ0F2QixVQUFBQSxHQUFHLENBQUNLLEdBQUosQ0FBUWlCLE1BQVIsRUFBZ0JqQixHQUFoQjtBQUNEOztBQUVEQSxRQUFBQSxHQUFHLENBQUNtQixHQUFKLENBQVFILFVBQVI7QUFFQSxlQUFPLFlBQU07QUFDWGhCLFVBQUFBLEdBQUcsQ0FBQ29CLE1BQUosQ0FBV0osVUFBWDtBQUNBQSxVQUFBQSxVQUFVO0FBQ1gsU0FIRDtBQUlEOztBQUVELGFBQU8sS0FBUDtBQUNEO0FBckJJLEdBQVA7QUF1QkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtYXAgPSBuZXcgV2Vha01hcCgpO1xuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIChldmVudCkgPT4ge1xuICBjb25zdCBzZXQgPSBtYXAuZ2V0KGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdKTtcbiAgaWYgKHNldCkgc2V0LmZvckVhY2goZm4gPT4gZm4oKSk7XG59KTtcblxuZnVuY3Rpb24gd2Fsayhub2RlLCBmbikge1xuICBsZXQgcGFyZW50RWxlbWVudCA9IG5vZGUucGFyZW50RWxlbWVudCB8fCBub2RlLnBhcmVudE5vZGUuaG9zdDtcblxuICB3aGlsZSAocGFyZW50RWxlbWVudCkge1xuICAgIGNvbnN0IGh5YnJpZHMgPSBwYXJlbnRFbGVtZW50LmNvbnN0cnVjdG9yLmh5YnJpZHM7XG5cbiAgICBpZiAoaHlicmlkcyAmJiBmbihoeWJyaWRzKSkge1xuICAgICAgcmV0dXJuIHBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcGFyZW50RWxlbWVudCA9IHBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudFxuICAgICAgfHwgKHBhcmVudEVsZW1lbnQucGFyZW50Tm9kZSAmJiBwYXJlbnRFbGVtZW50LnBhcmVudE5vZGUuaG9zdCk7XG4gIH1cblxuICByZXR1cm4gcGFyZW50RWxlbWVudCB8fCBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJlbnQoaHlicmlkc09yRm4pIHtcbiAgY29uc3QgZm4gPSB0eXBlb2YgaHlicmlkc09yRm4gPT09ICdmdW5jdGlvbicgPyBoeWJyaWRzT3JGbiA6IGh5YnJpZHMgPT4gaHlicmlkcyA9PT0gaHlicmlkc09yRm47XG4gIHJldHVybiB7XG4gICAgZ2V0OiBob3N0ID0+IHdhbGsoaG9zdCwgZm4pLFxuICAgIGNvbm5lY3QoaG9zdCwga2V5LCBpbnZhbGlkYXRlKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBob3N0W2tleV07XG5cbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgbGV0IHNldCA9IG1hcC5nZXQodGFyZ2V0KTtcbiAgICAgICAgaWYgKCFzZXQpIHtcbiAgICAgICAgICBzZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgbWFwLnNldCh0YXJnZXQsIHNldCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXQuYWRkKGludmFsaWRhdGUpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgc2V0LmRlbGV0ZShpbnZhbGlkYXRlKTtcbiAgICAgICAgICBpbnZhbGlkYXRlKCk7XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICB9O1xufVxuIl19

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", {

});
exports.default = property;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _utils = require("./utils");
exports.default = property;
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var _utils = require('./utils');
var defaultTransform = function defaultTransform(v) {

@@ -19,5 +18,6 @@ return v;

var objectTransform = function objectTransform(value) {
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {
throw TypeError('[property] Argument is not an object: ' + (typeof v === 'undefined' ? 'undefined' : _typeof(v)));
if (_typeof(value) !== 'object') {
throw TypeError("[property] Argument is not an object: ".concat(typeof v === "undefined" ? "undefined" : _typeof(v)));
}
return value && Object.freeze(value);

@@ -27,3 +27,4 @@ };

function property(value, connect) {
var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);
var type = _typeof(value);
var transform = defaultTransform;

@@ -35,8 +36,11 @@

break;
case 'number':
transform = Number;
break;
case 'boolean':
transform = Boolean;
break;
case 'function':

@@ -46,2 +50,3 @@ transform = value;

break;
case 'object':

@@ -51,2 +56,3 @@ if (value) Object.freeze(value);

break;
default:

@@ -63,3 +69,3 @@ break;

var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : value;
var oldValue = arguments[2];
var oldValue = arguments.length > 2 ? arguments[2] : undefined;
return transform(val, oldValue);

@@ -81,2 +87,2 @@ },

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wZXJ0eS5qcyJdLCJuYW1lcyI6WyJwcm9wZXJ0eSIsImRlZmF1bHRUcmFuc2Zvcm0iLCJ2Iiwib2JqZWN0VHJhbnNmb3JtIiwidmFsdWUiLCJUeXBlRXJyb3IiLCJPYmplY3QiLCJmcmVlemUiLCJjb25uZWN0IiwidHlwZSIsInRyYW5zZm9ybSIsIlN0cmluZyIsIk51bWJlciIsIkJvb2xlYW4iLCJnZXQiLCJob3N0IiwidmFsIiwic2V0Iiwib2xkVmFsdWUiLCJrZXkiLCJpbnZhbGlkYXRlIiwiYXR0ck5hbWUiLCJoYXNBdHRyaWJ1dGUiLCJhdHRyVmFsdWUiLCJnZXRBdHRyaWJ1dGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2tCQVd3QkEsUTs7QUFYeEI7O0FBRUEsSUFBTUMsbUJBQW1CLFNBQW5CQSxnQkFBbUI7QUFBQSxTQUFLQyxDQUFMO0FBQUEsQ0FBekI7O0FBRUEsSUFBTUMsa0JBQWtCLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFELEVBQVc7QUFDakMsTUFBSSxRQUFPQSxLQUFQLHlDQUFPQSxLQUFQLE9BQWlCLFFBQXJCLEVBQStCO0FBQzdCLFVBQU1DLDZEQUEwREgsQ0FBMUQseUNBQTBEQSxDQUExRCxHQUFOO0FBQ0Q7QUFDRCxTQUFPRSxTQUFTRSxPQUFPQyxNQUFQLENBQWNILEtBQWQsQ0FBaEI7QUFDRCxDQUxEOztBQU9lLFNBQVNKLFFBQVQsQ0FBa0JJLEtBQWxCLEVBQXlCSSxPQUF6QixFQUFrQztBQUMvQyxNQUFNQyxjQUFjTCxLQUFkLHlDQUFjQSxLQUFkLENBQU47QUFDQSxNQUFJTSxZQUFZVCxnQkFBaEI7O0FBRUEsVUFBUVEsSUFBUjtBQUNFLFNBQUssUUFBTDtBQUNFQyxrQkFBWUMsTUFBWjtBQUNBO0FBQ0YsU0FBSyxRQUFMO0FBQ0VELGtCQUFZRSxNQUFaO0FBQ0E7QUFDRixTQUFLLFNBQUw7QUFDRUYsa0JBQVlHLE9BQVo7QUFDQTtBQUNGLFNBQUssVUFBTDtBQUNFSCxrQkFBWU4sS0FBWjtBQUNBQSxjQUFRTSxXQUFSO0FBQ0E7QUFDRixTQUFLLFFBQUw7QUFDRSxVQUFJTixLQUFKLEVBQVdFLE9BQU9DLE1BQVAsQ0FBY0gsS0FBZDtBQUNYTSxrQkFBWVAsZUFBWjtBQUNBO0FBQ0Y7QUFBUztBQWxCWDs7QUFxQkEsU0FBTztBQUNMVyxTQUFLLGFBQUNDLElBQUQ7QUFBQSxVQUFPQyxHQUFQLHVFQUFhWixLQUFiO0FBQUEsYUFBdUJZLEdBQXZCO0FBQUEsS0FEQTtBQUVMQyxTQUFLLGFBQUNGLElBQUQ7QUFBQSxVQUFPQyxHQUFQLHVFQUFhWixLQUFiO0FBQUEsVUFBb0JjLFFBQXBCO0FBQUEsYUFBaUNSLFVBQVVNLEdBQVYsRUFBZUUsUUFBZixDQUFqQztBQUFBLEtBRkE7QUFHTFYsYUFBU0MsU0FBUyxRQUFULElBQXFCQSxTQUFTLFdBQTlCLEdBQ0wsVUFBQ00sSUFBRCxFQUFPSSxHQUFQLEVBQVlDLFVBQVosRUFBMkI7QUFDM0IsVUFBSUwsS0FBS0ksR0FBTCxNQUFjZixLQUFsQixFQUF5QjtBQUN2QixZQUFNaUIsV0FBVyx3QkFBWUYsR0FBWixDQUFqQjs7QUFFQSxZQUFJSixLQUFLTyxZQUFMLENBQWtCRCxRQUFsQixDQUFKLEVBQWlDO0FBQy9CLGNBQU1FLFlBQVlSLEtBQUtTLFlBQUwsQ0FBa0JILFFBQWxCLENBQWxCO0FBQ0FOLGVBQUtJLEdBQUwsSUFBWUksY0FBYyxFQUFkLEdBQW1CQSxTQUFuQixHQUErQixJQUEzQztBQUNEO0FBQ0Y7O0FBRUQsYUFBT2YsV0FBV0EsUUFBUU8sSUFBUixFQUFjSSxHQUFkLEVBQW1CQyxVQUFuQixDQUFsQjtBQUNELEtBWk0sR0FhTFo7QUFoQkMsR0FBUDtBQWtCRCIsImZpbGUiOiJwcm9wZXJ0eS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlZmF1bHRUcmFuc2Zvcm0gPSB2ID0+IHY7XG5cbmNvbnN0IG9iamVjdFRyYW5zZm9ybSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IFR5cGVFcnJvcihgW3Byb3BlcnR5XSBBcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0OiAke3R5cGVvZiB2fWApO1xuICB9XG4gIHJldHVybiB2YWx1ZSAmJiBPYmplY3QuZnJlZXplKHZhbHVlKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByb3BlcnR5KHZhbHVlLCBjb25uZWN0KSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxldCB0cmFuc2Zvcm0gPSBkZWZhdWx0VHJhbnNmb3JtO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICB0cmFuc2Zvcm0gPSBTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgdHJhbnNmb3JtID0gTnVtYmVyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICB0cmFuc2Zvcm0gPSBCb29sZWFuO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgdHJhbnNmb3JtID0gdmFsdWU7XG4gICAgICB2YWx1ZSA9IHRyYW5zZm9ybSgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIGlmICh2YWx1ZSkgT2JqZWN0LmZyZWV6ZSh2YWx1ZSk7XG4gICAgICB0cmFuc2Zvcm0gPSBvYmplY3RUcmFuc2Zvcm07XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OiBicmVhaztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZ2V0OiAoaG9zdCwgdmFsID0gdmFsdWUpID0+IHZhbCxcbiAgICBzZXQ6IChob3N0LCB2YWwgPSB2YWx1ZSwgb2xkVmFsdWUpID0+IHRyYW5zZm9ybSh2YWwsIG9sZFZhbHVlKSxcbiAgICBjb25uZWN0OiB0eXBlICE9PSAnb2JqZWN0JyAmJiB0eXBlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgPyAoaG9zdCwga2V5LCBpbnZhbGlkYXRlKSA9PiB7XG4gICAgICAgIGlmIChob3N0W2tleV0gPT09IHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgYXR0ck5hbWUgPSBjYW1lbFRvRGFzaChrZXkpO1xuXG4gICAgICAgICAgaWYgKGhvc3QuaGFzQXR0cmlidXRlKGF0dHJOYW1lKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0clZhbHVlID0gaG9zdC5nZXRBdHRyaWJ1dGUoYXR0ck5hbWUpO1xuICAgICAgICAgICAgaG9zdFtrZXldID0gYXR0clZhbHVlICE9PSAnJyA/IGF0dHJWYWx1ZSA6IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbm5lY3QgJiYgY29ubmVjdChob3N0LCBrZXksIGludmFsaWRhdGUpO1xuICAgICAgfVxuICAgICAgOiBjb25uZWN0LFxuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wZXJ0eS5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0VHJhbnNmb3JtIiwidiIsIm9iamVjdFRyYW5zZm9ybSIsInZhbHVlIiwiVHlwZUVycm9yIiwiT2JqZWN0IiwiZnJlZXplIiwicHJvcGVydHkiLCJjb25uZWN0IiwidHlwZSIsInRyYW5zZm9ybSIsIlN0cmluZyIsIk51bWJlciIsIkJvb2xlYW4iLCJnZXQiLCJob3N0IiwidmFsIiwic2V0Iiwib2xkVmFsdWUiLCJrZXkiLCJpbnZhbGlkYXRlIiwiYXR0ck5hbWUiLCJoYXNBdHRyaWJ1dGUiLCJhdHRyVmFsdWUiLCJnZXRBdHRyaWJ1dGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUVBLElBQU1BLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQUMsQ0FBQztBQUFBLFNBQUlBLENBQUo7QUFBQSxDQUExQjs7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLEtBQUQsRUFBVztBQUNqQyxNQUFJLFFBQU9BLEtBQVAsTUFBaUIsUUFBckIsRUFBK0I7QUFDN0IsVUFBTUMsU0FBUyx3REFBaURILENBQWpELHlDQUFpREEsQ0FBakQsR0FBZjtBQUNEOztBQUNELFNBQU9FLEtBQUssSUFBSUUsTUFBTSxDQUFDQyxNQUFQLENBQWNILEtBQWQsQ0FBaEI7QUFDRCxDQUxEOztBQU9lLFNBQVNJLFFBQVQsQ0FBa0JKLEtBQWxCLEVBQXlCSyxPQUF6QixFQUFrQztBQUMvQyxNQUFNQyxJQUFJLFdBQVVOLEtBQVYsQ0FBVjs7QUFDQSxNQUFJTyxTQUFTLEdBQUdWLGdCQUFoQjs7QUFFQSxVQUFRUyxJQUFSO0FBQ0UsU0FBSyxRQUFMO0FBQ0VDLE1BQUFBLFNBQVMsR0FBR0MsTUFBWjtBQUNBOztBQUNGLFNBQUssUUFBTDtBQUNFRCxNQUFBQSxTQUFTLEdBQUdFLE1BQVo7QUFDQTs7QUFDRixTQUFLLFNBQUw7QUFDRUYsTUFBQUEsU0FBUyxHQUFHRyxPQUFaO0FBQ0E7O0FBQ0YsU0FBSyxVQUFMO0FBQ0VILE1BQUFBLFNBQVMsR0FBR1AsS0FBWjtBQUNBQSxNQUFBQSxLQUFLLEdBQUdPLFNBQVMsRUFBakI7QUFDQTs7QUFDRixTQUFLLFFBQUw7QUFDRSxVQUFJUCxLQUFKLEVBQVdFLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxLQUFkO0FBQ1hPLE1BQUFBLFNBQVMsR0FBR1IsZUFBWjtBQUNBOztBQUNGO0FBQVM7QUFsQlg7O0FBcUJBLFNBQU87QUFDTFksSUFBQUEsR0FBRyxFQUFFLGFBQUNDLElBQUQ7QUFBQSxVQUFPQyxHQUFQLHVFQUFhYixLQUFiO0FBQUEsYUFBdUJhLEdBQXZCO0FBQUEsS0FEQTtBQUVMQyxJQUFBQSxHQUFHLEVBQUUsYUFBQ0YsSUFBRDtBQUFBLFVBQU9DLEdBQVAsdUVBQWFiLEtBQWI7QUFBQSxVQUFvQmUsUUFBcEI7QUFBQSxhQUFpQ1IsU0FBUyxDQUFDTSxHQUFELEVBQU1FLFFBQU4sQ0FBMUM7QUFBQSxLQUZBO0FBR0xWLElBQUFBLE9BQU8sRUFBRUMsSUFBSSxLQUFLLFFBQVQsSUFBcUJBLElBQUksS0FBSyxXQUE5QixHQUNMLFVBQUNNLElBQUQsRUFBT0ksR0FBUCxFQUFZQyxVQUFaLEVBQTJCO0FBQzNCLFVBQUlMLElBQUksQ0FBQ0ksR0FBRCxDQUFKLEtBQWNoQixLQUFsQixFQUF5QjtBQUN2QixZQUFNa0IsUUFBUSxHQUFHLHdCQUFZRixHQUFaLENBQWpCOztBQUVBLFlBQUlKLElBQUksQ0FBQ08sWUFBTCxDQUFrQkQsUUFBbEIsQ0FBSixFQUFpQztBQUMvQixjQUFNRSxTQUFTLEdBQUdSLElBQUksQ0FBQ1MsWUFBTCxDQUFrQkgsUUFBbEIsQ0FBbEI7QUFDQU4sVUFBQUEsSUFBSSxDQUFDSSxHQUFELENBQUosR0FBWUksU0FBUyxLQUFLLEVBQWQsR0FBbUJBLFNBQW5CLEdBQStCLElBQTNDO0FBQ0Q7QUFDRjs7QUFFRCxhQUFPZixPQUFPLElBQUlBLE9BQU8sQ0FBQ08sSUFBRCxFQUFPSSxHQUFQLEVBQVlDLFVBQVosQ0FBekI7QUFDRCxLQVpNLEdBYUxaO0FBaEJDLEdBQVA7QUFrQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYW1lbFRvRGFzaCB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBkZWZhdWx0VHJhbnNmb3JtID0gdiA9PiB2O1xuXG5jb25zdCBvYmplY3RUcmFuc2Zvcm0gPSAodmFsdWUpID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYFtwcm9wZXJ0eV0gQXJndW1lbnQgaXMgbm90IGFuIG9iamVjdDogJHt0eXBlb2Ygdn1gKTtcbiAgfVxuICByZXR1cm4gdmFsdWUgJiYgT2JqZWN0LmZyZWV6ZSh2YWx1ZSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwcm9wZXJ0eSh2YWx1ZSwgY29ubmVjdCkge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBsZXQgdHJhbnNmb3JtID0gZGVmYXVsdFRyYW5zZm9ybTtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgdHJhbnNmb3JtID0gU3RyaW5nO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHRyYW5zZm9ybSA9IE51bWJlcjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgdHJhbnNmb3JtID0gQm9vbGVhbjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgIHRyYW5zZm9ybSA9IHZhbHVlO1xuICAgICAgdmFsdWUgPSB0cmFuc2Zvcm0oKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpZiAodmFsdWUpIE9iamVjdC5mcmVlemUodmFsdWUpO1xuICAgICAgdHJhbnNmb3JtID0gb2JqZWN0VHJhbnNmb3JtO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogYnJlYWs7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGdldDogKGhvc3QsIHZhbCA9IHZhbHVlKSA9PiB2YWwsXG4gICAgc2V0OiAoaG9zdCwgdmFsID0gdmFsdWUsIG9sZFZhbHVlKSA9PiB0cmFuc2Zvcm0odmFsLCBvbGRWYWx1ZSksXG4gICAgY29ubmVjdDogdHlwZSAhPT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgID8gKGhvc3QsIGtleSwgaW52YWxpZGF0ZSkgPT4ge1xuICAgICAgICBpZiAoaG9zdFtrZXldID09PSB2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGF0dHJOYW1lID0gY2FtZWxUb0Rhc2goa2V5KTtcblxuICAgICAgICAgIGlmIChob3N0Lmhhc0F0dHJpYnV0ZShhdHRyTmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGhvc3QuZ2V0QXR0cmlidXRlKGF0dHJOYW1lKTtcbiAgICAgICAgICAgIGhvc3Rba2V5XSA9IGF0dHJWYWx1ZSAhPT0gJycgPyBhdHRyVmFsdWUgOiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25uZWN0ICYmIGNvbm5lY3QoaG9zdCwga2V5LCBpbnZhbGlkYXRlKTtcbiAgICAgIH1cbiAgICAgIDogY29ubmVjdCxcbiAgfTtcbn1cbiJdfQ==

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", {

});
exports.default = undefined;
exports.update = update;
exports.default = render;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _utils = require("./utils");
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
exports.update = update;
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var _utils = require('./utils');
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

@@ -20,2 +21,3 @@ var map = new WeakMap();

var FPS_THRESHOLD = 1000 / 60; // 60 FPS ~ 16,67ms time window
var queue = [];

@@ -46,4 +48,6 @@

var prevUpdate = cache.get(target);
try {
var nextUpdate = target[key];
if (nextUpdate !== prevUpdate) {

@@ -61,2 +65,3 @@ cache.set(target, nextUpdate);

}
update(index + 1, nextTime);

@@ -69,2 +74,3 @@ }

var target = event.composedPath()[0];
if (target === event.currentTarget) {

@@ -76,2 +82,3 @@ if (!queue[0]) {

}
if (queue.indexOf(target) === -1) {

@@ -87,6 +94,8 @@ queue.push(target);

if (typeof _get !== 'function') {
throw TypeError('[render] The first argument must be a function: ' + (typeof _get === 'undefined' ? 'undefined' : _typeof(_get)));
throw TypeError("[render] The first argument must be a function: ".concat(_typeof(_get)));
}
var options = _extends({ shadowRoot: true }, customOptions);
var options = _objectSpread({
shadowRoot: true
}, customOptions);

@@ -96,2 +105,3 @@ return {

var fn = _get(host);
return function () {

@@ -103,10 +113,14 @@ return fn(host, options.shadowRoot ? host.shadowRoot : host);

if (map.has(host)) {
throw Error('[render] Render factory already used in \'' + map.get(host) + '\' key');
throw Error("[render] Render factory already used in '".concat(map.get(host), "' key"));
}
if (options.shadowRoot && !host.shadowRoot) {
var shadowRootInit = { mode: 'open' };
var shadowRootInit = {
mode: 'open'
};
if (_typeof(options.shadowRoot) === 'object') {
Object.assign(shadowRootInit, options.shadowRoot);
}
host.attachShadow(shadowRootInit);

@@ -117,3 +131,2 @@ }

map.set(host, key);
return function () {

@@ -126,3 +139,2 @@ host.removeEventListener('@invalidate', addToQueue);

}
exports.default = render;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXIuanMiXSwibmFtZXMiOlsidXBkYXRlIiwibWFwIiwiV2Vha01hcCIsImNhY2hlIiwiRlBTX1RIUkVTSE9MRCIsInF1ZXVlIiwiaW5kZXgiLCJzdGFydFRpbWUiLCJwZXJmb3JtYW5jZSIsIm5vdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInRhcmdldCIsIm5leHRUaW1lIiwiZm9yRWFjaCIsInNoYWR5Iiwic3R5bGVTdWJ0cmVlIiwidCIsImhhcyIsImtleSIsImdldCIsInByZXZVcGRhdGUiLCJuZXh0VXBkYXRlIiwic2V0Iiwic3R5bGVFbGVtZW50IiwiZSIsImFkZFRvUXVldWUiLCJldmVudCIsImNvbXBvc2VkUGF0aCIsImN1cnJlbnRUYXJnZXQiLCJpbmRleE9mIiwicHVzaCIsInJlbmRlciIsImN1c3RvbU9wdGlvbnMiLCJUeXBlRXJyb3IiLCJvcHRpb25zIiwic2hhZG93Um9vdCIsImhvc3QiLCJmbiIsImNvbm5lY3QiLCJFcnJvciIsInNoYWRvd1Jvb3RJbml0IiwibW9kZSIsIk9iamVjdCIsImFzc2lnbiIsImF0dGFjaFNoYWRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQU9nQkEsTSxHQUFBQSxNOztBQVBoQjs7QUFFQSxJQUFNQyxNQUFNLElBQUlDLE9BQUosRUFBWjtBQUNBLElBQU1DLFFBQVEsSUFBSUQsT0FBSixFQUFkO0FBQ0EsSUFBTUUsZ0JBQWdCLE9BQU8sRUFBN0IsQyxDQUFpQztBQUNqQyxJQUFJQyxRQUFRLEVBQVo7O0FBRU8sU0FBU0wsTUFBVCxHQUEwQztBQUFBLE1BQTFCTSxLQUEwQix1RUFBbEIsQ0FBa0I7QUFBQSxNQUFmQyxTQUFlLHVFQUFILENBQUc7O0FBQy9DLE1BQUlBLGFBQWNDLFlBQVlDLEdBQVosS0FBb0JGLFNBQXBCLEdBQWdDSCxhQUFsRCxFQUFrRTtBQUNoRU0sMEJBQXNCO0FBQUEs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dEM7QUFDRDtBQUNEQyxhQUFLUSxZQUFMLENBQWtCSixjQUFsQjtBQUNEOztBQUVESixXQUFLUyxnQkFBTCxDQUFzQixhQUF0QixFQUFxQ3BCLFVBQXJDO0FBQ0F4QixVQUFJcUIsR0FBSixDQUFRYyxJQUFSLEVBQWNsQixHQUFkOztBQUVBLGFBQU8sWUFBTTtBQUNYa0IsYUFBS1UsbUJBQUwsQ0FBeUIsYUFBekIsRUFBd0NyQixVQUF4QztBQUNBeEIsWUFBSThDLE1BQUosQ0FBV1gsSUFBWDtBQUNELE9BSEQ7QUFJRDtBQXpCSSxHQUFQO0FBMkJEIiwiZmlsZSI6InJlbmRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYWR5Q1NTIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IG1hcCA9IG5ldyBXZWFrTWFwKCk7XG5jb25zdCBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG5jb25zdCBGUFNfVEhSRVNIT0xEID0gMTAwMCAvIDYwOyAvLyA2MCBGUFMgfiAxNiw2N21zIHRpbWUgd2luZG93XG5sZXQgcXVldWUgPSBbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZShpbmRleCA9IDAsIHN0YXJ0VGltZSA9IDApIHtcbiAgaWYgKHN0YXJ0VGltZSAmJiAocGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWUgPiBGUFNfVEhSRVNIT0xEKSkge1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB1cGRhdGUoaW5kZXgpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0YXJnZXQgPSBxdWV1ZVtpbmRleF07XG4gICAgY29uc3QgbmV4dFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICBzaGFkeUNTUyhzaGFkeSA9PiBxdWV1ZS5mb3JFYWNoKHQgPT4gc2hhZHkuc3R5bGVTdWJ0cmVlKHQpKSk7XG4gICAgICBxdWV1ZSA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobWFwLmhhcyh0YXJnZXQpKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IG1hcC5nZXQodGFyZ2V0KTtcbiAgICAgICAgY29uc3QgcHJldlVwZGF0ZSA9IGNhY2hlLmdldCh0YXJnZXQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG5leHRVcGRhdGUgPSB0YXJnZXRba2V5XTtcbiAgICAgICAgICBpZiAobmV4dFVwZGF0ZSAhPT0gcHJldlVwZGF0ZSkge1xuICAgICAgICAgICAgY2FjaGUuc2V0KHRhcmdldCwgbmV4dFVwZGF0ZSk7XG4gICAgICAgICAgICBuZXh0VXBkYXRlKCk7XG4gICAgICAgICAgICBpZiAoIXByZXZVcGRhdGUpIHNoYWR5Q1NTKHNoYWR5ID0+IHNoYWR5LnN0eWxlRWxlbWVudCh0YXJnZXQpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB1cGRhdGUoaW5kZXggKyAxLCBuZXh0VGltZSk7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdXBkYXRlKGluZGV4ICsgMSwgbmV4dFRpbWUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRUb1F1ZXVlKGV2ZW50KSB7XG4gIGNvbnN0IHRhcmdldCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdO1xuICBpZiAodGFyZ2V0ID09PSBldmVudC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgaWYgKCFxdWV1ZVswXSkge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKSA9PiB1cGRhdGUoKSkpO1xuICAgIH1cbiAgICBpZiAocXVldWUuaW5kZXhPZih0YXJnZXQpID09PSAtMSkge1xuICAgICAgcXVldWUucHVzaCh0YXJnZXQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW5kZXIoZ2V0LCBjdXN0b21PcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiBnZXQgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYFtyZW5kZXJdIFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb246ICR7dHlwZW9mIGdldH1gKTtcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnMgPSB7IHNoYWRvd1Jvb3Q6IHRydWUsIC4uLmN1c3RvbU9wdGlvbnMgfTtcblxuICByZXR1cm4ge1xuICAgIGdldDogKGhvc3QpID0+IHtcbiAgICAgIGNvbnN0IGZuID0gZ2V0KGhvc3QpO1xuICAgICAgcmV0dXJuICgpID0+IGZuKGhvc3QsIG9wdGlvbnMuc2hhZG93Um9vdCA/IGhvc3Quc2hhZG93Um9vdCA6IGhvc3QpO1xuICAgIH0sXG4gICAgY29ubmVjdChob3N0LCBrZXkpIHtcbiAgICAgIGlmIChtYXAuaGFzKGhvc3QpKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBbcmVuZGVyXSBSZW5kZXIgZmFjdG9yeSBhbHJlYWR5IHVzZWQgaW4gJyR7bWFwLmdldChob3N0KX0nIGtleWApO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5zaGFkb3dSb290ICYmICFob3N0LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgY29uc3Qgc2hhZG93Um9vdEluaXQgPSB7IG1vZGU6ICdvcGVuJyB9O1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2hhZG93Um9vdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHNoYWRvd1Jvb3RJbml0LCBvcHRpb25zLnNoYWRvd1Jvb3QpO1xuICAgICAgICB9XG4gICAgICAgIGhvc3QuYXR0YWNoU2hhZG93KHNoYWRvd1Jvb3RJbml0KTtcbiAgICAgIH1cblxuICAgICAgaG9zdC5hZGRFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIGFkZFRvUXVldWUpO1xuICAgICAgbWFwLnNldChob3N0LCBrZXkpO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0BpbnZhbGlkYXRlJywgYWRkVG9RdWV1ZSk7XG4gICAgICAgIG1hcC5kZWxldGUoaG9zdCk7XG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXIuanMiXSwibmFtZXMiOlsibWFwIiwiV2Vha01hcCIsImNhY2hlIiwiRlBTX1RIUkVTSE9MRCIsInF1ZXVlIiwidXBkYXRlIiwiaW5kZXgiLCJzdGFydFRpbWUiLCJwZXJmb3JtYW5jZSIsIm5vdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInRhcmdldCIsIm5leHRUaW1lIiwic2hhZHkiLCJmb3JFYWNoIiwidCIsInN0eWxlU3VidHJlZSIsImhhcyIsImtleSIsImdldCIsInByZXZVcGRhdGUiLCJuZXh0VXBkYXRlIiwic2V0Iiwic3R5bGVFbGVtZW50IiwiZSIsImFkZFRvUXVldWUiLCJldmVudCIsImNvbXBvc2VkUGF0aCIsImN1cnJlbnRUYXJnZXQiLCJpbmRleE9mIiwicHVzaCIsInJlbmRlciIsImN1c3RvbU9wdGlvbnMiLCJUeXBlRXJyb3IiLCJvcHRpb25zIiwic2hhZG93Um9vdCIsImhvc3QiLCJmbiIsImNvbm5lY3QiLCJFcnJvciIsInNoYWRvd1Jvb3RJbml0IiwibW9kZSIsIk9iamVjdCIsImFzc2lnbiIsImF0dGFjaFNoYWRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyxJQUFJQyxPQUFKLEVBQVo7QUFDQSxJQUFNQyxLQUFLLEdBQUcsSUFBSUQsT0FBSixFQUFkO0FBQ0EsSUFBTUUsYUFBYSxHQUFHLE9BQU8sRUFBN0IsQyxDQUFpQzs7QUFDakMsSUFBSUMsS0FBSyxHQUFHLEVBQVo7O0FBRU8sU0FBU0MsTUFBVCxHQUEwQztBQUFBLE1BQTFCQyxLQUEwQix1RUFBbEIsQ0FBa0I7QUFBQSxNQUFmQyxTQUFlLHVFQUFILENBQUc7O0FBQy9DLE1BQUlBLFNBQVMsSUFBS0MsV0FBVyxDQUFDQyxHQUFaLEtBQW9CRixTQUFwQixHQUFnQ0osYUFBbEQsRUFBa0U7QUFDaEVP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T0FMSyxtQkFLR0YsSUFMSCxFQUtTbEIsR0FMVCxFQUtjO0FBQ2pCLFVBQUlsQixHQUFHLENBQUNpQixHQUFKLENBQVFtQixJQUFSLENBQUosRUFBbUI7QUFDakIsY0FBTUcsS0FBSyxvREFBNkN2QyxHQUFHLENBQUNtQixHQUFKLENBQVFpQixJQUFSLENBQTdDLFdBQVg7QUFDRDs7QUFFRCxVQUFJRixPQUFPLENBQUNDLFVBQVIsSUFBc0IsQ0FBQ0MsSUFBSSxDQUFDRCxVQUFoQyxFQUE0QztBQUMxQyxZQUFNSyxjQUFjLEdBQUc7QUFBRUMsVUFBQUEsSUFBSSxFQUFFO0FBQVIsU0FBdkI7O0FBQ0EsWUFBSSxRQUFPUCxPQUFPLENBQUNDLFVBQWYsTUFBOEIsUUFBbEMsRUFBNEM7QUFDMUNPLFVBQUFBLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxjQUFkLEVBQThCTixPQUFPLENBQUNDLFVBQXRDO0FBQ0Q7O0FBQ0RDLFFBQUFBLElBQUksQ0FBQ1EsWUFBTCxDQUFrQkosY0FBbEI7QUFDRDs7QUFFREosTUFBQUEsSUFBSSxDQUFDUyxnQkFBTCxDQUFzQixhQUF0QixFQUFxQ3BCLFVBQXJDO0FBQ0F6QixNQUFBQSxHQUFHLENBQUNzQixHQUFKLENBQVFjLElBQVIsRUFBY2xCLEdBQWQ7QUFFQSxhQUFPLFlBQU07QUFDWGtCLFFBQUFBLElBQUksQ0FBQ1UsbUJBQUwsQ0FBeUIsYUFBekIsRUFBd0NyQixVQUF4QztBQUNBekIsUUFBQUEsR0FBRyxDQUFDK0MsTUFBSixDQUFXWCxJQUFYO0FBQ0QsT0FIRDtBQUlEO0FBekJJLEdBQVA7QUEyQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFkeUNTUyB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBtYXAgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgY2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgRlBTX1RIUkVTSE9MRCA9IDEwMDAgLyA2MDsgLy8gNjAgRlBTIH4gMTYsNjdtcyB0aW1lIHdpbmRvd1xubGV0IHF1ZXVlID0gW107XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGUoaW5kZXggPSAwLCBzdGFydFRpbWUgPSAwKSB7XG4gIGlmIChzdGFydFRpbWUgJiYgKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lID4gRlBTX1RIUkVTSE9MRCkpIHtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdXBkYXRlKGluZGV4KSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gcXVldWVbaW5kZXhdO1xuICAgIGNvbnN0IG5leHRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgc2hhZHlDU1Moc2hhZHkgPT4gcXVldWUuZm9yRWFjaCh0ID0+IHNoYWR5LnN0eWxlU3VidHJlZSh0KSkpO1xuICAgICAgcXVldWUgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG1hcC5oYXModGFyZ2V0KSkge1xuICAgICAgICBjb25zdCBrZXkgPSBtYXAuZ2V0KHRhcmdldCk7XG4gICAgICAgIGNvbnN0IHByZXZVcGRhdGUgPSBjYWNoZS5nZXQodGFyZ2V0KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBuZXh0VXBkYXRlID0gdGFyZ2V0W2tleV07XG4gICAgICAgICAgaWYgKG5leHRVcGRhdGUgIT09IHByZXZVcGRhdGUpIHtcbiAgICAgICAgICAgIGNhY2hlLnNldCh0YXJnZXQsIG5leHRVcGRhdGUpO1xuICAgICAgICAgICAgbmV4dFVwZGF0ZSgpO1xuICAgICAgICAgICAgaWYgKCFwcmV2VXBkYXRlKSBzaGFkeUNTUyhzaGFkeSA9PiBzaGFkeS5zdHlsZUVsZW1lbnQodGFyZ2V0KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdXBkYXRlKGluZGV4ICsgMSwgbmV4dFRpbWUpO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHVwZGF0ZShpbmRleCArIDEsIG5leHRUaW1lKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVG9RdWV1ZShldmVudCkge1xuICBjb25zdCB0YXJnZXQgPSBldmVudC5jb21wb3NlZFBhdGgoKVswXTtcbiAgaWYgKHRhcmdldCA9PT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgIGlmICghcXVldWVbMF0pIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCkgPT4gdXBkYXRlKCkpKTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmluZGV4T2YodGFyZ2V0KSA9PT0gLTEpIHtcbiAgICAgIHF1ZXVlLnB1c2godGFyZ2V0KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVuZGVyKGdldCwgY3VzdG9tT3B0aW9ucyA9IHt9KSB7XG4gIGlmICh0eXBlb2YgZ2V0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGBbcmVuZGVyXSBUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uOiAke3R5cGVvZiBnZXR9YCk7XG4gIH1cblxuICBjb25zdCBvcHRpb25zID0geyBzaGFkb3dSb290OiB0cnVlLCAuLi5jdXN0b21PcHRpb25zIH07XG5cbiAgcmV0dXJuIHtcbiAgICBnZXQ6IChob3N0KSA9PiB7XG4gICAgICBjb25zdCBmbiA9IGdldChob3N0KTtcbiAgICAgIHJldHVybiAoKSA9PiBmbihob3N0LCBvcHRpb25zLnNoYWRvd1Jvb3QgPyBob3N0LnNoYWRvd1Jvb3QgOiBob3N0KTtcbiAgICB9LFxuICAgIGNvbm5lY3QoaG9zdCwga2V5KSB7XG4gICAgICBpZiAobWFwLmhhcyhob3N0KSkge1xuICAgICAgICB0aHJvdyBFcnJvcihgW3JlbmRlcl0gUmVuZGVyIGZhY3RvcnkgYWxyZWFkeSB1c2VkIGluICcke21hcC5nZXQoaG9zdCl9JyBrZXlgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuc2hhZG93Um9vdCAmJiAhaG9zdC5zaGFkb3dSb290KSB7XG4gICAgICAgIGNvbnN0IHNoYWRvd1Jvb3RJbml0ID0geyBtb2RlOiAnb3BlbicgfTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnNoYWRvd1Jvb3QgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihzaGFkb3dSb290SW5pdCwgb3B0aW9ucy5zaGFkb3dSb290KTtcbiAgICAgICAgfVxuICAgICAgICBob3N0LmF0dGFjaFNoYWRvdyhzaGFkb3dSb290SW5pdCk7XG4gICAgICB9XG5cbiAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignQGludmFsaWRhdGUnLCBhZGRUb1F1ZXVlKTtcbiAgICAgIG1hcC5zZXQoaG9zdCwga2V5KTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdAaW52YWxpZGF0ZScsIGFkZFRvUXVldWUpO1xuICAgICAgICBtYXAuZGVsZXRlKGhvc3QpO1xuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuIl19

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -6,5 +6,2 @@ Object.defineProperty(exports, "__esModule", {

});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.camelToDash = camelToDash;

@@ -16,2 +13,8 @@ exports.pascalToDash = pascalToDash;

exports.stringifyElement = stringifyElement;
exports.IS_IE = void 0;
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function camelToDash(str) {

@@ -28,4 +31,5 @@ return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();

var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
return host.dispatchEvent(new CustomEvent(eventType, _extends({ bubbles: false }, options)));
return host.dispatchEvent(new CustomEvent(eventType, _objectSpread({
bubbles: false
}, options)));
}

@@ -35,3 +39,2 @@

var map = new WeakMap();
return {

@@ -58,2 +61,3 @@ get: function get(key, defaultValue) {

var shady = window.ShadyCSS;
if (shady && !shady.nativeShadow) {

@@ -68,6 +72,7 @@ return fn(shady);

var tagName = String(element.tagName).toLowerCase();
return '<' + tagName + '>';
return "<".concat(tagName, ">");
}
var IS_IE = exports.IS_IE = 'ActiveXObject' in global;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJjYW1lbFRvRGFzaCIsInBhc2NhbFRvRGFzaCIsImRpc3BhdGNoIiwiY3JlYXRlTWFwIiwic2hhZHlDU1MiLCJzdHJpbmdpZnlFbGVtZW50Iiwic3RyIiwicmVwbGFjZSIsInRvTG93ZXJDYXNlIiwic2xpY2UiLCJob3N0IiwiZXZlbnRUeXBlIiwib3B0aW9ucyIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImJ1YmJsZXMiLCJtYXAiLCJXZWFrTWFwIiwiZ2V0Iiwia2V5IiwiZGVmYXVsdFZhbHVlIiwiaGFzIiwidW5kZWZpbmVkIiwic2V0IiwidmFsdWUiLCJmbiIsImZhbGxiYWNrIiwic2hhZHkiLCJ3aW5kb3ciLCJTaGFkeUNTUyIsIm5hdGl2ZVNoYWRvdyIsImVsZW1lbnQiLCJ0YWdOYW1lIiwiU3RyaW5nIiwiSVNfSUUiLCJnbG9iYWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O1FBQWdCQSxXLEdBQUFBLFc7UUFJQUMsWSxHQUFBQSxZO1FBS0FDLFEsR0FBQUEsUTtRQUlBQyxTLEdBQUFBLFM7UUFzQkFDLFEsR0FBQUEsUTtRQVNBQyxnQixHQUFBQSxnQjtBQTVDVCxTQUFTTCxXQUFULENBQXFCTSxHQUFyQixFQUEwQjtBQUMvQixTQUFPQSxJQUFJQyxPQUFKLENBQVksaUJBQVosRUFBK0IsT0FBL0IsRUFBd0NDLFdBQXhDLEVBQVA7QUFDRDs7QUFFTSxTQUFTUCxZQUFULENBQXNCSyxHQUF0QixFQUEyQjtBQUNoQ0EsUUFBTUEsSUFBSSxDQUFKLEVBQU9FLFdBQVAsS0FBdUJGLElBQUlHLEtBQUosQ0FBVSxDQUFWLENBQTdCO0FBQ0EsU0FBT1QsWUFBWU0sR0FBWixDQUFQO0FBQ0Q7O0FBRU0sU0FBU0osUUFBVCxDQUFrQlEsSUFBbEIsRUFBd0JDLFNBQXhCLEVBQWlEO0FBQUEsTUFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUN0RCxTQUFPRixLQUFLRyxhQUFMLENBQW1CLElBQUlDLFdBQUosQ0FBZ0JILFNBQWhCLGFBQTZCSSxTQUFTLEtBQXRDLElBQWdESCxPQUFoRCxFQUFuQixDQUFQO0FBQ0Q7O0FBRU0sU0FBU1QsU0FBVCxHQUFxQjtBQUMxQixNQUFNYSxNQUFNLElBQUlDLE9BQUosRUFBWjs7QUFFQSxTQUFPO0FBQ0xDLE9BREssZUFDREMsR0FEQyxFQUNJQyxZQURKLEVBQ2tCO0FBQ3JCLFVBQUlKLElBQUlLLEdBQUosQ0FBUUYsR0FBUixDQUFKLEVBQWtCO0FBQ2hCLGVBQU9ILElBQUlFLEdBQUosQ0FBUUMsR0FBUixDQUFQO0FBQ0Q7O0FBRUQsVUFBSUMsaUJBQWlCRSxTQUFyQixFQUFnQztBQUM5Qk4sWUFBSU8sR0FBSixDQUFRSixHQUFSLEVBQWFDLFlBQWI7QUFDRDs7QUFFRCxhQUFPQSxZQUFQO0FBQ0QsS0FYSTtBQVlMRyxPQVpLLGVBWURKLEdBWkMsRUFZSUssS0FaSixFQVlXO0FBQ2RSLFVBQUlPLEdBQUosQ0FBUUosR0FBUixFQUFhSyxLQUFiO0FBQ0EsYUFBT0EsS0FBUDtBQUNEO0FBZkksR0FBUDtBQWlCRDs7QUFFTSxTQUFTcEIsUUFBVCxDQUFrQnFCLEVBQWxCLEVBQXNCQyxRQUF0QixFQUFnQztBQUNyQyxNQUFNQyxRQUFRQyxPQUFPQyxRQUFyQjtBQUNBLE1BQUlGLFNBQVMsQ0FBQ0EsTUFBTUcsWUFBcEIsRUFBa0M7QUFDaEMsV0FBT0wsR0FBR0UsS0FBSCxDQUFQO0FBQ0Q7O0FBRUQsU0FBT0QsUUFBUDtBQUNEOztBQUVNLFNBQVNyQixnQkFBVCxDQUEwQjBCLE9BQTFCLEVBQW1DO0FBQ3hDLE1BQU1DLFVBQVVDLE9BQU9GLFFBQVFDLE9BQWYsRUFBd0J4QixXQUF4QixFQUFoQjtBQUNBLGVBQVd3QixPQUFYO0FBQ0Q7O0FBRU0sSUFBTUUsd0JBQVEsbUJBQW1CQyxNQUFqQyIsImZpbGUiOiJ1dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjYW1lbFRvRGFzaChzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsVG9EYXNoKHN0cikge1xuICBzdHIgPSBzdHJbMF0udG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcbiAgcmV0dXJuIGNhbWVsVG9EYXNoKHN0cik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwYXRjaChob3N0LCBldmVudFR5cGUsIG9wdGlvbnMgPSB7fSkge1xuICByZXR1cm4gaG9zdC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChldmVudFR5cGUsIHsgYnViYmxlczogZmFsc2UsIC4uLm9wdGlvbnMgfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWFwKCkge1xuICBjb25zdCBtYXAgPSBuZXcgV2Vha01hcCgpO1xuXG4gIHJldHVybiB7XG4gICAgZ2V0KGtleSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICBpZiAobWFwLmhhcyhrZXkpKSB7XG4gICAgICAgIHJldHVybiBtYXAuZ2V0KGtleSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBtYXAuc2V0KGtleSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9LFxuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICBtYXAuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaGFkeUNTUyhmbiwgZmFsbGJhY2spIHtcbiAgY29uc3Qgc2hhZHkgPSB3aW5kb3cuU2hhZHlDU1M7XG4gIGlmIChzaGFkeSAmJiAhc2hhZHkubmF0aXZlU2hhZG93KSB7XG4gICAgcmV0dXJuIGZuKHNoYWR5KTtcbiAgfVxuXG4gIHJldHVybiBmYWxsYmFjaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVsZW1lbnQoZWxlbWVudCkge1xuICBjb25zdCB0YWdOYW1lID0gU3RyaW5nKGVsZW1lbnQudGFnTmFtZSkudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIGA8JHt0YWdOYW1lfT5gO1xufVxuXG5leHBvcnQgY29uc3QgSVNfSUUgPSAnQWN0aXZlWE9iamVjdCcgaW4gZ2xvYmFsO1xuIl19
var IS_IE = 'ActiveXObject' in global;
exports.IS_IE = IS_IE;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJjYW1lbFRvRGFzaCIsInN0ciIsInJlcGxhY2UiLCJ0b0xvd2VyQ2FzZSIsInBhc2NhbFRvRGFzaCIsInNsaWNlIiwiZGlzcGF0Y2giLCJob3N0IiwiZXZlbnRUeXBlIiwib3B0aW9ucyIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImJ1YmJsZXMiLCJjcmVhdGVNYXAiLCJtYXAiLCJXZWFrTWFwIiwiZ2V0Iiwia2V5IiwiZGVmYXVsdFZhbHVlIiwiaGFzIiwidW5kZWZpbmVkIiwic2V0IiwidmFsdWUiLCJzaGFkeUNTUyIsImZuIiwiZmFsbGJhY2siLCJzaGFkeSIsIndpbmRvdyIsIlNoYWR5Q1NTIiwibmF0aXZlU2hhZG93Iiwic3RyaW5naWZ5RWxlbWVudCIsImVsZW1lbnQiLCJ0YWdOYW1lIiwiU3RyaW5nIiwiSVNfSUUiLCJnbG9iYWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sU0FBU0EsV0FBVCxDQUFxQkMsR0FBckIsRUFBMEI7QUFDL0IsU0FBT0EsR0FBRyxDQUFDQyxPQUFKLENBQVksaUJBQVosRUFBK0IsT0FBL0IsRUFBd0NDLFdBQXhDLEVBQVA7QUFDRDs7QUFFTSxTQUFTQyxZQUFULENBQXNCSCxHQUF0QixFQUEyQjtBQUNoQ0EsRUFBQUEsR0FBRyxHQUFHQSxHQUFHLENBQUMsQ0FBRCxDQUFILENBQU9FLFdBQVAsS0FBdUJGLEdBQUcsQ0FBQ0ksS0FBSixDQUFVLENBQVYsQ0FBN0I7QUFDQSxTQUFPTCxXQUFXLENBQUNDLEdBQUQsQ0FBbEI7QUFDRDs7QUFFTSxTQUFTSyxRQUFULENBQWtCQyxJQUFsQixFQUF3QkMsU0FBeEIsRUFBaUQ7QUFBQSxNQUFkQyxPQUFjLHVFQUFKLEVBQUk7QUFDdEQsU0FBT0YsSUFBSSxDQUFDRyxhQUFMLENBQW1CLElBQUlDLFdBQUosQ0FBZ0JILFNBQWhCO0FBQTZCSSxJQUFBQSxPQUFPLEVBQUU7QUFBdEMsS0FBZ0RILE9BQWhELEVBQW5CLENBQVA7QUFDRDs7QUFFTSxTQUFTSSxTQUFULEdBQXFCO0FBQzFCLE1BQU1DLEdBQUcsR0FBRyxJQUFJQyxPQUFKLEVBQVo7QUFFQSxTQUFPO0FBQ0xDLElBQUFBLEdBREssZUFDREMsR0FEQyxFQUNJQyxZQURKLEVBQ2tCO0FBQ3JCLFVBQUlKLEdBQUcsQ0FBQ0ssR0FBSixDQUFRRixHQUFSLENBQUosRUFBa0I7QUFDaEIsZUFBT0gsR0FBRyxDQUFDRSxHQUFKLENBQVFDLEdBQVIsQ0FBUDtBQUNEOztBQUVELFVBQUlDLFlBQVksS0FBS0UsU0FBckIsRUFBZ0M7QUFDOUJOLFFBQUFBLEdBQUcsQ0FBQ08sR0FBSixDQUFRSixHQUFSLEVBQWFDLFlBQWI7QUFDRDs7QUFFRCxhQUFPQSxZQUFQO0FBQ0QsS0FYSTtBQVlMRyxJQUFBQSxHQVpLLGVBWURKLEdBWkMsRUFZSUssS0FaSixFQVlXO0FBQ2RSLE1BQUFBLEdBQUcsQ0FBQ08sR0FBSixDQUFRSixHQUFSLEVBQWFLLEtBQWI7QUFDQSxhQUFPQSxLQUFQO0FBQ0Q7QUFmSSxHQUFQO0FBaUJEOztBQUVNLFNBQVNDLFFBQVQsQ0FBa0JDLEVBQWxCLEVBQXNCQyxRQUF0QixFQUFnQztBQUNyQyxNQUFNQyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0MsUUFBckI7O0FBQ0EsTUFBSUYsS0FBSyxJQUFJLENBQUNBLEtBQUssQ0FBQ0csWUFBcEIsRUFBa0M7QUFDaEMsV0FBT0wsRUFBRSxDQUFDRSxLQUFELENBQVQ7QUFDRDs7QUFFRCxTQUFPRCxRQUFQO0FBQ0Q7O0FBRU0sU0FBU0ssZ0JBQVQsQ0FBMEJDLE9BQTFCLEVBQW1DO0FBQ3hDLE1BQU1DLE9BQU8sR0FBR0MsTUFBTSxDQUFDRixPQUFPLENBQUNDLE9BQVQsQ0FBTixDQUF3QjdCLFdBQXhCLEVBQWhCO0FBQ0Esb0JBQVc2QixPQUFYO0FBQ0Q7O0FBRU0sSUFBTUUsS0FBSyxHQUFHLG1CQUFtQkMsTUFBakMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2FtZWxUb0Rhc2goc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbFRvRGFzaChzdHIpIHtcbiAgc3RyID0gc3RyWzBdLnRvTG93ZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG4gIHJldHVybiBjYW1lbFRvRGFzaChzdHIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGF0Y2goaG9zdCwgZXZlbnRUeXBlLCBvcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIGhvc3QuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoZXZlbnRUeXBlLCB7IGJ1YmJsZXM6IGZhbHNlLCAuLi5vcHRpb25zIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hcCgpIHtcbiAgY29uc3QgbWFwID0gbmV3IFdlYWtNYXAoKTtcblxuICByZXR1cm4ge1xuICAgIGdldChrZXksIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgaWYgKG1hcC5oYXMoa2V5KSkge1xuICAgICAgICByZXR1cm4gbWFwLmdldChrZXkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbWFwLnNldChrZXksIGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfSxcbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgbWFwLnNldChrZXksIHZhbHVlKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhZHlDU1MoZm4sIGZhbGxiYWNrKSB7XG4gIGNvbnN0IHNoYWR5ID0gd2luZG93LlNoYWR5Q1NTO1xuICBpZiAoc2hhZHkgJiYgIXNoYWR5Lm5hdGl2ZVNoYWRvdykge1xuICAgIHJldHVybiBmbihzaGFkeSk7XG4gIH1cblxuICByZXR1cm4gZmFsbGJhY2s7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFbGVtZW50KGVsZW1lbnQpIHtcbiAgY29uc3QgdGFnTmFtZSA9IFN0cmluZyhlbGVtZW50LnRhZ05hbWUpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBgPCR7dGFnTmFtZX0+YDtcbn1cblxuZXhwb3J0IGNvbnN0IElTX0lFID0gJ0FjdGl2ZVhPYmplY3QnIGluIGdsb2JhbDtcbiJdfQ==
{
"name": "hybrids",
"version": "1.4.0",
"version": "1.4.1",
"description": "UI library for creating Web Components",

@@ -29,16 +29,14 @@ "main": "lib/index.js",

"devDependencies": {
"babel-cli": "^6.18.0",
"babel-core": "^6.7.6",
"babel-eslint": "^8.2.6",
"babel-loader": "^7.1.5",
"babel-plugin-istanbul": "^4.1.4",
"babel-preset-env": "^1.5.1",
"babel-preset-stage-3": "^6.24.1",
"@babel/cli": "^7.1.2",
"@babel/core": "^7.1.2",
"@babel/preset-env": "^7.1.0",
"babel-loader": "^8.0.4",
"babel-plugin-istanbul": "^5.1.0",
"coveralls": "^3.0.2",
"eslint": "^5.3.0",
"eslint-config-airbnb-base": "^13.0.0",
"eslint-loader": "^2.1.0",
"eslint-plugin-import": "^2.13.0",
"jasmine-core": "^3.1.0",
"karma": "^2.0.5",
"eslint": "^5.6.1",
"eslint-config-airbnb-base": "^13.1.0",
"eslint-loader": "^2.1.1",
"eslint-plugin-import": "^2.14.0",
"jasmine-core": "^3.2.1",
"karma": "^3.0.0",
"karma-chrome-launcher": "^2.0.0",

@@ -51,10 +49,10 @@ "karma-coverage": "^1.1.1",

"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^3.0.0",
"karma-webpack": "^3.0.5",
"standard-version": "^4.4.0",
"webpack": "^4.16.5",
"webpack-cli": "^3.1.0"
"webpack": "^4.20.2",
"webpack-cli": "^3.1.2"
},
"dependencies": {
"@webcomponents/custom-elements": "^1.2.0",
"@webcomponents/shadycss": "^1.5.0",
"@webcomponents/custom-elements": "^1.2.1",
"@webcomponents/shadycss": "^1.5.2",
"@webcomponents/shadydom": "^1.2.0",

@@ -66,3 +64,2 @@ "@webcomponents/template": "^1.4.0",

"eslintConfig": {
"parser": "babel-eslint",
"extends": "airbnb-base",

@@ -89,5 +86,2 @@ "env": {

]
},
"globals": {
"test": true
}

@@ -98,8 +92,7 @@ },

[
"env",
"@babel/preset-env",
{
"modules": false
}
],
"stage-3"
]
],

@@ -110,3 +103,3 @@ "env": {

[
"env",
"@babel/preset-env",
{

@@ -121,3 +114,3 @@ "modules": "commonjs"

[
"istanbul",
"babel-plugin-istanbul",
{

@@ -124,0 +117,0 @@ "include": [

@@ -6,3 +6,2 @@ /* eslint-disable global-require */

require('core-js/fn/array/find');
require('core-js/fn/reflect/construct');
require('core-js/es6/promise');

@@ -9,0 +8,0 @@ }

@@ -28,7 +28,5 @@ function walk(node, fn, options, items = []) {

Promise.resolve().then(() => {
const targets = [...set];
const list = host[key];
for (let i = 0; i < list.length; i += 1) {
if (list.indexOf(targets[i]) > -1) {
if (set.has(list[i])) {
invalidate(false);

@@ -35,0 +33,0 @@ break;

@@ -87,8 +87,2 @@ import property from './property';

// BUG: Babel v6 transpiled class breaks native custom elements
export function HTMLBridge(...args) {
return Reflect.construct(HTMLElement, args, this.constructor);
}
Object.setPrototypeOf(HTMLBridge.prototype, HTMLElement.prototype);
const connects = new WeakMap();

@@ -131,3 +125,3 @@

class Hybrid extends HTMLBridge {
class Hybrid extends HTMLElement {
static get name() { return tagName; }

@@ -134,0 +128,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc