/* Inspire Tree DOM * @version 4.0.3 * https://github.com/helion3/inspire-tree-dom * @copyright Copyright 2015 Helion3, and other contributors * @license Licensed under MIT * see https://github.com/helion3/inspire-tree-dom/blob/master/LICENSE */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("lodash"),require("inspire-tree")):"function"==typeof define&&define.amd?define(["lodash","inspire-tree"],t):e.InspireTreeDOM=t(e._,e.InspireTree)}(this,function(e,t){"use strict";function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e,t){return t={exports:{}},e(t,t.exports),t.exports}function o(t,n){var r=n.dirty||!1;return r||e.each(Object.keys(n),function(e){if("dirty"!==e&&n[e]!==t[e])return r=!0,!1}),r}t=t&&t.hasOwnProperty("default")?t.default:t;var i=r(function(e,t){function n(e){return!c(e.prototype)&&!c(e.prototype.render)}function r(e){var t=typeof e;return"string"===t||"number"===t}function o(e){return c(e)||s(e)}function i(e){return s(e)||!1===e||u(e)||c(e)}function a(e){return"function"==typeof e}function d(e){return"string"==typeof e}function l(e){return"number"==typeof e}function s(e){return null===e}function u(e){return!0===e}function c(e){return void 0===e}function p(e){return"object"==typeof e}function f(e){throw e||(e=st),new Error("Inferno Error: "+e)}function h(e,t){var n={};if(e)for(var r in e)n[r]=e[r];if(t)for(var o in t)n[o]=t[o];return n}function v(){this.listeners=[]}function g(e,t,n,r){var o=xt.get(e);if(n)o||((o={items:new Map,docEvent:null}).docEvent=_(e,o),xt.set(e,o)),t||Nt&&"onClick"===e&&N(r),o.items.set(r,n);else if(o){var i=o.items;i.delete(r)&&0===i.size&&(document.removeEventListener(y(e),o.docEvent),xt.delete(e))}}function m(e,t,n,r,o,i){for(var a=t;r>0;){if(o&&a.disabled)return;var d=n.get(a);if(d&&(r--,i.dom=a,d.event?d.event(d.data,e):d(e),e.cancelBubble))return;if(null===(a=a.parentNode))return}}function y(e){return e.substr(2).toLowerCase()}function b(){this.cancelBubble=!0,this.stopImmediatePropagation()}function _(e,t){var n=function(e){var n=t.items.size;if(n>0){e.stopPropagation=b;var r={dom:document};try{Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return r.dom}})}catch(e){}m(e,e.target,t.items,n,"click"===e.type,r)}};return document.addEventListener(y(e),n),n}function k(){}function N(e){e.onclick=k}function x(e){return"checkbox"===e||"radio"===e}function C(e){var t=this.vNode,n=t.props||Mt,r=t.dom,o=n.value;if(n.onInput){var i=n.onInput;i.event?i.event(i.data,e):i(e)}else n.oninput&&n.oninput(e);var a=this.vNode.props||Mt;o!==a.value&&O(a,r)}function w(e){var t=(this.vNode.props||Mt).onChange;t.event?t.event(t.data,e):t(e)}function D(e){e.stopPropagation();var t=this.vNode,n=t.props||Mt,r=t.dom;if(n.onClick){var o=n.onClick;o.event?o.event(o.data,e):o(e)}else n.onclick&&n.onclick(e);O(this.vNode.props||Mt,r)}function S(e,t,n,r,o){O(n,t),o&&(t.vNode=e,r&&(x(n.type)?(t.onclick=D,t.onclick.wrapped=!0):(t.oninput=C,t.oninput.wrapped=!0),n.onChange&&(t.onchange=w,t.onchange.wrapped=!0)))}function O(e,t){var n=e.type,r=e.value,i=e.checked,a=e.multiple,d=e.defaultValue,l=!o(r);n&&n!==t.type&&t.setAttribute("type",n),a&&a!==t.multiple&&(t.multiple=a),o(d)||l||(t.defaultValue=d+""),x(n)?(l&&(t.value=r),o(i)||(t.checked=i)):l&&t.value!==r?(t.defaultValue=r,t.value=r):o(i)||(t.checked=i)}function M(e,t){if("optgroup"===e.type){var n=e.children;if(ct(n))for(var r=0,o=n.length;r0?S(t,n,r,o,i):(2048&e)>0?P(t,n,r,o,i):(1024&e)>0&&A(t,n,r,o,i)}function j(e){return e.type&&x(e.type)?!o(e.checked):!o(e.value)}function F(e){for(var t=e.firstChild;t;)if(8===t.nodeType)if("!"===t.data){var n=document.createTextNode("");e.replaceChild(n,t),t=t.nextSibling}else{var r=t.previousSibling;e.removeChild(t),t=r||e.firstChild}else t=t.nextSibling}function $(e,t,n,r,o,i){var a=e.type,d=e.ref,l=e.props||Mt;if(i){var s=t.namespaceURI===vt,u=Me(e,a,l,r,s,n),c=u._lastInput;u._vNode=e,q(c,t,n,u._childContext,s),e.dom=c.dom,De(e,d,u,n),u._updating=!1,pt.findDOMNodeEnabled&&Dt.set(u,t)}else{var p=Pe(e,a,l,r);q(p,t,n,r,o),e.children=p,e.dom=p.dom,Se(l,d,t,n)}return t}function W(e,t,n,r,a){var d=e.children,l=e.props,s=e.className,u=e.flags,c=e.ref;if(a=a||(128&u)>0,1!==t.nodeType||t.tagName.toLowerCase()!==e.type){var p=xe(e,null,n,r,a);return e.dom=p,je(t.parentNode,p,t),p}if(e.dom=t,i(d)?null===t.firstChild||Ke(t,l)||(t.textContent=""):B(d,t,n,r,a),l){var f=!1,h=(3584&u)>0;h&&(f=j(l));for(var v in l)ge(v,null,l[v],t,a,f);h&&R(u,e,t,l,!0,f)}return o(s)?""!==t.className&&t.removeAttribute("class"):a?t.setAttribute("class",s):t.className=s,c&&Oe(t,c,n),t}function B(e,t,n,o,i){F(t);var a=t.firstChild;if(r(e))s(a)||3!==a.nodeType?""===e?t.appendChild(document.createTextNode("")):t.textContent=e:a.nodeValue!==e&&(a.nodeValue=e),s(a)||(a=a.nextSibling);else if(ct(e))for(var d=0,l=e.length;d0):3970&i?W(e,t,n,r,o):1&i?H(e,t):4096&i?K(e,t):f()}function z(e,t,n){if(!s(t)){var r=t.firstChild;if(!s(r)){for(q(e,r,n,Mt,!1),r=t.firstChild;r=r.nextSibling;)t.removeChild(r);return!0}}return!1}function G(e,t,n,r){var o=e.type,i=wt.get(o);if(!c(i)){var a=e.key,d=null===a?i.nonKeyed:i.keyed.get(a);if(!c(d)){var l=d.pop();if(!c(l))return de(l,e,null,t,n,r,!0),e.dom}}return null}function Y(e){var t=e.type,n=e.key,r=wt.get(t);if(c(r)&&(r={keyed:new Map,nonKeyed:[]},wt.set(t,r)),s(n))r.nonKeyed.push(e);else{var o=r.keyed.get(n);c(o)&&(o=[],r.keyed.set(n,o)),o.push(e)}}function J(e,t,n,r){var o=e.type,i=Ct.get(o);if(!c(i)){var a=e.key,d=null===a?i.nonKeyed:i.keyed.get(a);if(!c(d)){var l=d.pop();if(!c(l)&&!se(l,e,null,t,n,r,(4&e.flags)>0,!0))return e.dom}}return null}function Q(e){var t=e.ref;if(!(t&&(t.onComponentWillMount||t.onComponentWillUnmount||t.onComponentDidMount||t.onComponentWillUpdate||t.onComponentDidUpdate))){var n=e.type,r=e.key,o=Ct.get(n);if(c(o)&&(o={keyed:new Map,nonKeyed:[]},Ct.set(n,o)),s(r))o.nonKeyed.push(e);else{var i=o.keyed.get(r);c(i)&&(i=[],o.keyed.set(r,i)),i.push(e)}}}function X(e,t,n,r,d){var l=e.flags,u=e.dom;if(28&l){var f=e.children,h=(4&l)>0,v=e.props||Mt,g=e.ref;d||(h?f._unmounted||(s(pt.beforeUnmount)||pt.beforeUnmount(e),c(f.componentWillUnmount)||f.componentWillUnmount(),g&&!d&&g(null),f._unmounted=!0,pt.findDOMNodeEnabled&&Dt.delete(f),X(f._lastInput,null,f._lifecycle,!1,d)):(o(g)||o(g.onComponentWillUnmount)||g.onComponentWillUnmount(u,v),X(f,null,n,!1,d))),pt.recyclingEnabled&&!h&&(t||r)&&Q(e)}else if(3970&l){var m=e.ref,y=e.props;!d&&a(m)&&m(null);var b=e.children;if(!o(b))if(ct(b))for(var _=0,k=b.length;_0;28&d?se(e,t,n,r,o,i,s,a):Ee(n,we(t,null,r,o,i,s),e,r,a)}else 3970&l?3970&d?de(e,t,n,r,o,i,a):Ee(n,xe(t,null,r,o,i),e,r,a):1&l?1&d?ue(e,t):Ee(n,ke(t,null),e,r,a):4096&l?4096&d?ce(e,t):Ee(n,Ne(t,null),e,r,a):Te(e,t,n,r,o,i,a)}}function ae(e,t,n,r){Qe(e)?X(e,t,n,!0,r):ct(e)?$e(t,e,n,r):t.textContent=""}function de(e,t,n,r,i,a,d){var l=t.type;if(e.type!==l)Re(e,t,n,r,i,a,d);else{var s=e.dom,u=e.props,c=t.props,p=e.children,f=t.children,h=e.flags,v=t.flags,g=t.ref,m=e.className,y=t.className;if(t.dom=s,a=a||(128&v)>0,p!==f&&le(h,v,p,f,s,r,i,!0===a&&"foreignObject"!==t.type,d),u!==c){var b=u||Mt,_=c||Mt,k=!1;if(_!==Mt){var N=(3584&v)>0;N&&(k=j(_));for(var x in _){var C=_[x];ge(x,b[x],C,s,a,k)}N&&R(v,t,s,_,d,k)}if(b!==Mt)for(var w in b)o(_[w])&&!o(b[w])&&be(w,b[w],s,v)}m!==y&&(o(y)?s.removeAttribute("class"):a?s.setAttribute("class",y):s.className=y),g&&(e.ref!==g||d)&&Oe(s,g,r)}}function le(e,t,n,o,a,d,l,s,u){var c=!1,p=!1;if(64&t?c=!0:(32&e)>0&&(32&t)>0?(p=!0,c=!0):i(o)?ae(n,a,d,u):i(n)?r(o)?Le(a,o):ct(o)?Ce(o,a,d,l,s):_e(o,a,d,l,s):r(o)?r(n)?Ve(a,o):(ae(n,a,d,u),Le(a,o)):ct(o)?ct(n)?(c=!0,Be(n,o)&&(p=!0)):(ae(n,a,d,u),Ce(o,a,d,l,s)):ct(n)?($e(a,n,d,u),_e(o,a,d,l,s)):Qe(o)&&(Qe(n)?ie(n,o,a,d,l,s,u):(ae(n,a,d,u),_e(o,a,d,l,s))),c){var f=n.length,h=o.length;0===f?h>0&&Ce(o,a,d,l,s):0===h?$e(a,n,d,u):p?fe(n,o,a,d,l,s,u,f,h):pe(n,o,a,d,l,s,u,f,h)}}function se(e,t,n,a,d,l,u,v){var g=e.type,m=t.type,y=e.key,b=t.key;if(g!==m||y!==b)return Re(e,t,n,a,d,l,v),!1;var _=t.props||Mt;if(u){var k=e.children;if(k._updating=!0,k._unmounted){if(s(n))return!0;je(n,we(t,null,a,d,l,(4&t.flags)>0),e.dom)}else{var N=!c(k.componentDidUpdate),x=k.state,C=N?h(x,null):x,w=k.props;t.children=k,k._isSVG=l;var D=k._lastInput,S=k._updateComponent(C,x,w,_,d,!1,!1);if(k._unmounted)return!1;var O,M=!0;o(k.getChildContext)||(O=k.getChildContext()),O=o(O)?d:h(d,O),k._childContext=O,i(S)?S=Ye():S===lt?(S=D,M=!1):r(S)?S=Je(S,null):ct(S)?f():p(S)&&(s(S.dom)||(S=ze(S))),28&S.flags?S.parentVNode=t:28&D.flags&&(D.parentVNode=t),k._lastInput=S,k._vNode=t,M&&(ie(D,S,n,a,O,l,v),N&&k.componentDidUpdate&&k.componentDidUpdate(w,C),s(pt.afterUpdate)||pt.afterUpdate(t),pt.findDOMNodeEnabled&&Dt.set(k,S.dom)),t.dom=S.dom}k._updating=!1}else{var T=!0,E=e.props,P=t.ref,L=!o(P),V=e.children,I=V;t.dom=e.dom,t.children=V,y!==b?T=!0:L&&!o(P.onComponentShouldUpdate)&&(T=P.onComponentShouldUpdate(E,_)),!1!==T&&(L&&!o(P.onComponentWillUpdate)&&P.onComponentWillUpdate(E,_),i(I=m(_,d))?I=Ye():r(I)&&I!==lt?I=Je(I,null):ct(I)?f():p(I)&&(s(I.dom)||(I=ze(I))),I!==lt&&(ie(V,I,n,a,d,l,v),t.children=I,L&&!o(P.onComponentDidUpdate)&&P.onComponentDidUpdate(E,_),t.dom=I.dom)),28&I.flags?I.parentVNode=t:28&V.flags&&(V.parentVNode=t)}return!1}function ue(e,t){var n=t.children,r=e.dom;t.dom=r,e.children!==n&&(r.nodeValue=n)}function ce(e,t){t.dom=e.dom}function pe(e,t,n,r,o,i,a,d,l){for(var s=d>l?l:d,u=0;ul)for(u=s;uy||k>b)break e;N=e[_],(x=t[k]).dom&&(t[k]=x=ze(x))}for(;C.key===w.key;){if(ie(C,w,n,r,o,i,a),y--,b--,_>y||k>b)break e;C=e[y],(w=t[b]).dom&&(t[b]=w=ze(w))}}if(_>y){if(k<=b)for(v=(g=b+1)b)for(;_<=y;)X(e[_++],n,r,!1,a);else{var D=y-_+1,S=b-k+1,O=new Array(S);for(u=0;up?M=!0:T=p,h.dom&&(t[p]=h=ze(h)),ie(f,h,n,r,o,i,a),E++,e[u]=null;break}}else{var P=new Map;for(u=k;u<=b;u++)P.set(t[u].key,u);for(u=_;u<=y;u++)f=e[u],Ep?M=!0:T=p,h.dom&&(t[p]=h=ze(h)),ie(f,h,n,r,o,i,a),E++,e[u]=null))}if(D===d&&0===E)for($e(n,e,r,a);k0;)s(f=e[_++])||(X(f,n,r,!0,a),u--);if(M){var L=he(O);for(p=L.length-1,u=S-1;u>=0;u--)-1===O[u]?((m=t[T=u+k]).dom&&(t[T]=m=ze(m)),g=T+1,Ae(n,_e(m,null,r,o,i),g=0;u--)-1===O[u]&&((m=t[T=u+k]).dom&&(t[T]=m=ze(m)),g=T+1,Ae(n,_e(m,null,r,o,i),g0&&(a[t]=d[r-1]),d[r]=t)}}for(o=d[(r=d.length)-1];r-- >0;)d[r]=o,o=a[o];return d}function ve(e){return"o"===e[0]&&"n"===e[1]}function ge(e,t,n,r,i,a){if(t!==n){if(_t.has(e)||a&&"value"===e)return;if(mt.has(e))r[e="autoFocus"===e?e.toLowerCase():e]=!!n;else if(gt.has(e)){var d=o(n)?"":n;r[e]!==d&&(r[e]=d)}else if(ve(e))me(e,t,n,r);else if(o(n))r.removeAttribute(e);else if("style"===e)ye(t,n,r);else if("dangerouslySetInnerHTML"===e){var l=t&&t.__html,s=n&&n.__html;l!==s&&(o(s)||He(r,s)||(r.innerHTML=s))}else i&&yt.has(e)?r.setAttributeNS(yt.get(e),e,n):r.setAttribute(e,n)}}function me(e,t,n,r){if(t!==n)if(kt.has(e))g(e,t,n,r);else{var i=e.toLowerCase(),d=r[i];if(d&&d.wrapped)return;if(a(n)||o(n))r[i]=n;else{var l=n.event;l&&a(l)?r[i]=function(e){l(n.data,e)}:f()}}}function ye(e,t,n){var r,i,a=n.style;if(d(t))a.cssText=t;else if(o(e)||d(e))for(r in t)i=t[r],a[r]=!l(i)||bt.has(r)?i:i+"px";else{for(r in t)(i=t[r])!==e[r]&&(a[r]=!l(i)||bt.has(r)?i:i+"px");for(r in e)o(t[r])&&(a[r]="")}}function be(e,t,n,r){"value"===e?n.value=2048&r?null:"":"style"===e?n.removeAttribute("style"):ve(e)?g(e,t,null,n):n.removeAttribute(e)}function _e(e,t,n,r,o){var i=e.flags;return 3970&i?xe(e,t,n,r,o):28&i?we(e,t,n,r,o,(4&i)>0):4096&i?Ne(e,t):1&i?ke(e,t):void f()}function ke(e,t){var n=document.createTextNode(e.children);return e.dom=n,s(t)||Ie(t,n),n}function Ne(e,t){var n=document.createTextNode("");return e.dom=n,s(t)||Ie(t,n),n}function xe(e,t,n,o,a){var d;if(pt.recyclingEnabled&&(d=G(e,n,o,a),!s(d)))return s(t)||Ie(t,d),d;var l=e.flags;a=a||(128&l)>0,d=Ue(e.type,a);var u=e.children,c=e.props,p=e.className,f=e.ref;if(e.dom=d,!i(u))if(r(u))Le(d,u);else{var h=!0===a&&"foreignObject"!==e.type;ct(u)?Ce(u,d,n,o,h):Qe(u)&&_e(u,d,n,o,h)}if(!s(c)){var v=!1,g=(3584&l)>0;g&&(v=j(c));for(var m in c)ge(m,null,c[m],d,a,v);g&&R(l,e,d,c,!0,v)}return null!==p&&(a?d.setAttribute("class",p):d.className=p),s(f)||Oe(d,f,n),s(t)||Ie(t,d),d}function Ce(e,t,n,r,o){for(var a=0,d=e.length;a0&&!o(t[0])&&!o(t[0].key)&&e.length>0&&!o(e[0])&&!o(e[0].key)}function He(e,t){var n=document.createElement("i");return n.innerHTML=t,n.innerHTML===e.innerHTML}function Ke(e,t){return Boolean(t&&t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html&&He(e,t.dangerouslySetInnerHTML.__html))}function qe(e,t,r,o,i,a,d,l){16&e&&(e=n(t)?4:8);var s={children:void 0===o?null:o,className:void 0===r?null:r,dom:null,flags:e,key:void 0===a?null:a,props:void 0===i?null:i,ref:void 0===d?null:d,type:t};return!0!==l&&at(s),null!==pt.createVNode&&pt.createVNode(s),s}function ze(e){var t,n=e.flags;if(28&n){var o,a=e.props;if(s(a))o=Mt;else{o={};for(var d in a)o[d]=a[d]}var l=(t=qe(n,e.type,null,null,o,e.key,e.ref,!0)).props,u=l.children;if(u)if(ct(u)){var c=u.length;if(c>0){for(var p=[],f=0;f0;)n[o]=arguments[o+2];var a=n,d=n.length;d>0&&!c(n[0])&&(t||(t={}),1===d&&(a=n[0]),c(a)||(t.children=a));var l;if(ct(e)){for(var s=[],u=0,p=e.length;u0){for(var k=[],N=0;N<_;N++){var x=b[N];r(x)?k.push(x):!i(x)&&Qe(x)&&k.push(ze(x))}y.children=k}}else Qe(b)&&(y.children=ze(b))}l.children=null}else 3970&f?(a=t&&!c(t.children)?t.children:e.children,l=qe(f,e.type,v,a,e.props||t?h(e.props,t):Mt,g,m,!1)):1&f&&(l=Je(e.children,g))}return l}function Ye(){return qe(4096,null)}function Je(e,t){return qe(1,null,null,e,null,t)}function Qe(e){return!!e.flags}function Xe(e,t){return t.key=e,t}function Ze(e,t){return l(e)&&(e="."+e),s(t.key)||"."===t.key[0]?Xe(e,t):t}function et(e,t){return t.key=e+t.key,t}function tt(e,t,n,o){for(var a=e.length;n0&&(N.dom=D)}else e.state=e._pendingState,e._pendingState=null;i(l)&&l.call(e)}}Object.defineProperty(t,"__esModule",{value:!0});var g="$NO_OP",m="a runtime error occured! Use Inferno in development environment to find the error.",y=Array.isArray;p.prototype.addListener=function(e){this.listeners.push(e)},p.prototype.trigger=function(){for(var e,t=this.listeners;e=t.shift();)e()};var b=new Map,_=Promise.resolve(),k=function(e,t){this.state=null,this._blockRender=!1,this._blockSetState=!0,this._pendingSetState=!1,this._pendingState=null,this._lastInput=null,this._vNode=null,this._unmounted=!1,this._lifecycle=null,this._childContext=null,this._isSVG=!1,this._updating=!0,this.props=e||a.EMPTY_OBJ,this.context=t||a.EMPTY_OBJ};k.prototype.forceUpdate=function(e){this._unmounted||v(this,!0,e)},k.prototype.setState=function(e,t){this._unmounted||(this._blockSetState?u():h(this,e,t))},k.prototype._updateComponent=function(e,t,n,o,i,d,l){if(!0===this._unmounted&&u(),n!==o||o===a.EMPTY_OBJ||e!==t||d){if(n!==o||o===a.EMPTY_OBJ){if(!r(this.componentWillReceiveProps)&&!l){if(this._blockRender=!0,this.componentWillReceiveProps(o,i),this._unmounted)return g;this._blockRender=!1}this._pendingSetState&&(t=c(t,this._pendingState),this._pendingSetState=!1,this._pendingState=null)}if(d||r(this.shouldComponentUpdate)||this.shouldComponentUpdate&&this.shouldComponentUpdate(o,t,i)){r(this.componentWillUpdate)||(this._blockSetState=!0,this.componentWillUpdate(o,t,i),this._blockSetState=!1),this.props=o,this.state=t,this.context=i,a.options.beforeRender&&a.options.beforeRender(this);var s=this.render(o,t,i);return a.options.afterRender&&a.options.afterRender(this),s}this.props=o,this.state=t,this.context=i}return g},k.prototype.render=function(e,t,n){},t.default=k});n(l);var s=r(function(e){e.exports=l.default,e.exports.default=e.exports}),u=(function(){function e(e){this.value=e}function t(t){function n(e,t){return new Promise(function(n,o){var d={key:e,arg:t,resolve:n,reject:o,next:null};a?a=a.next=d:(i=a=d,r(e,t))})}function r(n,i){try{var a=t[n](i),d=a.value;d instanceof e?Promise.resolve(d.value).then(function(e){r("next",e)},function(e){r("throw",e)}):o(a.done?"return":"normal",a.value)}catch(e){o("throw",e)}}function o(e,t){switch(e){case"return":i.resolve({value:t,done:!0});break;case"throw":i.reject(t);break;default:i.resolve({value:t,done:!1})}(i=i.next)?r(i.key,i.arg):a=null}var i,a;this._invoke=n,"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),c=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"li",r=t.itree[n].attributes,o=[],i=r.class||r.className;return e.isFunction(i)&&(i=i(t)),e.isEmpty(i)||(e.isString(i)?o=o.concat(i.split(/[\s\.]+/)):e.isArray(i)&&(o=o.concat(i))),o},y=a.createVNode,b=function(e){function t(){return u(this,t),h(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return f(t,e),c(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"add",value:function(e){e.stopPropagation(),this.props.node.addChild({text:"New Node",itree:{state:{editing:!0,focused:!0}}}),this.props.node.expand()}},{key:"edit",value:function(e){e.stopPropagation(),this.props.node.toggleEditing()}},{key:"remove",value:function(e){e.stopPropagation(),this.props.node.remove()}},{key:"render",value:function(){var e=[];return this.props.dom._tree.config.editing.edit&&e.push(y(2,"a","btn icon icon-pencil",null,{onclick:this.edit.bind(this),title:"Edit this node"})),this.props.dom._tree.config.editing.add&&e.push(y(2,"a","btn icon icon-plus",null,{onclick:this.add.bind(this),title:"Add a child node"})),this.props.dom._tree.config.editing.remove&&e.push(y(2,"a","btn icon icon-minus",null,{onclick:this.remove.bind(this),title:"Remove this node"})),y(2,"span","btn-group",e)}}]),t}(s),k=a.createVNode,N=function(e){function t(){return u(this,t),h(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return f(t,e),c(t,[{key:"render",value:function(){return k(2,"ol",null,k(2,"li","leaf",k(2,"span","title icon icon-file-empty empty",this.props.text)))}}]),t}(s),x=a.createVNode,C=function(e){function t(e){u(this,t);var n=h(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state=n.getStateFromNodes(e.node),n}return f(t,e),c(t,[{key:"getStateFromNodes",value:function(e){return{text:e.text}}},{key:"componentWillReceiveProps",value:function(e){this.setState(this.getStateFromNodes(e.node))}},{key:"shouldComponentUpdate",value:function(e,t){return o(this.state,t)}},{key:"click",value:function(e){var t=this,n=function(){t.props.node.toggleCheck()};this.props.dom._tree.emit("node.click",e,this.props.node,n),e.treeDefaultPrevented||n()}},{key:"keypress",value:function(e){if(12===e.which)return this.save()}},{key:"input",value:function(e){this.setState({text:e.target.value})}},{key:"cancel",value:function(e){e&&e.stopPropagation(),this.props.node.toggleEditing()}},{key:"save",value:function(e){e&&e.stopPropagation();var t=this.props.node.text,n=this.ref.value;this.props.node.set("text",n),this.props.node.state("editing",!1),this.props.node.markDirty(),this.props.dom._tree.applyChanges(),t!==n&&this.props.dom._tree.emit("node.edited",this.props.node,t,n)}},{key:"render",value:function(){var e=this;return x(2,"form",null,[x(512,"input",null,null,{onClick:function(e){return e.stopPropagation},onInput:this.input.bind(this),onKeyPress:this.keypress.bind(this),value:this.state.text},null,function(t){return e.ref=t}),x(2,"span","btn-group",[x(2,"button","btn icon icon-check",null,{onClick:this.save.bind(this),title:"Save",type:"button"}),x(2,"button","btn icon icon-cross",null,{onClick:this.cancel.bind(this),title:"Cancel",type:"button"})])],{onsubmit:function(e){return e.preventDefault}})}}]),t}(s),w=a.createVNode,D=function(e){function t(){return u(this,t),h(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return f(t,e),c(t,[{key:"blur",value:function(){this.props.node.blur()}},{key:"click",value:function(e){var t=this,n=this.props,r=n.node,o=n.dom,i=function(){if(e.preventDefault(),!t.props.editing){if((e.metaKey||e.ctrlKey||e.shiftKey)&&o._tree.disableDeselection(),e.shiftKey){o.clearSelection();var n=o._tree.lastSelectedNode();n&&o._tree.selectBetween.apply(o._tree,o._tree.boundingNodes(n,r))}r.selected()?o._tree.config.selection.disableDirectDeselection||r.deselect():r.select(),o._tree.enableDeselection()}};o._tree.emit("node.click",e,r,i),e.treeDefaultPrevented||i()}},{key:"contextMenu",value:function(e){var t=this.props,n=t.node;t.dom._tree.emit("node.contextmenu",e,n)}},{key:"dblclick",value:function(e){var t=this.props,n=t.node,r=t.dom,o=function(){r.clearSelection(),n.toggleCollapse()};r._tree.emit("node.dblclick",e,n,o),e.treeDefaultPrevented||o()}},{key:"focus",value:function(e){this.props.node.focus(e)}},{key:"mousedown",value:function(){this.props.dom.isDragDropEnabled&&(this.props.dom.isMouseHeld=!0)}},{key:"render",value:function(){var e=this.props.node,t=_.clone(e.itree.a.attributes)||{};t.tabindex=1,t.unselectable="on";var n=m(e,"a").concat(["title","icon"]);if(!this.props.dom.config.showCheckboxes){var r=this.props.expanded?"icon-folder-open":"icon-folder";n.push(e.itree.icon||(this.props.hasOrWillHaveChildren?r:"icon-file-empty"))}t.className=n.join(" ");var o=e.text;return e.editing()&&(o=w(16,C,null,null,{dom:this.props.dom,node:this.props.node})),w(2,"a",null,o,p({"data-uid":e.id,onBlur:this.blur.bind(this),onClick:this.click.bind(this),onContextMenu:this.contextMenu.bind(this),onDblClick:this.dblclick.bind(this),onFocus:this.focus.bind(this),onMouseDown:this.mousedown.bind(this)},t))}}]),t}(s),S=a.createVNode,O=function(e){function t(){return u(this,t),h(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return f(t,e),c(t,[{key:"className",value:function(){return"toggle icon "+(this.props.collapsed?"icon-expand":"icon-collapse")}},{key:"render",value:function(){return S(2,"a",this.className(),null,{onClick:this.props.node.toggleCollapse.bind(this.props.node)})}}]),t}(s),M=a.createVNode,T=function(e){function n(e){u(this,n);var t=h(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e));return t.state=t.stateFromNode(e.node),t}return f(n,e),c(n,[{key:"stateFromNode",value:function(e){return{dirty:e.itree.dirty}}},{key:"componentWillReceiveProps",value:function(e){this.setState(this.stateFromNode(e.node))}},{key:"shouldComponentUpdate",value:function(e,t){return t.dirty}},{key:"getAttributes",value:function(){var e=this.props.node,t=_.clone(e.itree.li.attributes)||{};return t.className=this.getClassNames(),t["data-uid"]=e.id,this.props.dom.config.dragAndDrop.enabled&&(t.draggable=e.state("draggable"),t.onDragEnd=this.onDragEnd.bind(this),t.onDragEnter=this.onDragEnter.bind(this),t.onDragLeave=this.onDragLeave.bind(this),t.onDragStart=this.onDragStart.bind(this),e.state("drop-target")?(t.onDragOver=this.onDragOver.bind(this),t.onDrop=this.onDrop.bind(this)):(t.onDragOver=null,t.onDrop=null)),t}},{key:"getClassNames",value:function(){var e=this.props.node,t=e.itree.state,n=m(e);return _.each(Object.keys(t),function(e){t[e]&&n.push(e)}),!e.hidden()&&e.removed()&&n.push("hidden"),e.expanded()&&n.push("expanded"),n.push(e.hasOrWillHaveChildren()?"folder":"leaf"),n.join(" ")}},{key:"getTargetDirection",value:function(e,t){var n=e.clientY,r=t.getBoundingClientRect(),o=r.top+r.height/3,i=r.bottom-r.height/3,a=0;return n<=o?a=-1:n>=i&&(a=1),a}},{key:"onDragStart",value:function(e){e.stopPropagation(),e.dataTransfer.effectAllowed="move",e.dataTransfer.dropEffect="move";var n=this.props.node;if(this.props.dom._activeDragNode=n,e.dataTransfer.setData("treeId",n.tree().id),e.dataTransfer.setData("nodeId",n.id),n.state("drop-target",!1),n.hasChildren()&&n.children.stateDeep("drop-target",!1),"dragstart"===this.props.dom.config.dragAndDrop.validateOn){var r=this.props.dom.config.dragAndDrop.validate,o=_.isFunction(r);this.props.dom._tree.batch(),function e(n,r){t.isTreeNodes(n)?_.each(n,function(t){e(t,r)}):t.isTreeNode(n)&&!1!==r(n)&&n.hasChildren()&&e(n.children,r)}(this.props.dom._tree.model,function(e){var t=e.id!==n.id;return t&&(t=!e.hasAncestor(n)),t&&o&&(t=r(n,e)),e.state("drop-target",t),t}),this.props.dom._tree.end()}this.props.dom._tree.emit("node.dragstart",e)}},{key:"onDragEnd",value:function(e){e.preventDefault(),e.stopPropagation(),this.unhighlightTarget(),this.props.dom._tree.emit("node.dragend",e)}},{key:"onDragEnter",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.node.recurseUp(this.unhighlightTarget),this.props.node.state("drag-targeting",!0),this.props.dom._tree.emit("node.dragenter",e)}},{key:"onDragLeave",value:function(e){e.preventDefault(),e.stopPropagation(),this.unhighlightTarget(),this.props.dom._tree.emit("node.dragleave",e)}},{key:"onDragOver",value:function(e){e.preventDefault(),e.stopPropagation();var t=this.props.dom._activeDragNode,n=this.props.node,r=this.getTargetDirection(e,n.itree.ref.querySelector("a"));if("dragover"===this.props.dom.config.dragAndDrop.validateOn){var o=this.props.dom.config.dragAndDrop.validate,i=_.isFunction(o),a=t.id!==n.id;if(a&&(a=!n.hasAncestor(t)),a&&i&&(a=o(t,n,r)),n.state("drop-target",a),this.props.dom._tree.applyChanges(),!a)return}this.props.dom._tree.batch(),n.state("drag-targeting",!0),n.state("drag-targeting-above",-1===r),n.state("drag-targeting-below",1===r),n.state("drag-targeting-insert",0===r),this.props.dom._tree.end(),this.props.dom._tree.emit("node.dragover",e,r)}},{key:"onDrop",value:function(e){e.preventDefault(),e.stopPropagation(),this.unhighlightTarget();var t=e.dataTransfer.getData("treeId"),n=e.dataTransfer.getData("nodeId"),r=this.props.node;this.props.dom._activeDragNode=null;var o=this.getTargetDirection(e,e.target),i=void 0,a=(i=t===this.props.dom._tree.id?this.props.dom._tree:document.querySelector('[data-uid="'+t+'"]').inspireTree).node(n);a.state("drop-target",!0);var d=a.remove(!0),l=r.context().indexOf(r),s=void 0,u=void 0;0===o?(s=r.addChild(d),u=r.children.indexOf(s),r.expand()):(u=1===o?++l:l,s=r.context().insertAt(u,d)),this.props.dom._tree.emit("node.drop",e,s,r,u)}},{key:"unhighlightTarget",value:function(e){(e||this.props.node).states(["drag-targeting","drag-targeting-above","drag-targeting-below","drag-targeting-insert"],!1)}},{key:"renderCheckbox",value:function(){var e=this.props.node;if(this.props.dom.config.showCheckboxes)return M(16,g,null,null,{checked:e.checked(),dom:this.props.dom,indeterminate:e.indeterminate(),node:e})}},{key:"renderChildren",value:function(){var e=this.props,t=e.node,n=e.dom;if(t.hasChildren()){var r=t.children,o=n.loading,i=r.pagination();return M(16,P,null,null,{context:t,dom:n,limit:i.limit,loading:o,nodes:r,total:i.total})}if(this.props.dom.isDynamic&&t.children)return t.hasLoadedChildren()?M(16,N,null,null,{text:"No Results"}):M(16,N,null,null,{text:"Loading..."})}},{key:"renderEditToolbar",value:function(){if(this.props.dom._tree.config.editing.edit&&!this.props.node.editing())return M(16,b,null,null,{dom:this.props.dom,node:this.props.node})}},{key:"renderToggle",value:function(){var e=this.props.node;if(this.props.dom.isDynamic?Boolean(e.children):e.hasVisibleChildren())return M(16,O,null,null,{collapsed:e.collapsed(),node:e})}},{key:"render",value:function(){var e=this,t=this.props.node,n=M(2,"li",null,[this.renderEditToolbar(),M(2,"div","title-wrap",[this.renderToggle(),this.renderCheckbox(),M(16,D,null,null,{dom:this.props.dom,editing:t.editing(),expanded:t.expanded(),hasOrWillHaveChildren:t.hasOrWillHaveChildren(),node:t,text:t.text})]),M(2,"div","wholerow"),this.renderChildren()],p({},this.getAttributes()),null,function(t){return e.node=e.props.node.itree.ref=t});return this.props.node.state("rendered",!0),this.props.node.itree.dirty=!1,n}}]),n}(s),E=a.createVNode,P=function(e){function t(){return u(this,t),h(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return f(t,e),c(t,[{key:"shouldComponentUpdate",value:function(e){return _.find(e.nodes,"itree.dirty")||o(this.props,e)}},{key:"isDeferred",value:function(){return this.props.dom.config.deferredRendering||this.props.dom._tree.config.deferredLoading}},{key:"loadMore",value:function(e){e.preventDefault(),this.props.context?this.props.context.loadMore(e):this.props.dom._tree.loadMore(e)}},{key:"renderLoadMoreNode",value:function(){return E(2,"li","leaf detached",E(2,"a","title icon icon-more load-more","Load More",{onClick:this.loadMore.bind(this)}))}},{key:"renderLoadingTextNode",value:function(){return E(2,"li","leaf",E(2,"span","title icon icon-more","Loading..."))}},{key:"render",value:function(){var e=this,t=this.props.nodes,n=t.pagination();if(this.props.dom.config.deferredRendering){var r=0;t=this.props.nodes.filter(function(e){var t=!(e.hidden()||e.removed());return t&&r++,r<=n.limit&&t})}var o=_.map(t,function(t){return E(16,T,null,null,{dom:e.props.dom,node:t},t.id)});return this.isDeferred()&&n.limit0?r:e.ceil(this.$scrollLayer.clientHeight/this.config.nodeHeight),this.config.autoLoadMore&&this.$target.addEventListener("scroll",e.throttle(this.scrollListener.bind(this),20))}this.$target.inspireTree=this._tree}},{key:"clearSelection",value:function(){document.selection&&document.selection.empty?document.selection.empty():window.getSelection&&window.getSelection().removeAllRanges()}},{key:"getElement",value:function(t){var n=void 0;if(t instanceof HTMLElement)n=t;else if(e.isObject(t)&&e.isObject(t[0]))n=t[0];else if(e.isString(t)){var r=document.querySelector(t);r&&(n=r)}return n}},{key:"getScrollableAncestor",value:function(e){return e instanceof Element&&"auto"!==getComputedStyle(e).overflow&&e.parentNode&&(e=this.getScrollableAncestor(e.parentNode)),e}},{key:"keyboardListener",value:function(e){if(e.stopPropagation(),!([40,12,37,39,38].indexOf(e.which)<0)){var t=this._tree.focused();if(t.length)switch(e.preventDefault(),e.which){case 40:this.moveFocusDownFrom(t[0]);break;case 12:t[0].toggleSelect();break;case 37:t[0].collapse();break;case 39:t[0].expand();break;case 38:this.moveFocusUpFrom(t[0])}}}},{key:"moveFocusDownFrom",value:function(e){var t=e.nextVisibleNode();t&&t.focus()}},{key:"moveFocusUpFrom",value:function(e){var t=e.previousVisibleNode();t&&t.focus()}},{key:"nodeFromTitleDOMElement",value:function(e){var t=e.parentNode.parentNode.getAttribute("data-uid");return this._tree.node(t)}},{key:"onDragEnter",value:function(e){e.preventDefault(),e.target.classList.add("drag-targeting","drag-targeting-insert")}},{key:"onDragLeave",value:function(e){e.preventDefault(),this.unhighlightTarget(e.target)}},{key:"onDragOver",value:function(e){e.preventDefault()}},{key:"onDrop",value:function(e){e.preventDefault(),this.unhighlightTarget(e.target);var t=e.dataTransfer.getData("treeId"),r=e.dataTransfer.getData("nodeId"),o=n.getTreeById(t).node(r);o.state("drop-target",!0);var i=o.remove(!0),a=this._tree.addNode(i),d=this._tree.indexOf(a);this._tree.emit("node.drop",e,a,null,d)}},{key:"renderNodes",value:function(e){d(I(16,V,null,null,{dom:this,nodes:e||this._tree.nodes()}),this.$target)}},{key:"scrollListener",value:function(t){var n=this;if(!this.rendering&&!this.loading){var r=this.$scrollLayer.getBoundingClientRect(),o=document.querySelectorAll(".load-more");e.each(o,function(e){var o=e.getBoundingClientRect();if(!(r.righto.right||r.bottomo.bottom)){var i=void 0,a=e.parentNode.parentNode.parentNode;"LI"===a.tagName&&(i=n._tree.node(a.getAttribute("data-uid"))),n._tree.loadMore(i,t)}})}}},{key:"scrollSelectedIntoView",value:function(){var e=this.$target.querySelector(".selected");e&&this.$scrollLayer&&(this.$scrollLayer.scrollTop=e.offsetTop)}},{key:"unhighlightTarget",value:function(e){e&&e.classList.remove("drag-targeting","drag-targeting-insert")}}],[{key:"getTreeById",value:function(e){var t=document.querySelector('[data-uid="'+e+'"]');if(t)return t.inspireTree}}]),n}()});