ef.min.js 22.4 KB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.ef={})}(this,function(e){"use strict";var t=new RegExp("\\&[0-7]{1,3}","g"),r=new RegExp("\\&u\\[.*?\\]","g"),n=new RegExp("\\&u.{0,4}","g"),a=new RegExp("\\&x.{0,2}","g"),o=new RegExp("\\&","g"),i=new RegExp("\\&b","g"),s=new RegExp("\\&t","g"),u=new RegExp("\\&n","g"),c=new RegExp("\\&v","g"),l=new RegExp("\\&f","g"),p=new RegExp("\\&r","g"),f=function(){throw new SyntaxError("Octal escape sequences are not allowed in EFML.")},d=function(e){if(e=e.substr(3,e.length-4),!(e=parseInt(e,16)))throw new SyntaxError("Invalid Unicode escape sequence");try{return String.fromCodePoint(e)}catch(e){throw new SyntaxError("Undefined Unicode code-point")}},h=function(e){if(e=e.substring(2),!(e=parseInt(e,16)))throw new SyntaxError("Invalid Unicode escape sequence");return String.fromCharCode(e)},v=function(e){if(e="00"+e.substring(2),!(e=parseInt(e,16)))throw new SyntaxError("Invalid hexadecimal escape sequence");return String.fromCharCode(e)},b=function(e){for(var b=[],g=0,y=e.split("&&");g<y.length;g+=1){var m=y[g].replace(t,f).replace(r,d).replace(n,h).replace(a,v).replace(i,"\b").replace(s,"\t").replace(u,"\n").replace(c,"\v").replace(l,"\f").replace(p,"\r").replace(o,"");b.push(m)}return b.join("&")},g=">#%@.-+".split(""),y="__EFPLACEHOLDER__ $parent $key $data $element $refs $methods $mount $umount $subscribe $unsubscribe $update $destroy __DIRECTMOUNT__".split(" "),m=/\{\{.+?\}\}/g,N=/^(\t*)( *).*/,k=/#([^}]|}[^}])*$/,E=function(e,t){return void 0===t&&(t=-2),"Failed to parse eft template: "+e+". at line "+(t+1)},$=function(e){return!e.replace(/\s/,"")},w=function(e){return["number","boolean","string"].indexOf(typeof e)>-1},x=function(e){if(!e)return[e,!1];try{var t=JSON.parse(e);return-1===["number","boolean"].indexOf(typeof t)?[b(e),!0]:[t,!1]}catch(t){return[b(e),!0]}},_=function(e,t){null===t.offset&&(t.offset=e.match(/\s*/)[0],t.offset&&(t.offsetReg=new RegExp("^"+t.offset)))},D=function(e,t,r){if(t.offsetReg){var n=!1;if(e=e.replace(t.offsetReg,function(){return n=!0,""}),!n)throw new SyntaxError(E("Expected indent to be grater than 0 and less than "+(t.prevDepth+1)+", but got -1",r))}return e},O=function(e,t){if(!t.indentReg){var r=e.match(N)[2];r&&(t.indentReg=new RegExp(r,"g"))}},T=function(e,t,r){var n=0;t.indentReg&&(e=e.replace(/^\s*/,function(e){return e.replace(t.indentReg,"\t")}));var a=e.replace(/^\t*/,function(e){return n=e.length,""});if(/^\s/.test(a))throw new SyntaxError(E("Bad indent",r));return{depth:n,content:a}},R=function(e,t){for(var r=e,n=0;n<t;n++)r=r[r.length-1];return r},A=function(e){var t=(e=e.slice(2,e.length-2)).split("="),r=t[0],n=t.slice(1),a=r.trim().split("."),o=x(n.join("=").trim()),i=o[0],s=o[1];return w(i)&&(s||!s&&""!==i)?[a,i]:[a]},S=function(e){var t=e.split(m);if(1===t.length)return x(e)[0];var r=[];2!==t.length||t[0]||t[1]?r.push(t.map(b)):r.push(0);var n=e.match(m);return n&&r.push.apply(r,n.map(A)),r},j=function(e,t){t&&e.push(t)},C=function(e){var t=S(e);if(w(t))return[""+t];for(var r=t[0],n=t.slice(1),a=[],o=0;o<n.length;o++)j(a,r[o]),a.push(n[o]);return j(a,r[r.length-1]),a},P=function(e){return e.replace(/\./g," ")},L=function(e){var t={},r=e.replace(k,function(e){return t.ref=e.slice(1),""}).split("."),n=r[0],a=r.slice(1);return t.tag=n,t.class=S(a.join(".")),"string"==typeof t.class?t.class=P(t.class).trim():t.class[0]&&(t.class[0]=t.class[0].map(P)),t},q=function(e){var t=e.split("=");return{name:t.shift().trim(),value:S(t.join("=").trim())}},I=function(e){var t=e.split("=");return{name:t.shift().trim(),value:t.join("=").trim()}},U=function(e,t){switch(t){case"stop":e.s=1;break;case"stopImmediate":e.i=1;break;case"prevent":e.p=1;break;case"shift":e.h=1;break;case"alt":e.a=1;break;case"ctrl":e.c=1;break;case"meta":e.t=1;break;case"capture":e.u=1;break;default:console.warn("Abandoned unsupported event option '"+t+"'.")}},F=function(e,t,r){var n=parseInt(r,10);if(isNaN(n))return U(e,r);t.push(n)},H=function(e){var t={},r=[],n=e.split("."),a=n[0],o=n.slice(1);t.l=a;for(var i=0,s=o;i<s.length;i+=1){var u=s[i];F(t,r,u)}return r.length>0&&(t.k=r),t},M=function(e){var t=e.split(":"),r=t[0],n=t.slice(1).join(":");return n?[r.trim(),S(n)]:[r.trim()]},K=function(e){var t=e.line,r=e.ast,n=e.parsingInfo,a=e.i;if(!$(t)){O(t,n),_(t,n);var o=T(D(t,n,a),n,a),i=o.depth,s=o.content;if(s){if(i<0||i-n.prevDepth>1||i-n.prevDepth==1&&-1===["comment","tag"].indexOf(n.prevType)||"comment"!==n.prevType&&0===i&&n.topExists)throw new SyntaxError(E("Expected indent to be grater than 0 and less than "+(n.prevDepth+1)+", but got "+i,a));var u=s[0];if(s=s.slice(1),!n.topExists&&g.indexOf(u)>=0&&">"!==u)throw new SyntaxError(E("No top level entry",a));if(!s&&g.indexOf(u)>=0)throw new SyntaxError(E("Empty content",a));switch((i<n.prevDepth||i===n.prevDepth&&"tag"===n.prevType)&&(n.currentNode=R(r,i)),n.prevDepth=i,u){case">":n.topExists||(n.topExists=!0,n.minDepth=i);var c=L(s),l=[{t:c.tag}];c.class&&(l[0].a={},l[0].a.class=c.class),c.ref&&(l[0].r=c.ref),n.currentNode.push(l),n.currentNode=l,n.prevType="tag";break;case"#":var p=q(s),f=p.name,d=p.value;n.currentNode[0].a||(n.currentNode[0].a={}),n.currentNode[0].a[f]=d,n.prevType="attr";break;case"%":var h=q(s),v=h.name,b=h.value;n.currentNode[0].p||(n.currentNode[0].p={}),n.currentNode[0].p[v]=b,n.prevType="prop";break;case"@":var m=I(s),N=m.name,k=m.value;n.currentNode[0].e||(n.currentNode[0].e=[]);var w=H(N),x=M(k),A=x[0],S=x[1];w.m=A,S&&(w.v=S),n.currentNode[0].e.push(w),n.prevType="event";break;case".":(j=n.currentNode).push.apply(j,C(s)),n.prevType="text";break;case"-":if(-1!==y.indexOf(s))throw new SyntaxError(E("Reserved name '"+s+"' should not be used",a));n.currentNode.push({n:s,t:0}),n.prevType="node";break;case"+":n.currentNode.push({n:s,t:1}),n.prevType="list";break;default:n.prevType="comment"}}var j}},B=function(e){if(!e)throw new TypeError(E("Template required, but nothing given"));var t=typeof e;if("string"!==t)throw new TypeError(E("Expected a string, but got a(n) "+t));for(var r=e.split(/\r?\n/),n=[],a={indentReg:null,prevDepth:0,offset:null,offsetReg:null,prevType:"comment",currentNode:n,topExists:!1},o=0;o<r.length;o++)K({line:r[o],ast:n,parsingInfo:a,i:o});if(n[0])return n[0];throw new SyntaxError(E("Nothing to be parsed",r.length-1))},J=function(e,t){return t||(t=B),t(e)},z=function(e){return Array.isArray(e)?"array":typeof e},G=function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];for(var n="",a=0;a<t.length;a++)n+=e[a]+t[a];return n+e[e.length-1]},Q=function(e){return e.dataNode[e._key]},V=function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];if(!e)return Q(t[0]);var n=[e];return n.push.apply(n,t.map(Q)),G.apply(void 0,n)},W=Array.prototype,X={copy:function(e){return W.slice.call(e,0)},empty:function(e){return e.length=0,e},equals:function(e,t){if(!Array.isArray(t))return!1;if(e===t)return!0;if(e.length!==t.length)return!1;for(var r in e)if(e[r]!==t[r])return!1;return!0},pop:function(e){return W.pop.call(e)},push:function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];return W.push.apply(e,t)},remove:function(e,t){var r=W.indexOf.call(e,t);if(r>-1)return W.splice.call(e,r,1),t},reverse:function(e){return W.reverse.call(e)},rightUnique:function(e){for(var t=[],r=0;r<e.length;r++){for(var n=r+1;n<e.length;n++)e[r]===e[n]&&(n=r+=1);t.push(e[r])}return t},shift:function(e){return W.shift.call(e)},slice:function(e,t,r){return W.slice.call(e,t,r)},sort:function(e,t){return W.sort.call(e,t)},splice:function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];return W.splice.apply(e,t)},unshift:function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];return W.unshift.apply(e,t)}};window.Set&&Array.from?X.unique=function(e){return Array.from(new Set(e))}:X.unique=X.rightUnique;var Y=Object.assign||function(e,t){for(var r in t)e[r]=t[r];return e},Z=[],ee=[],te=[],re=0,ne=function(e){return Z.push.apply(Z,e)},ae=function(e){return ee.push(e)},oe=function(){return re+=1},ie=function(){for(var e=0,t=X.unique(Z);e<t.length;e+=1)(0,t[e])();X.empty(Z)},se=function(){for(var e=0,t=X.rightUnique(ee);e<t.length;e+=1)(0,t[e])();X.empty(ee)},ue=function(){if(0!==te.length){for(var e=0,t=X.unique(te);e<t.length;e+=1)(0,t[e])();X.empty(te)}},ce=function(e){return!e&&(re-=1)>0?re:(re=0,Z.length>0&&ie(),ee.length>0&&se(),te.length>0&&setTimeout(ue,0),re)},le=function(e){for(var t=e._path,r=e.handlers,n=e.subscribers,a=e.innerData,o=0,i=t;o<i.length;o+=1){var s=i[o];r[s]||(r[s]={}),n[s]||(n[s]={}),a[s]||(a[s]={}),r=r[s],n=n[s],a=a[s]}return{handlerNode:r,subscriberNode:n,dataNode:a}},pe=function(e,t,r){for(var n=0,a=e;n<a.length;n+=1){var o=a[n];if(!t[o]){var i={};Object.defineProperty(t,o,{get:function(){return i},set:function(e){oe(),Y(i,e),ce()},configurable:!r,enumerable:r})}t=t[o]}return t},fe=function(e){var t=e._path,r=e._key,n=e.data,a=e.handlers,o=e.subscribers,i=e.innerData,s=pe(t,n,!0),u=le({_path:t,handlers:a,subscribers:o,innerData:i}),c=u.handlerNode,l=u.subscriberNode,p=u.dataNode;return c[r]||(c[r]=[]),l[r]||(l[r]=[]),Object.prototype.hasOwnProperty.call(p,r)||(p[r]=""),{parentNode:s,handlerNode:c[r],subscriberNode:l[r],dataNode:p}},de=function(e,t){for(var r=e.split("."),n=r.pop(),a=0,o=r;a<o.length;a+=1){var i=o[a];t[i]||(t[i]={}),t=t[i]}return t[n]},he=function(e){var t=e.parentNode,r=e.dataNode,n=e.handlerNode,a=e.subscriberNode,o=e.state,i=e._key;Object.defineProperty(t,i,{get:function(){return r[i]},set:function(e){if(r[i]!==e){r[i]=e,ne(n),oe();for(var t=0,s=a;t<s.length;t+=1)(0,s[t])({state:o,value:e});ce()}},enumerable:!0})},ve=function(e){var t=e.bind,r=e.state,n=e.handlers,a=e.subscribers,o=e.innerData,i=X.copy(t[0]),s=i.pop(),u=fe({_path:i,_key:s,data:r.$data,handlers:n,subscribers:a,innerData:o}),c=u.parentNode,l=u.handlerNode,p=u.subscriberNode,f=u.dataNode;return Object.prototype.hasOwnProperty.call(c,s)||he({parentNode:c,dataNode:f,handlerNode:l,subscriberNode:p,state:r,_key:s}),t.length>1&&(c[s]=t[1]),{dataNode:f,handlerNode:l,subscriberNode:p,_key:s}},be=function(e,t){void 0===t&&(t={bubbles:!1,cancelable:!1});var r=document.createEvent("Event");return r.initEvent(e,t.bubbles,t.cancelable),r},ge=function(e){return["number","boolean","string"].indexOf(typeof e)>-1},ye=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)},me=function(e){var t=e.tag,r=e.ref,n=e.refs,a=e.svg,o=ye(t,a);return r&&Object.defineProperty(n,r,{value:o,enumerable:!0}),o},Ne=function(e){var t=e.val,r=e.state,n=e.handlers,a=e.subscribers,o=e.innerData,i=e.handler;if(Array.isArray(t)){var s=t[0],u=t.slice(1),c=[s],l=function(){return i(V.apply(void 0,c))};return c.push.apply(c,u.map(function(e){var t=ve({bind:e,state:r,handlers:n,subscribers:a,innerData:o}),i=t.dataNode,s=t.handlerNode,u=t._key;return s.push(l),{dataNode:i,_key:u}})),l}return function(){return t}},ke=function(e){var t=e.dataNode,r=e.handlerNode,n=e.subscriberNode,a=e._handler,o=e.state,i=e._key,s=e.value;if(t[i]!==s){t[i]=s;var u=X.copy(r);X.remove(u,a),ne(u),oe();for(var c=0,l=n;c<l.length;c+=1)(0,l[c])({state:o,value:s});ce()}},Ee=function(e){var t=e._handler,r=e.state,n=e.handlers,a=e.subscribers,o=e.innerData,i=e.element,s=e.key,u=e.expr,c=ve({bind:u,state:r,handlers:n,subscribers:a,innerData:o}),l=c.dataNode,p=c.handlerNode,f=c.subscriberNode,d=c._key,h=function(){return ke({dataNode:l,handlerNode:p,subscriberNode:f,_handler:t,state:r,_key:d,value:i.value})};"value"===s?(i.addEventListener("input",h,!0),i.addEventListener("keyup",h,!0),i.addEventListener("change",h,!0)):(i.addEventListener("change",function(){if(i.dispatchEvent(be("ef-change-event")),"INPUT"===i.tagName&&"radio"===i.type&&""!==i.name){var e=document.querySelectorAll("input[name="+i.name+"]");if(e){var t=X.copy(e);X.remove(t,i);for(var r=0,n=t;r<n.length;r+=1)n[r].dispatchEvent(be("ef-change-event"))}}},!0),i.addEventListener("ef-change-event",function(){return ke({dataNode:l,handlerNode:p,subscriberNode:f,_handler:t,state:r,_key:d,value:i.checked})}))},$e=function(e,t){return"class"===t?function(r){if(!(r=(""+r).replace(/\s+/g," ").trim()))return e.removeAttribute(t);e.setAttribute(t,r)}:function(r){if(""===r)return e.removeAttribute(t);e.setAttribute(t,r)}},we=function(e){var t=e.element,r=e.attr,n=e.key,a=e.state,o=e.handlers,i=e.subscribers,s=e.innerData;if(ge(r))t.setAttribute(n,r);else{var u=$e(t,n);ne([Ne({val:r,state:a,handlers:o,subscribers:i,innerData:s,handler:u})])}},xe=function(e){var t=e.element,r=e.prop,n=e.key,a=e.state,o=e.handlers,i=e.subscribers,s=e.innerData;if(ge(r))t[n]=r;else{var u=Ne({val:r,state:a,handlers:o,subscribers:i,innerData:s,handler:function(e){t[n]=e}});"value"!==n&&"checked"!==n||r[0]||Ee({_handler:u,state:a,handlers:o,subscribers:i,innerData:s,element:t,key:n,expr:r[1]}),ne([u])}},_e=function(e){return e},De=function(e){var t=e.element,r=e.event,n=e.state,a=e.handlers,o=e.subscribers,i=e.innerData,s=r.l,u=r.m,c=r.s,l=r.i,p=r.p,f=r.h,d=r.a,h=r.c,v=r.t,b=r.u,g=r.k,y=r.v,m=Ne({val:y,state:n,handlers:a,subscribers:o,innerData:i,handler:_e});t.addEventListener(s,function(e){!!f!=!!e.shiftKey||!!d!=!!e.altKey||!!h!=!!e.ctrlKey||!!v!=!!e.metaKey||g&&-1===g.indexOf(e.which)||(c&&e.stopPropagation(),l&&e.stopImmediatePropagation(),p&&e.preventDefault(),n.$methods[u]&&n.$methods[u]({e:e,value:m(),state:n}))},!!b)},Oe=function(e){var t=e.info,r=e.state,n=e.innerData,a=e.refs,o=e.handlers,i=e.subscribers,s=e.svg,u=t.t,c=t.a,l=t.p,p=t.e,f=t.r,d=me({tag:u,ref:f,refs:a,svg:s});for(var h in c)we({element:d,attr:c[h],key:h,state:r,handlers:o,subscribers:i,innerData:n});for(var v in l)xe({element:d,prop:l[v],key:v,state:r,handlers:o,subscribers:i,innerData:n});for(var b in p)De({element:d,event:p[b],state:r,handlers:o,subscribers:i,innerData:n});return d},Te=Node.prototype,Re={before:function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];var n=document.createDocumentFragment();t.reverse();for(var a=0,o=t;a<o.length;a+=1){var i=o[a];Te.appendChild.call(n,i)}Te.insertBefore.call(e.parentNode,n,e)},after:function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];for(var n=document.createDocumentFragment(),a=0,o=t;a<o.length;a+=1){var i=o[a];Te.appendChild.call(n,i)}e.nextSibling?Te.insertBefore.call(e.parentNode,n,e.nextSibling):Te.appendChild.call(e.parentNode,n)},append:function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];if(-1!==[1,9,11].indexOf(e.nodeType)){for(var n=document.createDocumentFragment(),a=0,o=t;a<o.length;a+=1){var i=o[a];Te.appendChild.call(n,i)}Te.appendChild.call(e,n)}},remove:function(e){Te.removeChild.call(e.parentNode,e)}},Ae={empty:function(){var e=this;oe();for(var t=0,r=X.copy(e);t<r.length;t+=1)r[t].$destroy();ce(),X.empty(this)},pop:function(){if(0!==this.length){var e=X.pop(this);return e.$umount(),e}},push:function(e){for(var t=e.state,r=e.key,n=e.anchor,a=[],o=arguments.length-1;o-- >0;)a[o]=arguments[o+1];var i=[];oe();for(var s=0,u=a;s<u.length;s+=1){var c=u[s];X.push(i,c.$mount({parent:t,key:r}))}return 0===this.length?Re.after.apply(Re,[n].concat(i)):Re.after.apply(Re,[this[this.length-1].__EFPLACEHOLDER__].concat(i)),ce(),X.push.apply(X,[this].concat(a))},remove:function(e){if(-1!==this.indexOf(e))return e.$umount(),e},reverse:function(e){var t=e.state,r=e.key,n=e.anchor;if(0===this.length)return this;var a=X.copy(this),o=[];oe();for(var i=a.length-1;i>=0;i--)a[i].$umount(),X.push(o,a[i].$mount({parent:t,key:r}));return X.push.apply(X,[this].concat(X.reverse(a))),Re.after.apply(Re,[n].concat(o)),ce(),this},shift:function(){if(0!==this.length){var e=X.shift(this);return e.$umount(),e}},sort:function(e,t){var r=e.state,n=e.key,a=e.anchor;if(0===this.length)return this;var o=X.copy(X.sort(this,t)),i=[];oe();for(var s=0,u=o;s<u.length;s+=1){var c=u[s];c.$umount(),X.push(i,c.$mount({parent:r,key:n}))}return X.push.apply(X,[this].concat(o)),Re.after.apply(Re,[a].concat(i)),ce(),this},splice:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(0===this.length)return this;var r=X.splice.apply(X,[X.copy(this)].concat(e));oe();for(var n=0,a=r;n<a.length;n+=1)a[n].$umount();return ce(),r},unshift:function(e){for(var t=e.state,r=e.key,n=e.anchor,a=[],o=arguments.length-1;o-- >0;)a[o]=arguments[o+1];if(0===this.length)return(l=this).push.apply(l,a).length;var i=[];oe();for(var s=0,u=a;s<u.length;s+=1){var c=u[s];X.push(i,c.$mount({parent:t,key:r}))}return Re.after.apply(Re,[n].concat(i)),ce(),X.unshift.apply(X,[this].concat(a));var l}},Se=function(e,t){return Object.defineProperties(e,{empty:{value:Ae.empty},pop:{value:Ae.pop},push:{value:Ae.push.bind(e,t)},remove:{value:Ae.remove},reverse:{value:Ae.reverse.bind(e,t)},shift:{value:Ae.shift},sort:{value:Ae.sort.bind(e,t)},splice:{value:Ae.splice},unshift:{value:Ae.unshift.bind(e,t)}}),e},je=function(e){var t=e.node,r=e.state,n=e.handlers,a=e.subscribers,o=e.innerData,i=e.element,s=document.createTextNode(""),u=ve({bind:t,state:r,handlers:n,subscribers:a,innerData:o}),c=u.dataNode,l=u.handlerNode,p=u._key,f=function(){s.textContent=c[p]};l.push(f),ne([f]),Re.append(i,s)},Ce=function(e){var t=e.state,r=e.children,n=e.key,a=e.anchor,o=e.value;r[n]!==o&&(o&&(o.$parent,o.$element.contains(t.$element))||(oe(),r[n]&&r[n].$umount(),r[n]=o,o&&o.$mount({target:a,parent:t,option:"before",key:n}),ce()))},Pe=function(e){var t=e.state,r=e.key,n=e.children,a=e.anchor;Object.defineProperty(t,r,{get:function(){return n[r]},set:function(e){Ce({state:t,children:n,key:r,anchor:a,value:e})},enumerable:!0,configurable:!0})},Le=function(e){var t=e.state,r=e.children,n=e.key,a=e.anchor,o=e.value;o=o?X.copy(o):[];var i=document.createDocumentFragment();if(oe(),r[n]){for(var s=0,u=o;s<u.length;s+=1){var c=u[s];if(c.$element.contains(t.$element))return;c.$umount(),Re.append(i,c.$mount({parent:t,key:n}))}for(var l=0,p=X.copy(r[n]);l<p.length;l+=1)p[l].$umount()}else for(var f=0,d=o;f<d.length;f+=1){var h=d[f];Re.append(i,h.$mount({parent:t,key:n}))}r[n].length=0,X.push.apply(X,[r[n]].concat(o)),Re.after(a,i),ce()},qe=function(e){var t=e.state,r=e.key,n=e.children,a=e.anchor;n[r]=Se([],{state:t,key:r,anchor:a}),Object.defineProperty(t,r,{get:function(){return n[r]},set:function(e){n[r]&&X.equals(n[r],e)||Le({state:t,children:n,key:r,anchor:a,value:e})},enumerable:!0,configurable:!0})},Ie=function(e){var t=e.node,r=e.nodeType,n=e.element,a=e.state,o=e.innerData,i=e.refs,s=e.children,u=e.handlers,c=e.subscribers,l=e.svg,p=e.create;switch(r){case"string":Re.append(n,document.createTextNode(t));break;case"array":"object"===z(t[0])?Re.append(n,p({node:t,state:a,innerData:o,refs:i,children:s,handlers:u,subscribers:c,svg:l,create:p})):je({node:t,state:a,handlers:u,subscribers:c,innerData:o,element:n});break;case"object":var f=document.createTextNode("");if(0===t.t)Pe({state:a,key:t.n,children:s,anchor:f});else{if(1!==t.t)throw new TypeError("Not a standard ef.js AST: Unknown mounting point type '"+t.t+"'");qe({state:a,key:t.n,children:s,anchor:f})}Re.append(n,f);break;default:throw new TypeError("Not a standard ef.js AST: Unknown node type '"+r+"'")}},Ue=function(e){var t=e.node,r=e.state,n=e.innerData,a=e.refs,o=e.children,i=e.handlers,s=e.subscribers,u=e.svg,c=e.create,l=t[0],p=t.slice(1);u||"svg"!==l.t||(u=!0);for(var f=Oe({info:l,state:r,innerData:n,refs:a,handlers:i,subscribers:s,svg:u}),d=0,h=p;d<h.length;d+=1){var v=h[d];Ie({node:v,nodeType:z(v),element:f,state:r,innerData:n,refs:a,children:o,handlers:i,subscribers:s,svg:u,create:c})}return f},Fe=function(e,t,r){var n=de(e,r);X.remove(n,t)},He=function(){return function(e){var t=this,r={},n={},a={},o={},i={},s={},u={placeholder:document.createTextNode(""),replace:[],parent:null,key:null},c=document.createDocumentFragment(),l=function(){if(u.replace.length>0){for(var e=0,t=u.replace;e<t.length;e+=1){var r=t[e];Re.remove(r)}X.empty(u.replace)}Re.before(u.placeholder,u.element)};oe(),Object.defineProperties(this,{$element:{get:function(){return u.element},configurable:!0},__EFPLACEHOLDER__:{get:function(){return u.placeholder},configurable:!0},$parent:{get:function(){return u.parent},configurable:!0},$key:{get:function(){return u.key},configurable:!0},$methods:{get:function(){return o},set:function(e){Y(o,e)},configurable:!0},$refs:{value:n,configurable:!0},$mount:{value:function(e){var t=e.target,r=e.option,n=e.parent,a=e.key;if("string"==typeof t&&(t=document.querySelector(t)),oe(),u.parent&&this.$umount(),n||(n=t),a||(a="__DIRECTMOUNT__"),u.parent=n,u.key=a,ae(l),!t)return ce(),u.placeholder;switch(r){case"before":Re.before(t,u.placeholder);break;case"after":Re.after(t,u.placeholder);break;case"replace":Re.before(t,u.placeholder),u.replace.push(t);break;default:Re.append(t,u.placeholder)}return ce()},configurable:!0},$umount:{value:function(){var e=u.parent,t=u.key;if(u.parent=null,u.key=null,oe(),e&&"__DIRECTMOUNT__"!==t&&e[t]){if(!Array.isArray(e[t]))return e[t]=null,ce();X.remove(e[t],this)}return Re.append(c,u.placeholder),ae(l),ce()},configurable:!0},$subscribe:{value:function(e,r){var n=e.split("."),o=ve({bind:[n],state:t,handlers:i,subscribers:s,innerData:a}),u=o.dataNode,c=o.subscriberNode,l=o._key;r({state:t,value:u[l]}),c.push(r)},configurable:!0},$unsubscribe:{value:function(e,t){Fe(e,t,s)},configurable:!0}}),pe(["$data"],this,!1),u.element=Ue({node:e,state:this,innerData:a,refs:n,children:r,handlers:i,subscribers:s,svg:!1,create:Ue}),Re.append(c,u.placeholder),ae(l),ce()}}();Object.defineProperties(He.prototype,{$update:{value:function(e){oe();var t=Y({},e);t.$data&&(Y(this.$data,t.$data),delete t.$data),t.$methods&&(Y(this.$methods,t.$methods),delete t.$methods),Y(this,t),ce()}},$destroy:{value:function(){var e=this,t=this,r=t.$element,n=t.__EFPLACEHOLDER__;oe(),this.$umount();for(var a in e)e[a]=null,delete e[a];return ae(function(){Re.remove(r),Re.remove(n)}),delete this.$element,delete this.__EFPLACEHOLDER__,delete this.$parent,delete this.$key,delete this.$data,delete this.$methods,delete this.$refs,delete this.$mount,delete this.$umount,delete this.$subscribe,delete this.$unsubscribe,ce()}}});var Me=function(e){var t=e;return function(e){function r(r){oe(),e.call(this,t),r&&this.$update(r),ce()}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r}(He)},Ke=B,Be=function(e){var t=z(e);if("string"===t)e=J(e,Ke);else if("array"!==t)throw new TypeError("Cannot create new component without proper template or AST!");return Me(e)};e.create=Be,e.onNextRender=function(e){return te.push(e)},e.inform=oe,e.exec=ce,e.bundle=function(e){return oe(),ce(e(oe,ce))},e.setParser=function(e){Ke=e},e.parseEft=B,e.t=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return Be(G.apply(void 0,e))},e.version="0.6.2",Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=ef.min.js.map