diff --git a/dist/react-dropdown-tree-select.js b/dist/react-dropdown-tree-select.js index 4e7dc8d8..fd43b9f4 100644 --- a/dist/react-dropdown-tree-select.js +++ b/dist/react-dropdown-tree-select.js @@ -1,22 +1,2606 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define("ReactDropdownTreeSelect",["react"],t):"object"==typeof exports?exports.ReactDropdownTreeSelect=t(require("react")):e.ReactDropdownTreeSelect=t(e.React)}(this,function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},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 o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},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=11)}([function(e,t,n){e.exports=n(5)()},function(t,n){t.exports=e},function(e,t,n){var o; -/*! +!(function(e, t) { + 'object' == typeof exports && 'object' == typeof module + ? (module.exports = t(require('react'))) + : 'function' == typeof define && define.amd + ? define('ReactDropdownTreeSelect', ['react'], t) + : 'object' == typeof exports + ? (exports.ReactDropdownTreeSelect = t(require('react'))) + : (e.ReactDropdownTreeSelect = t(e.React)) +})(this, function(e) { + return (function(e) { + var t = {} + function n(o) { + if (t[o]) return t[o].exports + var r = (t[o] = { i: o, l: !1, exports: {} }) + return e[o].call(r.exports, r, r.exports, n), (r.l = !0), r.exports + } + return ( + (n.m = e), + (n.c = t), + (n.d = function(e, t, o) { + n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: o }) + }), + (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 o = Object.create(null) + if ((n.r(o), Object.defineProperty(o, 'default', { enumerable: !0, value: e }), 2 & t && 'string' != typeof e)) + for (var r in e) + n.d( + o, + r, + function(t) { + return e[t] + }.bind(null, r) + ) + return o + }), + (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 = 11)) + ) + })([ + function(e, t, n) { + e.exports = n(5)() + }, + function(t, n) { + t.exports = e + }, + function(e, t, n) { + var o + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -/*! + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;tthis.props.initialScrollY&&this.el.scrollTo(0,this.props.initialScrollY),this.props.pullDownToRefresh&&(this.el.addEventListener("touchstart",this.onStart),this.el.addEventListener("touchmove",this.onMove),this.el.addEventListener("touchend",this.onEnd),this.el.addEventListener("mousedown",this.onStart),this.el.addEventListener("mousemove",this.onMove),this.el.addEventListener("mouseup",this.onEnd),this.maxPullDownDistance=this._pullDown.firstChild.getBoundingClientRect().height,this.forceUpdate(),"function"!=typeof this.props.refreshFunction))throw new Error('Mandatory prop "refreshFunction" missing.\n Pull Down To Refresh functionality will not work\n as expected. Check README.md for usage\'')}},{key:"componentWillUnmount",value:function(){this.el.removeEventListener("scroll",this.throttledOnScrollListener),this.props.pullDownToRefresh&&(this.el.removeEventListener("touchstart",this.onStart),this.el.removeEventListener("touchmove",this.onMove),this.el.removeEventListener("touchend",this.onEnd),this.el.removeEventListener("mousedown",this.onStart),this.el.removeEventListener("mousemove",this.onMove),this.el.removeEventListener("mouseup",this.onEnd))}},{key:"componentWillReceiveProps",value:function(e){this.props.key===e.key&&this.props.dataLength===e.dataLength||this.setState({showLoader:!1,actionTriggered:!1,pullToRefreshThresholdBreached:!1})}},{key:"getScrollableTarget",value:function(){return this.props.scrollableTarget instanceof HTMLElement?this.props.scrollableTarget:"string"==typeof this.props.scrollableTarget?document.getElementById(this.props.scrollableTarget):(null===this.props.scrollableTarget&&console.warn("You are trying to pass scrollableTarget but it is null. This might\n happen because the element may not have been added to DOM yet.\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\n "),null)}},{key:"onStart",value:function(e){this.state.lastScrollTop||(this.dragging=!0,this.startY=e.pageY||e.touches[0].pageY,this.currentY=this.startY,this._infScroll.style.willChange="transform",this._infScroll.style.transition="transform 0.2s cubic-bezier(0,0,0.31,1)")}},{key:"onMove",value:function(e){this.dragging&&(this.currentY=e.pageY||e.touches[0].pageY,this.currentY=this.props.pullDownToRefreshThreshold&&this.setState({pullToRefreshThresholdBreached:!0}),this.currentY-this.startY>1.5*this.maxPullDownDistance||(this._infScroll.style.overflow="visible",this._infScroll.style.transform="translate3d(0px, "+(this.currentY-this.startY)+"px, 0px)")))}},{key:"onEnd",value:function(e){var t=this;this.startY=0,this.currentY=0,this.dragging=!1,this.state.pullToRefreshThresholdBreached&&this.props.refreshFunction&&this.props.refreshFunction(),requestAnimationFrame(function(){t._infScroll&&(t._infScroll.style.overflow="auto",t._infScroll.style.transform="none",t._infScroll.style.willChange="none")})}},{key:"isElementAtBottom",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?.8:arguments[1],n=e===document.body||e===document.documentElement?window.screen.availHeight:e.clientHeight,o=(0,d.parseThreshold)(t);return o.unit===d.ThresholdUnits.Pixel?e.scrollTop+n>=e.scrollHeight-o.value:e.scrollTop+n>=o.value/100*e.scrollHeight}},{key:"onScrollListener",value:function(e){var t=this;"function"==typeof this.props.onScroll&&setTimeout(function(){return t.props.onScroll(e)},0);var n=this.props.height||this._scrollableNode?e.target:document.documentElement.scrollTop?document.documentElement:document.body;this.state.actionTriggered||(this.isElementAtBottom(n,this.props.scrollThreshold)&&this.props.hasMore&&(this.setState({actionTriggered:!0,showLoader:!0}),this.props.next()),this.setState({lastScrollTop:n.scrollTop}))}},{key:"render",value:function(){var e=this,t=o({height:this.props.height||"auto",overflow:"auto",WebkitOverflowScrolling:"touch"},this.props.style),n=this.props.hasChildren||!(!this.props.children||!this.props.children.length),r=this.props.pullDownToRefresh&&this.props.height?{overflow:"auto"}:{};return s.default.createElement("div",{style:r},s.default.createElement("div",{className:"infinite-scroll-component "+(this.props.className||""),ref:function(t){return e._infScroll=t},style:t},this.props.pullDownToRefresh&&s.default.createElement("div",{style:{position:"relative"},ref:function(t){return e._pullDown=t}},s.default.createElement("div",{style:{position:"absolute",left:0,right:0,top:-1*this.maxPullDownDistance}},!this.state.pullToRefreshThresholdBreached&&this.props.pullDownToRefreshContent,this.state.pullToRefreshThresholdBreached&&this.props.releaseToRefreshContent)),this.props.children,!this.state.showLoader&&!n&&this.props.hasMore&&this.props.loader,this.state.showLoader&&this.props.hasMore&&this.props.loader,!this.props.hasMore&&this.props.endMessage))}}]),t}();t.default=h,h.defaultProps={pullDownToRefreshContent:s.default.createElement("h3",null,"Pull down to refresh"),releaseToRefreshContent:s.default.createElement("h3",null,"Release to refresh"),pullDownToRefreshThreshold:100,disableBrowserPullToRefresh:!0},h.propTypes={next:c.default.func,hasMore:c.default.bool,children:c.default.node,loader:c.default.node.isRequired,scrollThreshold:c.default.oneOfType([c.default.number,c.default.string]),endMessage:c.default.node,style:c.default.object,height:c.default.number,scrollableTarget:c.default.node,hasChildren:c.default.bool,pullDownToRefresh:c.default.bool,pullDownToRefreshContent:c.default.node,releaseToRefreshContent:c.default.node,pullDownToRefreshThreshold:c.default.number,refreshFunction:c.default.func,onScroll:c.default.func,dataLength:c.default.number.isRequired,key:c.default.string},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseThreshold=function(e){if("number"==typeof e)return{unit:n.Percent,value:100*e};if("string"==typeof e)return e.match(/^(\d*(\.\d+)?)px$/)?{unit:n.Pixel,value:parseFloat(e)}:e.match(/^(\d*(\.\d+)?)%$/)?{unit:n.Percent,value:parseFloat(e)}:(console.warn('scrollThreshold format is invalid. Valid formats: "120px", "50%"...'),o);return console.warn("scrollThreshold should be string or number"),o};var n={Pixel:"Pixel",Percent:"Percent"};t.ThresholdUnits=n;var o={unit:n.Percent,value:.8}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var o,r;return t||(t=250),function(){var a=n||this,i=+new Date,l=arguments;o&&i0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce(function(t,n){var o;return t["data-"+(o=n,o.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase())]=e[n],t},{})},s=(function(){}(),function(e){return!e||Array.isArray(e)&&!e.length}),c=function(e,t){return e instanceof Event&&!function(e){if(e.path)return e.path;for(var t=e.target,n=[t];t.parentElement;)t=t.parentElement,n.unshift(t);return n}(e).some(function(e){return e===t})},u=function(e,t){var n=void 0;return function(){for(var o=arguments.length,r=Array(o),a=0;a-1)&&(o.handleClick(e),e.preventDefault())},b(o,n)}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)}(t,a["PureComponent"]),m(t,[{key:"render",value:function(){var e=this.props,t=e.id,n=e.label,o=e.labelRemove,r=void 0===o?"Remove":o,a=e.readOnly,l=e.disabled,s=y(t),c=t+"_button",u=["tag-remove",a&&"readOnly",l&&"disabled"].filter(Boolean).join(" "),d=a||l;return i.a.createElement("span",{className:"tag",id:s,"aria-label":n},n,i.a.createElement("button",{id:c,onClick:d?void 0:this.handleClick,onKeyDown:d?void 0:this.onKeyDown,onKeyUp:d?void 0:this.onKeyUp,className:u,type:"button","aria-label":r,"aria-labelledby":c+" "+s,"aria-disabled":d},"x"))}}]),t}();w.propTypes={id:r.a.string.isRequired,label:r.a.string.isRequired,onDelete:r.a.func,readOnly:r.a.bool,disabled:r.a.bool,labelRemove:r.a.string};var O=w; -/**! - * Sortable 1.10.1 - * @author RubaXa - * @author owenm - * @license MIT - */function _(e){return(_="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 S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(){return(T=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function k(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var P=k(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),x=k(/Edge/i),D=k(/firefox/i),N=k(/safari/i)&&!k(/chrome/i)&&!k(/android/i),I=k(/iP(ad|od|hone)/i),j=k(/chrome/i)&&k(/android/i),M={capture:!1,passive:!1};function R(e,t,n){e.addEventListener(t,n,!P&&M)}function A(e,t,n){e.removeEventListener(t,n,!P&&M)}function F(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function L(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function B(e,t,n,o){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&F(e,t):F(e,t))||o&&e===n)return e;if(e===n)break}while(e=L(e))}return null}var Y,H=/\s+/g;function X(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var o=(" "+e.className+" ").replace(H," ").replace(" "+t+" "," ");e.className=(o+(n?" "+t:"")).replace(H," ")}}function V(e,t,n){var o=e&&e.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in o||-1!==t.indexOf("webkit")||(t="-webkit-"+t),o[t]=n+("string"==typeof n?"":"px")}}function W(e,t){var n="";if("string"==typeof e)n=e;else do{var o=V(e,"transform");o&&"none"!==o&&(n=o+" "+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix;return r&&new r(n)}function K(e,t,n){if(e){var o=e.getElementsByTagName(t),r=0,a=o.length;if(n)for(;r=a:r<=a))return o;if(o===U())break;o=Q(o,!1)}return!1}function G(e,t,n){for(var o=0,r=0,a=e.children;r2&&void 0!==arguments[2]?arguments[2]:{},o=n.evt,r=C(n,["evt"]);se.pluginEvent.bind(nt)(e,t,E({dragEl:he,parentEl:pe,ghostEl:fe,rootEl:ge,nextEl:ve,lastDownEl:me,cloneEl:be,cloneHidden:ye,dragStarted:Ie,putSortable:Ee,activeSortable:nt.active,originalEvent:o,oldIndex:we,oldDraggableIndex:_e,newIndex:Oe,newDraggableIndex:Se,hideGhostForTarget:Ze,unhideGhostForTarget:Qe,cloneNowHidden:function(){ye=!0},cloneNowShown:function(){ye=!1},dispatchSortableEvent:function(e){de({sortable:t,name:e,originalEvent:o})}},r))};function de(e){ce(E({putSortable:Ee,cloneEl:be,targetEl:he,rootEl:ge,oldIndex:we,oldDraggableIndex:_e,newIndex:Oe,newDraggableIndex:Se},e))}var he,pe,fe,ge,ve,me,be,ye,we,Oe,_e,Se,Te,Ee,Ce,ke,Pe,xe,De,Ne,Ie,je,Me,Re,Ae,Fe=!1,Le=!1,Be=[],Ye=!1,He=!1,Xe=[],Ve=!1,We=[],Ke="undefined"!=typeof document,Ue=I,ze=x||P?"cssFloat":"float",qe=Ke&&!j&&!I&&"draggable"in document.createElement("div"),Ge=function(){if(Ke){if(P)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),$e=function(e,t){var n=V(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=G(e,0,t),a=G(e,1,t),i=r&&V(r),l=a&&V(a),s=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+z(r).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+z(a).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&i.float&&"none"!==i.float){var u="left"===i.float?"left":"right";return!a||"both"!==l.clear&&l.clear!==u?"horizontal":"vertical"}return r&&("block"===i.display||"flex"===i.display||"table"===i.display||"grid"===i.display||s>=o&&"none"===n[ze]||a&&"none"===n[ze]&&s+c>o)?"vertical":"horizontal"},Je=function(e){function t(e,n){return function(o,r,a,i){var l=o.options.group.name&&r.options.group.name&&o.options.group.name===r.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(o,r,a,i),n)(o,r,a,i);var s=(n?o:r).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},o=e.group;o&&"object"==_(o)||(o={name:o}),n.name=o.name,n.checkPull=t(o.pull,!0),n.checkPut=t(o.put),n.revertClone=o.revertClone,e.group=n},Ze=function(){!Ge&&fe&&V(fe,"display","none")},Qe=function(){!Ge&&fe&&V(fe,"display","")};Ke&&document.addEventListener("click",function(e){if(Le)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Le=!1,!1},!0);var et=function(e){if(he){e=e.touches?e.touches[0]:e;var t=(r=e.clientX,a=e.clientY,Be.some(function(e){if(!$(e)){var t=z(e),n=e[re].options.emptyInsertThreshold,o=r>=t.left-n&&r<=t.right+n,l=a>=t.top-n&&a<=t.bottom+n;return n&&o&&l?i=e:void 0}}),i);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[re]._onDragOver(n)}}var r,a,i},tt=function(e){he&&he.parentNode[re]._isOutsideThisEl(e.target)};function nt(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=T({},t),e[re]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return $e(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==nt.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var o in se.initializePlugins(this,e,n),n)!(o in t)&&(t[o]=n[o]);for(var r in Je(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&qe,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?R(e,"pointerdown",this._onTapStart):(R(e,"mousedown",this._onTapStart),R(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(R(e,"dragover",this),R(e,"dragenter",this)),Be.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),T(this,ae())}function ot(e,t,n,o,r,a,i,l){var s,c,u=e[re],d=u.options.onMove;return!window.CustomEvent||P||x?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=o,s.related=r||t,s.relatedRect=a||z(t),s.willInsertAfter=l,s.originalEvent=i,e.dispatchEvent(s),d&&(c=d.call(u,s,i)),c}function rt(e){e.draggable=!1}function at(){Ve=!1}function it(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,o=0;n--;)o+=t.charCodeAt(n);return o.toString(36)}function lt(e){return setTimeout(e,0)}function st(e){return clearTimeout(e)}nt.prototype={constructor:nt,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(je=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,he):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,o=this.options,r=o.preventOnFilter,a=e.type,i=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(i||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=o.filter;if(function(e){We.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var o=t[n];o.checked&&We.push(o)}}(n),!he&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||o.disabled||s.isContentEditable||(l=B(l,o.draggable,n,!1))&&l.animated||me===l)){if(we=J(l),_e=J(l,o.draggable),"function"==typeof c){if(c.call(this,e,l,this))return de({sortable:t,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),ue("filter",t,{evt:e}),void(r&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(o){if(o=B(s,o.trim(),n,!1))return de({sortable:t,rootEl:o,name:"filter",targetEl:l,fromEl:n,toEl:n}),ue("filter",t,{evt:e}),!0})))return void(r&&e.cancelable&&e.preventDefault());o.handle&&!B(s,o.handle,n,!1)||this._prepareDragStart(e,i,l)}}},_prepareDragStart:function(e,t,n){var o,r=this,a=r.el,i=r.options,l=a.ownerDocument;if(n&&!he&&n.parentNode===a){var s=z(n);if(ge=a,pe=(he=n).parentNode,ve=he.nextSibling,me=n,Te=i.group,nt.dragged=he,Ce={target:he,clientX:(t||e).clientX,clientY:(t||e).clientY},De=Ce.clientX-s.left,Ne=Ce.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,he.style["will-change"]="all",o=function(){ue("delayEnded",r,{evt:e}),nt.eventCanceled?r._onDrop():(r._disableDelayedDragEvents(),!D&&r.nativeDraggable&&(he.draggable=!0),r._triggerDragStart(e,t),de({sortable:r,name:"choose",originalEvent:e}),X(he,i.chosenClass,!0))},i.ignore.split(",").forEach(function(e){K(he,e.trim(),rt)}),R(l,"dragover",et),R(l,"mousemove",et),R(l,"touchmove",et),R(l,"mouseup",r._onDrop),R(l,"touchend",r._onDrop),R(l,"touchcancel",r._onDrop),D&&this.nativeDraggable&&(this.options.touchStartThreshold=4,he.draggable=!0),ue("delayStart",this,{evt:e}),!i.delay||i.delayOnTouchOnly&&!t||this.nativeDraggable&&(x||P))o();else{if(nt.eventCanceled)return void this._onDrop();R(l,"mouseup",r._disableDelayedDrag),R(l,"touchend",r._disableDelayedDrag),R(l,"touchcancel",r._disableDelayedDrag),R(l,"mousemove",r._delayedDragTouchMoveHandler),R(l,"touchmove",r._delayedDragTouchMoveHandler),i.supportPointer&&R(l,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(o,i.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){he&&rt(he),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;A(e,"mouseup",this._disableDelayedDrag),A(e,"touchend",this._disableDelayedDrag),A(e,"touchcancel",this._disableDelayedDrag),A(e,"mousemove",this._delayedDragTouchMoveHandler),A(e,"touchmove",this._delayedDragTouchMoveHandler),A(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?R(document,"pointermove",this._onTouchMove):R(document,t?"touchmove":"mousemove",this._onTouchMove):(R(he,"dragend",this),R(ge,"dragstart",this._onDragStart));try{document.selection?lt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(Fe=!1,ge&&he){ue("dragStarted",this,{evt:t}),this.nativeDraggable&&R(document,"dragover",tt);var n=this.options;!e&&X(he,n.dragClass,!1),X(he,n.ghostClass,!0),nt.active=this,e&&this._appendGhost(),de({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ke){this._lastX=ke.clientX,this._lastY=ke.clientY,Ze();for(var e=document.elementFromPoint(ke.clientX,ke.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ke.clientX,ke.clientY))!==t;)t=e;if(he.parentNode[re]._isOutsideThisEl(e),t)do{if(t[re]){if(t[re]._onDragOver({clientX:ke.clientX,clientY:ke.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Qe()}},_onTouchMove:function(e){if(Ce){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,r=e.touches?e.touches[0]:e,a=fe&&W(fe),i=fe&&a&&a.a,l=fe&&a&&a.d,s=Ue&&Ae&&Z(Ae),c=(r.clientX-Ce.clientX+o.x)/(i||1)+(s?s[0]-Xe[0]:0)/(i||1),u=(r.clientY-Ce.clientY+o.y)/(l||1)+(s?s[1]-Xe[1]:0)/(l||1);if(!nt.active&&!Fe){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))o.right+10||e.clientX<=o.right&&e.clientY>o.bottom&&e.clientX>=o.left:e.clientX>o.right&&e.clientY>o.top||e.clientX<=o.right&&e.clientY>o.bottom+10}(e,r,this)&&!g.animated){if(g===he)return N(!1);if(g&&a===e.target&&(i=g),i&&(n=z(i)),!1!==ot(ge,a,he,t,i,n,e,!!i))return D(),a.appendChild(he),pe=a,I(),N(!0)}else if(i.parentNode===a){n=z(i);var v,m,b,y=he.parentNode!==a,w=!function(e,t,n){var o=n?e.left:e.top,r=n?e.right:e.bottom,a=n?e.width:e.height,i=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return o===i||r===l||o+a/2===i+s/2}(he.animated&&he.toRect||t,i.animated&&i.toRect||n,r),O=r?"top":"left",_=q(i,"top","top")||q(he,"top","top"),S=_?_.scrollTop:void 0;if(je!==i&&(m=n[O],Ye=!1,He=!w&&l.invertSwap||y),0!==(v=function(e,t,n,o,r,a,i,l){var s=o?e.clientY:e.clientX,c=o?n.height:n.width,u=o?n.top:n.left,d=o?n.bottom:n.right,h=!1;if(!i)if(l&&Reu+c*a/2:sd-Re)return-Me}else if(s>u+c*(1-r)/2&&sd-c*a/2))return s>u+c/2?1:-1;return 0}(e,i,n,r,w?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,He,je===i))){var T=J(he);do{T-=v,b=pe.children[T]}while(b&&("none"===V(b,"display")||b===fe))}if(0===v||b===i)return N(!1);je=i,Me=v;var C=i.nextElementSibling,k=!1,P=ot(ge,a,he,t,i,n,e,k=1===v);if(!1!==P)return 1!==P&&-1!==P||(k=1===P),Ve=!0,setTimeout(at,30),D(),k&&!C?a.appendChild(he):i.parentNode.insertBefore(he,k?C:i),_&&ne(_,0,S-_.scrollTop),pe=he.parentNode,void 0===m||He||(Re=Math.abs(m-z(i)[O])),I(),N(!0)}if(a.contains(he))return N(!1)}return!1}function x(l,s){ue(l,p,E({evt:e,isOwner:u,axis:r?"vertical":"horizontal",revert:o,dragRect:t,targetRect:n,canSort:d,fromSortable:h,target:i,completed:N,onMove:function(n,o){return ot(ge,a,he,t,n,z(n),e,o)},changed:I},s))}function D(){x("dragOverAnimationCapture"),p.captureAnimationState(),p!==h&&h.captureAnimationState()}function N(t){return x("dragOverCompleted",{insertion:t}),t&&(u?c._hideClone():c._showClone(p),p!==h&&(X(he,Ee?Ee.options.ghostClass:c.options.ghostClass,!1),X(he,l.ghostClass,!0)),Ee!==p&&p!==nt.active?Ee=p:p===nt.active&&Ee&&(Ee=null),h===p&&(p._ignoreWhileAnimating=i),p.animateAll(function(){x("dragOverAnimationComplete"),p._ignoreWhileAnimating=null}),p!==h&&(h.animateAll(),h._ignoreWhileAnimating=null)),(i===he&&!he.animated||i===a&&!i.animated)&&(je=null),l.dragoverBubble||e.rootEl||i===document||(he.parentNode[re]._isOutsideThisEl(e.target),!t&&et(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),f=!0}function I(){Oe=J(he),Se=J(he,l.draggable),de({sortable:p,name:"change",toEl:a,newIndex:Oe,newDraggableIndex:Se,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){A(document,"mousemove",this._onTouchMove),A(document,"touchmove",this._onTouchMove),A(document,"pointermove",this._onTouchMove),A(document,"dragover",et),A(document,"mousemove",et),A(document,"touchmove",et)},_offUpEvents:function(){var e=this.el.ownerDocument;A(e,"mouseup",this._onDrop),A(e,"touchend",this._onDrop),A(e,"pointerup",this._onDrop),A(e,"touchcancel",this._onDrop),A(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;Oe=J(he),Se=J(he,n.draggable),ue("drop",this,{evt:e}),pe=he&&he.parentNode,Oe=J(he),Se=J(he,n.draggable),nt.eventCanceled?this._nulling():(Fe=!1,He=!1,Ye=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),st(this.cloneId),st(this._dragStartId),this.nativeDraggable&&(A(document,"drop",this),A(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),N&&V(document.body,"user-select",""),e&&(Ie&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),fe&&fe.parentNode&&fe.parentNode.removeChild(fe),(ge===pe||Ee&&"clone"!==Ee.lastPutMode)&&be&&be.parentNode&&be.parentNode.removeChild(be),he&&(this.nativeDraggable&&A(he,"dragend",this),rt(he),he.style["will-change"]="",Ie&&!Fe&&X(he,Ee?Ee.options.ghostClass:this.options.ghostClass,!1),X(he,this.options.chosenClass,!1),de({sortable:this,name:"unchoose",toEl:pe,newIndex:null,newDraggableIndex:null,originalEvent:e}),ge!==pe?(Oe>=0&&(de({rootEl:pe,name:"add",toEl:pe,fromEl:ge,originalEvent:e}),de({sortable:this,name:"remove",toEl:pe,originalEvent:e}),de({rootEl:pe,name:"sort",toEl:pe,fromEl:ge,originalEvent:e}),de({sortable:this,name:"sort",toEl:pe,originalEvent:e})),Ee&&Ee.save()):Oe!==we&&Oe>=0&&(de({sortable:this,name:"update",toEl:pe,originalEvent:e}),de({sortable:this,name:"sort",toEl:pe,originalEvent:e})),nt.active&&(null!=Oe&&-1!==Oe||(Oe=we,Se=_e),de({sortable:this,name:"end",toEl:pe,originalEvent:e}),this.save()))),this._nulling())},_nulling:function(){ue("nulling",this),ge=he=pe=fe=ve=be=me=ye=Ce=ke=Ie=Oe=Se=we=_e=je=Me=Ee=Te=nt.dragged=nt.ghost=nt.clone=nt.active=null,We.forEach(function(e){e.checked=!0}),We.length=Pe=xe=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":he&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,o=0,r=n.length,a=this.options;o this.props.initialScrollY && + this.el.scrollTo(0, this.props.initialScrollY), + this.props.pullDownToRefresh && + (this.el.addEventListener('touchstart', this.onStart), + this.el.addEventListener('touchmove', this.onMove), + this.el.addEventListener('touchend', this.onEnd), + this.el.addEventListener('mousedown', this.onStart), + this.el.addEventListener('mousemove', this.onMove), + this.el.addEventListener('mouseup', this.onEnd), + (this.maxPullDownDistance = this._pullDown.firstChild.getBoundingClientRect().height), + this.forceUpdate(), + 'function' != typeof this.props.refreshFunction)) + ) + throw new Error( + 'Mandatory prop "refreshFunction" missing.\n Pull Down To Refresh functionality will not work\n as expected. Check README.md for usage\'' + ) + }, + }, + { + key: 'componentWillUnmount', + value: function() { + this.el.removeEventListener('scroll', this.throttledOnScrollListener), + this.props.pullDownToRefresh && + (this.el.removeEventListener('touchstart', this.onStart), + this.el.removeEventListener('touchmove', this.onMove), + this.el.removeEventListener('touchend', this.onEnd), + this.el.removeEventListener('mousedown', this.onStart), + this.el.removeEventListener('mousemove', this.onMove), + this.el.removeEventListener('mouseup', this.onEnd)) + }, + }, + { + key: 'componentWillReceiveProps', + value: function(e) { + ;(this.props.key === e.key && this.props.dataLength === e.dataLength) || + this.setState({ showLoader: !1, actionTriggered: !1, pullToRefreshThresholdBreached: !1 }) + }, + }, + { + key: 'getScrollableTarget', + value: function() { + return this.props.scrollableTarget instanceof HTMLElement + ? this.props.scrollableTarget + : 'string' == typeof this.props.scrollableTarget + ? document.getElementById(this.props.scrollableTarget) + : (null === this.props.scrollableTarget && + console.warn( + 'You are trying to pass scrollableTarget but it is null. This might\n happen because the element may not have been added to DOM yet.\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\n ' + ), + null) + }, + }, + { + key: 'onStart', + value: function(e) { + this.state.lastScrollTop || + ((this.dragging = !0), + (this.startY = e.pageY || e.touches[0].pageY), + (this.currentY = this.startY), + (this._infScroll.style.willChange = 'transform'), + (this._infScroll.style.transition = 'transform 0.2s cubic-bezier(0,0,0.31,1)')) + }, + }, + { + key: 'onMove', + value: function(e) { + this.dragging && + ((this.currentY = e.pageY || e.touches[0].pageY), + this.currentY < this.startY || + (this.currentY - this.startY >= this.props.pullDownToRefreshThreshold && + this.setState({ pullToRefreshThresholdBreached: !0 }), + this.currentY - this.startY > 1.5 * this.maxPullDownDistance || + ((this._infScroll.style.overflow = 'visible'), + (this._infScroll.style.transform = + 'translate3d(0px, ' + (this.currentY - this.startY) + 'px, 0px)')))) + }, + }, + { + key: 'onEnd', + value: function(e) { + var t = this + ;(this.startY = 0), + (this.currentY = 0), + (this.dragging = !1), + this.state.pullToRefreshThresholdBreached && + this.props.refreshFunction && + this.props.refreshFunction(), + requestAnimationFrame(function() { + t._infScroll && + ((t._infScroll.style.overflow = 'auto'), + (t._infScroll.style.transform = 'none'), + (t._infScroll.style.willChange = 'none')) + }) + }, + }, + { + key: 'isElementAtBottom', + value: function(e) { + var t = arguments.length <= 1 || void 0 === arguments[1] ? 0.8 : arguments[1], + n = + e === document.body || e === document.documentElement + ? window.screen.availHeight + : e.clientHeight, + o = (0, d.parseThreshold)(t) + return o.unit === d.ThresholdUnits.Pixel + ? e.scrollTop + n >= e.scrollHeight - o.value + : e.scrollTop + n >= (o.value / 100) * e.scrollHeight + }, + }, + { + key: 'onScrollListener', + value: function(e) { + var t = this + 'function' == typeof this.props.onScroll && + setTimeout(function() { + return t.props.onScroll(e) + }, 0) + var n = + this.props.height || this._scrollableNode + ? e.target + : document.documentElement.scrollTop + ? document.documentElement + : document.body + this.state.actionTriggered || + (this.isElementAtBottom(n, this.props.scrollThreshold) && + this.props.hasMore && + (this.setState({ actionTriggered: !0, showLoader: !0 }), this.props.next()), + this.setState({ lastScrollTop: n.scrollTop })) + }, + }, + { + key: 'render', + value: function() { + var e = this, + t = o( + { height: this.props.height || 'auto', overflow: 'auto', WebkitOverflowScrolling: 'touch' }, + this.props.style + ), + n = this.props.hasChildren || !(!this.props.children || !this.props.children.length), + r = this.props.pullDownToRefresh && this.props.height ? { overflow: 'auto' } : {} + return s.default.createElement( + 'div', + { style: r }, + s.default.createElement( + 'div', + { + className: 'infinite-scroll-component ' + (this.props.className || ''), + ref: function(t) { + return (e._infScroll = t) + }, + style: t, + }, + this.props.pullDownToRefresh && + s.default.createElement( + 'div', + { + style: { position: 'relative' }, + ref: function(t) { + return (e._pullDown = t) + }, + }, + s.default.createElement( + 'div', + { + style: { + position: 'absolute', + left: 0, + right: 0, + top: -1 * this.maxPullDownDistance, + }, + }, + !this.state.pullToRefreshThresholdBreached && this.props.pullDownToRefreshContent, + this.state.pullToRefreshThresholdBreached && this.props.releaseToRefreshContent + ) + ), + this.props.children, + !this.state.showLoader && !n && this.props.hasMore && this.props.loader, + this.state.showLoader && this.props.hasMore && this.props.loader, + !this.props.hasMore && this.props.endMessage + ) + ) + }, + }, + ]), + t + ) + })() + ;(t.default = h), + (h.defaultProps = { + pullDownToRefreshContent: s.default.createElement('h3', null, 'Pull down to refresh'), + releaseToRefreshContent: s.default.createElement('h3', null, 'Release to refresh'), + pullDownToRefreshThreshold: 100, + disableBrowserPullToRefresh: !0, + }), + (h.propTypes = { + next: c.default.func, + hasMore: c.default.bool, + children: c.default.node, + loader: c.default.node.isRequired, + scrollThreshold: c.default.oneOfType([c.default.number, c.default.string]), + endMessage: c.default.node, + style: c.default.object, + height: c.default.number, + scrollableTarget: c.default.node, + hasChildren: c.default.bool, + pullDownToRefresh: c.default.bool, + pullDownToRefreshContent: c.default.node, + releaseToRefreshContent: c.default.node, + pullDownToRefreshThreshold: c.default.number, + refreshFunction: c.default.func, + onScroll: c.default.func, + dataLength: c.default.number.isRequired, + key: c.default.string, + }), + (e.exports = t.default) + }, + function(e, t) { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }), + (t.parseThreshold = function(e) { + if ('number' == typeof e) return { unit: n.Percent, value: 100 * e } + if ('string' == typeof e) + return e.match(/^(\d*(\.\d+)?)px$/) + ? { unit: n.Pixel, value: parseFloat(e) } + : e.match(/^(\d*(\.\d+)?)%$/) + ? { unit: n.Percent, value: parseFloat(e) } + : (console.warn('scrollThreshold format is invalid. Valid formats: "120px", "50%"...'), o) + return console.warn('scrollThreshold should be string or number'), o + }) + var n = { Pixel: 'Pixel', Percent: 'Percent' } + t.ThresholdUnits = n + var o = { unit: n.Percent, value: 0.8 } + }, + function(e, t) { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }), + (t.default = function(e, t, n) { + var o, r + return ( + t || (t = 250), + function() { + var a = n || this, + i = +new Date(), + l = arguments + o && i < o + t + ? (clearTimeout(r), + (r = setTimeout(function() { + ;(o = i), e.apply(a, l) + }, t))) + : ((o = i), e.apply(a, l)) + } + ) + }), + (e.exports = t.default) + }, + function(e, t) { + 'use strict' + function n(e) { + return function() { + return e + } + } + var o = function() {} + ;(o.thatReturns = n), + (o.thatReturnsFalse = n(!1)), + (o.thatReturnsTrue = n(!0)), + (o.thatReturnsNull = n(null)), + (o.thatReturnsThis = function() { + return this + }), + (o.thatReturnsArgument = function(e) { + return e + }), + (e.exports = o) + }, + function(e, t, n) { + 'use strict' + var o = function(e) {} + e.exports = function(e, t, n, r, a, i, l, s) { + if ((o(t), !e)) { + var c + if (void 0 === t) + c = new Error( + 'Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.' + ) + else { + var u = [n, r, a, i, l, s], + d = 0 + ;(c = new Error( + t.replace(/%s/g, function() { + return u[d++] + }) + )).name = 'Invariant Violation' + } + throw ((c.framesToPop = 1), c) + } + } + }, + function(e, t, n) { + 'use strict' + var o = n(3), + r = n(4), + a = n(7) + e.exports = function() { + function e(e, t, n, o, i, l) { + l !== a && + r( + !1, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types' + ) + } + function t() { + return e + } + e.isRequired = e + var n = { + array: e, + bool: e, + func: e, + number: e, + object: e, + string: e, + symbol: e, + any: e, + arrayOf: t, + element: e, + instanceOf: t, + node: e, + objectOf: t, + oneOf: t, + oneOfType: t, + shape: t, + } + return (n.checkPropTypes = o), (n.PropTypes = n), n + } + }, + function(e, t, n) { + e.exports = n(5)() + }, + function(e, t) { + 'use strict' + e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED' + }, + function(t, n) { + t.exports = e + }, + ]) + }), + (e.exports = o(n(1))) + }, + function(e, t, n) { + 'use strict' + e.exports = function(e, t) { + var n = e.filter(t) + return 0 !== n.length && n.length !== e.length + } + }, + function(e, t, n) { + 'use strict' + var o = n(6) + function r() {} + function a() {} + ;(a.resetWarningCache = r), + (e.exports = function() { + function e(e, t, n, r, a, i) { + if (i !== o) { + var l = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types' + ) + throw ((l.name = 'Invariant Violation'), l) + } + } + function t() { + return e + } + e.isRequired = e + var n = { + array: e, + bool: e, + func: e, + number: e, + object: e, + string: e, + symbol: e, + any: e, + arrayOf: t, + element: e, + elementType: e, + instanceOf: t, + node: e, + objectOf: t, + oneOf: t, + oneOfType: t, + shape: t, + exact: t, + checkPropTypes: a, + resetWarningCache: r, + } + return (n.PropTypes = n), n + }) + }, + function(e, t, n) { + 'use strict' + e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED' + }, + function(e, t, n) {}, + function(e, t, n) {}, + function(e, t, n) {}, + function(e, t, n) {}, + function(e, t, n) { + 'use strict' + n.r(t) + var o = n(0), + r = n.n(o), + a = n(1), + i = n.n(a), + l = function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} + return Object.keys(e).reduce(function(t, n) { + var o + return (t['data-' + ((o = n), o.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase())] = e[n]), t + }, {}) + }, + s = ((function() {})(), + function(e) { + return !e || (Array.isArray(e) && !e.length) + }), + c = function(e, t) { + return ( + e instanceof Event && + !(function(e) { + if (e.path) return e.path + for (var t = e.target, n = [t]; t.parentElement; ) (t = t.parentElement), n.unshift(t) + return n + })(e).some(function(e) { + return e === t + }) + ) + }, + u = function(e, t) { + var n = void 0 + return function() { + for (var o = arguments.length, r = Array(o), a = 0; a < o; a++) r[a] = arguments[a] + var i = !n + clearTimeout(n), + (n = setTimeout(function() { + ;(n = null), e.apply(void 0, r) + }, t)), + i && e.apply(void 0, r) + } + }, + d = (function(e) { + var t = 1, + n = new WeakMap() + return { + get: function(o) { + return n.has(o) || n.set(o, t++), '' + e + n.get(o) + }, + reset: function() { + ;(n = new WeakMap()), (t = 1) + }, + } + })('rdts') + function h(e, t) { + var n = (function(e) { + if (!e) return {} + if ('#' === e[0]) return { 'aria-labelledby': e.substring(1).replace(/ #/g, ' ') } + return { 'aria-label': e } + })(e) + return t && (n['aria-labelledby'] = ((n['aria-labelledby'] || '') + ' ' + t).trim()), n + } + var p = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }, + f = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + var g = (function(e) { + function t(e) { + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + var 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, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)) + return ( + (n.handleInputChange = function(e) { + e.persist(), n.delayedCallback(e) + }), + (n.delayedCallback = u(function(e) { + return n.props.onInputChange(e.target.value) + }, 300)), + n + ) + } + 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)) + })(t, a['PureComponent']), + f(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.inputRef, + n = e.texts, + o = void 0 === n ? {} : n, + r = e.onFocus, + a = e.onBlur, + l = e.disabled, + s = e.readOnly, + c = e.onKeyDown, + u = e.activeDescendant + return i.a.createElement( + 'input', + p( + { + type: 'text', + disabled: l, + ref: t, + className: 'search', + placeholder: o.placeholder || 'Choose...', + onKeyDown: c, + onChange: this.handleInputChange, + onFocus: r, + onBlur: a, + readOnly: s, + 'aria-activedescendant': u, + 'aria-autocomplete': c ? 'list' : void 0, + }, + h(o.label) + ) + ) + }, + }, + ]), + t + ) + })() + g.propTypes = { + tags: r.a.array, + texts: r.a.object, + onInputChange: r.a.func, + onFocus: r.a.func, + onBlur: r.a.func, + onTagRemove: r.a.func, + onKeyDown: r.a.func, + inputRef: r.a.func, + disabled: r.a.bool, + readOnly: r.a.bool, + activeDescendant: r.a.string, + inlineSearchInput: r.a.bool, + } + var v = g, + m = (n(7), + (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })()) + function b(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 + } + var y = function(e) { + return e + '_tag' + }, + w = (function(e) { + function t() { + var e, n, o + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + for (var r = arguments.length, a = Array(r), i = 0; i < r; i++) a[i] = arguments[i] + return ( + (n = o = b(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(a)))), + (o.handleClick = function(e) { + var t = o.props, + n = t.id, + r = t.onDelete + e.stopPropagation(), e.nativeEvent.stopImmediatePropagation(), r(n, void 0 !== (e.key || e.keyCode)) + }), + (o.onKeyDown = function(e) { + 'Backspace' === e.key && (o.handleClick(e), e.preventDefault()) + }), + (o.onKeyUp = function(e) { + ;(32 === e.keyCode || ['Delete', 'Enter'].indexOf(e.key) > -1) && (o.handleClick(e), e.preventDefault()) + }), + b(o, n) + ) + } + 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)) + })(t, a['PureComponent']), + m(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.id, + n = e.label, + o = e.labelRemove, + r = void 0 === o ? 'Remove' : o, + a = e.readOnly, + l = e.disabled, + s = y(t), + c = t + '_button', + u = ['tag-remove', a && 'readOnly', l && 'disabled'].filter(Boolean).join(' '), + d = a || l + return i.a.createElement( + 'span', + { className: 'tag', id: s, 'aria-label': n }, + n, + i.a.createElement( + 'button', + { + id: c, + onClick: d ? void 0 : this.handleClick, + onKeyDown: d ? void 0 : this.onKeyDown, + onKeyUp: d ? void 0 : this.onKeyUp, + className: u, + type: 'button', + 'aria-label': r, + 'aria-labelledby': c + ' ' + s, + 'aria-disabled': d, + }, + 'x' + ) + ) + }, + }, + ]), + t + ) + })() + w.propTypes = { + id: r.a.string.isRequired, + label: r.a.string.isRequired, + onDelete: r.a.func, + readOnly: r.a.bool, + disabled: r.a.bool, + labelRemove: r.a.string, + } + var O = w + /**! + * Sortable 1.10.1 + * @author RubaXa + * @author owenm + * @license MIT + */ function _(e) { + return (_ = + '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 S(e, t, n) { + return ( + t in e + ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) + : (e[t] = n), + e + ) + } + function T() { + return (T = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }).apply(this, arguments) + } + function E(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) { + S(e, t, n[t]) + }) + } + return e + } + function C(e, t) { + if (null == e) return {} + var n, + o, + r = (function(e, t) { + if (null == e) return {} + var n, + o, + r = {}, + a = Object.keys(e) + for (o = 0; o < a.length; o++) (n = a[o]), t.indexOf(n) >= 0 || (r[n] = e[n]) + return r + })(e, t) + if (Object.getOwnPropertySymbols) { + var a = Object.getOwnPropertySymbols(e) + for (o = 0; o < a.length; o++) + (n = a[o]), t.indexOf(n) >= 0 || (Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n])) + } + return r + } + function k(e) { + if ('undefined' != typeof window && window.navigator) return !!navigator.userAgent.match(e) + } + var P = k(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i), + x = k(/Edge/i), + D = k(/firefox/i), + N = k(/safari/i) && !k(/chrome/i) && !k(/android/i), + I = k(/iP(ad|od|hone)/i), + j = k(/chrome/i) && k(/android/i), + M = { capture: !1, passive: !1 } + function R(e, t, n) { + e.addEventListener(t, n, !P && M) + } + function A(e, t, n) { + e.removeEventListener(t, n, !P && M) + } + function F(e, t) { + if (t) { + if (('>' === t[0] && (t = t.substring(1)), e)) + try { + if (e.matches) return e.matches(t) + if (e.msMatchesSelector) return e.msMatchesSelector(t) + if (e.webkitMatchesSelector) return e.webkitMatchesSelector(t) + } catch (e) { + return !1 + } + return !1 + } + } + function L(e) { + return e.host && e !== document && e.host.nodeType ? e.host : e.parentNode + } + function B(e, t, n, o) { + if (e) { + n = n || document + do { + if ((null != t && ('>' === t[0] ? e.parentNode === n && F(e, t) : F(e, t))) || (o && e === n)) return e + if (e === n) break + } while ((e = L(e))) + } + return null + } + var Y, + H = /\s+/g + function X(e, t, n) { + if (e && t) + if (e.classList) e.classList[n ? 'add' : 'remove'](t) + else { + var o = (' ' + e.className + ' ').replace(H, ' ').replace(' ' + t + ' ', ' ') + e.className = (o + (n ? ' ' + t : '')).replace(H, ' ') + } + } + function V(e, t, n) { + var o = e && e.style + if (o) { + if (void 0 === n) + return ( + document.defaultView && document.defaultView.getComputedStyle + ? (n = document.defaultView.getComputedStyle(e, '')) + : e.currentStyle && (n = e.currentStyle), + void 0 === t ? n : n[t] + ) + t in o || -1 !== t.indexOf('webkit') || (t = '-webkit-' + t), (o[t] = n + ('string' == typeof n ? '' : 'px')) + } + } + function W(e, t) { + var n = '' + if ('string' == typeof e) n = e + else + do { + var o = V(e, 'transform') + o && 'none' !== o && (n = o + ' ' + n) + } while (!t && (e = e.parentNode)) + var r = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix + return r && new r(n) + } + function K(e, t, n) { + if (e) { + var o = e.getElementsByTagName(t), + r = 0, + a = o.length + if (n) for (; r < a; r++) n(o[r], r) + return o + } + return [] + } + function U() { + return P ? document.documentElement : document.scrollingElement + } + function z(e, t, n, o, r) { + if (e.getBoundingClientRect || e === window) { + var a, i, l, s, c, u, d + if ( + (e !== window && e !== U() + ? ((i = (a = e.getBoundingClientRect()).top), + (l = a.left), + (s = a.bottom), + (c = a.right), + (u = a.height), + (d = a.width)) + : ((i = 0), + (l = 0), + (s = window.innerHeight), + (c = window.innerWidth), + (u = window.innerHeight), + (d = window.innerWidth)), + (t || n) && e !== window && ((r = r || e.parentNode), !P)) + ) + do { + if ( + r && + r.getBoundingClientRect && + ('none' !== V(r, 'transform') || (n && 'static' !== V(r, 'position'))) + ) { + var h = r.getBoundingClientRect() + ;(i -= h.top + parseInt(V(r, 'border-top-width'))), + (l -= h.left + parseInt(V(r, 'border-left-width'))), + (s = i + a.height), + (c = l + a.width) + break + } + } while ((r = r.parentNode)) + if (o && e !== window) { + var p = W(r || e), + f = p && p.a, + g = p && p.d + p && ((s = (i /= g) + (u /= g)), (c = (l /= f) + (d /= f))) + } + return { top: i, left: l, bottom: s, right: c, width: d, height: u } + } + } + function q(e, t, n) { + for (var o = Q(e, !0), r = z(e)[t]; o; ) { + var a = z(o)[n] + if (!('top' === n || 'left' === n ? r >= a : r <= a)) return o + if (o === U()) break + o = Q(o, !1) + } + return !1 + } + function G(e, t, n) { + for (var o = 0, r = 0, a = e.children; r < a.length; ) { + if ( + 'none' !== a[r].style.display && + a[r] !== nt.ghost && + a[r] !== nt.dragged && + B(a[r], n.draggable, e, !1) + ) { + if (o === t) return a[r] + o++ + } + r++ + } + return null + } + function $(e, t) { + for (var n = e.lastElementChild; n && (n === nt.ghost || 'none' === V(n, 'display') || (t && !F(n, t))); ) + n = n.previousElementSibling + return n || null + } + function J(e, t) { + var n = 0 + if (!e || !e.parentNode) return -1 + for (; (e = e.previousElementSibling); ) + 'TEMPLATE' === e.nodeName.toUpperCase() || e === nt.clone || (t && !F(e, t)) || n++ + return n + } + function Z(e) { + var t = 0, + n = 0, + o = U() + if (e) + do { + var r = W(e), + a = r.a, + i = r.d + ;(t += e.scrollLeft * a), (n += e.scrollTop * i) + } while (e !== o && (e = e.parentNode)) + return [t, n] + } + function Q(e, t) { + if (!e || !e.getBoundingClientRect) return U() + var n = e, + o = !1 + do { + if (n.clientWidth < n.scrollWidth || n.clientHeight < n.scrollHeight) { + var r = V(n) + if ( + (n.clientWidth < n.scrollWidth && ('auto' == r.overflowX || 'scroll' == r.overflowX)) || + (n.clientHeight < n.scrollHeight && ('auto' == r.overflowY || 'scroll' == r.overflowY)) + ) { + if (!n.getBoundingClientRect || n === document.body) return U() + if (o || t) return n + o = !0 + } + } + } while ((n = n.parentNode)) + return U() + } + function ee(e, t) { + return ( + Math.round(e.top) === Math.round(t.top) && + Math.round(e.left) === Math.round(t.left) && + Math.round(e.height) === Math.round(t.height) && + Math.round(e.width) === Math.round(t.width) + ) + } + function te(e, t) { + return function() { + if (!Y) { + var n = arguments + 1 === n.length ? e.call(this, n[0]) : e.apply(this, n), + (Y = setTimeout(function() { + Y = void 0 + }, t)) + } + } + } + function ne(e, t, n) { + ;(e.scrollLeft += t), (e.scrollTop += n) + } + function oe(e) { + var t = window.Polymer, + n = window.jQuery || window.Zepto + return t && t.dom ? t.dom(e).cloneNode(!0) : n ? n(e).clone(!0)[0] : e.cloneNode(!0) + } + var re = 'Sortable' + new Date().getTime() + function ae() { + var e, + t = [] + return { + captureAnimationState: function() { + ;((t = []), this.options.animation) && + [].slice.call(this.el.children).forEach(function(e) { + if ('none' !== V(e, 'display') && e !== nt.ghost) { + t.push({ target: e, rect: z(e) }) + var n = E({}, t[t.length - 1].rect) + if (e.thisAnimationDuration) { + var o = W(e, !0) + o && ((n.top -= o.f), (n.left -= o.e)) + } + e.fromRect = n + } + }) + }, + addAnimationState: function(e) { + t.push(e) + }, + removeAnimationState: function(e) { + t.splice( + (function(e, t) { + for (var n in e) + if (e.hasOwnProperty(n)) + for (var o in t) if (t.hasOwnProperty(o) && t[o] === e[n][o]) return Number(n) + return -1 + })(t, { target: e }), + 1 + ) + }, + animateAll: function(n) { + var o = this + if (!this.options.animation) return clearTimeout(e), void ('function' == typeof n && n()) + var r = !1, + a = 0 + t.forEach(function(e) { + var t = 0, + n = e.target, + i = n.fromRect, + l = z(n), + s = n.prevFromRect, + c = n.prevToRect, + u = e.rect, + d = W(n, !0) + d && ((l.top -= d.f), (l.left -= d.e)), + (n.toRect = l), + n.thisAnimationDuration && + ee(s, l) && + !ee(i, l) && + (u.top - l.top) / (u.left - l.left) == (i.top - l.top) / (i.left - l.left) && + (t = (function(e, t, n, o) { + return ( + (Math.sqrt(Math.pow(t.top - e.top, 2) + Math.pow(t.left - e.left, 2)) / + Math.sqrt(Math.pow(t.top - n.top, 2) + Math.pow(t.left - n.left, 2))) * + o.animation + ) + })(u, s, c, o.options)), + ee(l, i) || + ((n.prevFromRect = i), (n.prevToRect = l), t || (t = o.options.animation), o.animate(n, u, l, t)), + t && + ((r = !0), + (a = Math.max(a, t)), + clearTimeout(n.animationResetTimer), + (n.animationResetTimer = setTimeout(function() { + ;(n.animationTime = 0), + (n.prevFromRect = null), + (n.fromRect = null), + (n.prevToRect = null), + (n.thisAnimationDuration = null) + }, t)), + (n.thisAnimationDuration = t)) + }), + clearTimeout(e), + r + ? (e = setTimeout(function() { + 'function' == typeof n && n() + }, a)) + : 'function' == typeof n && n(), + (t = []) + }, + animate: function(e, t, n, o) { + if (o) { + V(e, 'transition', ''), V(e, 'transform', '') + var r = W(this.el), + a = r && r.a, + i = r && r.d, + l = (t.left - n.left) / (a || 1), + s = (t.top - n.top) / (i || 1) + ;(e.animatingX = !!l), + (e.animatingY = !!s), + V(e, 'transform', 'translate3d(' + l + 'px,' + s + 'px,0)'), + (function(e) { + e.offsetWidth + })(e), + V(e, 'transition', 'transform ' + o + 'ms' + (this.options.easing ? ' ' + this.options.easing : '')), + V(e, 'transform', 'translate3d(0,0,0)'), + 'number' == typeof e.animated && clearTimeout(e.animated), + (e.animated = setTimeout(function() { + V(e, 'transition', ''), + V(e, 'transform', ''), + (e.animated = !1), + (e.animatingX = !1), + (e.animatingY = !1) + }, o)) + } + }, + } + } + var ie = [], + le = { initializeByDefault: !0 }, + se = { + mount: function(e) { + for (var t in le) !le.hasOwnProperty(t) || t in e || (e[t] = le[t]) + ie.push(e) + }, + pluginEvent: function(e, t, n) { + var o = this + ;(this.eventCanceled = !1), + (n.cancel = function() { + o.eventCanceled = !0 + }) + var r = e + 'Global' + ie.forEach(function(o) { + t[o.pluginName] && + (t[o.pluginName][r] && t[o.pluginName][r](E({ sortable: t }, n)), + t.options[o.pluginName] && t[o.pluginName][e] && t[o.pluginName][e](E({ sortable: t }, n))) + }) + }, + initializePlugins: function(e, t, n, o) { + for (var r in (ie.forEach(function(o) { + var r = o.pluginName + if (e.options[r] || o.initializeByDefault) { + var a = new o(e, t, e.options) + ;(a.sortable = e), (a.options = e.options), (e[r] = a), T(n, a.defaults) + } + }), + e.options)) + if (e.options.hasOwnProperty(r)) { + var a = this.modifyOption(e, r, e.options[r]) + void 0 !== a && (e.options[r] = a) + } + }, + getEventProperties: function(e, t) { + var n = {} + return ( + ie.forEach(function(o) { + 'function' == typeof o.eventProperties && T(n, o.eventProperties.call(t[o.pluginName], e)) + }), + n + ) + }, + modifyOption: function(e, t, n) { + var o + return ( + ie.forEach(function(r) { + e[r.pluginName] && + r.optionListeners && + 'function' == typeof r.optionListeners[t] && + (o = r.optionListeners[t].call(e[r.pluginName], n)) + }), + o + ) + }, + } + function ce(e) { + var t = e.sortable, + n = e.rootEl, + o = e.name, + r = e.targetEl, + a = e.cloneEl, + i = e.toEl, + l = e.fromEl, + s = e.oldIndex, + c = e.newIndex, + u = e.oldDraggableIndex, + d = e.newDraggableIndex, + h = e.originalEvent, + p = e.putSortable, + f = e.extraEventProperties + if ((t = t || (n && n[re]))) { + var g, + v = t.options, + m = 'on' + o.charAt(0).toUpperCase() + o.substr(1) + !window.CustomEvent || P || x + ? (g = document.createEvent('Event')).initEvent(o, !0, !0) + : (g = new CustomEvent(o, { bubbles: !0, cancelable: !0 })), + (g.to = i || n), + (g.from = l || n), + (g.item = r || n), + (g.clone = a), + (g.oldIndex = s), + (g.newIndex = c), + (g.oldDraggableIndex = u), + (g.newDraggableIndex = d), + (g.originalEvent = h), + (g.pullMode = p ? p.lastPutMode : void 0) + var b = E({}, f, se.getEventProperties(o, t)) + for (var y in b) g[y] = b[y] + n && n.dispatchEvent(g), v[m] && v[m].call(t, g) + } + } + var ue = function(e, t) { + var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, + o = n.evt, + r = C(n, ['evt']) + se.pluginEvent.bind(nt)( + e, + t, + E( + { + dragEl: he, + parentEl: pe, + ghostEl: fe, + rootEl: ge, + nextEl: ve, + lastDownEl: me, + cloneEl: be, + cloneHidden: ye, + dragStarted: Ie, + putSortable: Ee, + activeSortable: nt.active, + originalEvent: o, + oldIndex: we, + oldDraggableIndex: _e, + newIndex: Oe, + newDraggableIndex: Se, + hideGhostForTarget: Ze, + unhideGhostForTarget: Qe, + cloneNowHidden: function() { + ye = !0 + }, + cloneNowShown: function() { + ye = !1 + }, + dispatchSortableEvent: function(e) { + de({ sortable: t, name: e, originalEvent: o }) + }, + }, + r + ) + ) + } + function de(e) { + ce( + E( + { + putSortable: Ee, + cloneEl: be, + targetEl: he, + rootEl: ge, + oldIndex: we, + oldDraggableIndex: _e, + newIndex: Oe, + newDraggableIndex: Se, + }, + e + ) + ) + } + var he, + pe, + fe, + ge, + ve, + me, + be, + ye, + we, + Oe, + _e, + Se, + Te, + Ee, + Ce, + ke, + Pe, + xe, + De, + Ne, + Ie, + je, + Me, + Re, + Ae, + Fe = !1, + Le = !1, + Be = [], + Ye = !1, + He = !1, + Xe = [], + Ve = !1, + We = [], + Ke = 'undefined' != typeof document, + Ue = I, + ze = x || P ? 'cssFloat' : 'float', + qe = Ke && !j && !I && 'draggable' in document.createElement('div'), + Ge = (function() { + if (Ke) { + if (P) return !1 + var e = document.createElement('x') + return (e.style.cssText = 'pointer-events:auto'), 'auto' === e.style.pointerEvents + } + })(), + $e = function(e, t) { + var n = V(e), + o = + parseInt(n.width) - + parseInt(n.paddingLeft) - + parseInt(n.paddingRight) - + parseInt(n.borderLeftWidth) - + parseInt(n.borderRightWidth), + r = G(e, 0, t), + a = G(e, 1, t), + i = r && V(r), + l = a && V(a), + s = i && parseInt(i.marginLeft) + parseInt(i.marginRight) + z(r).width, + c = l && parseInt(l.marginLeft) + parseInt(l.marginRight) + z(a).width + if ('flex' === n.display) + return 'column' === n.flexDirection || 'column-reverse' === n.flexDirection ? 'vertical' : 'horizontal' + if ('grid' === n.display) return n.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal' + if (r && i.float && 'none' !== i.float) { + var u = 'left' === i.float ? 'left' : 'right' + return !a || ('both' !== l.clear && l.clear !== u) ? 'horizontal' : 'vertical' + } + return r && + ('block' === i.display || + 'flex' === i.display || + 'table' === i.display || + 'grid' === i.display || + (s >= o && 'none' === n[ze]) || + (a && 'none' === n[ze] && s + c > o)) + ? 'vertical' + : 'horizontal' + }, + Je = function(e) { + function t(e, n) { + return function(o, r, a, i) { + var l = o.options.group.name && r.options.group.name && o.options.group.name === r.options.group.name + if (null == e && (n || l)) return !0 + if (null == e || !1 === e) return !1 + if (n && 'clone' === e) return e + if ('function' == typeof e) return t(e(o, r, a, i), n)(o, r, a, i) + var s = (n ? o : r).options.group.name + return !0 === e || ('string' == typeof e && e === s) || (e.join && e.indexOf(s) > -1) + } + } + var n = {}, + o = e.group + ;(o && 'object' == _(o)) || (o = { name: o }), + (n.name = o.name), + (n.checkPull = t(o.pull, !0)), + (n.checkPut = t(o.put)), + (n.revertClone = o.revertClone), + (e.group = n) + }, + Ze = function() { + !Ge && fe && V(fe, 'display', 'none') + }, + Qe = function() { + !Ge && fe && V(fe, 'display', '') + } + Ke && + document.addEventListener( + 'click', + function(e) { + if (Le) + return ( + e.preventDefault(), + e.stopPropagation && e.stopPropagation(), + e.stopImmediatePropagation && e.stopImmediatePropagation(), + (Le = !1), + !1 + ) + }, + !0 + ) + var et = function(e) { + if (he) { + e = e.touches ? e.touches[0] : e + var t = ((r = e.clientX), + (a = e.clientY), + Be.some(function(e) { + if (!$(e)) { + var t = z(e), + n = e[re].options.emptyInsertThreshold, + o = r >= t.left - n && r <= t.right + n, + l = a >= t.top - n && a <= t.bottom + n + return n && o && l ? (i = e) : void 0 + } + }), + i) + if (t) { + var n = {} + for (var o in e) e.hasOwnProperty(o) && (n[o] = e[o]) + ;(n.target = n.rootEl = t), + (n.preventDefault = void 0), + (n.stopPropagation = void 0), + t[re]._onDragOver(n) + } + } + var r, a, i + }, + tt = function(e) { + he && he.parentNode[re]._isOutsideThisEl(e.target) + } + function nt(e, t) { + if (!e || !e.nodeType || 1 !== e.nodeType) + throw 'Sortable: `el` must be an HTMLElement, not '.concat({}.toString.call(e)) + ;(this.el = e), (this.options = t = T({}, t)), (e[re] = this) + var n = { + group: null, + sort: !0, + disabled: !1, + store: null, + handle: null, + draggable: /^[uo]l$/i.test(e.nodeName) ? '>li' : '>*', + swapThreshold: 1, + invertSwap: !1, + invertedSwapThreshold: null, + removeCloneOnHide: !0, + direction: function() { + return $e(e, this.options) + }, + ghostClass: 'sortable-ghost', + chosenClass: 'sortable-chosen', + dragClass: 'sortable-drag', + ignore: 'a, img', + filter: null, + preventOnFilter: !0, + animation: 0, + easing: null, + setData: function(e, t) { + e.setData('Text', t.textContent) + }, + dropBubble: !1, + dragoverBubble: !1, + dataIdAttr: 'data-id', + delay: 0, + delayOnTouchOnly: !1, + touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, + forceFallback: !1, + fallbackClass: 'sortable-fallback', + fallbackOnBody: !1, + fallbackTolerance: 0, + fallbackOffset: { x: 0, y: 0 }, + supportPointer: !1 !== nt.supportPointer && 'PointerEvent' in window, + emptyInsertThreshold: 5, + } + for (var o in (se.initializePlugins(this, e, n), n)) !(o in t) && (t[o] = n[o]) + for (var r in (Je(t), this)) + '_' === r.charAt(0) && 'function' == typeof this[r] && (this[r] = this[r].bind(this)) + ;(this.nativeDraggable = !t.forceFallback && qe), + this.nativeDraggable && (this.options.touchStartThreshold = 1), + t.supportPointer + ? R(e, 'pointerdown', this._onTapStart) + : (R(e, 'mousedown', this._onTapStart), R(e, 'touchstart', this._onTapStart)), + this.nativeDraggable && (R(e, 'dragover', this), R(e, 'dragenter', this)), + Be.push(this.el), + t.store && t.store.get && this.sort(t.store.get(this) || []), + T(this, ae()) + } + function ot(e, t, n, o, r, a, i, l) { + var s, + c, + u = e[re], + d = u.options.onMove + return ( + !window.CustomEvent || P || x + ? (s = document.createEvent('Event')).initEvent('move', !0, !0) + : (s = new CustomEvent('move', { bubbles: !0, cancelable: !0 })), + (s.to = t), + (s.from = e), + (s.dragged = n), + (s.draggedRect = o), + (s.related = r || t), + (s.relatedRect = a || z(t)), + (s.willInsertAfter = l), + (s.originalEvent = i), + e.dispatchEvent(s), + d && (c = d.call(u, s, i)), + c + ) + } + function rt(e) { + e.draggable = !1 + } + function at() { + Ve = !1 + } + function it(e) { + for (var t = e.tagName + e.className + e.src + e.href + e.textContent, n = t.length, o = 0; n--; ) + o += t.charCodeAt(n) + return o.toString(36) + } + function lt(e) { + return setTimeout(e, 0) + } + function st(e) { + return clearTimeout(e) + } + ;(nt.prototype = { + constructor: nt, + _isOutsideThisEl: function(e) { + this.el.contains(e) || e === this.el || (je = null) + }, + _getDirection: function(e, t) { + return 'function' == typeof this.options.direction + ? this.options.direction.call(this, e, t, he) + : this.options.direction + }, + _onTapStart: function(e) { + if (e.cancelable) { + var t = this, + n = this.el, + o = this.options, + r = o.preventOnFilter, + a = e.type, + i = (e.touches && e.touches[0]) || (e.pointerType && 'touch' === e.pointerType && e), + l = (i || e).target, + s = (e.target.shadowRoot && ((e.path && e.path[0]) || (e.composedPath && e.composedPath()[0]))) || l, + c = o.filter + if ( + ((function(e) { + We.length = 0 + var t = e.getElementsByTagName('input'), + n = t.length + for (; n--; ) { + var o = t[n] + o.checked && We.push(o) + } + })(n), + !he && + !( + (/mousedown|pointerdown/.test(a) && 0 !== e.button) || + o.disabled || + s.isContentEditable || + ((l = B(l, o.draggable, n, !1)) && l.animated) || + me === l + )) + ) { + if (((we = J(l)), (_e = J(l, o.draggable)), 'function' == typeof c)) { + if (c.call(this, e, l, this)) + return ( + de({ sortable: t, rootEl: s, name: 'filter', targetEl: l, toEl: n, fromEl: n }), + ue('filter', t, { evt: e }), + void (r && e.cancelable && e.preventDefault()) + ) + } else if ( + c && + (c = c.split(',').some(function(o) { + if ((o = B(s, o.trim(), n, !1))) + return ( + de({ sortable: t, rootEl: o, name: 'filter', targetEl: l, fromEl: n, toEl: n }), + ue('filter', t, { evt: e }), + !0 + ) + })) + ) + return void (r && e.cancelable && e.preventDefault()) + ;(o.handle && !B(s, o.handle, n, !1)) || this._prepareDragStart(e, i, l) + } + } + }, + _prepareDragStart: function(e, t, n) { + var o, + r = this, + a = r.el, + i = r.options, + l = a.ownerDocument + if (n && !he && n.parentNode === a) { + var s = z(n) + if ( + ((ge = a), + (pe = (he = n).parentNode), + (ve = he.nextSibling), + (me = n), + (Te = i.group), + (nt.dragged = he), + (Ce = { target: he, clientX: (t || e).clientX, clientY: (t || e).clientY }), + (De = Ce.clientX - s.left), + (Ne = Ce.clientY - s.top), + (this._lastX = (t || e).clientX), + (this._lastY = (t || e).clientY), + (he.style['will-change'] = 'all'), + (o = function() { + ue('delayEnded', r, { evt: e }), + nt.eventCanceled + ? r._onDrop() + : (r._disableDelayedDragEvents(), + !D && r.nativeDraggable && (he.draggable = !0), + r._triggerDragStart(e, t), + de({ sortable: r, name: 'choose', originalEvent: e }), + X(he, i.chosenClass, !0)) + }), + i.ignore.split(',').forEach(function(e) { + K(he, e.trim(), rt) + }), + R(l, 'dragover', et), + R(l, 'mousemove', et), + R(l, 'touchmove', et), + R(l, 'mouseup', r._onDrop), + R(l, 'touchend', r._onDrop), + R(l, 'touchcancel', r._onDrop), + D && this.nativeDraggable && ((this.options.touchStartThreshold = 4), (he.draggable = !0)), + ue('delayStart', this, { evt: e }), + !i.delay || (i.delayOnTouchOnly && !t) || (this.nativeDraggable && (x || P))) + ) + o() + else { + if (nt.eventCanceled) return void this._onDrop() + R(l, 'mouseup', r._disableDelayedDrag), + R(l, 'touchend', r._disableDelayedDrag), + R(l, 'touchcancel', r._disableDelayedDrag), + R(l, 'mousemove', r._delayedDragTouchMoveHandler), + R(l, 'touchmove', r._delayedDragTouchMoveHandler), + i.supportPointer && R(l, 'pointermove', r._delayedDragTouchMoveHandler), + (r._dragStartTimer = setTimeout(o, i.delay)) + } + } + }, + _delayedDragTouchMoveHandler: function(e) { + var t = e.touches ? e.touches[0] : e + Math.max(Math.abs(t.clientX - this._lastX), Math.abs(t.clientY - this._lastY)) >= + Math.floor(this.options.touchStartThreshold / ((this.nativeDraggable && window.devicePixelRatio) || 1)) && + this._disableDelayedDrag() + }, + _disableDelayedDrag: function() { + he && rt(he), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents() + }, + _disableDelayedDragEvents: function() { + var e = this.el.ownerDocument + A(e, 'mouseup', this._disableDelayedDrag), + A(e, 'touchend', this._disableDelayedDrag), + A(e, 'touchcancel', this._disableDelayedDrag), + A(e, 'mousemove', this._delayedDragTouchMoveHandler), + A(e, 'touchmove', this._delayedDragTouchMoveHandler), + A(e, 'pointermove', this._delayedDragTouchMoveHandler) + }, + _triggerDragStart: function(e, t) { + ;(t = t || ('touch' == e.pointerType && e)), + !this.nativeDraggable || t + ? this.options.supportPointer + ? R(document, 'pointermove', this._onTouchMove) + : R(document, t ? 'touchmove' : 'mousemove', this._onTouchMove) + : (R(he, 'dragend', this), R(ge, 'dragstart', this._onDragStart)) + try { + document.selection + ? lt(function() { + document.selection.empty() + }) + : window.getSelection().removeAllRanges() + } catch (e) {} + }, + _dragStarted: function(e, t) { + if (((Fe = !1), ge && he)) { + ue('dragStarted', this, { evt: t }), this.nativeDraggable && R(document, 'dragover', tt) + var n = this.options + !e && X(he, n.dragClass, !1), + X(he, n.ghostClass, !0), + (nt.active = this), + e && this._appendGhost(), + de({ sortable: this, name: 'start', originalEvent: t }) + } else this._nulling() + }, + _emulateDragOver: function() { + if (ke) { + ;(this._lastX = ke.clientX), (this._lastY = ke.clientY), Ze() + for ( + var e = document.elementFromPoint(ke.clientX, ke.clientY), t = e; + e && e.shadowRoot && (e = e.shadowRoot.elementFromPoint(ke.clientX, ke.clientY)) !== t; + + ) + t = e + if ((he.parentNode[re]._isOutsideThisEl(e), t)) + do { + if (t[re]) { + if ( + t[re]._onDragOver({ clientX: ke.clientX, clientY: ke.clientY, target: e, rootEl: t }) && + !this.options.dragoverBubble + ) + break + } + e = t + } while ((t = t.parentNode)) + Qe() + } + }, + _onTouchMove: function(e) { + if (Ce) { + var t = this.options, + n = t.fallbackTolerance, + o = t.fallbackOffset, + r = e.touches ? e.touches[0] : e, + a = fe && W(fe), + i = fe && a && a.a, + l = fe && a && a.d, + s = Ue && Ae && Z(Ae), + c = (r.clientX - Ce.clientX + o.x) / (i || 1) + (s ? s[0] - Xe[0] : 0) / (i || 1), + u = (r.clientY - Ce.clientY + o.y) / (l || 1) + (s ? s[1] - Xe[1] : 0) / (l || 1) + if (!nt.active && !Fe) { + if (n && Math.max(Math.abs(r.clientX - this._lastX), Math.abs(r.clientY - this._lastY)) < n) return + this._onDragStart(e, !0) + } + if (fe) { + a ? ((a.e += c - (Pe || 0)), (a.f += u - (xe || 0))) : (a = { a: 1, b: 0, c: 0, d: 1, e: c, f: u }) + var d = 'matrix(' + .concat(a.a, ',') + .concat(a.b, ',') + .concat(a.c, ',') + .concat(a.d, ',') + .concat(a.e, ',') + .concat(a.f, ')') + V(fe, 'webkitTransform', d), + V(fe, 'mozTransform', d), + V(fe, 'msTransform', d), + V(fe, 'transform', d), + (Pe = c), + (xe = u), + (ke = r) + } + e.cancelable && e.preventDefault() + } + }, + _appendGhost: function() { + if (!fe) { + var e = this.options.fallbackOnBody ? document.body : ge, + t = z(he, !0, Ue, !0, e), + n = this.options + if (Ue) { + for (Ae = e; 'static' === V(Ae, 'position') && 'none' === V(Ae, 'transform') && Ae !== document; ) + Ae = Ae.parentNode + Ae !== document.body && Ae !== document.documentElement + ? (Ae === document && (Ae = U()), (t.top += Ae.scrollTop), (t.left += Ae.scrollLeft)) + : (Ae = U()), + (Xe = Z(Ae)) + } + X((fe = he.cloneNode(!0)), n.ghostClass, !1), + X(fe, n.fallbackClass, !0), + X(fe, n.dragClass, !0), + V(fe, 'transition', ''), + V(fe, 'transform', ''), + V(fe, 'box-sizing', 'border-box'), + V(fe, 'margin', 0), + V(fe, 'top', t.top), + V(fe, 'left', t.left), + V(fe, 'width', t.width), + V(fe, 'height', t.height), + V(fe, 'opacity', '0.8'), + V(fe, 'position', Ue ? 'absolute' : 'fixed'), + V(fe, 'zIndex', '100000'), + V(fe, 'pointerEvents', 'none'), + (nt.ghost = fe), + e.appendChild(fe), + V( + fe, + 'transform-origin', + (De / parseInt(fe.style.width)) * 100 + '% ' + (Ne / parseInt(fe.style.height)) * 100 + '%' + ) + } + }, + _onDragStart: function(e, t) { + var n = this, + o = e.dataTransfer, + r = n.options + ue('dragStart', this, { evt: e }), + nt.eventCanceled + ? this._onDrop() + : (ue('setupClone', this), + nt.eventCanceled || + (((be = oe(he)).draggable = !1), + (be.style['will-change'] = ''), + this._hideClone(), + X(be, this.options.chosenClass, !1), + (nt.clone = be)), + (n.cloneId = lt(function() { + ue('clone', n), + nt.eventCanceled || + (n.options.removeCloneOnHide || ge.insertBefore(be, he), + n._hideClone(), + de({ sortable: n, name: 'clone' })) + })), + !t && X(he, r.dragClass, !0), + t + ? ((Le = !0), (n._loopId = setInterval(n._emulateDragOver, 50))) + : (A(document, 'mouseup', n._onDrop), + A(document, 'touchend', n._onDrop), + A(document, 'touchcancel', n._onDrop), + o && ((o.effectAllowed = 'move'), r.setData && r.setData.call(n, o, he)), + R(document, 'drop', n), + V(he, 'transform', 'translateZ(0)')), + (Fe = !0), + (n._dragStartId = lt(n._dragStarted.bind(n, t, e))), + R(document, 'selectstart', n), + (Ie = !0), + N && V(document.body, 'user-select', 'none')) + }, + _onDragOver: function(e) { + var t, + n, + o, + r, + a = this.el, + i = e.target, + l = this.options, + s = l.group, + c = nt.active, + u = Te === s, + d = l.sort, + h = Ee || c, + p = this, + f = !1 + if (!Ve) { + if ( + (void 0 !== e.preventDefault && e.cancelable && e.preventDefault(), + (i = B(i, l.draggable, a, !0)), + x('dragOver'), + nt.eventCanceled) + ) + return f + if (he.contains(e.target) || (i.animated && i.animatingX && i.animatingY) || p._ignoreWhileAnimating === i) + return N(!1) + if ( + ((Le = !1), + c && + !l.disabled && + (u + ? d || (o = !ge.contains(he)) + : Ee === this || ((this.lastPutMode = Te.checkPull(this, c, he, e)) && s.checkPut(this, c, he, e)))) + ) { + if (((r = 'vertical' === this._getDirection(e, i)), (t = z(he)), x('dragOverValid'), nt.eventCanceled)) + return f + if (o) + return ( + (pe = ge), + D(), + this._hideClone(), + x('revert'), + nt.eventCanceled || (ve ? ge.insertBefore(he, ve) : ge.appendChild(he)), + N(!0) + ) + var g = $(a, l.draggable) + if ( + !g || + ((function(e, t, n) { + var o = z($(n.el, n.options.draggable)) + return t + ? e.clientX > o.right + 10 || (e.clientX <= o.right && e.clientY > o.bottom && e.clientX >= o.left) + : (e.clientX > o.right && e.clientY > o.top) || (e.clientX <= o.right && e.clientY > o.bottom + 10) + })(e, r, this) && + !g.animated) + ) { + if (g === he) return N(!1) + if ((g && a === e.target && (i = g), i && (n = z(i)), !1 !== ot(ge, a, he, t, i, n, e, !!i))) + return D(), a.appendChild(he), (pe = a), I(), N(!0) + } else if (i.parentNode === a) { + n = z(i) + var v, + m, + b, + y = he.parentNode !== a, + w = !(function(e, t, n) { + var o = n ? e.left : e.top, + r = n ? e.right : e.bottom, + a = n ? e.width : e.height, + i = n ? t.left : t.top, + l = n ? t.right : t.bottom, + s = n ? t.width : t.height + return o === i || r === l || o + a / 2 === i + s / 2 + })((he.animated && he.toRect) || t, (i.animated && i.toRect) || n, r), + O = r ? 'top' : 'left', + _ = q(i, 'top', 'top') || q(he, 'top', 'top'), + S = _ ? _.scrollTop : void 0 + if ( + (je !== i && ((m = n[O]), (Ye = !1), (He = (!w && l.invertSwap) || y)), + 0 !== + (v = (function(e, t, n, o, r, a, i, l) { + var s = o ? e.clientY : e.clientX, + c = o ? n.height : n.width, + u = o ? n.top : n.left, + d = o ? n.bottom : n.right, + h = !1 + if (!i) + if (l && Re < c * r) { + if ((!Ye && (1 === Me ? s > u + (c * a) / 2 : s < d - (c * a) / 2) && (Ye = !0), Ye)) h = !0 + else if (1 === Me ? s < u + Re : s > d - Re) return -Me + } else if (s > u + (c * (1 - r)) / 2 && s < d - (c * (1 - r)) / 2) + return (function(e) { + return J(he) < J(e) ? 1 : -1 + })(t) + if ((h = h || i) && (s < u + (c * a) / 2 || s > d - (c * a) / 2)) return s > u + c / 2 ? 1 : -1 + return 0 + })( + e, + i, + n, + r, + w ? 1 : l.swapThreshold, + null == l.invertedSwapThreshold ? l.swapThreshold : l.invertedSwapThreshold, + He, + je === i + ))) + ) { + var T = J(he) + do { + ;(T -= v), (b = pe.children[T]) + } while (b && ('none' === V(b, 'display') || b === fe)) + } + if (0 === v || b === i) return N(!1) + ;(je = i), (Me = v) + var C = i.nextElementSibling, + k = !1, + P = ot(ge, a, he, t, i, n, e, (k = 1 === v)) + if (!1 !== P) + return ( + (1 !== P && -1 !== P) || (k = 1 === P), + (Ve = !0), + setTimeout(at, 30), + D(), + k && !C ? a.appendChild(he) : i.parentNode.insertBefore(he, k ? C : i), + _ && ne(_, 0, S - _.scrollTop), + (pe = he.parentNode), + void 0 === m || He || (Re = Math.abs(m - z(i)[O])), + I(), + N(!0) + ) + } + if (a.contains(he)) return N(!1) + } + return !1 + } + function x(l, s) { + ue( + l, + p, + E( + { + evt: e, + isOwner: u, + axis: r ? 'vertical' : 'horizontal', + revert: o, + dragRect: t, + targetRect: n, + canSort: d, + fromSortable: h, + target: i, + completed: N, + onMove: function(n, o) { + return ot(ge, a, he, t, n, z(n), e, o) + }, + changed: I, + }, + s + ) + ) + } + function D() { + x('dragOverAnimationCapture'), p.captureAnimationState(), p !== h && h.captureAnimationState() + } + function N(t) { + return ( + x('dragOverCompleted', { insertion: t }), + t && + (u ? c._hideClone() : c._showClone(p), + p !== h && (X(he, Ee ? Ee.options.ghostClass : c.options.ghostClass, !1), X(he, l.ghostClass, !0)), + Ee !== p && p !== nt.active ? (Ee = p) : p === nt.active && Ee && (Ee = null), + h === p && (p._ignoreWhileAnimating = i), + p.animateAll(function() { + x('dragOverAnimationComplete'), (p._ignoreWhileAnimating = null) + }), + p !== h && (h.animateAll(), (h._ignoreWhileAnimating = null))), + ((i === he && !he.animated) || (i === a && !i.animated)) && (je = null), + l.dragoverBubble || + e.rootEl || + i === document || + (he.parentNode[re]._isOutsideThisEl(e.target), !t && et(e)), + !l.dragoverBubble && e.stopPropagation && e.stopPropagation(), + (f = !0) + ) + } + function I() { + ;(Oe = J(he)), + (Se = J(he, l.draggable)), + de({ sortable: p, name: 'change', toEl: a, newIndex: Oe, newDraggableIndex: Se, originalEvent: e }) + } + }, + _ignoreWhileAnimating: null, + _offMoveEvents: function() { + A(document, 'mousemove', this._onTouchMove), + A(document, 'touchmove', this._onTouchMove), + A(document, 'pointermove', this._onTouchMove), + A(document, 'dragover', et), + A(document, 'mousemove', et), + A(document, 'touchmove', et) + }, + _offUpEvents: function() { + var e = this.el.ownerDocument + A(e, 'mouseup', this._onDrop), + A(e, 'touchend', this._onDrop), + A(e, 'pointerup', this._onDrop), + A(e, 'touchcancel', this._onDrop), + A(document, 'selectstart', this) + }, + _onDrop: function(e) { + var t = this.el, + n = this.options + ;(Oe = J(he)), + (Se = J(he, n.draggable)), + ue('drop', this, { evt: e }), + (pe = he && he.parentNode), + (Oe = J(he)), + (Se = J(he, n.draggable)), + nt.eventCanceled + ? this._nulling() + : ((Fe = !1), + (He = !1), + (Ye = !1), + clearInterval(this._loopId), + clearTimeout(this._dragStartTimer), + st(this.cloneId), + st(this._dragStartId), + this.nativeDraggable && (A(document, 'drop', this), A(t, 'dragstart', this._onDragStart)), + this._offMoveEvents(), + this._offUpEvents(), + N && V(document.body, 'user-select', ''), + e && + (Ie && (e.cancelable && e.preventDefault(), !n.dropBubble && e.stopPropagation()), + fe && fe.parentNode && fe.parentNode.removeChild(fe), + (ge === pe || (Ee && 'clone' !== Ee.lastPutMode)) && + be && + be.parentNode && + be.parentNode.removeChild(be), + he && + (this.nativeDraggable && A(he, 'dragend', this), + rt(he), + (he.style['will-change'] = ''), + Ie && !Fe && X(he, Ee ? Ee.options.ghostClass : this.options.ghostClass, !1), + X(he, this.options.chosenClass, !1), + de({ + sortable: this, + name: 'unchoose', + toEl: pe, + newIndex: null, + newDraggableIndex: null, + originalEvent: e, + }), + ge !== pe + ? (Oe >= 0 && + (de({ rootEl: pe, name: 'add', toEl: pe, fromEl: ge, originalEvent: e }), + de({ sortable: this, name: 'remove', toEl: pe, originalEvent: e }), + de({ rootEl: pe, name: 'sort', toEl: pe, fromEl: ge, originalEvent: e }), + de({ sortable: this, name: 'sort', toEl: pe, originalEvent: e })), + Ee && Ee.save()) + : Oe !== we && + Oe >= 0 && + (de({ sortable: this, name: 'update', toEl: pe, originalEvent: e }), + de({ sortable: this, name: 'sort', toEl: pe, originalEvent: e })), + nt.active && + ((null != Oe && -1 !== Oe) || ((Oe = we), (Se = _e)), + de({ sortable: this, name: 'end', toEl: pe, originalEvent: e }), + this.save()))), + this._nulling()) + }, + _nulling: function() { + ue('nulling', this), + (ge = he = pe = fe = ve = be = me = ye = Ce = ke = Ie = Oe = Se = we = _e = je = Me = Ee = Te = nt.dragged = nt.ghost = nt.clone = nt.active = null), + We.forEach(function(e) { + e.checked = !0 + }), + (We.length = Pe = xe = 0) + }, + handleEvent: function(e) { + switch (e.type) { + case 'drop': + case 'dragend': + this._onDrop(e) + break + case 'dragenter': + case 'dragover': + he && + (this._onDragOver(e), + (function(e) { + e.dataTransfer && (e.dataTransfer.dropEffect = 'move') + e.cancelable && e.preventDefault() + })(e)) + break + case 'selectstart': + e.preventDefault() + } + }, + toArray: function() { + for (var e, t = [], n = this.el.children, o = 0, r = n.length, a = this.options; o < r; o++) + B((e = n[o]), a.draggable, this.el, !1) && t.push(e.getAttribute(a.dataIdAttr) || it(e)) + return t + }, + sort: function(e) { + var t = {}, + n = this.el + this.toArray().forEach(function(e, o) { + var r = n.children[o] + B(r, this.options.draggable, n, !1) && (t[e] = r) + }, this), + e.forEach(function(e) { + t[e] && (n.removeChild(t[e]), n.appendChild(t[e])) + }) + }, + save: function() { + var e = this.options.store + e && e.set && e.set(this) + }, + closest: function(e, t) { + return B(e, t || this.options.draggable, this.el, !1) + }, + option: function(e, t) { + var n = this.options + if (void 0 === t) return n[e] + var o = se.modifyOption(this, e, t) + ;(n[e] = void 0 !== o ? o : t), 'group' === e && Je(n) + }, + destroy: function() { + ue('destroy', this) + var e = this.el + ;(e[re] = null), + A(e, 'mousedown', this._onTapStart), + A(e, 'touchstart', this._onTapStart), + A(e, 'pointerdown', this._onTapStart), + this.nativeDraggable && (A(e, 'dragover', this), A(e, 'dragenter', this)), + Array.prototype.forEach.call(e.querySelectorAll('[draggable]'), function(e) { + e.removeAttribute('draggable') + }), + this._onDrop(), + Be.splice(Be.indexOf(this.el), 1), + (this.el = e = null) + }, + _hideClone: function() { + if (!ye) { + if ((ue('hideClone', this), nt.eventCanceled)) return + V(be, 'display', 'none'), + this.options.removeCloneOnHide && be.parentNode && be.parentNode.removeChild(be), + (ye = !0) + } + }, + _showClone: function(e) { + if ('clone' === e.lastPutMode) { + if (ye) { + if ((ue('showClone', this), nt.eventCanceled)) return + ge.contains(he) && !this.options.group.revertClone + ? ge.insertBefore(be, he) + : ve + ? ge.insertBefore(be, ve) + : ge.appendChild(be), + this.options.group.revertClone && this.animate(he, be), + V(be, 'display', ''), + (ye = !1) + } + } else this._hideClone() + }, + }), + Ke && + R(document, 'touchmove', function(e) { + ;(nt.active || Fe) && e.cancelable && e.preventDefault() + }), + (nt.utils = { + on: R, + off: A, + css: V, + find: K, + is: function(e, t) { + return !!B(e, t, e, !1) + }, + extend: function(e, t) { + if (e && t) for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) + return e + }, + throttle: te, + closest: B, + toggleClass: X, + clone: oe, + index: J, + nextTick: lt, + cancelNextTick: st, + detectDirection: $e, + getChild: G, + }), + (nt.get = function(e) { + return e[re] + }), + (nt.mount = function() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n] + t[0].constructor === Array && (t = t[0]), + t.forEach(function(e) { + if (!e.prototype || !e.prototype.constructor) + throw 'Sortable: Mounted plugin must be a constructor function, not '.concat({}.toString.call(e)) + e.utils && (nt.utils = E({}, nt.utils, e.utils)), se.mount(e) + }) + }), + (nt.create = function(e, t) { + return new nt(e, t) + }), + (nt.version = '1.10.1') + var ct, + ut, + dt, + ht, + pt, + ft, + gt = [], + vt = !1 + function mt() { + gt.forEach(function(e) { + clearInterval(e.pid) + }), + (gt = []) + } + function bt() { + clearInterval(ft) + } + var yt = te(function(e, t, n, o) { + if (t.scroll) { + var r, + a = (e.touches ? e.touches[0] : e).clientX, + i = (e.touches ? e.touches[0] : e).clientY, + l = t.scrollSensitivity, + s = t.scrollSpeed, + c = U(), + u = !1 + ut !== n && ((ut = n), mt(), (ct = t.scroll), (r = t.scrollFn), !0 === ct && (ct = Q(n, !0))) + var d = 0, + h = ct + do { + var p = h, + f = z(p), + g = f.top, + v = f.bottom, + m = f.left, + b = f.right, + y = f.width, + w = f.height, + O = void 0, + _ = void 0, + S = p.scrollWidth, + T = p.scrollHeight, + E = V(p), + C = p.scrollLeft, + k = p.scrollTop + p === c + ? ((O = y < S && ('auto' === E.overflowX || 'scroll' === E.overflowX || 'visible' === E.overflowX)), + (_ = w < T && ('auto' === E.overflowY || 'scroll' === E.overflowY || 'visible' === E.overflowY))) + : ((O = y < S && ('auto' === E.overflowX || 'scroll' === E.overflowX)), + (_ = w < T && ('auto' === E.overflowY || 'scroll' === E.overflowY))) + var P = O && (Math.abs(b - a) <= l && C + y < S) - (Math.abs(m - a) <= l && !!C), + x = _ && (Math.abs(v - i) <= l && k + w < T) - (Math.abs(g - i) <= l && !!k) + if (!gt[d]) for (var D = 0; D <= d; D++) gt[D] || (gt[D] = {}) + ;(gt[d].vx == P && gt[d].vy == x && gt[d].el === p) || + ((gt[d].el = p), + (gt[d].vx = P), + (gt[d].vy = x), + clearInterval(gt[d].pid), + (0 == P && 0 == x) || + ((u = !0), + (gt[d].pid = setInterval( + function() { + o && 0 === this.layer && nt.active._onTouchMove(pt) + var t = gt[this.layer].vy ? gt[this.layer].vy * s : 0, + n = gt[this.layer].vx ? gt[this.layer].vx * s : 0 + ;('function' == typeof r && + 'continue' !== r.call(nt.dragged.parentNode[re], n, t, e, pt, gt[this.layer].el)) || + ne(gt[this.layer].el, n, t) + }.bind({ layer: d }), + 24 + )))), + d++ + } while (t.bubbleScroll && h !== c && (h = Q(h, !1))) + vt = u + } + }, 30), + wt = function(e) { + var t = e.originalEvent, + n = e.putSortable, + o = e.dragEl, + r = e.activeSortable, + a = e.dispatchSortableEvent, + i = e.hideGhostForTarget, + l = e.unhideGhostForTarget + if (t) { + var s = n || r + i() + var c = t.changedTouches && t.changedTouches.length ? t.changedTouches[0] : t, + u = document.elementFromPoint(c.clientX, c.clientY) + l(), s && !s.el.contains(u) && (a('spill'), this.onSpill({ dragEl: o, putSortable: n })) + } + } + function Ot() {} + function _t() {} + ;(Ot.prototype = { + startIndex: null, + dragStart: function(e) { + var t = e.oldDraggableIndex + this.startIndex = t + }, + onSpill: function(e) { + var t = e.dragEl, + n = e.putSortable + this.sortable.captureAnimationState(), n && n.captureAnimationState() + var o = G(this.sortable.el, this.startIndex, this.options) + o ? this.sortable.el.insertBefore(t, o) : this.sortable.el.appendChild(t), + this.sortable.animateAll(), + n && n.animateAll() + }, + drop: wt, + }), + T(Ot, { pluginName: 'revertOnSpill' }), + (_t.prototype = { + onSpill: function(e) { + var t = e.dragEl, + n = e.putSortable || this.sortable + n.captureAnimationState(), t.parentNode && t.parentNode.removeChild(t), n.animateAll() + }, + drop: wt, + }), + T(_t, { pluginName: 'removeOnSpill' }) + nt.mount( + new function() { + function e() { + for (var e in ((this.defaults = { scroll: !0, scrollSensitivity: 30, scrollSpeed: 10, bubbleScroll: !0 }), + this)) + '_' === e.charAt(0) && 'function' == typeof this[e] && (this[e] = this[e].bind(this)) + } + return ( + (e.prototype = { + dragStarted: function(e) { + var t = e.originalEvent + this.sortable.nativeDraggable + ? R(document, 'dragover', this._handleAutoScroll) + : this.options.supportPointer + ? R(document, 'pointermove', this._handleFallbackAutoScroll) + : t.touches + ? R(document, 'touchmove', this._handleFallbackAutoScroll) + : R(document, 'mousemove', this._handleFallbackAutoScroll) + }, + dragOverCompleted: function(e) { + var t = e.originalEvent + this.options.dragOverBubble || t.rootEl || this._handleAutoScroll(t) + }, + drop: function() { + this.sortable.nativeDraggable + ? A(document, 'dragover', this._handleAutoScroll) + : (A(document, 'pointermove', this._handleFallbackAutoScroll), + A(document, 'touchmove', this._handleFallbackAutoScroll), + A(document, 'mousemove', this._handleFallbackAutoScroll)), + bt(), + mt(), + clearTimeout(Y), + (Y = void 0) + }, + nulling: function() { + ;(pt = ut = ct = vt = ft = dt = ht = null), (gt.length = 0) + }, + _handleFallbackAutoScroll: function(e) { + this._handleAutoScroll(e, !0) + }, + _handleAutoScroll: function(e, t) { + var n = this, + o = (e.touches ? e.touches[0] : e).clientX, + r = (e.touches ? e.touches[0] : e).clientY, + a = document.elementFromPoint(o, r) + if (((pt = e), t || x || P || N)) { + yt(e, this.options, a, t) + var i = Q(a, !0) + !vt || + (ft && o === dt && r === ht) || + (ft && bt(), + (ft = setInterval(function() { + var a = Q(document.elementFromPoint(o, r), !0) + a !== i && ((i = a), mt()), yt(e, n.options, a, t) + }, 10)), + (dt = o), + (ht = r)) + } else { + if (!this.options.bubbleScroll || Q(a, !0) === U()) return void mt() + yt(e, this.options, Q(a, !1), !1) + } + }, + }), + T(e, { pluginName: 'scroll', initializeByDefault: !0 }) + ) + }() + ), + nt.mount(_t, Ot) + var St = nt, + Tt = n(2), + Et = n.n(Tt), + Ct = !0, + kt = 'Invariant failed' + var Pt = function(e, t) { + if (!e) { + if (Ct) throw new Error(kt) + throw new Error(kt + ': ' + (t || '')) + } + }, + xt = function(e, t) { + return (xt = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, t) { + e.__proto__ = t + }) || + function(e, t) { + for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) + })(e, t) + } + /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the @@ -29,14 +2613,2470 @@ MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. -***************************************************************************** */var Dt=function(){return(Dt=Object.assign||function(e){for(var t,n=1,o=arguments.length;n0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function It(){for(var e=[],t=0;t0?"multidrag":e.swapItem?"swap":"normal"}function Yt(e){e.list,e.setList,e.children,e.tag,e.style,e.className,e.clone,e.onAdd,e.onChange,e.onChoose,e.onClone,e.onEnd,e.onFilter,e.onRemove,e.onSort,e.onStart,e.onUnchoose,e.onUpdate,e.onMove,e.onSpill,e.onSelect,e.onDeselect;return function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r when using the "'+a+'" plugin')}Mt(s),i.forEach(function(n){var o=n.oldIndex,r=t.props.clone(n.item,e);l.splice(o,1,r)})}r(l=l.map(function(e){return Dt(Dt({},e),{selected:!1})}),this.sortable,Ht)},t.prototype.onUpdate=function(e){var t=this.props,n=t.list,o=t.setList,r=At(e,n);return Mt(r),Rt(r),o(function(e,t){return Lt(e,Ft(e,t))}(r,n),this.sortable,Ht)},t.prototype.onStart=function(e){Ht.dragging=this},t.prototype.onEnd=function(e){Ht.dragging=null},t.prototype.onChoose=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n);r[e.oldIndex].chosen=!0,o(r,this.sortable,Ht)},t.prototype.onUnchoose=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n);r[e.oldIndex].chosen=!1,o(r,this.sortable,Ht)},t.prototype.onSpill=function(e){var t=this.props,n=t.removeOnSpill,o=t.revertOnSpill;n&&!o&&jt(e.item)},t.prototype.onSelect=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n).map(function(e){return Dt(Dt({},e),{selected:!1})});e.newIndicies.forEach(function(t){var n=t.index;if(-1===n)return console.log('"'+e.type+'" had indice of "'+t.index+"\", which is probably -1 and doesn't usually happen here."),void console.log(e);r[n].selected=!0}),o(r,this.sortable,Ht)},t.prototype.onDeselect=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n).map(function(e){return Dt(Dt({},e),{selected:!1})});e.newIndicies.forEach(function(e){var t=e.index;-1!==t&&(r[t].selected=!0)}),o(r,this.sortable,Ht)},t.defaultProps={clone:function(e){return e}},t}(a.Component),Vt=(n(8),function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=arguments[2],o=arguments[3],r=arguments[4];return e.map(function(e){var a=e._id,s=e.label,c=e.tagClassName,u=e.dataset;return i.a.createElement("li",Wt({className:["tag-item",c].filter(Boolean).join(" "),key:"tag-item-"+a},l(u)),i.a.createElement(O,{label:s,id:a,onDelete:t,readOnly:n,disabled:o,labelRemove:r}))})},Ut=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),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,(t.__proto__||Object.getPrototypeOf(t)).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)}(t,a["PureComponent"]),Vt(t,[{key:"render",value:function(){var e=this.props,t=e.tags,n=e.onTagRemove,o=e.texts,r=void 0===o?{}:o,a=e.disabled,l=e.readOnly,s=e.sortable,c=void 0!==s&&s,u=e.onReorderList,d=e.children||i.a.createElement("span",{className:"placeholder"},r.placeholder||"Choose...");return i.a.createElement("ul",{className:"tag-list"},c?i.a.createElement(Xt,{list:t,setList:function(e){return u(e)}},Kt(t,n,l,a,r.labelRemove)):Kt(t,n,l,a,r.labelRemove),i.a.createElement("li",{className:"tag-item"},d))}}]),t}();Ut.propTypes={tags:r.a.array,onTagRemove:r.a.func,readOnly:r.a.bool,sortable:r.a.bool,onReorderList:r.a.func,disabled:r.a.bool,texts:r.a.object,children:r.a.node};var zt=Ut,qt=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,["actions","id"]);return s(t)?null:t.map(function(e,t){var r=e.id||"action-"+t;return i.a.createElement(rn,an({key:r},o,e,{actionData:{action:an({},e,{id:r}),nodeId:n}}))})}}]),t}();sn.propTypes={id:r.a.string.isRequired,actions:r.a.array};var cn=sn,un=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,["checked","indeterminate","onChange","disabled","readOnly"]),c=a||l;return i.a.createElement("input",un({type:"checkbox",ref:hn({checked:t,indeterminate:o}),onChange:r,disabled:c},s))}}]),t}();pn.propTypes={checked:r.a.bool,indeterminate:r.a.bool,onChange:r.a.func,disabled:r.a.bool,readOnly:r.a.bool};var fn=pn,gn=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,["name","checked","onChange","disabled","readOnly"]),s=r||a;return i.a.createElement("input",gn({type:"radio",name:t,ref:mn({checked:n}),onChange:o,disabled:s},l))}}]),t}();bn.propTypes={name:r.a.string.isRequired,checked:r.a.bool,onChange:r.a.func,disabled:r.a.bool,readOnly:r.a.bool};var yn=bn,wn=Object.assign||function(e){for(var t=1;t0?Math.ceil(r/e.props.pageSize):1}},this.getNodes=function(e){var t=e.data,n=e.keepTreeOnSearch,o=e.keepChildrenOnSearch,r=e.searchModeOn,a=e.mode,l=e.showPartiallySelected,s=e.readOnly,c=e.onAction,u=e.onChange,d=e.onCheckboxChange,h=e.onNodeToggle,p=e.activeDescendant,f=e.clientId,g=[];return t.forEach(function(e){(function(e,t,n){if(t||e.expanded)return!0;var o=e._parent&&n.get(e._parent);return!o||o.expanded})(e,r,t)&&g.push(i.a.createElement(Mn,Rn({keepTreeOnSearch:n,keepChildrenOnSearch:o,key:e._id},e,{searchModeOn:r,onChange:u,onCheckboxChange:d,onNodeToggle:h,onAction:c,mode:a,showPartiallySelected:l,readOnly:s,clientId:f,activeDescendant:p})))}),g},this.hasMore=function(){return e.currentPage1&&void 0!==arguments[1]?arguments[1]:"children",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Xn;return Hn()(e[t],function(e){return n(e).checked})||e[t].some(function(e){return n(e).partial})};var Wn=function(e){var t=e.tree,n=e.simple,o=e.radio,r=e.showPartialState,a=e.hierarchical,i=e.rootPrefixId;return function e(t){var n=t.nodes,o=t.parent,r=t.depth,a=void 0===r?0:r,i=t.simple,l=t.radio,c=t.showPartialState,u=t.hierarchical,d=t.rootPrefixId,h=t._rv,p=void 0===h?{list:new Map,defaultValues:[],singleSelectedNode:null}:h,f=i||l;return n.forEach(function(t,n){t._depth=a,o?(t._id=t.id||o._id+"-"+n,t._parent=o._id,o._children.push(t._id)):t._id=t.id||""+(d?d+"-"+n:n),f&&t.checked&&(p.singleSelectedNode?t.checked=!1:p.singleSelectedNode=t),f&&t.isDefaultValue&&p.singleSelectedNode&&!p.singleSelectedNode.isDefaultValue&&(p.singleSelectedNode.checked=!1,p.singleSelectedNode=null),!t.isDefaultValue||f&&0!==p.defaultValues.length||(p.defaultValues.push(t._id),t.checked=!0,f&&(p.singleSelectedNode=t)),u&&!l||function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&!arguments[2]?["disabled"]:["checked","disabled"],o=0;o-1||!n&&e===o},co=function(e,t,n){if(!e||0===e.length)return t;var o=t;(function(e){return so(e,[ro.FocusFirst,ro.FocusLast],!0)})(n)?o=qn(e,1)[0]:[ro.FocusPrevious,ro.FocusNext].indexOf(n)>-1&&(o=function(e,t){var n=e.indexOf(t)+1;return n%e.length==0?e[0]:e[n]}(e,t));return o},uo={isValidKey:function(e,t){return(t?lo:io).indexOf(e)>-1},getAction:function(e,t){return t===Jn?function(e,t){return e&&t===Jn?!0===e.expanded?ro.ToggleExpanded:e._parent?ro.FocusParent:ro.None:ro.None}(e,t):t===Zn?function(e,t){return e&&e._children&&t===Zn?!0!==e.expanded?ro.ToggleExpanded:ro.FocusNext:ro.None}(e,t):function(e,t){return so(e,[eo,to],t,$n)}(t,e)?ro.FocusFirst:function(e,t){return so(e,[no,oo],t,Gn)}(t,e)?ro.FocusLast:function(e,t){if(!e)return ro.None;switch(t){case Gn:return ro.FocusPrevious;case $n:return ro.FocusNext;case Qn:return ro.ToggleChecked;default:return ro.None}}(e,t)},getNextFocus:function(e,t,n,o,r){if(n===ro.FocusParent)return function(e,t){return e&&e._parent?t(e._parent):e}(t,o);if(!ao.has(n))return t;var a=zn.getVisibleNodes(e,o,r);return function(e){return so(e,[ro.FocusPrevious,ro.FocusLast],!0)}(n)&&(a=a.reverse()),co(a,t,n)},getNextFocusAfterTagDelete:function(e,t,n,o){var r=t&&t.findIndex(function(t){return t._id===e});if(r<0||!n.length)return o;var a=n[r=n.length>r?r:n.length-1]._id,i=document.getElementById(y(a));return i&&i.firstElementChild||o},handleFocusNavigationkey:function(e,t,n,o,r){var a=uo.getNextFocus(e,n,t,o,r);return n&&a&&n._id!==a._id&&(n._focused=!1),a?(a._focused=!0,a._id):n&&n._id},handleToggleNavigationkey:function(e,t,n,o,r){return e!==ro.ToggleChecked||n||t.readOnly||t.disabled?e===ro.ToggleExpanded&&r(t._id):o(t._id,!0!==t.checked),t&&t._id}},ho=uo,po=function(){function e(e,t){for(var n=0;nn&&(n=r.length,o=r)});var r=[],a=this._getAddOnMatch(r,e);o!==e?this.searchMaps.get(o).forEach(function(e){return a(t.getNodeById(e))}):this.tree.forEach(a);return this.searchMaps.set(e,r),r}},{key:"addParentsToTree",value:function(e,t){if(void 0!==e){var n=this.getNodeById(e);this.addParentsToTree(n._parent,t),n.hide=!n._isMatch||n.hide,n.matchInChildren=!0,t.set(e,n)}}},{key:"addChildrenToTree",value:function(e,t,n){var o=this;void 0!==e&&e.forEach(function(e){if(!n||!n.includes(e)){var r=o.getNodeById(e);r.matchInParent=!0,t.set(e,r),o.addChildrenToTree(r._children,t)}})}},{key:"filterTree",value:function(e,t,n){var o=this,r=this.getMatches(e.toLowerCase()),a=new Map;r.forEach(function(e){var i=o.getNodeById(e);i.hide=!1,i._isMatch=!0,t&&o.addParentsToTree(i._parent,a),a.set(e,i),t&&n&&o.addChildrenToTree(i._children,a,r)});var i=0===r.length;return this.matchTree=a,{allNodesHidden:i,tree:a}}},{key:"restoreNodes",value:function(){return this.tree.forEach(function(e){e.hide=!1}),this.tree}},{key:"restoreDefaultValues",value:function(){var e=this;return this.defaultValues.forEach(function(t){e.setNodeCheckedState(t,!0)}),this.tree}},{key:"togglePreviousChecked",value:function(e,t){var n=this.currentChecked;n&&n!==e&&(this.getNodeById(n).checked=!1),this.currentChecked=t?e:null}},{key:"setNodeCheckedState",value:function(e,t){var n=this.getNodeById(e);n.checked=t,this.showPartialState&&(n.partial=!1),this.simpleSelect?this.togglePreviousChecked(e,t):this.radioSelect?(this.togglePreviousChecked(e,t),this.showPartialState&&this.partialCheckParents(n),t||this.unCheckParents(n)):(this.hierarchical||this.toggleChildren(e,t),this.showPartialState&&this.partialCheckParents(n),this.hierarchical||t||this.unCheckParents(n))}},{key:"unCheckParents",value:function(e){for(var t=e._parent;t;){var n=this.getNodeById(t);n.checked=!1,n.partial=Vn(n,"_children",this.getNodeById.bind(this)),t=n._parent}}},{key:"partialCheckParents",value:function(e){for(var t=this,n=e._parent;n;){var o=this.getNodeById(n);o.checked=o._children.every(function(e){return t.getNodeById(e).checked}),o.partial=Vn(o,"_children",this.getNodeById.bind(this)),n=o._parent}}},{key:"toggleChildren",value:function(e,t){var n=this,o=this.getNodeById(e);o.checked=t,this.showPartialState&&(o.partial=!1),s(o._children)||o._children.forEach(function(e){return n.toggleChildren(e,t)})}},{key:"toggleNodeExpandState",value:function(e){var t=this.getNodeById(e);return t.expanded=!t.expanded,t.expanded||this.collapseChildren(t),this.tree}},{key:"collapseChildren",value:function(e){var t=this;e.expanded=!1,s(e._children)||e._children.forEach(function(e){return t.collapseChildren(t.getNodeById(e))})}},{key:"getTreeAndTags",value:function(){return{tree:this.tree,tags:this.tags}}},{key:"handleNavigationKey",value:function(e,t,n,o,r,a,i){var l=this,s=e&&this.getNodeById(e),c=ho.getAction(s,n);return ao.has(c)?ho.handleFocusNavigationkey(t,c,s,function(e){return l.getNodeById(e)},r):s&&t.has(s._id)?ho.handleToggleNavigationkey(c,s,o,a,i):e}},{key:"_getAddOnMatch",value:function(e,t){var n=function(e,t){return e.label.toLowerCase().indexOf(t)>=0};return"function"==typeof this.searchPredicate&&(n=this.searchPredicate),function(o){n(o,t)&&e.push(o._id)}}},{key:"tags",get:function(){var e=this;return this.radioSelect||this.simpleSelect?this.currentChecked?[this.getNodeById(this.currentChecked)]:[]:zn.getNodesMatching(this.tree,function(t,n,o){return t.checked&&!e.hierarchical&&zn.markSubTreeVisited(t,o,function(t){return e.getNodeById(t)}),t.checked})}}]),e}(),go=(n(10),Object.assign||function(e){for(var t=1;t - * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com) - * license MIT - * see https://github.com/dowjones/react-dropdown-tree-select - */ -var mo=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var 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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.initNewProps=function(e){var t=e.data,o=e.mode,r=e.showDropdown,a=e.showPartiallySelected,i=e.searchPredicate;n.treeManager=new fo({data:t,mode:o,showPartiallySelected:a,rootPrefixId:n.clientId,searchPredicate:i});var l=n.state.currentFocus&&n.treeManager.getNodeById(n.state.currentFocus);l&&(l._focused=!0),n.setState(function(e){return go({showDropdown:/initial|always/.test(r)||!0===e.showDropdown},n.treeManager.getTreeAndTags())})},n.resetSearchState=function(){return n.props.inlineSearchInput||(n.searchInput.value=""),{tree:n.treeManager.restoreNodes(),searchModeOn:!1,allNodesHidden:!1}},n.handleClick=function(e,t){n.setState(function(e){var t="always"===n.props.showDropdown||n.keepDropdownActive||!e.showDropdown;return t!==e.showDropdown&&(t?document.addEventListener("click",n.handleOutsideClick,!1):document.removeEventListener("click",n.handleOutsideClick,!1)),t?n.props.onFocus():n.props.onBlur(),t?{showDropdown:t}:go({showDropdown:t},n.resetSearchState())},t)},n.handleOutsideClick=function(e){"always"!==n.props.showDropdown&&c(e,n.node)&&n.handleClick()},n.onInputChange=function(e){var t=n.treeManager.filterTree(e,n.props.keepTreeOnSearch,n.props.keepChildrenOnSearch),o=t.allNodesHidden,r=t.tree,a=e.length>0;n.setState({tree:r,searchModeOn:a,allNodesHidden:o})},n.onTagRemove=function(e,t){var o=n.state.tags;n.onCheckboxChange(e,!1,function(r){t&&ho.getNextFocusAfterTagDelete(e,o,r,n.searchInput).focus()})},n.onNodeToggle=function(e){n.treeManager.toggleNodeExpandState(e);var t=n.state.searchModeOn?n.treeManager.matchTree:n.treeManager.tree;n.setState({tree:t}),"function"==typeof n.props.onNodeToggle&&n.props.onNodeToggle(n.treeManager.getNodeById(e))},n.onCheckboxChange=function(e,t,o){var r=n.props,a=r.mode,i=r.keepOpenOnSelect;n.treeManager.setNodeCheckedState(e,t);var l=n.treeManager.tags,s=["simpleSelect","radioSelect"].indexOf(a)>-1,c=!(s&&!i)&&n.state.showDropdown;l.length||(n.treeManager.restoreDefaultValues(),l=n.treeManager.tags);var u={tree:n.state.searchModeOn?n.treeManager.matchTree:n.treeManager.tree,tags:l,showDropdown:c};(s&&!c||n.props.clearSearchOnChange)&&Object.assign(u,n.resetSearchState()),s&&!c&&document.removeEventListener("click",n.handleOutsideClick,!1),n.setState(u,function(){o&&o(l)}),n.props.onChange(n.treeManager.getNodeById(e),l)},n.onAction=function(e,t){n.props.onAction(n.treeManager.getNodeById(e),t)},n.onInputFocus=function(){n.keepDropdownActive=!0},n.onInputBlur=function(){n.keepDropdownActive=!1},n.onTrigger=function(e){n.handleClick(e,function(){n.state.showDropdown&&n.searchInput.focus()})},n.onKeyboardKeyDown=function(e){var t=n.props,o=t.readOnly,r=t.mode,a=n.state,i=a.showDropdown,l=a.tags,s=a.searchModeOn,c=a.currentFocus,u=n.treeManager,d=s?u.matchTree:u.tree;if(i||!ho.isValidKey(e.key,!1)&&!/^\w$/i.test(e.key))if(i&&ho.isValidKey(e.key,!0)){var h=u.handleNavigationKey(c,d,e.key,o,!s,n.onCheckboxChange,n.onNodeToggle);h!==c&&n.setState({currentFocus:h})}else{if(i&&["Escape","Tab"].indexOf(e.key)>-1)return void("simpleSelect"===r&&d.has(c)?n.onCheckboxChange(c,!0):(n.keepDropdownActive=!1,n.handleClick()));if("Backspace"!==e.key||!l.length||0!==n.searchInput.value.length)return;var p=l.pop();n.onCheckboxChange(p._id,!1)}else if(e.persist(),n.handleClick(null,function(){return n.onKeyboardKeyDown(e)}),/\w/i.test(e.key))return;e.preventDefault()},n.onReorderList=function(e){n.setState({tags:e},function(){n.props.onReorderList?n.props.onReorderList(e):n.props.onChange(e)})},n.getAriaAttributes=function(){var e=n.props,t=e.mode,o=e.texts;return"radioSelect"!==t?{}:go({role:"radiogroup"},h(o.label))},n.state={searchModeOn:!1,currentFocus:void 0},n.clientId=e.id||d.get(n),n}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)}(t,a["Component"]),vo(t,[{key:"componentWillMount",value:function(){this.initNewProps(this.props)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.handleOutsideClick,!1)}},{key:"componentWillReceiveProps",value:function(e){this.initNewProps(e)}},{key:"render",value:function(){var e=this,t=this.props,n=t.disabled,o=t.readOnly,r=t.mode,a=t.texts,l=t.inlineSearchInput,s=t.sortable,c=void 0!==s&&s,u=this.state,d=u.showDropdown,h=u.currentFocus,p=u.tags,f={disabled:n,readOnly:o,activeDescendant:h?h+"_li":void 0,texts:a,mode:r,clientId:this.clientId},g=i.a.createElement(v,go({inputRef:function(t){e.searchInput=t},onInputChange:this.onInputChange,onFocus:this.onInputFocus,onBlur:this.onInputBlur,onKeyDown:this.onKeyboardKeyDown},f));return i.a.createElement("div",{id:this.clientId,className:[this.props.className&&this.props.className,"react-dropdown-tree-select"].filter(Boolean).join(" "),ref:function(t){e.node=t}},i.a.createElement("div",{className:["dropdown","simpleSelect"===r&&"simple-select","radioSelect"===r&&"radio-select"].filter(Boolean).join(" ")},i.a.createElement(Zt,go({onTrigger:this.onTrigger,showDropdown:d},f,{tags:p}),i.a.createElement(zt,go({tags:p,onTagRemove:this.onTagRemove,onReorderList:this.onReorderList,sortable:c},f),!l&&g)),d&&i.a.createElement("div",go({className:"dropdown-content"},this.getAriaAttributes()),l&&g,this.state.allNodesHidden?i.a.createElement("span",{className:"no-matches"},a.noMatches||"No matches found"):i.a.createElement(Bn,go({data:this.state.tree,keepTreeOnSearch:this.props.keepTreeOnSearch,keepChildrenOnSearch:this.props.keepChildrenOnSearch,searchModeOn:this.state.searchModeOn,onAction:this.onAction,onCheckboxChange:this.onCheckboxChange,onNodeToggle:this.onNodeToggle,mode:r,showPartiallySelected:this.props.showPartiallySelected},f)))))}}]),t}();mo.propTypes={data:r.a.oneOfType([r.a.object,r.a.array]).isRequired,clearSearchOnChange:r.a.bool,keepTreeOnSearch:r.a.bool,keepChildrenOnSearch:r.a.bool,keepOpenOnSelect:r.a.bool,texts:r.a.shape({placeholder:r.a.string,noMatches:r.a.string,label:r.a.string,labelRemove:r.a.string}),showDropdown:r.a.oneOf(["default","initial","always"]),className:r.a.string,onChange:r.a.func,onAction:r.a.func,onNodeToggle:r.a.func,onFocus:r.a.func,onBlur:r.a.func,mode:r.a.oneOf(["multiSelect","simpleSelect","radioSelect","hierarchical"]),showPartiallySelected:r.a.bool,disabled:r.a.bool,readOnly:r.a.bool,id:r.a.string,onReorderList:r.a.func,sortable:r.a.bool,searchPredicate:r.a.func,inlineSearchInput:r.a.bool},mo.defaultProps={onFocus:function(){},onBlur:function(){},onChange:function(){},texts:{},showDropdown:"default",inlineSearchInput:!1};t.default=mo}])}); -//# sourceMappingURL=react-dropdown-tree-select.js.map \ No newline at end of file +***************************************************************************** */ var Dt = function() { + return (Dt = + Object.assign || + function(e) { + for (var t, n = 1, o = arguments.length; n < o; n++) + for (var r in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]) + return e + }).apply(this, arguments) + } + function Nt(e, t) { + var n = 'function' == typeof Symbol && e[Symbol.iterator] + if (!n) return e + var o, + r, + a = n.call(e), + i = [] + try { + for (; (void 0 === t || t-- > 0) && !(o = a.next()).done; ) i.push(o.value) + } catch (e) { + r = { error: e } + } finally { + try { + o && !o.done && (n = a.return) && n.call(a) + } finally { + if (r) throw r.error + } + } + return i + } + function It() { + for (var e = [], t = 0; t < arguments.length; t++) e = e.concat(Nt(arguments[t])) + return e + } + function jt(e) { + null !== e.parentElement && e.parentElement.removeChild(e) + } + function Mt(e) { + e.forEach(function(e) { + return jt(e.element) + }) + } + function Rt(e) { + e.forEach(function(e) { + var t, n, o, r + ;(t = e.parentElement), (n = e.element), (o = e.oldIndex), (r = t.children[o] || null), t.insertBefore(n, r) + }) + } + function At(e, t) { + var n = Bt(e), + o = { parentElement: e.from }, + r = [] + switch (n) { + case 'normal': + r = [{ element: e.item, newIndex: e.newIndex, oldIndex: e.oldIndex, parentElement: e.from }] + break + case 'swap': + r = [ + Dt({ element: e.item, oldIndex: e.oldIndex, newIndex: e.newIndex }, o), + Dt({ element: e.swapItem, oldIndex: e.newIndex, newIndex: e.oldIndex }, o), + ] + break + case 'multidrag': + r = e.oldIndicies.map(function(t, n) { + return Dt({ element: t.multiDragElement, oldIndex: t.index, newIndex: e.newIndicies[n].index }, o) + }) + } + return (function(e, t) { + return e + .map(function(e) { + return Dt(Dt({}, e), { item: t[e.oldIndex] }) + }) + .sort(function(e, t) { + return e.oldIndex - t.oldIndex + }) + })(r, t) + } + function Ft(e, t) { + var n = It(t) + return ( + e + .concat() + .reverse() + .forEach(function(e) { + return n.splice(e.oldIndex, 1) + }), + n + ) + } + function Lt(e, t) { + var n = It(t) + return ( + e.forEach(function(e) { + return n.splice(e.newIndex, 0, e.item) + }), + n + ) + } + function Bt(e) { + return e.oldIndicies && e.oldIndicies.length > 0 ? 'multidrag' : e.swapItem ? 'swap' : 'normal' + } + function Yt(e) { + e.list, + e.setList, + e.children, + e.tag, + e.style, + e.className, + e.clone, + e.onAdd, + e.onChange, + e.onChoose, + e.onClone, + e.onEnd, + e.onFilter, + e.onRemove, + e.onSort, + e.onStart, + e.onUnchoose, + e.onUpdate, + e.onMove, + e.onSpill, + e.onSelect, + e.onDeselect + return (function(e, t) { + var n = {} + for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]) + if (null != e && 'function' == typeof Object.getOwnPropertySymbols) { + var r = 0 + for (o = Object.getOwnPropertySymbols(e); r < o.length; r++) + t.indexOf(o[r]) < 0 && Object.prototype.propertyIsEnumerable.call(e, o[r]) && (n[o[r]] = e[o[r]]) + } + return n + })(e, [ + 'list', + 'setList', + 'children', + 'tag', + 'style', + 'className', + 'clone', + 'onAdd', + 'onChange', + 'onChoose', + 'onClone', + 'onEnd', + 'onFilter', + 'onRemove', + 'onSort', + 'onStart', + 'onUnchoose', + 'onUpdate', + 'onMove', + 'onSpill', + 'onSelect', + 'onDeselect', + ]) + } + var Ht = { dragging: null }, + Xt = (function(e) { + function t(t) { + var n = e.call(this, t) || this + n.ref = Object(a.createRef)() + var o = It(t.list).map(function(e) { + return Dt(Dt({}, e), { chosen: !1, selected: !1 }) + }) + return ( + t.setList(o, n.sortable, Ht), + Pt( + !t.plugins, + '\nPlugins prop is no longer supported.\nInstead, mount it with "Sortable.mount(new MultiDrag())"\nPlease read the updated README.md at https://github.com/SortableJS/react-sortablejs.\n ' + ), + n + ) + } + return ( + (function(e, t) { + function n() { + this.constructor = e + } + xt(e, t), (e.prototype = null === t ? Object.create(t) : ((n.prototype = t.prototype), new n())) + })(t, e), + (t.prototype.componentDidMount = function() { + if (null !== this.ref.current) { + var e = this.makeOptions() + St.create(this.ref.current, e) + } + }), + (t.prototype.render = function() { + var e = this.props, + t = e.tag, + n = { style: e.style, className: e.className, id: e.id }, + o = t && null !== t ? t : 'div' + return Object(a.createElement)(o, Dt({ ref: this.ref }, n), this.getChildren()) + }), + (t.prototype.getChildren = function() { + var e = this.props, + t = e.children, + n = e.dataIdAttr, + o = e.selectedClass, + r = void 0 === o ? 'sortable-selected' : o, + i = e.chosenClass, + l = void 0 === i ? 'sortable-chosen' : i, + s = (e.dragClass, e.fallbackClass, e.ghostClass, e.swapClass, e.filter), + c = void 0 === s ? 'sortable-filter' : s, + u = e.list + if (!t || null == t) return null + var d = n || 'data-id' + return a.Children.map(t, function(e, t) { + var n, + o, + i, + s = u[t], + h = e.props.className, + p = 'string' == typeof c && (((n = {})[c.replace('.', '')] = !!s.filtered), n), + f = Et()(h, Dt((((o = {})[r] = s.selected), (o[l] = s.chosen), o), p)) + return Object(a.cloneElement)(e, (((i = {})[d] = e.key), (i.className = f), i)) + }) + }), + Object.defineProperty(t.prototype, 'sortable', { + get: function() { + var e = this.ref.current + if (null === e) return null + var t = Object.keys(e).find(function(e) { + return e.includes('Sortable') + }) + return t ? e[t] : null + }, + enumerable: !0, + configurable: !0, + }), + (t.prototype.makeOptions = function() { + var e = this, + t = Yt(this.props) + ;[ + 'onAdd', + 'onChoose', + 'onDeselect', + 'onEnd', + 'onRemove', + 'onSelect', + 'onSpill', + 'onStart', + 'onUnchoose', + 'onUpdate', + ].forEach(function(n) { + return (t[n] = e.prepareOnHandlerPropAndDOM(n)) + }), + ['onChange', 'onClone', 'onFilter', 'onSort'].forEach(function(n) { + return (t[n] = e.prepareOnHandlerProp(n)) + }) + return Dt(Dt({}, t), { + onMove: function(t, n) { + var o = e.props.onMove, + r = t.willInsertAfter || -1 + if (!o) return r + var a = o(t, n, e.sortable, Ht) + return void 0 !== a && a + }, + }) + }), + (t.prototype.prepareOnHandlerPropAndDOM = function(e) { + var t = this + return function(n) { + t.callOnHandlerProp(n, e), t[e](n) + } + }), + (t.prototype.prepareOnHandlerProp = function(e) { + var t = this + return function(n) { + t.callOnHandlerProp(n, e) + } + }), + (t.prototype.callOnHandlerProp = function(e, t) { + var n = this.props[t] + n && n(e, this.sortable, Ht) + }), + (t.prototype.onAdd = function(e) { + var t = this.props, + n = t.list, + o = t.setList, + r = At(e, It(Ht.dragging.props.list)) + Mt(r), o(Lt(r, n), this.sortable, Ht) + }), + (t.prototype.onRemove = function(e) { + var t = this, + n = this.props, + o = n.list, + r = n.setList, + a = Bt(e), + i = At(e, o) + Rt(i) + var l = It(o) + if ('clone' !== e.pullMode) l = Ft(i, l) + else { + var s = i + switch (a) { + case 'multidrag': + s = i.map(function(t, n) { + return Dt(Dt({}, t), { element: e.clones[n] }) + }) + break + case 'normal': + s = i.map(function(t, n) { + return Dt(Dt({}, t), { element: e.clone }) + }) + break + case 'swap': + default: + Pt( + !0, + 'mode "' + + a + + '" cannot clone. Please remove "props.clone" from when using the "' + + a + + '" plugin' + ) + } + Mt(s), + i.forEach(function(n) { + var o = n.oldIndex, + r = t.props.clone(n.item, e) + l.splice(o, 1, r) + }) + } + r( + (l = l.map(function(e) { + return Dt(Dt({}, e), { selected: !1 }) + })), + this.sortable, + Ht + ) + }), + (t.prototype.onUpdate = function(e) { + var t = this.props, + n = t.list, + o = t.setList, + r = At(e, n) + return ( + Mt(r), + Rt(r), + o( + (function(e, t) { + return Lt(e, Ft(e, t)) + })(r, n), + this.sortable, + Ht + ) + ) + }), + (t.prototype.onStart = function(e) { + Ht.dragging = this + }), + (t.prototype.onEnd = function(e) { + Ht.dragging = null + }), + (t.prototype.onChoose = function(e) { + var t = this.props, + n = t.list, + o = t.setList, + r = It(n) + ;(r[e.oldIndex].chosen = !0), o(r, this.sortable, Ht) + }), + (t.prototype.onUnchoose = function(e) { + var t = this.props, + n = t.list, + o = t.setList, + r = It(n) + ;(r[e.oldIndex].chosen = !1), o(r, this.sortable, Ht) + }), + (t.prototype.onSpill = function(e) { + var t = this.props, + n = t.removeOnSpill, + o = t.revertOnSpill + n && !o && jt(e.item) + }), + (t.prototype.onSelect = function(e) { + var t = this.props, + n = t.list, + o = t.setList, + r = It(n).map(function(e) { + return Dt(Dt({}, e), { selected: !1 }) + }) + e.newIndicies.forEach(function(t) { + var n = t.index + if (-1 === n) + return ( + console.log( + '"' + + e.type + + '" had indice of "' + + t.index + + '", which is probably -1 and doesn\'t usually happen here.' + ), + void console.log(e) + ) + r[n].selected = !0 + }), + o(r, this.sortable, Ht) + }), + (t.prototype.onDeselect = function(e) { + var t = this.props, + n = t.list, + o = t.setList, + r = It(n).map(function(e) { + return Dt(Dt({}, e), { selected: !1 }) + }) + e.newIndicies.forEach(function(e) { + var t = e.index + ;-1 !== t && (r[t].selected = !0) + }), + o(r, this.sortable, Ht) + }), + (t.defaultProps = { + clone: function(e) { + return e + }, + }), + t + ) + })(a.Component), + Vt = (n(8), + (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })()), + Wt = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + } + var Kt = function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + t = arguments[1], + n = arguments[2], + o = arguments[3], + r = arguments[4] + return e.map(function(e) { + var a = e._id, + s = e.label, + c = e.tagClassName, + u = e.dataset + return i.a.createElement( + 'li', + Wt({ className: ['tag-item', c].filter(Boolean).join(' '), key: 'tag-item-' + a }, l(u)), + i.a.createElement(O, { label: s, id: a, onDelete: t, readOnly: n, disabled: o, labelRemove: r }) + ) + }) + }, + Ut = (function(e) { + function t() { + return ( + (function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t), + (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, (t.__proto__ || Object.getPrototypeOf(t)).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)) + })(t, a['PureComponent']), + Vt(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.tags, + n = e.onTagRemove, + o = e.texts, + r = void 0 === o ? {} : o, + a = e.disabled, + l = e.readOnly, + s = e.sortable, + c = void 0 !== s && s, + u = e.onReorderList, + d = e.newType, + h = + e.children || + i.a.createElement('span', { className: 'placeholder' }, r.placeholder || 'Choose...') + return i.a.createElement( + 'ul', + { className: 'tag-list' }, + c + ? i.a.createElement( + Xt, + { + list: d && 0 !== d.length ? d : t, + setList: function(e) { + return u(e) + }, + }, + Kt(t, n, l, a, r.labelRemove) + ) + : Kt(t, n, l, a, r.labelRemove), + i.a.createElement('li', { className: 'tag-item' }, h) + ) + }, + }, + ]), + t + ) + })() + Ut.propTypes = { + tags: r.a.array, + onTagRemove: r.a.func, + readOnly: r.a.bool, + sortable: r.a.bool, + onReorderList: r.a.func, + newType: r.a.array, + disabled: r.a.bool, + texts: r.a.object, + children: r.a.node, + } + var zt = Ut, + qt = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }, + Gt = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + function $t(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 + } + var Jt = (function(e) { + function t() { + var e, n, o + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + for (var r = arguments.length, a = Array(r), i = 0; i < r; i++) a[i] = arguments[i] + return ( + (n = o = $t(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(a)))), + (o.getAriaAttributes = function() { + var e = o.props, + t = e.mode, + n = e.texts, + r = void 0 === n ? {} : n, + a = e.showDropdown, + i = e.clientId, + l = e.tags, + s = i + '_trigger', + c = [], + u = h(r.label) + return ( + l && + l.length && + (u['aria-label'] && c.push(s), + l.forEach(function(e) { + c.push(y(e._id)) + }), + (u = h(r.label, c.join(' ')))), + qt( + { + id: s, + role: 'button', + tabIndex: 0, + 'aria-haspopup': 'simpleSelect' === t ? 'listbox' : 'tree', + 'aria-expanded': a ? 'true' : 'false', + }, + u + ) + ) + }), + (o.handleTrigger = function(e) { + ;(e.key && 13 !== e.keyCode && 32 !== e.keyCode && 40 !== e.keyCode) || + (e.key && o.triggerNode && o.triggerNode !== document.activeElement) || + (o.props.showDropdown || 32 !== e.keyCode || e.preventDefault(), o.props.onTrigger(e)) + }), + $t(o, n) + ) + } + 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)) + })(t, a['PureComponent']), + Gt(t, [ + { + key: 'render', + value: function() { + var e = this, + t = this.props, + n = t.disabled, + o = t.readOnly, + r = t.showDropdown, + a = ['dropdown-trigger', 'arrow', n && 'disabled', o && 'readOnly', r && 'top', !r && 'bottom'] + .filter(Boolean) + .join(' ') + return i.a.createElement( + 'a', + qt( + { + ref: function(t) { + e.triggerNode = t + }, + className: a, + onClick: n ? void 0 : this.handleTrigger, + onKeyDown: n ? void 0 : this.handleTrigger, + }, + this.getAriaAttributes() + ), + this.props.children + ) + }, + }, + ]), + t + ) + })() + Jt.propTypes = { + onTrigger: r.a.func, + disabled: r.a.bool, + readOnly: r.a.bool, + showDropdown: r.a.bool, + mode: r.a.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']), + texts: r.a.object, + clientId: r.a.string, + tags: r.a.array, + } + var Zt = Jt, + Qt = n(3), + en = n.n(Qt), + tn = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + function nn(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 + } + var on = (function(e) { + function t() { + var e, n, o + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + for (var r = arguments.length, a = Array(r), i = 0; i < r; i++) a[i] = arguments[i] + return ( + (n = o = nn(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(a)))), + (o.handleClick = function() { + var e = o.props, + t = e.onAction, + n = e.actionData + t && t(n.nodeId, n.action) + }), + nn(o, n) + ) + } + 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)) + })(t, a['PureComponent']), + tn(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.title, + n = e.className, + o = e.text, + r = e.readOnly + return i.a.createElement('i', { title: t, className: n, onClick: r ? void 0 : this.handleClick }, o) + }, + }, + ]), + t + ) + })() + ;(on.propTypes = { + title: r.a.string, + text: r.a.string, + className: r.a.string, + actionData: r.a.object, + onAction: r.a.func, + readOnly: r.a.bool, + }), + (on.defaultProps = { onAction: function() {} }) + var rn = on, + an = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }, + ln = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + var sn = (function(e) { + function t() { + return ( + (function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t), + (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, (t.__proto__ || Object.getPrototypeOf(t)).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)) + })(t, a['PureComponent']), + ln(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.actions, + n = e.id, + o = (function(e, t) { + var n = {} + for (var o in e) t.indexOf(o) >= 0 || (Object.prototype.hasOwnProperty.call(e, o) && (n[o] = e[o])) + return n + })(e, ['actions', 'id']) + return s(t) + ? null + : t.map(function(e, t) { + var r = e.id || 'action-' + t + return i.a.createElement( + rn, + an({ key: r }, o, e, { actionData: { action: an({}, e, { id: r }), nodeId: n } }) + ) + }) + }, + }, + ]), + t + ) + })() + sn.propTypes = { id: r.a.string.isRequired, actions: r.a.array } + var cn = sn, + un = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }, + dn = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + var hn = function(e) { + var t = e.checked, + n = e.indeterminate + return function(e) { + e && ((e.checked = t), (e.indeterminate = n)) + } + }, + pn = (function(e) { + function t() { + return ( + (function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t), + (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, (t.__proto__ || Object.getPrototypeOf(t)).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)) + })(t, a['PureComponent']), + dn(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.checked, + n = e.indeterminate, + o = void 0 !== n && n, + r = e.onChange, + a = e.disabled, + l = e.readOnly, + s = (function(e, t) { + var n = {} + for (var o in e) + t.indexOf(o) >= 0 || (Object.prototype.hasOwnProperty.call(e, o) && (n[o] = e[o])) + return n + })(e, ['checked', 'indeterminate', 'onChange', 'disabled', 'readOnly']), + c = a || l + return i.a.createElement( + 'input', + un({ type: 'checkbox', ref: hn({ checked: t, indeterminate: o }), onChange: r, disabled: c }, s) + ) + }, + }, + ]), + t + ) + })() + pn.propTypes = { + checked: r.a.bool, + indeterminate: r.a.bool, + onChange: r.a.func, + disabled: r.a.bool, + readOnly: r.a.bool, + } + var fn = pn, + gn = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }, + vn = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + var mn = function(e) { + var t = e.checked + return function(e) { + e && (e.checked = t) + } + }, + bn = (function(e) { + function t() { + return ( + (function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t), + (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, (t.__proto__ || Object.getPrototypeOf(t)).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)) + })(t, a['PureComponent']), + vn(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.name, + n = e.checked, + o = e.onChange, + r = e.disabled, + a = e.readOnly, + l = (function(e, t) { + var n = {} + for (var o in e) + t.indexOf(o) >= 0 || (Object.prototype.hasOwnProperty.call(e, o) && (n[o] = e[o])) + return n + })(e, ['name', 'checked', 'onChange', 'disabled', 'readOnly']), + s = r || a + return i.a.createElement( + 'input', + gn({ type: 'radio', name: t, ref: mn({ checked: n }), onChange: o, disabled: s }, l) + ) + }, + }, + ]), + t + ) + })() + bn.propTypes = { + name: r.a.string.isRequired, + checked: r.a.bool, + onChange: r.a.func, + disabled: r.a.bool, + readOnly: r.a.bool, + } + var yn = bn, + wn = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }, + On = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + function _n(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 + } + var Sn = (function(e) { + function t() { + var e, n, o + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + for (var r = arguments.length, a = Array(r), i = 0; i < r; i++) a[i] = arguments[i] + return ( + (n = o = _n(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(a)))), + (o.handleCheckboxChange = function(e) { + var t = o.props, + n = t.mode, + r = t.id, + a = t.onCheckboxChange + 'simpleSelect' === n || 'radioSelect' === n ? a(r, !0) : a(r, e.target.checked) + e.stopPropagation(), e.nativeEvent.stopImmediatePropagation() + }), + _n(o, n) + ) + } + 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)) + })(t, a['PureComponent']), + On(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.mode, + n = e.title, + o = e.label, + r = e.id, + a = e.partial, + l = e.checked, + s = this.props, + c = s.value, + u = s.disabled, + d = s.showPartiallySelected, + h = s.readOnly, + p = s.clientId, + f = { className: 'node-label' } + 'simpleSelect' === t && !h && !u && (f.onClick = this.handleCheckboxChange) + var g = { id: r, value: c, checked: l, disabled: u, readOnly: h, tabIndex: -1 }, + v = ['checkbox-item', 'simpleSelect' === t && 'simple-select'].filter(Boolean).join(' ') + return i.a.createElement( + 'label', + { title: n || o, htmlFor: r }, + 'radioSelect' === t + ? i.a.createElement( + yn, + wn({ name: p, className: 'radio-item', onChange: this.handleCheckboxChange }, g) + ) + : i.a.createElement( + fn, + wn({ name: r, className: v, indeterminate: d && a, onChange: this.handleCheckboxChange }, g) + ), + i.a.createElement('span', f, o) + ) + }, + }, + ]), + t + ) + })() + Sn.propTypes = { + id: r.a.string.isRequired, + actions: r.a.array, + title: r.a.string, + label: r.a.string.isRequired, + value: r.a.string.isRequired, + checked: r.a.bool, + partial: r.a.bool, + disabled: r.a.bool, + dataset: r.a.object, + mode: r.a.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']), + showPartiallySelected: r.a.bool, + onCheckboxChange: r.a.func, + readOnly: r.a.bool, + clientId: r.a.string, + } + var Tn = Sn, + En = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + function Cn(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 + } + var kn = (function(e) { + function t() { + var e, n, o + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + for (var r = arguments.length, a = Array(r), i = 0; i < r; i++) a[i] = arguments[i] + return ( + (n = o = Cn(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(a)))), + (o.onToggle = function(e) { + e.stopPropagation(), e.nativeEvent.stopImmediatePropagation(), o.props.onNodeToggle(o.props.id) + }), + (o.onKeyDown = function(e) { + ;('Enter' !== e.key && 32 !== e.keyCode) || (o.props.onNodeToggle(o.props.id), e.preventDefault()) + }), + Cn(o, n) + ) + } + 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)) + })(t, a['PureComponent']), + En(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.expanded + if (e.isLeaf) return null + var n = ['toggle', t && 'expanded', !t && 'collapsed'].filter(Boolean).join(' ') + return i.a.createElement('i', { + role: 'button', + tabIndex: -1, + className: n, + onClick: this.onToggle, + onKeyDown: this.onKeyDown, + 'aria-hidden': !0, + }) + }, + }, + ]), + t + ) + })() + kn.propTypes = { expanded: r.a.bool, isLeaf: r.a.bool, onNodeToggle: r.a.func, id: r.a.string } + var Pn = kn, + xn = (n(9), + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }), + Dn = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + function Nn(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 + } + var In = function(e) { + return s(e) + }, + jn = (function(e) { + function t() { + var e, n, o + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + for (var r = arguments.length, a = Array(r), i = 0; i < r; i++) a[i] = arguments[i] + return ( + (n = o = Nn(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(a)))), + (o.getAriaAttributes = function() { + var e = o.props, + t = e._children, + n = e._depth, + r = e.checked, + a = e.disabled, + i = e.expanded, + l = e.readOnly, + s = e.mode, + c = e.partial, + u = {} + return ( + (u.role = 'simpleSelect' === s ? 'option' : 'treeitem'), + (u['aria-disabled'] = a || l), + (u['aria-selected'] = r), + 'simpleSelect' !== s && + ((u['aria-checked'] = c ? 'mixed' : r), + (u['aria-level'] = (n || 0) + 1), + (u['aria-expanded'] = t && (i ? 'true' : 'false'))), + u + ) + }), + Nn(o, n) + ) + } + 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)) + })(t, a['PureComponent']), + Dn(t, [ + { + key: 'render', + value: function() { + var e = this.props, + t = e.mode, + n = e.keepTreeOnSearch, + o = e._id, + r = e._children, + a = e.dataset, + s = e._depth, + c = e.expanded, + u = e.title, + d = e.label, + h = e.partial, + p = e.checked, + f = e.value, + g = e.disabled, + v = e.actions, + m = e.onAction, + b = e.searchModeOn, + y = e.onNodeToggle, + w = e.onCheckboxChange, + O = e.showPartiallySelected, + _ = e.readOnly, + S = e.clientId, + T = (function(e) { + var t = e.keepTreeOnSearch, + n = e.keepChildrenOnSearch, + o = e._children, + r = e.matchInChildren, + a = e.matchInParent, + i = e.disabled, + l = e.partial, + s = e.hide, + c = e.className, + u = e.showPartiallySelected, + d = e.readOnly, + h = e.checked, + p = e._focused + return [ + 'node', + In(o) && 'leaf', + !In(o) && 'tree', + i && 'disabled', + s && 'hide', + t && r && 'match-in-children', + t && n && a && 'match-in-parent', + u && l && 'partial', + d && 'readOnly', + h && 'checked', + p && 'focused', + c, + ] + .filter(Boolean) + .join(' ') + })(this.props), + E = n || !b ? { paddingLeft: 20 * (s || 0) + 'px' } : {}, + C = o + '_li' + return i.a.createElement( + 'li', + xn({ className: T, style: E, id: C }, l(a), this.getAriaAttributes()), + i.a.createElement(Pn, { isLeaf: In(r), expanded: c, id: o, onNodeToggle: y }), + i.a.createElement(Tn, { + title: u, + label: d, + id: o, + partial: h, + checked: p, + value: f, + disabled: g, + mode: t, + onCheckboxChange: w, + showPartiallySelected: O, + readOnly: _, + clientId: S, + }), + i.a.createElement(cn, { actions: v, onAction: m, id: o, readOnly: _ }) + ) + }, + }, + ]), + t + ) + })() + jn.propTypes = { + _id: r.a.string.isRequired, + _depth: r.a.number, + _children: r.a.array, + actions: r.a.array, + className: r.a.string, + title: r.a.string, + label: r.a.string.isRequired, + value: r.a.string.isRequired, + checked: r.a.bool, + expanded: r.a.bool, + disabled: r.a.bool, + partial: r.a.bool, + dataset: r.a.object, + keepTreeOnSearch: r.a.bool, + keepChildrenOnSearch: r.a.bool, + searchModeOn: r.a.bool, + onNodeToggle: r.a.func, + onAction: r.a.func, + onCheckboxChange: r.a.func, + mode: r.a.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']), + showPartiallySelected: r.a.bool, + readOnly: r.a.bool, + clientId: r.a.string, + } + var Mn = jn, + Rn = + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }, + An = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + var Fn = (function(e) { + function t(e) { + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + var 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, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)) + return ( + Ln.call(n), + (n.currentPage = 1), + n.computeInstanceProps(e, !0), + (n.state = { items: n.allVisibleNodes.slice(0, n.props.pageSize) }), + n + ) + } + 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)) + })(t, a['Component']), + An(t, [ + { + key: 'render', + value: function() { + var e = this.props.searchModeOn + return i.a.createElement( + 'ul', + Rn( + { className: 'root ' + (e ? 'searchModeOn' : ''), ref: this.setNodeRef }, + this.getAriaAttributes() + ), + this.state.scrollableTarget && + i.a.createElement( + en.a, + { + dataLength: this.state.items.length, + next: this.loadMore, + hasMore: this.hasMore(), + loader: i.a.createElement('span', { className: 'searchLoader' }, 'Loading...'), + scrollableTarget: this.state.scrollableTarget, + }, + this.state.items + ) + ) + }, + }, + ]), + t + ) + })() + ;(Fn.propTypes = { + data: r.a.object, + keepTreeOnSearch: r.a.bool, + keepChildrenOnSearch: r.a.bool, + searchModeOn: r.a.bool, + onChange: r.a.func, + onNodeToggle: r.a.func, + onAction: r.a.func, + onCheckboxChange: r.a.func, + mode: r.a.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']), + showPartiallySelected: r.a.bool, + pageSize: r.a.number, + readOnly: r.a.bool, + clientId: r.a.string, + activeDescendant: r.a.string, + }), + (Fn.defaultProps = { pageSize: 100 }) + var Ln = function() { + var e = this + ;(this.componentWillReceiveProps = function(t) { + var n = t.activeDescendant, + o = n === e.props.activeDescendant + e.computeInstanceProps(t, !o), + e.setState({ items: e.allVisibleNodes.slice(0, e.currentPage * e.props.pageSize) }, function() { + if (!o) { + var t = e.state.scrollableTarget, + r = n && document && document.getElementById(n) + r && t && (t.scrollTop = r.offsetTop - (t.clientHeight - r.clientHeight) / 2) + } + }) + }), + (this.componentDidMount = function() { + e.setState({ scrollableTarget: e.node.parentNode }) + }), + (this.computeInstanceProps = function(t, n) { + if ( + ((e.allVisibleNodes = e.getNodes(t)), + (e.totalPages = Math.ceil(e.allVisibleNodes.length / e.props.pageSize)), + n && t.activeDescendant) + ) { + var o = t.activeDescendant.replace(/_li$/, ''), + r = + e.allVisibleNodes.findIndex(function(e) { + return e.key === o + }) + 1 + e.currentPage = r > 0 ? Math.ceil(r / e.props.pageSize) : 1 + } + }), + (this.getNodes = function(e) { + var t = e.data, + n = e.keepTreeOnSearch, + o = e.keepChildrenOnSearch, + r = e.searchModeOn, + a = e.mode, + l = e.showPartiallySelected, + s = e.readOnly, + c = e.onAction, + u = e.onChange, + d = e.onCheckboxChange, + h = e.onNodeToggle, + p = e.activeDescendant, + f = e.clientId, + g = [] + return ( + t.forEach(function(e) { + ;(function(e, t, n) { + if (t || e.expanded) return !0 + var o = e._parent && n.get(e._parent) + return !o || o.expanded + })(e, r, t) && + g.push( + i.a.createElement( + Mn, + Rn({ keepTreeOnSearch: n, keepChildrenOnSearch: o, key: e._id }, e, { + searchModeOn: r, + onChange: u, + onCheckboxChange: d, + onNodeToggle: h, + onAction: c, + mode: a, + showPartiallySelected: l, + readOnly: s, + clientId: f, + activeDescendant: p, + }) + ) + ) + }), + g + ) + }), + (this.hasMore = function() { + return e.currentPage < e.totalPages + }), + (this.loadMore = function() { + e.currentPage = e.currentPage + 1 + var t = e.allVisibleNodes.slice(0, e.currentPage * e.props.pageSize) + e.setState({ items: t }) + }), + (this.setNodeRef = function(t) { + e.node = t + }), + (this.getAriaAttributes = function() { + var t = e.props.mode + return { + role: 'simpleSelect' === t ? 'listbox' : 'tree', + 'aria-multiselectable': /multiSelect|hierarchical/.test(t), + } + }) + }, + Bn = Fn, + Yn = n(4), + Hn = n.n(Yn), + Xn = function(e) { + return e + }, + Vn = function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 'children', + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : Xn + return ( + Hn()(e[t], function(e) { + return n(e).checked + }) || + e[t].some(function(e) { + return n(e).partial + }) + ) + } + var Wn = function(e) { + var t = e.tree, + n = e.simple, + o = e.radio, + r = e.showPartialState, + a = e.hierarchical, + i = e.rootPrefixId + return (function e(t) { + var n = t.nodes, + o = t.parent, + r = t.depth, + a = void 0 === r ? 0 : r, + i = t.simple, + l = t.radio, + c = t.showPartialState, + u = t.hierarchical, + d = t.rootPrefixId, + h = t._rv, + p = void 0 === h ? { list: new Map(), defaultValues: [], singleSelectedNode: null } : h, + f = i || l + return ( + n.forEach(function(t, n) { + ;(t._depth = a), + o + ? ((t._id = t.id || o._id + '-' + n), (t._parent = o._id), o._children.push(t._id)) + : (t._id = t.id || '' + (d ? d + '-' + n : n)), + f && t.checked && (p.singleSelectedNode ? (t.checked = !1) : (p.singleSelectedNode = t)), + f && + t.isDefaultValue && + p.singleSelectedNode && + !p.singleSelectedNode.isDefaultValue && + ((p.singleSelectedNode.checked = !1), (p.singleSelectedNode = null)), + !t.isDefaultValue || + (f && 0 !== p.defaultValues.length) || + (p.defaultValues.push(t._id), (t.checked = !0), f && (p.singleSelectedNode = t)), + (u && !l) || + (function(e) { + for ( + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = + arguments.length > 2 && void 0 !== arguments[2] && !arguments[2] + ? ['disabled'] + : ['checked', 'disabled'], + o = 0; + o < n.length; + o++ + ) { + var r = n[o] + void 0 === e[r] && void 0 !== t[r] && (e[r] = t[r]) + } + })(t, o, !l), + p.list.set(t._id, t), + !i && + t.children && + ((t._children = []), + e({ + nodes: t.children, + parent: t, + depth: a + 1, + radio: l, + showPartialState: c, + hierarchical: u, + _rv: p, + }), + c && + !t.checked && + ((t.partial = Vn(t)), + f || + s(t.children) || + !t.children.every(function(e) { + return e.checked + }) || + (t.checked = !0)), + (t.children = void 0)) + }), + p + ) + })({ + nodes: Array.isArray(t) ? t : [t], + simple: n, + radio: o, + showPartialState: r, + hierarchical: a, + rootPrefixId: i, + }) + }, + Kn = function e(t, n, o) { + ;(n[t._id] = !0), + s(t._children) || + t._children.forEach(function(t) { + return e(o(t), n, o) + }) + }, + Un = function(e, t) { + var n = [], + o = {} + return ( + e.forEach(function(e, r) { + o[r] || (t(e, r, o) && n.push(e), (o[r] = !0)) + }), + n + ) + }, + zn = { + getNodesMatching: Un, + getVisibleNodes: function(e, t, n) { + return Un(e, function(e, o, r) { + return n && e._children && e._children.length && !0 !== e.expanded && Kn(e, r, t), !e.hide + }) + }, + markSubTreeVisited: Kn, + }, + qn = (function() { + return function(e, t) { + if (Array.isArray(e)) return e + if (Symbol.iterator in Object(e)) + return (function(e, t) { + var n = [], + o = !0, + r = !1, + a = void 0 + try { + for ( + var i, l = e[Symbol.iterator](); + !(o = (i = l.next()).done) && (n.push(i.value), !t || n.length !== t); + o = !0 + ); + } catch (e) { + ;(r = !0), (a = e) + } finally { + try { + !o && l.return && l.return() + } finally { + if (r) throw a + } + } + return n + })(e, t) + throw new TypeError('Invalid attempt to destructure non-iterable instance') + } + })(), + Gn = 'ArrowUp', + $n = 'ArrowDown', + Jn = 'ArrowLeft', + Zn = 'ArrowRight', + Qn = 'Enter', + eo = 'Home', + to = 'PageUp', + no = 'End', + oo = 'PageDown', + ro = { + None: 'None', + FocusPrevious: 'FocusPrevious', + FocusNext: 'FocusNext', + FocusParent: 'FocusParent', + FocusFirst: 'FocusFirst', + FocusLast: 'FocusLast', + ToggleExpanded: 'ToggleExpanded', + ToggleChecked: 'ToggleChecked', + }, + ao = new Set([ro.FocusPrevious, ro.FocusNext, ro.FocusParent, ro.FocusFirst, ro.FocusLast]), + io = [Gn, $n, eo, to, no, oo], + lo = io.concat([Jn, Zn, Qn]), + so = function(e, t, n, o) { + return t.indexOf(e) > -1 || (!n && e === o) + }, + co = function(e, t, n) { + if (!e || 0 === e.length) return t + var o = t + ;(function(e) { + return so(e, [ro.FocusFirst, ro.FocusLast], !0) + })(n) + ? (o = qn(e, 1)[0]) + : [ro.FocusPrevious, ro.FocusNext].indexOf(n) > -1 && + (o = (function(e, t) { + var n = e.indexOf(t) + 1 + return n % e.length == 0 ? e[0] : e[n] + })(e, t)) + return o + }, + uo = { + isValidKey: function(e, t) { + return (t ? lo : io).indexOf(e) > -1 + }, + getAction: function(e, t) { + return t === Jn + ? (function(e, t) { + return e && t === Jn + ? !0 === e.expanded + ? ro.ToggleExpanded + : e._parent + ? ro.FocusParent + : ro.None + : ro.None + })(e, t) + : t === Zn + ? (function(e, t) { + return e && e._children && t === Zn ? (!0 !== e.expanded ? ro.ToggleExpanded : ro.FocusNext) : ro.None + })(e, t) + : (function(e, t) { + return so(e, [eo, to], t, $n) + })(t, e) + ? ro.FocusFirst + : (function(e, t) { + return so(e, [no, oo], t, Gn) + })(t, e) + ? ro.FocusLast + : (function(e, t) { + if (!e) return ro.None + switch (t) { + case Gn: + return ro.FocusPrevious + case $n: + return ro.FocusNext + case Qn: + return ro.ToggleChecked + default: + return ro.None + } + })(e, t) + }, + getNextFocus: function(e, t, n, o, r) { + if (n === ro.FocusParent) + return (function(e, t) { + return e && e._parent ? t(e._parent) : e + })(t, o) + if (!ao.has(n)) return t + var a = zn.getVisibleNodes(e, o, r) + return ( + (function(e) { + return so(e, [ro.FocusPrevious, ro.FocusLast], !0) + })(n) && (a = a.reverse()), + co(a, t, n) + ) + }, + getNextFocusAfterTagDelete: function(e, t, n, o) { + var r = + t && + t.findIndex(function(t) { + return t._id === e + }) + if (r < 0 || !n.length) return o + var a = n[(r = n.length > r ? r : n.length - 1)]._id, + i = document.getElementById(y(a)) + return (i && i.firstElementChild) || o + }, + handleFocusNavigationkey: function(e, t, n, o, r) { + var a = uo.getNextFocus(e, n, t, o, r) + return n && a && n._id !== a._id && (n._focused = !1), a ? ((a._focused = !0), a._id) : n && n._id + }, + handleToggleNavigationkey: function(e, t, n, o, r) { + return ( + e !== ro.ToggleChecked || n || t.readOnly || t.disabled + ? e === ro.ToggleExpanded && r(t._id) + : o(t._id, !0 !== t.checked), + t && t._id + ) + }, + }, + ho = uo, + po = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + var fo = (function() { + function e(t) { + var n = t.data, + o = t.mode, + r = t.showPartiallySelected, + a = t.rootPrefixId, + i = t.searchPredicate + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, e), + (this._src = n), + (this.simpleSelect = 'simpleSelect' === o), + (this.radioSelect = 'radioSelect' === o), + (this.hierarchical = 'hierarchical' === o), + (this.searchPredicate = i) + var l = Wn({ + tree: JSON.parse(JSON.stringify(n)), + simple: this.simpleSelect, + radio: this.radioSelect, + showPartialState: r, + hierarchical: this.hierarchical, + rootPrefixId: a, + }), + s = l.list, + c = l.defaultValues, + u = l.singleSelectedNode + ;(this.tree = s), + (this.defaultValues = c), + (this.showPartialState = !this.hierarchical && r), + (this.searchMaps = new Map()), + (this.simpleSelect || this.radioSelect) && u && (this.currentChecked = u._id) + } + return ( + po(e, [ + { + key: 'getNodeById', + value: function(e) { + return this.tree.get(e) + }, + }, + { + key: 'getMatches', + value: function(e) { + var t = this + if (this.searchMaps.has(e)) return this.searchMaps.get(e) + var n = -1, + o = e + this.searchMaps.forEach(function(t, r) { + e.startsWith(r) && r.length > n && ((n = r.length), (o = r)) + }) + var r = [], + a = this._getAddOnMatch(r, e) + o !== e + ? this.searchMaps.get(o).forEach(function(e) { + return a(t.getNodeById(e)) + }) + : this.tree.forEach(a) + return this.searchMaps.set(e, r), r + }, + }, + { + key: 'addParentsToTree', + value: function(e, t) { + if (void 0 !== e) { + var n = this.getNodeById(e) + this.addParentsToTree(n._parent, t), + (n.hide = !n._isMatch || n.hide), + (n.matchInChildren = !0), + t.set(e, n) + } + }, + }, + { + key: 'addChildrenToTree', + value: function(e, t, n) { + var o = this + void 0 !== e && + e.forEach(function(e) { + if (!n || !n.includes(e)) { + var r = o.getNodeById(e) + ;(r.matchInParent = !0), t.set(e, r), o.addChildrenToTree(r._children, t) + } + }) + }, + }, + { + key: 'filterTree', + value: function(e, t, n) { + var o = this, + r = this.getMatches(e.toLowerCase()), + a = new Map() + r.forEach(function(e) { + var i = o.getNodeById(e) + ;(i.hide = !1), + (i._isMatch = !0), + t && o.addParentsToTree(i._parent, a), + a.set(e, i), + t && n && o.addChildrenToTree(i._children, a, r) + }) + var i = 0 === r.length + return (this.matchTree = a), { allNodesHidden: i, tree: a } + }, + }, + { + key: 'restoreNodes', + value: function() { + return ( + this.tree.forEach(function(e) { + e.hide = !1 + }), + this.tree + ) + }, + }, + { + key: 'restoreDefaultValues', + value: function() { + var e = this + return ( + this.defaultValues.forEach(function(t) { + e.setNodeCheckedState(t, !0) + }), + this.tree + ) + }, + }, + { + key: 'togglePreviousChecked', + value: function(e, t) { + var n = this.currentChecked + n && n !== e && (this.getNodeById(n).checked = !1), (this.currentChecked = t ? e : null) + }, + }, + { + key: 'setNodeCheckedState', + value: function(e, t) { + var n = this.getNodeById(e) + ;(n.checked = t), + this.showPartialState && (n.partial = !1), + this.simpleSelect + ? this.togglePreviousChecked(e, t) + : this.radioSelect + ? (this.togglePreviousChecked(e, t), + this.showPartialState && this.partialCheckParents(n), + t || this.unCheckParents(n)) + : (this.hierarchical || this.toggleChildren(e, t), + this.showPartialState && this.partialCheckParents(n), + this.hierarchical || t || this.unCheckParents(n)) + }, + }, + { + key: 'unCheckParents', + value: function(e) { + for (var t = e._parent; t; ) { + var n = this.getNodeById(t) + ;(n.checked = !1), (n.partial = Vn(n, '_children', this.getNodeById.bind(this))), (t = n._parent) + } + }, + }, + { + key: 'partialCheckParents', + value: function(e) { + for (var t = this, n = e._parent; n; ) { + var o = this.getNodeById(n) + ;(o.checked = o._children.every(function(e) { + return t.getNodeById(e).checked + })), + (o.partial = Vn(o, '_children', this.getNodeById.bind(this))), + (n = o._parent) + } + }, + }, + { + key: 'toggleChildren', + value: function(e, t) { + var n = this, + o = this.getNodeById(e) + ;(o.checked = t), + this.showPartialState && (o.partial = !1), + s(o._children) || + o._children.forEach(function(e) { + return n.toggleChildren(e, t) + }) + }, + }, + { + key: 'toggleNodeExpandState', + value: function(e) { + var t = this.getNodeById(e) + return (t.expanded = !t.expanded), t.expanded || this.collapseChildren(t), this.tree + }, + }, + { + key: 'collapseChildren', + value: function(e) { + var t = this + ;(e.expanded = !1), + s(e._children) || + e._children.forEach(function(e) { + return t.collapseChildren(t.getNodeById(e)) + }) + }, + }, + { + key: 'getTreeAndTags', + value: function() { + return { tree: this.tree, tags: this.tags } + }, + }, + { + key: 'handleNavigationKey', + value: function(e, t, n, o, r, a, i) { + var l = this, + s = e && this.getNodeById(e), + c = ho.getAction(s, n) + return ao.has(c) + ? ho.handleFocusNavigationkey( + t, + c, + s, + function(e) { + return l.getNodeById(e) + }, + r + ) + : s && t.has(s._id) + ? ho.handleToggleNavigationkey(c, s, o, a, i) + : e + }, + }, + { + key: '_getAddOnMatch', + value: function(e, t) { + var n = function(e, t) { + return e.label.toLowerCase().indexOf(t) >= 0 + } + return ( + 'function' == typeof this.searchPredicate && (n = this.searchPredicate), + function(o) { + n(o, t) && e.push(o._id) + } + ) + }, + }, + { + key: 'tags', + get: function() { + var e = this + return this.radioSelect || this.simpleSelect + ? this.currentChecked + ? [this.getNodeById(this.currentChecked)] + : [] + : zn.getNodesMatching(this.tree, function(t, n, o) { + return ( + t.checked && + !e.hierarchical && + zn.markSubTreeVisited(t, o, function(t) { + return e.getNodeById(t) + }), + t.checked + ) + }) + }, + }, + ]), + e + ) + })(), + go = (n(10), + Object.assign || + function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t] + for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) + } + return e + }), + vo = (function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var o = t[n] + ;(o.enumerable = o.enumerable || !1), + (o.configurable = !0), + 'value' in o && (o.writable = !0), + Object.defineProperty(e, o.key, o) + } + } + return function(t, n, o) { + return n && e(t.prototype, n), o && e(t, o), t + } + })() + /*! + * React Dropdown Tree Select + * A lightweight, fast and highly customizable tree select component. + * Hrusikesh Panda + * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com) + * license MIT + * see https://github.com/dowjones/react-dropdown-tree-select + */ + var mo = (function(e) { + function t(e) { + !(function(e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t) + var 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, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)) + return ( + (n.initNewProps = function(e) { + var t = e.data, + o = e.mode, + r = e.showDropdown, + a = e.showPartiallySelected, + i = e.searchPredicate + n.treeManager = new fo({ + data: t, + mode: o, + showPartiallySelected: a, + rootPrefixId: n.clientId, + searchPredicate: i, + }) + var l = n.state.currentFocus && n.treeManager.getNodeById(n.state.currentFocus) + l && (l._focused = !0), + n.setState(function(e) { + return go( + { showDropdown: /initial|always/.test(r) || !0 === e.showDropdown }, + n.treeManager.getTreeAndTags() + ) + }) + }), + (n.resetSearchState = function() { + return ( + n.props.inlineSearchInput || (n.searchInput.value = ''), + { tree: n.treeManager.restoreNodes(), searchModeOn: !1, allNodesHidden: !1 } + ) + }), + (n.handleClick = function(e, t) { + n.setState(function(e) { + var t = 'always' === n.props.showDropdown || n.keepDropdownActive || !e.showDropdown + return ( + t !== e.showDropdown && + (t + ? document.addEventListener('click', n.handleOutsideClick, !1) + : document.removeEventListener('click', n.handleOutsideClick, !1)), + t ? n.props.onFocus() : n.props.onBlur(), + t ? { showDropdown: t } : go({ showDropdown: t }, n.resetSearchState()) + ) + }, t) + }), + (n.handleOutsideClick = function(e) { + 'always' !== n.props.showDropdown && c(e, n.node) && n.handleClick() + }), + (n.onInputChange = function(e) { + var t = n.treeManager.filterTree(e, n.props.keepTreeOnSearch, n.props.keepChildrenOnSearch), + o = t.allNodesHidden, + r = t.tree, + a = e.length > 0 + n.setState({ tree: r, searchModeOn: a, allNodesHidden: o }) + }), + (n.onTagRemove = function(e, t) { + var o = n.state.tags + n.onCheckboxChange(e, !1, function(r) { + t && ho.getNextFocusAfterTagDelete(e, o, r, n.searchInput).focus() + }) + }), + (n.onNodeToggle = function(e) { + n.treeManager.toggleNodeExpandState(e) + var t = n.state.searchModeOn ? n.treeManager.matchTree : n.treeManager.tree + n.setState({ tree: t }), + 'function' == typeof n.props.onNodeToggle && n.props.onNodeToggle(n.treeManager.getNodeById(e)) + }), + (n.onCheckboxChange = function(e, t, o) { + var r = n.props, + a = r.mode, + i = r.keepOpenOnSelect + n.treeManager.setNodeCheckedState(e, t) + var l = n.treeManager.tags, + s = ['simpleSelect', 'radioSelect'].indexOf(a) > -1, + c = !(s && !i) && n.state.showDropdown + l.length || (n.treeManager.restoreDefaultValues(), (l = n.treeManager.tags)) + var u = { + tree: n.state.searchModeOn ? n.treeManager.matchTree : n.treeManager.tree, + tags: l, + showDropdown: c, + } + ;((s && !c) || n.props.clearSearchOnChange) && Object.assign(u, n.resetSearchState()), + s && !c && document.removeEventListener('click', n.handleOutsideClick, !1), + n.setState(u, function() { + o && o(l) + }), + n.props.onChange(n.treeManager.getNodeById(e), l) + }), + (n.onAction = function(e, t) { + n.props.onAction(n.treeManager.getNodeById(e), t) + }), + (n.onInputFocus = function() { + n.keepDropdownActive = !0 + }), + (n.onInputBlur = function() { + n.keepDropdownActive = !1 + }), + (n.onTrigger = function(e) { + n.handleClick(e, function() { + n.state.showDropdown && n.searchInput.focus() + }) + }), + (n.onKeyboardKeyDown = function(e) { + var t = n.props, + o = t.readOnly, + r = t.mode, + a = n.state, + i = a.showDropdown, + l = a.tags, + s = a.searchModeOn, + c = a.currentFocus, + u = n.treeManager, + d = s ? u.matchTree : u.tree + if (i || (!ho.isValidKey(e.key, !1) && !/^\w$/i.test(e.key))) + if (i && ho.isValidKey(e.key, !0)) { + var h = u.handleNavigationKey(c, d, e.key, o, !s, n.onCheckboxChange, n.onNodeToggle) + h !== c && n.setState({ currentFocus: h }) + } else { + if (i && ['Escape', 'Tab'].indexOf(e.key) > -1) + return void ('simpleSelect' === r && d.has(c) + ? n.onCheckboxChange(c, !0) + : ((n.keepDropdownActive = !1), n.handleClick())) + if ('Backspace' !== e.key || !l.length || 0 !== n.searchInput.value.length) return + var p = l.pop() + n.onCheckboxChange(p._id, !1) + } + else if ( + (e.persist(), + n.handleClick(null, function() { + return n.onKeyboardKeyDown(e) + }), + /\w/i.test(e.key)) + ) + return + e.preventDefault() + }), + (n.onReorderList = function(e) { + n.setState({ tags: e }, function() { + n.props.onReorderList ? n.props.onReorderList(e) : n.props.onChange(e) + }) + }), + (n.getAriaAttributes = function() { + var e = n.props, + t = e.mode, + o = e.texts + return 'radioSelect' !== t ? {} : go({ role: 'radiogroup' }, h(o.label)) + }), + (n.state = { searchModeOn: !1, currentFocus: void 0 }), + (n.clientId = e.id || d.get(n)), + n + ) + } + 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)) + })(t, a['Component']), + vo(t, [ + { + key: 'componentWillMount', + value: function() { + this.initNewProps(this.props) + }, + }, + { + key: 'componentWillUnmount', + value: function() { + document.removeEventListener('click', this.handleOutsideClick, !1) + }, + }, + { + key: 'componentWillReceiveProps', + value: function(e) { + this.initNewProps(e) + }, + }, + { + key: 'render', + value: function() { + var e = this, + t = this.props, + n = t.disabled, + o = t.readOnly, + r = t.mode, + a = t.texts, + l = t.inlineSearchInput, + s = (t.sortable, this.state), + c = s.showDropdown, + u = s.currentFocus, + d = s.tags, + h = { + disabled: n, + readOnly: o, + activeDescendant: u ? u + '_li' : void 0, + texts: a, + mode: r, + clientId: this.clientId, + }, + p = i.a.createElement( + v, + go( + { + inputRef: function(t) { + e.searchInput = t + }, + onInputChange: this.onInputChange, + onFocus: this.onInputFocus, + onBlur: this.onInputBlur, + onKeyDown: this.onKeyboardKeyDown, + }, + h + ) + ) + return i.a.createElement( + 'div', + { + id: this.clientId, + className: [this.props.className && this.props.className, 'react-dropdown-tree-select'] + .filter(Boolean) + .join(' '), + ref: function(t) { + e.node = t + }, + }, + i.a.createElement( + 'div', + { + className: [ + 'dropdown', + 'simpleSelect' === r && 'simple-select', + 'radioSelect' === r && 'radio-select', + ] + .filter(Boolean) + .join(' '), + }, + i.a.createElement( + Zt, + go({ onTrigger: this.onTrigger, showDropdown: c }, h, { tags: d }), + i.a.createElement( + zt, + go( + { + tags: d, + onTagRemove: this.onTagRemove, + onReorderList: this.onReorderList, + newType: this.props.newType, + sortable: !0, + }, + h + ), + !l && p + ) + ), + c && + i.a.createElement( + 'div', + go({ className: 'dropdown-content' }, this.getAriaAttributes()), + l && p, + this.state.allNodesHidden + ? i.a.createElement('span', { className: 'no-matches' }, a.noMatches || 'No matches found') + : i.a.createElement( + Bn, + go( + { + data: this.state.tree, + keepTreeOnSearch: this.props.keepTreeOnSearch, + keepChildrenOnSearch: this.props.keepChildrenOnSearch, + searchModeOn: this.state.searchModeOn, + onAction: this.onAction, + onCheckboxChange: this.onCheckboxChange, + onNodeToggle: this.onNodeToggle, + mode: r, + showPartiallySelected: this.props.showPartiallySelected, + }, + h + ) + ) + ) + ) + ) + }, + }, + ]), + t + ) + })() + ;(mo.propTypes = { + data: r.a.oneOfType([r.a.object, r.a.array]).isRequired, + clearSearchOnChange: r.a.bool, + keepTreeOnSearch: r.a.bool, + keepChildrenOnSearch: r.a.bool, + keepOpenOnSelect: r.a.bool, + texts: r.a.shape({ + placeholder: r.a.string, + noMatches: r.a.string, + label: r.a.string, + labelRemove: r.a.string, + }), + showDropdown: r.a.oneOf(['default', 'initial', 'always']), + className: r.a.string, + onChange: r.a.func, + onAction: r.a.func, + onNodeToggle: r.a.func, + onFocus: r.a.func, + onBlur: r.a.func, + mode: r.a.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']), + showPartiallySelected: r.a.bool, + disabled: r.a.bool, + readOnly: r.a.bool, + id: r.a.string, + onReorderList: r.a.func, + sortable: r.a.bool, + searchPredicate: r.a.func, + inlineSearchInput: r.a.bool, + }), + (mo.defaultProps = { + onFocus: function() {}, + onBlur: function() {}, + onChange: function() {}, + texts: {}, + showDropdown: 'default', + inlineSearchInput: !1, + }) + t.default = mo + }, + ]) +}) +//# sourceMappingURL=react-dropdown-tree-select.js.map diff --git a/dist/react-dropdown-tree-select.js.map b/dist/react-dropdown-tree-select.js.map index a902fa81..261d0a21 100644 --- a/dist/react-dropdown-tree-select.js.map +++ b/dist/react-dropdown-tree-select.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://ReactDropdownTreeSelect/webpack/universalModuleDefinition","webpack://ReactDropdownTreeSelect/webpack/bootstrap","webpack://ReactDropdownTreeSelect/./node_modules/prop-types/index.js","webpack://ReactDropdownTreeSelect/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://ReactDropdownTreeSelect/./node_modules/classnames/index.js","webpack://ReactDropdownTreeSelect/./node_modules/react-infinite-scroll-component/lib/index.js","webpack://ReactDropdownTreeSelect/./node_modules/array.partial/index.js","webpack://ReactDropdownTreeSelect/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://ReactDropdownTreeSelect/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://ReactDropdownTreeSelect/./src/utils/dataset.js","webpack://ReactDropdownTreeSelect/./src/utils/isEmpty.js","webpack://ReactDropdownTreeSelect/./src/utils/isOutsideClick.js","webpack://ReactDropdownTreeSelect/./src/utils/debounce.js","webpack://ReactDropdownTreeSelect/./src/utils/generateUID.js","webpack://ReactDropdownTreeSelect/./src/a11y/index.js","webpack://ReactDropdownTreeSelect/./src/input/index.js","webpack://ReactDropdownTreeSelect/./src/tag/index.js","webpack://ReactDropdownTreeSelect/./node_modules/sortablejs/modular/sortable.esm.js","webpack://ReactDropdownTreeSelect/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://ReactDropdownTreeSelect/./node_modules/react-sortablejs/dist/index.es.js","webpack://ReactDropdownTreeSelect/./src/tags/index.js","webpack://ReactDropdownTreeSelect/./src/trigger/index.js","webpack://ReactDropdownTreeSelect/./src/tree-node/action.js","webpack://ReactDropdownTreeSelect/./src/tree-node/actions.js","webpack://ReactDropdownTreeSelect/./src/checkbox/index.js","webpack://ReactDropdownTreeSelect/./src/radio/index.js","webpack://ReactDropdownTreeSelect/./src/tree-node/node-label.js","webpack://ReactDropdownTreeSelect/./src/tree-node/toggle.js","webpack://ReactDropdownTreeSelect/./src/tree-node/index.js","webpack://ReactDropdownTreeSelect/./src/tree/index.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/getPartialState.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/flatten-tree.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/nodeVisitor.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/keyboardNavigation.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/index.js","webpack://ReactDropdownTreeSelect/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__1__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","join","default","undefined","__WEBPACK_EXTERNAL_MODULE_8__","id","loaded","_extends","assign","target","source","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_get","_x2","_x3","_x4","_again","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","_interopRequireDefault","obj","_react","_react2","_propTypes2","_utilsThrottle2","_utilsThreshold","InfiniteScroll","_Component","instance","TypeError","_classCallCheck","state","showLoader","lastScrollTop","actionTriggered","pullToRefreshThresholdBreached","startY","currentY","dragging","maxPullDownDistance","onScrollListener","throttledOnScrollListener","onStart","onMove","onEnd","getScrollableTarget","subClass","superClass","constructor","setPrototypeOf","__proto__","_inherits","Component","_scrollableNode","el","height","_infScroll","window","addEventListener","initialScrollY","scrollHeight","scrollTo","pullDownToRefresh","_pullDown","firstChild","getBoundingClientRect","forceUpdate","refreshFunction","Error","removeEventListener","dataLength","setState","scrollableTarget","HTMLElement","document","getElementById","console","warn","evt","pageY","touches","style","willChange","transition","pullDownToRefreshThreshold","overflow","transform","_this","requestAnimationFrame","scrollThreshold","clientHeight","body","documentElement","screen","availHeight","threshold","parseThreshold","unit","ThresholdUnits","Pixel","scrollTop","event","_this2","onScroll","setTimeout","isElementAtBottom","hasMore","next","_this3","WebkitOverflowScrolling","hasChildren","children","outerDivStyle","createElement","className","ref","infScroll","position","pullDown","left","right","top","pullDownToRefreshContent","releaseToRefreshContent","loader","endMessage","defaultProps","disableBrowserPullToRefresh","propTypes","func","bool","node","isRequired","oneOfType","number","string","Percent","match","parseFloat","defaultThreshold","fn","threshhold","scope","last","deferTimer","context","now","Date","args","clearTimeout","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","condition","a","b","e","f","error","argIndex","replace","framesToPop","invariant","ReactPropTypesSecret","shim","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","array","symbol","any","arrayOf","element","instanceOf","objectOf","oneOf","shape","checkPropTypes","PropTypes","arr","some","filter","emptyFunctionWithReset","resetWarningCache","err","elementType","exact","getDataset","keys","reduce","acc","cur","str","toLowerCase","isEmpty","isOutsideClick","Event","path","elem","parentElement","unshift","getPath","eventNode","debounce","wait","timeout","_len","_key","callNow","clientIdGenerator","prefix","counter","map","WeakMap","item","has","set","reset","generateUID","getAriaLabel","label","additionalLabelledBy","attributes","aria-labelledby","substring","aria-label","getAriaAttributeForLabel","trim","Input","_possibleConstructorReturn","handleInputChange","persist","delayedCallback","onInputChange","PureComponent","_props","inputRef","_props$texts","texts","onFocus","onBlur","disabled","readOnly","onKeyDown","activeDescendant","external_root_React_commonjs2_react_commonjs_react_amd_react_default","type","placeholder","onChange","aria-activedescendant","aria-autocomplete","tags","onTagRemove","inlineSearchInput","getTagId","Tag","handleClick","_this$props","onDelete","stopPropagation","nativeEvent","stopImmediatePropagation","keyCode","preventDefault","onKeyUp","indexOf","_props$labelRemove","labelRemove","tagId","buttonId","Boolean","isDisabled","onClick","aria-disabled","_typeof","iterator","_defineProperty","sortable_esm_extends","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","forEach","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","userAgent","pattern","navigator","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","on","off","matches","selector","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","classList","css","prop","val","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","find","tagName","list","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","elRect","bottom","width","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","options","currentChild","display","Sortable","ghost","dragged","draggable","lastChild","lastElementChild","previousElementSibling","sortable_esm_index","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","includeSelf","gotSelf","clientWidth","scrollWidth","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","Math","round","throttle","callback","ms","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","slice","child","rect","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","splice","Number","indexOfObject","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","easing","animated","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","pullMode","lastPutMode","allEventProperties","data","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","nearest","clientX","clientY","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","sort","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","destroy","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","sortable_esm","isProduction","tiny_invariant_esm","message","extendStatics","__assign","__read","ar","done","__spread","removeNode","removeNodes","customs","curr","insertNodes","newChild","refChild","createCustoms","getMode","custom","swapItem","oldIndicies","multiDragElement","newIndicies","createNormalized","handleStateRemove","normalized","newList","reverse","handleStateAdd","destructurePropsForOptions","setList","tag","onAdd","onChoose","onClone","onFilter","onRemove","onSort","onUnchoose","onUpdate","onSelect","onDeselect","__rest","index_es_ReactSortable","_super","ReactSortable","external_root_React_commonjs2_react_commonjs_react_amd_react_","chosen","selected","__","__extends","componentDidMount","current","newOptions","makeOptions","render","_a","classicProps","newTag","getChildren","_b","selectedClass","_c","_h","swapClass","dataid","prevClassName","filtered","classnames_default","k","includes","prepareOnHandlerPropAndDOM","prepareOnHandlerProp","originalEvt","defaultValue","result","evtName","callOnHandlerProp","propEvent","customClones","clones","newItem","handleStateChanges","removeOnSpill","revertOnSpill","log","getTags","_id","tagClassName","dataset","tags_extends","src_tag_0","Tags","_props$sortable","onReorderList","lastItem","Trigger","getAriaAttributes","_this$props$texts","showDropdown","clientId","triggerId","labelledBy","labelAttributes","role","tabIndex","aria-haspopup","aria-expanded","handleTrigger","triggerNode","activeElement","onTrigger","dropdownTriggerClassname","trigger_extends","Action","onAction","actionData","nodeId","action","title","text","Actions","actions","rest","actions_objectWithoutProperties","actionId","tree_node_action","actions_extends","refUpdater","indeterminate","input","Checkbox","_props$indeterminate","checkbox_objectWithoutProperties","checkbox_extends","RadioButton","radio_objectWithoutProperties","radio_extends","NodeLabel","handleCheckboxChange","onCheckboxChange","partial","_props2","showPartiallySelected","nodeLabelProps","sharedProps","htmlFor","src_radio","node_label_extends","src_checkbox","Toggle","onToggle","onNodeToggle","expanded","isLeaf","toggleCx","aria-hidden","TreeNode","_children","_depth","keepTreeOnSearch","searchModeOn","liCx","keepChildrenOnSearch","matchInChildren","matchInParent","hide","focused","_focused","getNodeCx","liId","tree_node_extends","toggle","node_label","tree_node_actions","Tree","tree_classCallCheck","tree_possibleConstructorReturn","tree_initialiseProps","currentPage","computeInstanceProps","allVisibleNodes","pageSize","tree_extends","setNodeRef","lib_default","loadMore","componentWillReceiveProps","nextProps","hasSameActiveDescendant","activeLi","checkActiveDescendant","getNodes","totalPages","ceil","currentId","focusIndex","findIndex","_parent","shouldRenderNode","src_tree_node","nextItems","aria-multiselectable","identity","getPartialState","childProp","childSelector","flattenTree","tree","simple","radio","showPartialState","hierarchical","rootPrefixId","walkNodes","nodes","_ref2$depth","depth","_ref2$_rv","_rv","Map","defaultValues","singleSelectedNode","single","isDefaultValue","stateProps","setInitialStateProps","every","markSubTreeVisited","visited","getItemById","getNodesMatching","nodePredicate","nodeVisitor","getVisibleNodes","markSubTreeOnNonExpanded","Keys","NavActions","None","FocusPrevious","FocusNext","FocusParent","FocusFirst","FocusLast","ToggleExpanded","ToggleChecked","FocusActionNames","Set","validTriggerOpenKeys","validKeys","isMatchingEvent","currentFocus","nonFocusKey","getRelativeFocus","sortedNodes","prevFocus","focus","isEdgeTraverseAction","keyboardNavigation_slicedToArray","nextIndex","getRelativeNeighborsFocus","keyboardNavigation","isValidKey","isOpen","getAction","getLeftNavAction","getRightNavAction","isFocusFirstEvent","isFocusLastEvent","getRelativeAction","getNextFocus","getNodeById","getParentFocus","isReverseTraverseAction","getNextFocusAfterTagDelete","deletedId","prevTags","newFocusId","focusNode","firstElementChild","handleFocusNavigationkey","newFocus","handleToggleNavigationkey","onToggleChecked","onToggleExpanded","TreeManager","searchPredicate","tree_manager_classCallCheck","_src","simpleSelect","radioSelect","_flattenTree","JSON","parse","stringify","searchMaps","currentChecked","searchTerm","proximity","closestMatch","startsWith","addOnMatch","_getAddOnMatch","addParentsToTree","_isMatch","ids","addChildrenToTree","getMatches","matchTree","allNodesHidden","_this4","setNodeCheckedState","prevChecked","togglePreviousChecked","partialCheckParents","unCheckParents","toggleChildren","_this5","_this6","collapseChildren","_this7","_this8","isMatch","term","_this9","DropdownTreeSelect","src_classCallCheck","src_possibleConstructorReturn","initNewProps","treeManager","currentFocusNode","prevState","src_extends","getTreeAndTags","resetSearchState","searchInput","restoreNodes","keepDropdownActive","handleOutsideClick","_this$treeManager$fil","filterTree","isKeyboardEvent","toggleNodeExpandState","keepOpenOnSelect","isSingleSelect","restoreDefaultValues","nextState","clearSearchOnChange","onInputFocus","onInputBlur","onKeyboardKeyDown","_this$props2","_this$state","tm","handleNavigationKey","lastTag","pop","_this$props3","_state","commonProps","trigger","src_tags_0","noMatches","src_tree"],"mappings":"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","file":"react-dropdown-tree-select.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ReactDropdownTreeSelect\", [\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDropdownTreeSelect\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReactDropdownTreeSelect\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"InfiniteScroll\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"InfiniteScroll\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_8__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\n\tvar _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; };\n\n\tvar _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; }; })();\n\n\tvar _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _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; }\n\n\tvar _react = __webpack_require__(8);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(6);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tvar _utilsThrottle = __webpack_require__(2);\n\n\tvar _utilsThrottle2 = _interopRequireDefault(_utilsThrottle);\n\n\tvar _utilsThreshold = __webpack_require__(1);\n\n\tvar InfiniteScroll = (function (_Component) {\n\t _inherits(InfiniteScroll, _Component);\n\n\t function InfiniteScroll(props) {\n\t _classCallCheck(this, InfiniteScroll);\n\n\t _get(Object.getPrototypeOf(InfiniteScroll.prototype), \"constructor\", this).call(this);\n\t this.state = {\n\t showLoader: false,\n\t lastScrollTop: 0,\n\t actionTriggered: false,\n\t pullToRefreshThresholdBreached: false\n\t };\n\t // variables to keep track of pull down behaviour\n\t this.startY = 0;\n\t this.currentY = 0;\n\t this.dragging = false;\n\t // will be populated in componentDidMount\n\t // based on the height of the pull down element\n\t this.maxPullDownDistance = 0;\n\n\t this.onScrollListener = this.onScrollListener.bind(this);\n\t this.throttledOnScrollListener = (0, _utilsThrottle2[\"default\"])(this.onScrollListener, 150).bind(this);\n\t this.onStart = this.onStart.bind(this);\n\t this.onMove = this.onMove.bind(this);\n\t this.onEnd = this.onEnd.bind(this);\n\t this.getScrollableTarget = this.getScrollableTarget.bind(this);\n\t }\n\n\t _createClass(InfiniteScroll, [{\n\t key: \"componentDidMount\",\n\t value: function componentDidMount() {\n\t this._scrollableNode = this.getScrollableTarget();\n\t this.el = this.props.height ? this._infScroll : this._scrollableNode || window;\n\t this.el.addEventListener(\"scroll\", this.throttledOnScrollListener);\n\n\t if (typeof this.props.initialScrollY === \"number\" && this.el.scrollHeight > this.props.initialScrollY) {\n\t this.el.scrollTo(0, this.props.initialScrollY);\n\t }\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.addEventListener(\"touchstart\", this.onStart);\n\t this.el.addEventListener(\"touchmove\", this.onMove);\n\t this.el.addEventListener(\"touchend\", this.onEnd);\n\n\t this.el.addEventListener(\"mousedown\", this.onStart);\n\t this.el.addEventListener(\"mousemove\", this.onMove);\n\t this.el.addEventListener(\"mouseup\", this.onEnd);\n\n\t // get BCR of pullDown element to position it above\n\t this.maxPullDownDistance = this._pullDown.firstChild.getBoundingClientRect().height;\n\t this.forceUpdate();\n\n\t if (typeof this.props.refreshFunction !== \"function\") {\n\t throw new Error(\"Mandatory prop \\\"refreshFunction\\\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage'\");\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"componentWillUnmount\",\n\t value: function componentWillUnmount() {\n\t this.el.removeEventListener(\"scroll\", this.throttledOnScrollListener);\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.removeEventListener(\"touchstart\", this.onStart);\n\t this.el.removeEventListener(\"touchmove\", this.onMove);\n\t this.el.removeEventListener(\"touchend\", this.onEnd);\n\n\t this.el.removeEventListener(\"mousedown\", this.onStart);\n\t this.el.removeEventListener(\"mousemove\", this.onMove);\n\t this.el.removeEventListener(\"mouseup\", this.onEnd);\n\t }\n\t }\n\t }, {\n\t key: \"componentWillReceiveProps\",\n\t value: function componentWillReceiveProps(props) {\n\t // do nothing when dataLength and key are unchanged\n\t if (this.props.key === props.key && this.props.dataLength === props.dataLength) return;\n\n\t // update state when new data was sent in\n\t this.setState({\n\t showLoader: false,\n\t actionTriggered: false,\n\t pullToRefreshThresholdBreached: false\n\t });\n\t }\n\t }, {\n\t key: \"getScrollableTarget\",\n\t value: function getScrollableTarget() {\n\t if (this.props.scrollableTarget instanceof HTMLElement) return this.props.scrollableTarget;\n\t if (typeof this.props.scrollableTarget === 'string') {\n\t return document.getElementById(this.props.scrollableTarget);\n\t }\n\t if (this.props.scrollableTarget === null) {\n\t console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \");\n\t }\n\t return null;\n\t }\n\t }, {\n\t key: \"onStart\",\n\t value: function onStart(evt) {\n\t if (this.state.lastScrollTop) return;\n\n\t this.dragging = true;\n\t this.startY = evt.pageY || evt.touches[0].pageY;\n\t this.currentY = this.startY;\n\n\t this._infScroll.style.willChange = \"transform\";\n\t this._infScroll.style.transition = \"transform 0.2s cubic-bezier(0,0,0.31,1)\";\n\t }\n\t }, {\n\t key: \"onMove\",\n\t value: function onMove(evt) {\n\t if (!this.dragging) return;\n\t this.currentY = evt.pageY || evt.touches[0].pageY;\n\n\t // user is scrolling down to up\n\t if (this.currentY < this.startY) return;\n\n\t if (this.currentY - this.startY >= this.props.pullDownToRefreshThreshold) {\n\t this.setState({\n\t pullToRefreshThresholdBreached: true\n\t });\n\t }\n\n\t // so you can drag upto 1.5 times of the maxPullDownDistance\n\t if (this.currentY - this.startY > this.maxPullDownDistance * 1.5) return;\n\n\t this._infScroll.style.overflow = \"visible\";\n\t this._infScroll.style.transform = \"translate3d(0px, \" + (this.currentY - this.startY) + \"px, 0px)\";\n\t }\n\t }, {\n\t key: \"onEnd\",\n\t value: function onEnd(evt) {\n\t var _this = this;\n\n\t this.startY = 0;\n\t this.currentY = 0;\n\n\t this.dragging = false;\n\n\t if (this.state.pullToRefreshThresholdBreached) {\n\t this.props.refreshFunction && this.props.refreshFunction();\n\t }\n\n\t requestAnimationFrame(function () {\n\t // this._infScroll\n\t if (_this._infScroll) {\n\t _this._infScroll.style.overflow = \"auto\";\n\t _this._infScroll.style.transform = \"none\";\n\t _this._infScroll.style.willChange = \"none\";\n\t }\n\t });\n\t }\n\t }, {\n\t key: \"isElementAtBottom\",\n\t value: function isElementAtBottom(target) {\n\t var scrollThreshold = arguments.length <= 1 || arguments[1] === undefined ? 0.8 : arguments[1];\n\n\t var clientHeight = target === document.body || target === document.documentElement ? window.screen.availHeight : target.clientHeight;\n\n\t var threshold = (0, _utilsThreshold.parseThreshold)(scrollThreshold);\n\n\t if (threshold.unit === _utilsThreshold.ThresholdUnits.Pixel) {\n\t return target.scrollTop + clientHeight >= target.scrollHeight - threshold.value;\n\t }\n\n\t return target.scrollTop + clientHeight >= threshold.value / 100 * target.scrollHeight;\n\t }\n\t }, {\n\t key: \"onScrollListener\",\n\t value: function onScrollListener(event) {\n\t var _this2 = this;\n\n\t if (typeof this.props.onScroll === \"function\") {\n\t // Execute this callback in next tick so that it does not affect the\n\t // functionality of the library.\n\t setTimeout(function () {\n\t return _this2.props.onScroll(event);\n\t }, 0);\n\t }\n\n\t var target = this.props.height || this._scrollableNode ? event.target : document.documentElement.scrollTop ? document.documentElement : document.body;\n\n\t // return immediately if the action has already been triggered,\n\t // prevents multiple triggers.\n\t if (this.state.actionTriggered) return;\n\n\t var atBottom = this.isElementAtBottom(target, this.props.scrollThreshold);\n\n\t // call the `next` function in the props to trigger the next data fetch\n\t if (atBottom && this.props.hasMore) {\n\t this.setState({ actionTriggered: true, showLoader: true });\n\t this.props.next();\n\t }\n\t this.setState({ lastScrollTop: target.scrollTop });\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var _this3 = this;\n\n\t var style = _extends({\n\t height: this.props.height || \"auto\",\n\t overflow: \"auto\",\n\t WebkitOverflowScrolling: \"touch\"\n\t }, this.props.style);\n\t var hasChildren = this.props.hasChildren || !!(this.props.children && this.props.children.length);\n\n\t // because heighted infiniteScroll visualy breaks\n\t // on drag down as overflow becomes visible\n\t var outerDivStyle = this.props.pullDownToRefresh && this.props.height ? { overflow: \"auto\" } : {};\n\t return _react2[\"default\"].createElement(\n\t \"div\",\n\t { style: outerDivStyle },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t className: \"infinite-scroll-component \" + (this.props.className || ''),\n\t ref: function (infScroll) {\n\t return _this3._infScroll = infScroll;\n\t },\n\t style: style\n\t },\n\t this.props.pullDownToRefresh && _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: { position: \"relative\" },\n\t ref: function (pullDown) {\n\t return _this3._pullDown = pullDown;\n\t }\n\t },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: {\n\t position: \"absolute\",\n\t left: 0,\n\t right: 0,\n\t top: -1 * this.maxPullDownDistance\n\t }\n\t },\n\t !this.state.pullToRefreshThresholdBreached && this.props.pullDownToRefreshContent,\n\t this.state.pullToRefreshThresholdBreached && this.props.releaseToRefreshContent\n\t )\n\t ),\n\t this.props.children,\n\t !this.state.showLoader && !hasChildren && this.props.hasMore && this.props.loader,\n\t this.state.showLoader && this.props.hasMore && this.props.loader,\n\t !this.props.hasMore && this.props.endMessage\n\t )\n\t );\n\t }\n\t }]);\n\n\t return InfiniteScroll;\n\t})(_react.Component);\n\n\texports[\"default\"] = InfiniteScroll;\n\n\tInfiniteScroll.defaultProps = {\n\t pullDownToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Pull down to refresh\"\n\t ),\n\t releaseToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Release to refresh\"\n\t ),\n\t pullDownToRefreshThreshold: 100,\n\t disableBrowserPullToRefresh: true\n\t};\n\n\tInfiniteScroll.propTypes = {\n\t next: _propTypes2[\"default\"].func,\n\t hasMore: _propTypes2[\"default\"].bool,\n\t children: _propTypes2[\"default\"].node,\n\t loader: _propTypes2[\"default\"].node.isRequired,\n\t scrollThreshold: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n\t endMessage: _propTypes2[\"default\"].node,\n\t style: _propTypes2[\"default\"].object,\n\t height: _propTypes2[\"default\"].number,\n\t scrollableTarget: _propTypes2[\"default\"].node,\n\t hasChildren: _propTypes2[\"default\"].bool,\n\t pullDownToRefresh: _propTypes2[\"default\"].bool,\n\t pullDownToRefreshContent: _propTypes2[\"default\"].node,\n\t releaseToRefreshContent: _propTypes2[\"default\"].node,\n\t pullDownToRefreshThreshold: _propTypes2[\"default\"].number,\n\t refreshFunction: _propTypes2[\"default\"].func,\n\t onScroll: _propTypes2[\"default\"].func,\n\t dataLength: _propTypes2[\"default\"].number.isRequired,\n\t key: _propTypes2[\"default\"].string\n\t};\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\texports.parseThreshold = parseThreshold;\n\tvar ThresholdUnits = {\n\t Pixel: 'Pixel',\n\t Percent: 'Percent'\n\t};\n\n\texports.ThresholdUnits = ThresholdUnits;\n\tvar defaultThreshold = {\n\t unit: ThresholdUnits.Percent,\n\t value: 0.8\n\t};\n\n\tfunction parseThreshold(scrollThreshold) {\n\t if (typeof scrollThreshold === \"number\") {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: scrollThreshold * 100\n\t };\n\t }\n\n\t if (typeof scrollThreshold === \"string\") {\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)px$/)) {\n\t return {\n\t unit: ThresholdUnits.Pixel,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)%$/)) {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...');\n\n\t return defaultThreshold;\n\t }\n\n\t console.warn('scrollThreshold should be string or number');\n\n\t return defaultThreshold;\n\t}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t// https://remysharp.com/2010/07/21/throttling-function-calls\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports[\"default\"] = throttle;\n\n\tfunction throttle(fn, threshhold, scope) {\n\t threshhold || (threshhold = 250);\n\t var last, deferTimer;\n\t return function () {\n\t var context = scope || this;\n\n\t var now = +new Date(),\n\t args = arguments;\n\t if (last && now < last + threshhold) {\n\t // hold on to it\n\t clearTimeout(deferTimer);\n\t deferTimer = setTimeout(function () {\n\t last = now;\n\t fn.apply(context, args);\n\t }, threshhold);\n\t } else {\n\t last = now;\n\t fn.apply(context, args);\n\t }\n\t };\n\t}\n\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t * \n\t */\n\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t */\n\n\t'use strict';\n\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\n\tvar validateFormat = function validateFormat(format) {};\n\n\tif (false) {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\n\tmodule.exports = invariant;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar emptyFunction = __webpack_require__(3);\n\tvar invariant = __webpack_require__(4);\n\tvar ReactPropTypesSecret = __webpack_require__(7);\n\n\tmodule.exports = function() {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\tif (false) {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(5)();\n\t}\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ })\n/******/ ])\n});\n;","'use strict'\nmodule.exports = function (arr, func) {\n var some = arr.filter(func)\n return some.length !== 0 && some.length !== arr.length\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","const toKebabCase = str => str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n\nconst getDataset = (o = {}) =>\n Object.keys(o).reduce((acc, cur) => {\n acc[`data-${toKebabCase(cur)}`] = o[cur]\n return acc\n }, {})\n\nexport default getDataset\n","/**\n * Simplified implmentation of isEmpty.\n * Note: This is not complete and will return false positives for empty objects and likes.\n * However, it suffices for the limited use-case of this project.\n */\nconst isEmpty = o => !o || (Array.isArray(o) && !o.length)\n\nexport default isEmpty\n","const getPath = e => {\n if (e.path) return e.path\n\n let elem = e.target\n const path = [elem]\n\n while (elem.parentElement) {\n elem = elem.parentElement\n path.unshift(elem)\n }\n\n return path\n}\n\nexport default (e, node) => {\n if (!(e instanceof Event)) return false\n return !getPath(e).some(eventNode => eventNode === node)\n}\n","/**\n * Modified debounce that always invokes on leading edge\n * See unmodified: https://gist.github.com/mrchief/a7e8938ee96774f05644905b37f09536\n */\nexport default (func, wait) => {\n let timeout\n\n return (...args) => {\n const later = () => {\n timeout = null\n func(...args)\n }\n\n // timeout will be undefined the first time (leading edge)\n // so the callback will get executed once on leading edge\n const callNow = !timeout\n\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n\n if (callNow) func(...args)\n }\n}\n","const generateUID = prefix => {\n let counter = 1\n\n let map = new WeakMap()\n\n const get = item => {\n if (!map.has(item)) {\n map.set(item, counter++)\n }\n return `${prefix}${map.get(item)}`\n }\n\n const reset = () => {\n map = new WeakMap()\n counter = 1\n }\n\n return { get, reset }\n}\n\nconst clientIdGenerator = generateUID('rdts')\nexport default clientIdGenerator\n","export function getAriaLabel(label, additionalLabelledBy) {\n const attributes = getAriaAttributeForLabel(label)\n\n if (additionalLabelledBy) {\n attributes['aria-labelledby'] = `${attributes['aria-labelledby'] || ''} ${additionalLabelledBy}`.trim()\n }\n\n return attributes\n}\n\nfunction getAriaAttributeForLabel(label) {\n if (!label) return {}\n\n /* See readme for label. When label starts with # it references ids of dom nodes instead.\n When used on aria-labelledby, they should be referenced without a starting hash/# */\n if (label[0] === '#') {\n return { 'aria-labelledby': label.substring(1).replace(/ #/g, ' ') }\n }\n return { 'aria-label': label }\n}\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\nimport { debounce } from '../utils'\nimport { getAriaLabel } from '../a11y'\n\nclass Input extends PureComponent {\n static propTypes = {\n tags: PropTypes.array,\n texts: PropTypes.object,\n onInputChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTagRemove: PropTypes.func,\n onKeyDown: PropTypes.func,\n inputRef: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n activeDescendant: PropTypes.string,\n inlineSearchInput: PropTypes.bool,\n }\n\n constructor(props) {\n super(props)\n this.delayedCallback = debounce(e => this.props.onInputChange(e.target.value), 300)\n }\n\n handleInputChange = e => {\n e.persist()\n this.delayedCallback(e)\n }\n\n render() {\n const { inputRef, texts = {}, onFocus, onBlur, disabled, readOnly, onKeyDown, activeDescendant } = this.props\n\n return (\n \n )\n }\n}\n\nexport default Input\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nimport './index.css'\n\nexport const getTagId = id => `${id}_tag`\n\nclass Tag extends PureComponent {\n static propTypes = {\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onDelete: PropTypes.func,\n readOnly: PropTypes.bool,\n disabled: PropTypes.bool,\n labelRemove: PropTypes.string,\n }\n\n handleClick = e => {\n const { id, onDelete } = this.props\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n onDelete(id, (e.key || e.keyCode) !== undefined)\n }\n\n onKeyDown = e => {\n if (e.key === 'Backspace') {\n this.handleClick(e)\n e.preventDefault()\n }\n }\n\n onKeyUp = e => {\n if (e.keyCode === 32 || ['Delete', 'Enter'].indexOf(e.key) > -1) {\n this.handleClick(e)\n e.preventDefault()\n }\n }\n\n render() {\n const { id, label, labelRemove = 'Remove', readOnly, disabled } = this.props\n\n const tagId = getTagId(id)\n const buttonId = `${id}_button`\n const className = ['tag-remove', readOnly && 'readOnly', disabled && 'disabled'].filter(Boolean).join(' ')\n const isDisabled = readOnly || disabled\n\n return (\n \n {label}\n \n x\n \n \n )\n }\n}\n\nexport default Tag\n","/**!\n * Sortable 1.10.1\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.1\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n if (IE11OrLess) {\n return document.documentElement;\n } else {\n return document.scrollingElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\n * Selects the provided multi-drag item\n * @param {HTMLElement} el The element to be selected\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\n * Deselects the provided multi-drag item\n * @param {HTMLElement} el The element to be deselected\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\n * Insert multi-drag clones\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\n * @param {HTMLElement} rootEl\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import Sortable from 'sortablejs';\nexport { MultiDrag, default as Sortable, Swap } from 'sortablejs';\nimport classNames from 'classnames';\nimport { createElement, Children, cloneElement, createRef, Component } from 'react';\nimport invariant from 'tiny-invariant';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\n/**\r\n * Removes the `node` from the DOM\r\n * @param node\r\n */\r\nfunction removeNode(node) {\r\n if (node.parentElement !== null)\r\n node.parentElement.removeChild(node);\r\n}\r\n/**\r\n * Inserts the `newChild` node at the given index in a parent\r\n * @param parent The parent HTML Element.\r\n * @param newChild A HTML eement to add as a child of the parent.\r\n * @param index index of the parent to place the new child in.\r\n */\r\nfunction insertNodeAt(parent, newChild, index) {\r\n var refChild = parent.children[index] || null;\r\n parent.insertBefore(newChild, refChild);\r\n}\r\nfunction removeNodes(customs) {\r\n customs.forEach(function (curr) { return removeNode(curr.element); });\r\n}\r\nfunction insertNodes(customs) {\r\n customs.forEach(function (curr) {\r\n insertNodeAt(curr.parentElement, curr.element, curr.oldIndex);\r\n });\r\n}\r\nfunction createCustoms(evt, list) {\r\n var mode = getMode(evt);\r\n var parentElement = { parentElement: evt.from };\r\n var custom = [];\r\n switch (mode) {\r\n case \"normal\":\r\n var item = {\r\n element: evt.item,\r\n newIndex: evt.newIndex,\r\n oldIndex: evt.oldIndex,\r\n parentElement: evt.from\r\n };\r\n custom = [item];\r\n break;\r\n case \"swap\":\r\n var drag = __assign({ element: evt.item, oldIndex: evt.oldIndex, newIndex: evt.newIndex }, parentElement);\r\n var swap = __assign({ element: evt.swapItem, oldIndex: evt.newIndex, newIndex: evt.oldIndex }, parentElement);\r\n custom = [drag, swap];\r\n break;\r\n case \"multidrag\":\r\n custom = evt.oldIndicies.map(function (curr, index) { return (__assign({ element: curr.multiDragElement, oldIndex: curr.index, newIndex: evt.newIndicies[index].index }, parentElement)); });\r\n break;\r\n }\r\n var customs = createNormalized(custom, list);\r\n return customs;\r\n}\r\n/** moves items form old index to new index without breaking anything ideally. */\r\nfunction handleStateChanges(normalized, list) {\r\n var a = handleStateRemove(normalized, list);\r\n var b = handleStateAdd(normalized, a);\r\n return b;\r\n}\r\nfunction handleStateRemove(normalized, list) {\r\n var newList = __spread(list);\r\n normalized\r\n .concat()\r\n .reverse()\r\n .forEach(function (curr) { return newList.splice(curr.oldIndex, 1); });\r\n return newList;\r\n}\r\nfunction handleStateAdd(normalized, list) {\r\n var newList = __spread(list);\r\n normalized.forEach(function (curr) { return newList.splice(curr.newIndex, 0, curr.item); });\r\n return newList;\r\n}\r\nfunction getMode(evt) {\r\n if (evt.oldIndicies && evt.oldIndicies.length > 0)\r\n return \"multidrag\";\r\n if (evt.swapItem)\r\n return \"swap\";\r\n return \"normal\";\r\n}\r\nfunction createNormalized(inputs, list) {\r\n var normalized = inputs\r\n .map(function (curr) { return (__assign(__assign({}, curr), { item: list[curr.oldIndex] })); })\r\n .sort(function (a, b) { return a.oldIndex - b.oldIndex; });\r\n return normalized;\r\n}\r\n/**\r\n * Removes the following group of properties from `props`,\r\n * leaving only `Sortable.Options` without any `on` methods.\r\n * @param props `ReactSortable.Props`\r\n */\r\nfunction destructurePropsForOptions(props) {\r\n var \r\n // react sortable props\r\n list = props.list, setList = props.setList, children = props.children, tag = props.tag, style = props.style, className = props.className, clone = props.clone, \r\n // sortable options that have methods we want to overwrite\r\n onAdd = props.onAdd, onChange = props.onChange, onChoose = props.onChoose, onClone = props.onClone, onEnd = props.onEnd, onFilter = props.onFilter, onRemove = props.onRemove, onSort = props.onSort, onStart = props.onStart, onUnchoose = props.onUnchoose, onUpdate = props.onUpdate, onMove = props.onMove, onSpill = props.onSpill, onSelect = props.onSelect, onDeselect = props.onDeselect, options = __rest(props, [\"list\", \"setList\", \"children\", \"tag\", \"style\", \"className\", \"clone\", \"onAdd\", \"onChange\", \"onChoose\", \"onClone\", \"onEnd\", \"onFilter\", \"onRemove\", \"onSort\", \"onStart\", \"onUnchoose\", \"onUpdate\", \"onMove\", \"onSpill\", \"onSelect\", \"onDeselect\"]);\r\n return options;\r\n}\n\n/** Holds a global reference for which react element is being dragged */\r\n// @todo - use context to manage this. How does one use 2 different providers?\r\nvar store = { dragging: null };\r\nvar ReactSortable = /** @class */ (function (_super) {\r\n __extends(ReactSortable, _super);\r\n function ReactSortable(props) {\r\n var _this = _super.call(this, props) || this;\r\n // @todo forward ref this component\r\n _this.ref = createRef();\r\n // make all state false because we can't change sortable unless a mouse gesture is made.\r\n var newList = __spread(props.list).map(function (item) { return (__assign(__assign({}, item), { chosen: false, selected: false })); });\r\n props.setList(newList, _this.sortable, store);\r\n invariant(\r\n //@ts-ignore\r\n !props.plugins, \"\\nPlugins prop is no longer supported.\\nInstead, mount it with \\\"Sortable.mount(new MultiDrag())\\\"\\nPlease read the updated README.md at https://github.com/SortableJS/react-sortablejs.\\n \");\r\n return _this;\r\n }\r\n ReactSortable.prototype.componentDidMount = function () {\r\n if (this.ref.current === null)\r\n return;\r\n var newOptions = this.makeOptions();\r\n Sortable.create(this.ref.current, newOptions);\r\n };\r\n ReactSortable.prototype.render = function () {\r\n var _a = this.props, tag = _a.tag, style = _a.style, className = _a.className, id = _a.id;\r\n var classicProps = { style: style, className: className, id: id };\r\n // if no tag, default to a `div` element.\r\n var newTag = !tag || tag === null ? \"div\" : tag;\r\n return createElement(newTag, __assign({ \r\n // @todo - find a way (perhaps with the callback) to allow AntD components to work\r\n ref: this.ref }, classicProps), this.getChildren());\r\n };\r\n ReactSortable.prototype.getChildren = function () {\r\n var _a = this.props, children = _a.children, dataIdAttr = _a.dataIdAttr, _b = _a.selectedClass, selectedClass = _b === void 0 ? \"sortable-selected\" : _b, _c = _a.chosenClass, chosenClass = _c === void 0 ? \"sortable-chosen\" : _c, _d = _a.dragClass, _e = _a.fallbackClass, _f = _a.ghostClass, _g = _a.swapClass, _h = _a.filter, filter = _h === void 0 ? \"sortable-filter\" : _h, list = _a.list;\r\n // if no children, don't do anything.\r\n if (!children || children == null)\r\n return null;\r\n var dataid = dataIdAttr || \"data-id\";\r\n return Children.map(children, function (child, index) {\r\n var _a, _b, _c;\r\n var item = list[index];\r\n var prevClassName = child.props.className;\r\n // @todo - handle the function if avalable. I don't think anyone will be doing this soon.\r\n var filtered = typeof filter === \"string\" && (_a = {},\r\n _a[filter.replace(\".\", \"\")] = !!item.filtered,\r\n _a);\r\n var className = classNames(prevClassName, __assign((_b = {}, _b[selectedClass] = item.selected, _b[chosenClass] = item.chosen, _b), filtered\r\n // [dragClass]: true,\r\n // [fallbackClass]: true,\r\n // [ghostClass]: true,\r\n // [swapClass]: true\r\n ));\r\n return cloneElement(child, (_c = {},\r\n _c[dataid] = child.key,\r\n _c.className = className,\r\n _c));\r\n });\r\n };\r\n Object.defineProperty(ReactSortable.prototype, \"sortable\", {\r\n /** Appends the `sortable` property to this component */\r\n get: function () {\r\n var el = this.ref.current;\r\n if (el === null)\r\n return null;\r\n var key = Object.keys(el).find(function (k) { return k.includes(\"Sortable\"); });\r\n if (!key)\r\n return null;\r\n //@ts-ignore - I know what I'm doing.\r\n return el[key];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Converts all the props from `ReactSortable` into the `options` object that `Sortable.create(el, [options])` can use. */\r\n ReactSortable.prototype.makeOptions = function () {\r\n var _this = this;\r\n var DOMHandlers = [\r\n \"onAdd\",\r\n \"onChoose\",\r\n \"onDeselect\",\r\n \"onEnd\",\r\n \"onRemove\",\r\n \"onSelect\",\r\n \"onSpill\",\r\n \"onStart\",\r\n \"onUnchoose\",\r\n \"onUpdate\"\r\n ];\r\n var NonDOMHandlers = [\r\n \"onChange\",\r\n \"onClone\",\r\n \"onFilter\",\r\n \"onSort\"\r\n ];\r\n var newOptions = destructurePropsForOptions(this.props);\r\n DOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerPropAndDOM(name)); });\r\n NonDOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerProp(name)); });\r\n /** onMove has 2 arguments and needs to be handled seperately. */\r\n var onMove = function (evt, originalEvt) {\r\n var onMove = _this.props.onMove;\r\n var defaultValue = evt.willInsertAfter || -1;\r\n if (!onMove)\r\n return defaultValue;\r\n var result = onMove(evt, originalEvt, _this.sortable, store);\r\n if (typeof result === 'undefined')\r\n return false;\r\n return result;\r\n };\r\n return __assign(__assign({}, newOptions), { onMove: onMove });\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop & an `on[Handler]` ReactSortable method. */\r\n ReactSortable.prototype.prepareOnHandlerPropAndDOM = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n // calls state change\r\n //@ts-ignore - until @types multidrag item is in\r\n _this[evtName](evt);\r\n };\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop */\r\n ReactSortable.prototype.prepareOnHandlerProp = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n };\r\n };\r\n /** Calls the `props.on[Handler]` function */\r\n ReactSortable.prototype.callOnHandlerProp = function (evt, evtName) {\r\n var propEvent = this.props[evtName];\r\n if (propEvent)\r\n propEvent(evt, this.sortable, store);\r\n };\r\n // SORTABLE DOM HANDLING\r\n ReactSortable.prototype.onAdd = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var otherList = __spread(store.dragging.props.list);\r\n var customs = createCustoms(evt, otherList);\r\n removeNodes(customs);\r\n var newList = handleStateAdd(customs, list);\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onRemove = function (evt) {\r\n var _this = this;\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var mode = getMode(evt);\r\n var customs = createCustoms(evt, list);\r\n insertNodes(customs);\r\n var newList = __spread(list);\r\n // remove state if not in clone mode. otherwise, keep.\r\n if (evt.pullMode !== \"clone\")\r\n newList = handleStateRemove(customs, newList);\r\n // if clone, it doesn't really remove. instead it clones in place.\r\n // @todo -\r\n else {\r\n // switch used to get the clone\r\n var customClones = customs;\r\n switch (mode) {\r\n case \"multidrag\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clones[index] })); });\r\n break;\r\n case \"normal\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clone })); });\r\n break;\r\n case \"swap\":\r\n default: {\r\n invariant(true, \"mode \\\"\" + mode + \"\\\" cannot clone. Please remove \\\"props.clone\\\" from when using the \\\"\" + mode + \"\\\" plugin\");\r\n }\r\n }\r\n removeNodes(customClones);\r\n // replace selected items with cloned items\r\n customs.forEach(function (curr) {\r\n var index = curr.oldIndex;\r\n var newItem = _this.props.clone(curr.item, evt);\r\n newList.splice(index, 1, newItem);\r\n });\r\n }\r\n // remove item.selected from list\r\n newList = newList.map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUpdate = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var customs = createCustoms(evt, list);\r\n removeNodes(customs);\r\n insertNodes(customs);\r\n var newList = handleStateChanges(customs, list);\r\n return setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onStart = function (evt) {\r\n store.dragging = this;\r\n };\r\n ReactSortable.prototype.onEnd = function (evt) {\r\n store.dragging = null;\r\n };\r\n ReactSortable.prototype.onChoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = true;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUnchoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = false;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onSpill = function (evt) {\r\n var _a = this.props, removeOnSpill = _a.removeOnSpill, revertOnSpill = _a.revertOnSpill;\r\n if (removeOnSpill && !revertOnSpill)\r\n removeNode(evt.item);\r\n };\r\n ReactSortable.prototype.onSelect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1) {\r\n console.log(\"\\\"\" + evt.type + \"\\\" had indice of \\\"\" + curr.index + \"\\\", which is probably -1 and doesn't usually happen here.\");\r\n console.log(evt);\r\n return;\r\n }\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onDeselect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1)\r\n return;\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.defaultProps = {\r\n clone: function (item) { return item; }\r\n };\r\n return ReactSortable;\r\n}(Component));\n\nexport { ReactSortable };\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\nimport Tag from '../tag'\nimport { getDataset } from '../utils'\nimport { ReactSortable } from 'react-sortablejs'\n\nimport './index.css'\n\nconst getTags = (tags = [], onDelete, readOnly, disabled, labelRemove) =>\n tags.map(tag => {\n const { _id, label, tagClassName, dataset } = tag\n return (\n \n \n \n )\n })\n\nclass Tags extends PureComponent {\n static propTypes = {\n tags: PropTypes.array,\n onTagRemove: PropTypes.func,\n readOnly: PropTypes.bool,\n sortable: PropTypes.bool,\n onReorderList: PropTypes.func,\n disabled: PropTypes.bool,\n texts: PropTypes.object,\n children: PropTypes.node,\n }\n\n render() {\n const { tags, onTagRemove, texts = {}, disabled, readOnly, sortable = false, onReorderList, children } = this.props\n const lastItem = children || {texts.placeholder || 'Choose...'}\n\n return (\n
    \n {!sortable ? (\n getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)\n ) : (\n onReorderList(newList)}>\n {getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)}\n \n )}\n
  • {lastItem}
  • \n
\n )\n }\n}\n\nexport default Tags\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nimport { getAriaLabel } from '../a11y'\nimport { getTagId } from '../tag'\n\nclass Trigger extends PureComponent {\n static propTypes = {\n onTrigger: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n showDropdown: PropTypes.bool,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n texts: PropTypes.object,\n clientId: PropTypes.string,\n tags: PropTypes.array,\n }\n\n getAriaAttributes = () => {\n const { mode, texts = {}, showDropdown, clientId, tags } = this.props\n\n const triggerId = `${clientId}_trigger`\n const labelledBy = []\n let labelAttributes = getAriaLabel(texts.label)\n if (tags && tags.length) {\n if (labelAttributes['aria-label']) {\n // Adds reference to self when having aria-label\n labelledBy.push(triggerId)\n }\n tags.forEach(t => {\n labelledBy.push(getTagId(t._id))\n })\n labelAttributes = getAriaLabel(texts.label, labelledBy.join(' '))\n }\n\n const attributes = {\n id: triggerId,\n role: 'button',\n tabIndex: 0,\n 'aria-haspopup': mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-expanded': showDropdown ? 'true' : 'false',\n ...labelAttributes,\n }\n\n return attributes\n }\n\n handleTrigger = e => {\n // Just return if triggered from keyDown and the key isn't enter, space or arrow down\n if (e.key && e.keyCode !== 13 && e.keyCode !== 32 && e.keyCode !== 40) {\n return\n } else if (e.key && this.triggerNode && this.triggerNode !== document.activeElement) {\n // Do not trigger if not activeElement\n return\n } else if (!this.props.showDropdown && e.keyCode === 32) {\n // Avoid adding space to input on open\n e.preventDefault()\n }\n\n // Else this is a key press that should trigger the dropdown\n this.props.onTrigger(e)\n }\n\n render() {\n const { disabled, readOnly, showDropdown } = this.props\n\n const dropdownTriggerClassname = [\n 'dropdown-trigger',\n 'arrow',\n disabled && 'disabled',\n readOnly && 'readOnly',\n showDropdown && 'top',\n !showDropdown && 'bottom',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n {\n this.triggerNode = node\n }}\n className={dropdownTriggerClassname}\n onClick={!disabled ? this.handleTrigger : undefined}\n onKeyDown={!disabled ? this.handleTrigger : undefined}\n {...this.getAriaAttributes()}\n >\n {this.props.children}\n \n )\n }\n}\n\nexport default Trigger\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nclass Action extends PureComponent {\n static propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n className: PropTypes.string,\n actionData: PropTypes.object,\n onAction: PropTypes.func,\n readOnly: PropTypes.bool,\n }\n\n static defaultProps = {\n onAction: () => {},\n }\n\n handleClick = () => {\n const { onAction, actionData } = this.props\n if (onAction) {\n onAction(actionData.nodeId, actionData.action)\n }\n }\n\n render() {\n const { title, className, text, readOnly } = this.props\n\n return (\n \n {text}\n \n )\n }\n}\n\nexport default Action\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nimport Action from './action'\nimport { isEmpty } from '../utils'\n\nclass Actions extends PureComponent {\n static propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array,\n }\n\n render() {\n const { actions, id, ...rest } = this.props\n\n if (isEmpty(actions)) return null\n\n return actions.map((a, idx) => {\n const actionId = a.id || `action-${idx}`\n return \n })\n }\n}\n\nexport default Actions\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nexport const refUpdater = ({ checked, indeterminate }) => input => {\n if (input) {\n input.checked = checked\n input.indeterminate = indeterminate\n }\n}\n\nclass Checkbox extends PureComponent {\n static propTypes = {\n checked: PropTypes.bool,\n indeterminate: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n }\n\n render() {\n const { checked, indeterminate = false, onChange, disabled, readOnly, ...rest } = this.props\n\n const isDisabled = disabled || readOnly\n\n return (\n \n )\n }\n}\n\nexport default Checkbox\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nexport const refUpdater = ({ checked }) => input => {\n if (input) {\n input.checked = checked\n }\n}\n\nclass RadioButton extends PureComponent {\n static propTypes = {\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n }\n\n render() {\n const { name, checked, onChange, disabled, readOnly, ...rest } = this.props\n\n const isDisabled = disabled || readOnly\n\n return (\n \n )\n }\n}\n\nexport default RadioButton\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport Checkbox from '../checkbox'\nimport RadioButton from '../radio'\n\nclass NodeLabel extends PureComponent {\n static propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n partial: PropTypes.bool,\n disabled: PropTypes.bool,\n dataset: PropTypes.object,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n onCheckboxChange: PropTypes.func,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n }\n\n handleCheckboxChange = e => {\n const { mode, id, onCheckboxChange } = this.props\n\n if (mode === 'simpleSelect' || mode === 'radioSelect') {\n onCheckboxChange(id, true)\n } else {\n const {\n target: { checked },\n } = e\n onCheckboxChange(id, checked)\n }\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n }\n\n render() {\n const { mode, title, label, id, partial, checked } = this.props\n const { value, disabled, showPartiallySelected, readOnly, clientId } = this.props\n const nodeLabelProps = { className: 'node-label' }\n\n // in case of simple select mode, there is no checkbox, so we need to handle the click via the node label\n // but not if the control is in readOnly or disabled state\n const shouldRegisterClickHandler = mode === 'simpleSelect' && !readOnly && !disabled\n\n if (shouldRegisterClickHandler) {\n nodeLabelProps.onClick = this.handleCheckboxChange\n }\n\n const sharedProps = { id, value, checked, disabled, readOnly, tabIndex: -1 }\n const className = ['checkbox-item', mode === 'simpleSelect' && 'simple-select'].filter(Boolean).join(' ')\n\n return (\n \n )\n }\n}\n\nexport default NodeLabel\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nclass Toggle extends PureComponent {\n static propTypes = {\n expanded: PropTypes.bool,\n isLeaf: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n id: PropTypes.string,\n }\n\n onToggle = e => {\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n this.props.onNodeToggle(this.props.id)\n }\n\n onKeyDown = e => {\n if (e.key === 'Enter' || e.keyCode === 32) {\n this.props.onNodeToggle(this.props.id)\n e.preventDefault()\n }\n }\n\n render() {\n const { expanded, isLeaf } = this.props\n if (isLeaf) return null\n\n const toggleCx = ['toggle', expanded && 'expanded', !expanded && 'collapsed'].filter(Boolean).join(' ')\n return (\n \n )\n }\n}\n\nexport default Toggle\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nimport { getDataset, isEmpty } from '../utils'\nimport Actions from './actions'\nimport NodeLabel from './node-label'\nimport Toggle from './toggle'\n\nimport './index.css'\n\nconst isLeaf = children => isEmpty(children)\n\nconst getNodeCx = props => {\n const {\n keepTreeOnSearch,\n keepChildrenOnSearch,\n _children,\n matchInChildren,\n matchInParent,\n disabled,\n partial,\n hide,\n className,\n showPartiallySelected,\n readOnly,\n checked,\n _focused: focused,\n } = props\n\n return [\n 'node',\n isLeaf(_children) && 'leaf',\n !isLeaf(_children) && 'tree',\n disabled && 'disabled',\n hide && 'hide',\n keepTreeOnSearch && matchInChildren && 'match-in-children',\n keepTreeOnSearch && keepChildrenOnSearch && matchInParent && 'match-in-parent',\n showPartiallySelected && partial && 'partial',\n readOnly && 'readOnly',\n checked && 'checked',\n focused && 'focused',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nclass TreeNode extends PureComponent {\n static propTypes = {\n _id: PropTypes.string.isRequired,\n _depth: PropTypes.number,\n _children: PropTypes.array,\n actions: PropTypes.array,\n className: PropTypes.string,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n expanded: PropTypes.bool,\n disabled: PropTypes.bool,\n partial: PropTypes.bool,\n dataset: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n }\n\n getAriaAttributes = () => {\n const { _children, _depth, checked, disabled, expanded, readOnly, mode, partial } = this.props\n const attributes = {}\n\n attributes.role = mode === 'simpleSelect' ? 'option' : 'treeitem'\n attributes['aria-disabled'] = disabled || readOnly\n attributes['aria-selected'] = checked\n if (mode !== 'simpleSelect') {\n attributes['aria-checked'] = partial ? 'mixed' : checked\n attributes['aria-level'] = (_depth || 0) + 1\n attributes['aria-expanded'] = _children && (expanded ? 'true' : 'false')\n }\n return attributes\n }\n\n render() {\n const {\n mode,\n keepTreeOnSearch,\n _id,\n _children,\n dataset,\n _depth,\n expanded,\n title,\n label,\n partial,\n checked,\n value,\n disabled,\n actions,\n onAction,\n searchModeOn,\n onNodeToggle,\n onCheckboxChange,\n showPartiallySelected,\n readOnly,\n clientId,\n } = this.props\n const liCx = getNodeCx(this.props)\n const style = keepTreeOnSearch || !searchModeOn ? { paddingLeft: `${(_depth || 0) * 20}px` } : {}\n\n const liId = `${_id}_li`\n\n return (\n
  • \n \n \n \n
  • \n )\n }\n}\n\nexport default TreeNode\n","import InfiniteScroll from 'react-infinite-scroll-component'\nimport PropTypes from 'prop-types'\nimport React, { Component } from 'react'\n\nimport TreeNode from '../tree-node'\n\nconst shouldRenderNode = (node, searchModeOn, data) => {\n if (searchModeOn || node.expanded) return true\n\n const parent = node._parent && data.get(node._parent)\n // if it has a parent, then check parent's state.\n // otherwise root nodes are always rendered\n return !parent || parent.expanded\n}\n\nclass Tree extends Component {\n static propTypes = {\n data: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onChange: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n pageSize: PropTypes.number,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n activeDescendant: PropTypes.string,\n }\n\n static defaultProps = {\n pageSize: 100,\n }\n\n constructor(props) {\n super(props)\n\n this.currentPage = 1\n this.computeInstanceProps(props, true)\n\n this.state = {\n items: this.allVisibleNodes.slice(0, this.props.pageSize),\n }\n }\n\n componentWillReceiveProps = nextProps => {\n const { activeDescendant } = nextProps\n const hasSameActiveDescendant = activeDescendant === this.props.activeDescendant\n this.computeInstanceProps(nextProps, !hasSameActiveDescendant)\n this.setState({ items: this.allVisibleNodes.slice(0, this.currentPage * this.props.pageSize) }, () => {\n if (hasSameActiveDescendant) return\n const { scrollableTarget } = this.state\n const activeLi = activeDescendant && document && document.getElementById(activeDescendant)\n if (activeLi && scrollableTarget) {\n scrollableTarget.scrollTop = activeLi.offsetTop - (scrollableTarget.clientHeight - activeLi.clientHeight) / 2\n }\n })\n }\n\n componentDidMount = () => {\n this.setState({ scrollableTarget: this.node.parentNode })\n }\n\n computeInstanceProps = (props, checkActiveDescendant) => {\n this.allVisibleNodes = this.getNodes(props)\n this.totalPages = Math.ceil(this.allVisibleNodes.length / this.props.pageSize)\n if (checkActiveDescendant && props.activeDescendant) {\n const currentId = props.activeDescendant.replace(/_li$/, '')\n const focusIndex = this.allVisibleNodes.findIndex(n => n.key === currentId) + 1\n this.currentPage = focusIndex > 0 ? Math.ceil(focusIndex / this.props.pageSize) : 1\n }\n }\n\n getNodes = props => {\n const {\n data,\n keepTreeOnSearch,\n keepChildrenOnSearch,\n searchModeOn,\n mode,\n showPartiallySelected,\n readOnly,\n onAction,\n onChange,\n onCheckboxChange,\n onNodeToggle,\n activeDescendant,\n clientId,\n } = props\n const items = []\n data.forEach(node => {\n if (shouldRenderNode(node, searchModeOn, data)) {\n items.push(\n \n )\n }\n })\n return items\n }\n\n hasMore = () => this.currentPage < this.totalPages\n\n loadMore = () => {\n this.currentPage = this.currentPage + 1\n const nextItems = this.allVisibleNodes.slice(0, this.currentPage * this.props.pageSize)\n this.setState({ items: nextItems })\n }\n\n setNodeRef = node => {\n this.node = node\n }\n\n getAriaAttributes = () => {\n const { mode } = this.props\n\n const attributes = {\n /* https://www.w3.org/TR/wai-aria-1.1/#select\n * https://www.w3.org/TR/wai-aria-1.1/#tree */\n role: mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-multiselectable': /multiSelect|hierarchical/.test(mode),\n }\n\n return attributes\n }\n\n render() {\n const { searchModeOn } = this.props\n\n return (\n
      \n {this.state.scrollableTarget && (\n Loading...}\n scrollableTarget={this.state.scrollableTarget}\n >\n {this.state.items}\n \n )}\n
    \n )\n }\n}\n\nexport default Tree\n","import partial from 'array.partial'\n\nconst identity = c => c\n\nexport default (node, childProp = 'children', childSelector = identity) =>\n partial(node[childProp], c => childSelector(c).checked) || node[childProp].some(c => childSelector(c).partial)\n","import getPartialState from './getPartialState'\n\nimport { isEmpty } from '../utils'\n\n/**\n * Converts a nested node into an associative array with pointers to child and parent nodes\n * Given:\n```\nconst tree = [\n {\n label: 'item1',\n value: 'value1',\n children: [\n {\n label: 'item1-1',\n value: 'value1-1',\n children: [\n {\n label: 'item1-1-1',\n value: 'value1-1-1'\n },\n {\n label: 'item1-1-2',\n value: 'value1-1-2'\n }\n ]\n },\n {\n label: 'item1-2',\n value: 'value1-2'\n }\n ]\n },\n {\n label: 'item2',\n value: 'value2',\n children: [\n {\n label: 'item2-1',\n value: 'value2-1',\n children: [\n {\n label: 'item2-1-1',\n value: 'value2-1-1'\n },\n {\n label: 'item2-1-2',\n value: 'value2-1-2'\n },\n {\n label: 'item2-1-3',\n value: 'item2-1-3',\n children: [\n {\n label: 'item2-1-3-1',\n value: 'value2-1-3-1'\n }\n ]\n }\n ]\n },\n {\n label: 'item2-2',\n value: 'value2-2'\n }\n ]\n }\n]\n```\n * results in\n```\n{\n \"0\": {\n _id: \"0\",\n _parent: null,\n _children: [\n \"0-0\",\n \"0-1\"\n ],\n label: \"item1\",\n value: \"value1\"\n },\n \"1\": {\n _id: \"1\",\n _parent: null,\n _children: [\n \"1-0\",\n \"1-1\"\n ],\n label: \"item2\",\n value: \"value2\"\n },\n \"0-0\": {\n _id: \"0-0\",\n _parent: \"0\",\n _children: [\n \"0-0-0\",\n \"0-0-1\"\n ],\n label: \"item1-1\",\n value: \"value1-1\"\n },\n \"0-1\": {\n _id: \"0-1\",\n _parent: \"0\",\n label: \"item1-2\",\n value: \"value1-2\"\n },\n \"0-0-0\": {\n _id: \"0-0-0\",\n _parent: \"0-0\",\n label: \"item1-1-1\",\n value: \"value1-1-1\"\n },\n \"0-0-1\": {\n _id: \"0-0-1\",\n _parent: \"0-0\",\n label: \"item1-1-2\",\n value: \"value1-1-2\"\n },\n \"1-0\": {\n _id: \"1-0\",\n _parent: \"1\",\n _children: [\n \"1-0-0\",\n \"1-0-1\",\n \"1-0-2\"\n ],\n label: \"item2-1\",\n value: \"value2-1\"\n },\n \"1-1\": {\n _id: \"1-1\",\n _parent: \"1\",\n label: \"item2-2\",\n value: \"value2-2\"\n },\n \"1-0-0\": {\n _id: \"1-0-0\",\n _parent: \"1-0\",\n label: \"item2-1-1\",\n value: \"value2-1-1\"\n },\n \"1-0-1\": {\n _id: \"1-0-1\",\n _parent: \"1-0\",\n label: \"item2-1-2\",\n value: \"value2-1-2\"\n },\n \"1-0-2\": {\n _id: \"1-0-2\",\n _parent: \"1-0\",\n _children: [\n \"1-0-2-0\"\n ],\n label: \"item2-1-3\",\n value: \"value2-1-3\"\n },\n \"1-0-2-0\": {\n _id: \"1-0-2-0\",\n _parent: \"1-0-2\",\n label: \"item2-1-3-1\",\n value: \"value2-1-3-1\"\n }\n}\n```\n * @param {[type]} tree The incoming tree object\n * @param {[bool]} simple Whether its in Single select mode (simple dropdown)\n * @param {[bool]} radio Whether its in Radio select mode (radio dropdown)\n * @param {[bool]} showPartialState Whether to show partially checked state\n * @param {[string]} rootPrefixId The prefix to use when setting root node ids\n * @return {object} The flattened list\n */\nfunction flattenTree({ tree, simple, radio, showPartialState, hierarchical, rootPrefixId }) {\n const forest = Array.isArray(tree) ? tree : [tree]\n\n // eslint-disable-next-line no-use-before-define\n return walkNodes({\n nodes: forest,\n simple,\n radio,\n showPartialState,\n hierarchical,\n rootPrefixId,\n })\n}\n\n/**\n * If the node didn't specify anything on its own\n * figure out the initial state based on parent\n * @param {object} node [current node]\n * @param {object} parent [node's immediate parent]\n * @param {bool} inheritChecked [if checked should be inherited]\n */\nfunction setInitialStateProps(node, parent = {}, inheritChecked = true) {\n const stateProps = inheritChecked ? ['checked', 'disabled'] : ['disabled']\n for (let index = 0; index < stateProps.length; index++) {\n const prop = stateProps[index]\n\n // if and only if, node doesn't explicitly define a prop, grab it from parent\n if (node[prop] === undefined && parent[prop] !== undefined) {\n node[prop] = parent[prop]\n }\n }\n}\n\nfunction walkNodes({\n nodes,\n parent,\n depth = 0,\n simple,\n radio,\n showPartialState,\n hierarchical,\n rootPrefixId,\n _rv = { list: new Map(), defaultValues: [], singleSelectedNode: null },\n}) {\n const single = simple || radio\n nodes.forEach((node, i) => {\n node._depth = depth\n\n if (parent) {\n node._id = node.id || `${parent._id}-${i}`\n node._parent = parent._id\n parent._children.push(node._id)\n } else {\n node._id = node.id || `${rootPrefixId ? `${rootPrefixId}-${i}` : i}`\n }\n\n if (single && node.checked) {\n if (_rv.singleSelectedNode) {\n node.checked = false\n } else {\n _rv.singleSelectedNode = node\n }\n }\n\n if (single && node.isDefaultValue && _rv.singleSelectedNode && !_rv.singleSelectedNode.isDefaultValue) {\n // Default value has precedence, uncheck previous value\n _rv.singleSelectedNode.checked = false\n _rv.singleSelectedNode = null\n }\n\n if (node.isDefaultValue && (!single || _rv.defaultValues.length === 0)) {\n _rv.defaultValues.push(node._id)\n node.checked = true\n if (single) {\n _rv.singleSelectedNode = node\n }\n }\n\n if (!hierarchical || radio) setInitialStateProps(node, parent, !radio)\n\n _rv.list.set(node._id, node)\n if (!simple && node.children) {\n node._children = []\n walkNodes({\n nodes: node.children,\n parent: node,\n depth: depth + 1,\n radio,\n showPartialState,\n hierarchical,\n _rv,\n })\n\n if (showPartialState && !node.checked) {\n node.partial = getPartialState(node)\n\n // re-check if all children are checked. if so, check thyself\n if (!single && !isEmpty(node.children) && node.children.every(c => c.checked)) {\n node.checked = true\n }\n }\n\n node.children = undefined\n }\n })\n\n return _rv\n}\n\nexport default flattenTree\n","import { isEmpty } from '../utils'\n\nconst markSubTreeVisited = (node, visited, getItemById) => {\n visited[node._id] = true\n if (!isEmpty(node._children)) {\n node._children.forEach(c => markSubTreeVisited(getItemById(c), visited, getItemById))\n }\n}\n\nconst getNodesMatching = (tree, nodePredicate) => {\n const nodes = []\n const visited = {}\n\n tree.forEach((node, key) => {\n if (visited[key]) return\n\n if (nodePredicate(node, key, visited)) {\n nodes.push(node)\n }\n\n visited[key] = true\n })\n\n return nodes\n}\n\nconst getVisibleNodes = (tree, getItemById, markSubTreeOnNonExpanded) =>\n getNodesMatching(tree, (node, key, visited) => {\n if (markSubTreeOnNonExpanded && node._children && node._children.length && node.expanded !== true) {\n markSubTreeVisited(node, visited, getItemById)\n }\n return !node.hide\n })\n\nconst nodeVisitor = {\n getNodesMatching,\n getVisibleNodes,\n markSubTreeVisited,\n}\nexport default nodeVisitor\n","import nodeVisitor from './nodeVisitor'\nimport { getTagId } from '../tag'\n\nconst Keys = {\n Up: 'ArrowUp',\n Down: 'ArrowDown',\n Left: 'ArrowLeft',\n Right: 'ArrowRight',\n Enter: 'Enter',\n Home: 'Home',\n PageUp: 'PageUp',\n End: 'End',\n PageDown: 'PageDown',\n}\n\nexport const NavActions = {\n None: 'None',\n FocusPrevious: 'FocusPrevious',\n FocusNext: 'FocusNext',\n FocusParent: 'FocusParent',\n FocusFirst: 'FocusFirst',\n FocusLast: 'FocusLast',\n ToggleExpanded: 'ToggleExpanded',\n ToggleChecked: 'ToggleChecked',\n}\n\nexport const FocusActionNames = new Set([\n NavActions.FocusPrevious,\n NavActions.FocusNext,\n NavActions.FocusParent,\n NavActions.FocusFirst,\n NavActions.FocusLast,\n])\n\nconst validTriggerOpenKeys = [Keys.Up, Keys.Down, Keys.Home, Keys.PageUp, Keys.End, Keys.PageDown]\nconst validKeys = validTriggerOpenKeys.concat([Keys.Left, Keys.Right, Keys.Enter])\n\nconst isValidKey = (key, isOpen) => {\n const keysToCheck = isOpen ? validKeys : validTriggerOpenKeys\n return keysToCheck.indexOf(key) > -1\n}\n\nconst isMatchingEvent = (key, keys, currentFocus, nonFocusKey) =>\n keys.indexOf(key) > -1 || (!currentFocus && key === nonFocusKey)\n\nconst isFocusFirstEvent = (key, currentFocus) => isMatchingEvent(key, [Keys.Home, Keys.PageUp], currentFocus, Keys.Down)\n\nconst isFocusLastEvent = (key, currentFocus) => isMatchingEvent(key, [Keys.End, Keys.PageDown], currentFocus, Keys.Up)\n\nconst isReverseTraverseAction = action =>\n isMatchingEvent(action, [NavActions.FocusPrevious, NavActions.FocusLast], true)\n\nconst isEdgeTraverseAction = action => isMatchingEvent(action, [NavActions.FocusFirst, NavActions.FocusLast], true)\n\nconst getLeftNavAction = (currentFocus, key) => {\n if (!currentFocus || key !== Keys.Left) return NavActions.None\n\n if (currentFocus.expanded === true) {\n return NavActions.ToggleExpanded\n }\n if (currentFocus._parent) {\n return NavActions.FocusParent\n }\n\n return NavActions.None\n}\n\nconst getRightNavAction = (currentFocus, key) => {\n if (!currentFocus || !currentFocus._children || key !== Keys.Right) {\n return NavActions.None\n }\n\n return currentFocus.expanded !== true ? NavActions.ToggleExpanded : NavActions.FocusNext\n}\n\nconst getRelativeAction = (currentFocus, key) => {\n if (!currentFocus) return NavActions.None\n switch (key) {\n case Keys.Up:\n return NavActions.FocusPrevious\n case Keys.Down:\n return NavActions.FocusNext\n case Keys.Enter:\n return NavActions.ToggleChecked\n default:\n return NavActions.None\n }\n}\n\nconst getAction = (currentFocus, key) => {\n let action\n if (key === Keys.Left) {\n action = getLeftNavAction(currentFocus, key)\n } else if (key === Keys.Right) {\n action = getRightNavAction(currentFocus, key)\n } else if (isFocusFirstEvent(key, currentFocus)) {\n action = NavActions.FocusFirst\n } else if (isFocusLastEvent(key, currentFocus)) {\n action = NavActions.FocusLast\n } else {\n action = getRelativeAction(currentFocus, key)\n }\n return action\n}\n\nconst getParentFocus = (prevFocus, getNodeById) =>\n prevFocus && prevFocus._parent ? getNodeById(prevFocus._parent) : prevFocus\n\nconst getRelativeNeighborsFocus = (sortedNodes, prevFocus) => {\n const nextIndex = sortedNodes.indexOf(prevFocus) + 1\n if (nextIndex % sortedNodes.length === 0) {\n return sortedNodes[0]\n }\n return sortedNodes[nextIndex]\n}\n\nconst getRelativeFocus = (sortedNodes, prevFocus, action) => {\n if (!sortedNodes || sortedNodes.length === 0) {\n return prevFocus\n }\n\n let focus = prevFocus\n if (isEdgeTraverseAction(action)) {\n ;[focus] = sortedNodes\n } else if ([NavActions.FocusPrevious, NavActions.FocusNext].indexOf(action) > -1) {\n focus = getRelativeNeighborsFocus(sortedNodes, prevFocus)\n }\n return focus\n}\n\nconst getNextFocus = (tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded) => {\n if (action === NavActions.FocusParent) {\n return getParentFocus(prevFocus, getNodeById)\n }\n if (!FocusActionNames.has(action)) {\n return prevFocus\n }\n\n let nodes = nodeVisitor.getVisibleNodes(tree, getNodeById, markSubTreeOnNonExpanded)\n if (isReverseTraverseAction(action)) {\n nodes = nodes.reverse()\n }\n\n return getRelativeFocus(nodes, prevFocus, action)\n}\n\nconst getNextFocusAfterTagDelete = (deletedId, prevTags, tags, fallback) => {\n // Sets new focus to next tag or returns fallback\n let index = prevTags && prevTags.findIndex(t => t._id === deletedId)\n if (index < 0 || !tags.length) return fallback\n\n index = tags.length > index ? index : tags.length - 1\n const newFocusId = tags[index]._id\n const focusNode = document.getElementById(getTagId(newFocusId))\n if (focusNode) {\n return focusNode.firstElementChild || fallback\n }\n return fallback\n}\n\nconst handleFocusNavigationkey = (tree, action, prevFocus, getNodeById, markSubTreeOnNonExpanded) => {\n const newFocus = keyboardNavigation.getNextFocus(tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded)\n if (prevFocus && newFocus && prevFocus._id !== newFocus._id) {\n prevFocus._focused = false\n }\n if (newFocus) {\n newFocus._focused = true\n return newFocus._id\n }\n return prevFocus && prevFocus._id\n}\n\nconst handleToggleNavigationkey = (action, prevFocus, readOnly, onToggleChecked, onToggleExpanded) => {\n if (action === NavActions.ToggleChecked && !readOnly && !(prevFocus.readOnly || prevFocus.disabled)) {\n onToggleChecked(prevFocus._id, prevFocus.checked !== true)\n } else if (action === NavActions.ToggleExpanded) {\n onToggleExpanded(prevFocus._id)\n }\n return prevFocus && prevFocus._id\n}\n\nconst keyboardNavigation = {\n isValidKey,\n getAction,\n getNextFocus,\n getNextFocusAfterTagDelete,\n handleFocusNavigationkey,\n handleToggleNavigationkey,\n}\n\nexport default keyboardNavigation\n","import getPartialState from './getPartialState'\nimport { isEmpty } from '../utils'\nimport flattenTree from './flatten-tree'\nimport nodeVisitor from './nodeVisitor'\nimport keyboardNavigation, { FocusActionNames } from './keyboardNavigation'\n\nclass TreeManager {\n constructor({ data, mode, showPartiallySelected, rootPrefixId, searchPredicate }) {\n this._src = data\n this.simpleSelect = mode === 'simpleSelect'\n this.radioSelect = mode === 'radioSelect'\n this.hierarchical = mode === 'hierarchical'\n this.searchPredicate = searchPredicate\n const { list, defaultValues, singleSelectedNode } = flattenTree({\n tree: JSON.parse(JSON.stringify(data)),\n simple: this.simpleSelect,\n radio: this.radioSelect,\n showPartialState: showPartiallySelected,\n hierarchical: this.hierarchical,\n rootPrefixId,\n })\n this.tree = list\n this.defaultValues = defaultValues\n this.showPartialState = !this.hierarchical && showPartiallySelected\n this.searchMaps = new Map()\n\n if ((this.simpleSelect || this.radioSelect) && singleSelectedNode) {\n // Remembers initial check on single select dropdowns\n this.currentChecked = singleSelectedNode._id\n }\n }\n\n getNodeById(id) {\n return this.tree.get(id)\n }\n\n getMatches(searchTerm) {\n if (this.searchMaps.has(searchTerm)) {\n return this.searchMaps.get(searchTerm)\n }\n\n let proximity = -1\n let closestMatch = searchTerm\n this.searchMaps.forEach((m, key) => {\n if (searchTerm.startsWith(key) && key.length > proximity) {\n proximity = key.length\n closestMatch = key\n }\n })\n\n const matches = []\n\n const addOnMatch = this._getAddOnMatch(matches, searchTerm)\n\n if (closestMatch !== searchTerm) {\n const superMatches = this.searchMaps.get(closestMatch)\n superMatches.forEach(key => addOnMatch(this.getNodeById(key)))\n } else {\n this.tree.forEach(addOnMatch)\n }\n\n this.searchMaps.set(searchTerm, matches)\n return matches\n }\n\n addParentsToTree(id, tree) {\n if (id !== undefined) {\n const node = this.getNodeById(id)\n this.addParentsToTree(node._parent, tree)\n node.hide = node._isMatch ? node.hide : true\n node.matchInChildren = true\n tree.set(id, node)\n }\n }\n\n addChildrenToTree(ids, tree, matches) {\n if (ids !== undefined) {\n ids.forEach(id => {\n if (matches && matches.includes(id)) {\n // if a child is found by search anyways, don't display it as a child here\n return\n }\n const node = this.getNodeById(id)\n node.matchInParent = true\n tree.set(id, node)\n this.addChildrenToTree(node._children, tree)\n })\n }\n }\n\n filterTree(searchTerm, keepTreeOnSearch, keepChildrenOnSearch) {\n const matches = this.getMatches(searchTerm.toLowerCase())\n\n const matchTree = new Map()\n\n matches.forEach(m => {\n const node = this.getNodeById(m)\n node.hide = false\n\n // add a marker to tell `addParentsToTree` to not hide this node; even if it's an ancestor node\n node._isMatch = true\n\n if (keepTreeOnSearch) {\n // add parent nodes first or else the tree won't be rendered in correct hierarchy\n this.addParentsToTree(node._parent, matchTree)\n }\n matchTree.set(m, node)\n if (keepTreeOnSearch && keepChildrenOnSearch) {\n // add children nodes after a found match\n this.addChildrenToTree(node._children, matchTree, matches)\n }\n })\n\n const allNodesHidden = matches.length === 0\n\n // we store a local reference so that components can use it in subsequent renders\n // this is the least intrusive way of fixing #190\n this.matchTree = matchTree\n\n return { allNodesHidden, tree: matchTree }\n }\n\n restoreNodes() {\n this.tree.forEach(node => {\n node.hide = false\n })\n\n return this.tree\n }\n\n restoreDefaultValues() {\n this.defaultValues.forEach(id => {\n this.setNodeCheckedState(id, true)\n })\n\n return this.tree\n }\n\n togglePreviousChecked(id, checked) {\n const prevChecked = this.currentChecked\n\n // if id is same as previously selected node, then do nothing (since it's state is already set correctly by setNodeCheckedState)\n // but if they ar not same, then toggle the previous one\n if (prevChecked && prevChecked !== id) this.getNodeById(prevChecked).checked = false\n\n this.currentChecked = checked ? id : null\n }\n\n setNodeCheckedState(id, checked) {\n const node = this.getNodeById(id)\n node.checked = checked\n\n // TODO: this can probably be combined with the same check in the else block. investigate in a separate release.\n if (this.showPartialState) {\n node.partial = false\n }\n\n if (this.simpleSelect) {\n this.togglePreviousChecked(id, checked)\n } else if (this.radioSelect) {\n this.togglePreviousChecked(id, checked)\n if (this.showPartialState) {\n this.partialCheckParents(node)\n }\n if (!checked) {\n this.unCheckParents(node)\n }\n } else {\n if (!this.hierarchical) this.toggleChildren(id, checked)\n\n if (this.showPartialState) {\n this.partialCheckParents(node)\n }\n\n if (!this.hierarchical && !checked) {\n this.unCheckParents(node)\n }\n }\n }\n\n /**\n * Walks up the tree unchecking parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n unCheckParents(node) {\n let parent = node._parent\n while (parent) {\n const next = this.getNodeById(parent)\n next.checked = false\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this))\n parent = next._parent\n }\n }\n\n /**\n * Walks up the tree setting partial state on parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n partialCheckParents(node) {\n let parent = node._parent\n while (parent) {\n const next = this.getNodeById(parent)\n next.checked = next._children.every(c => this.getNodeById(c).checked)\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this))\n parent = next._parent\n }\n }\n\n toggleChildren(id, state) {\n const node = this.getNodeById(id)\n node.checked = state\n\n if (this.showPartialState) {\n node.partial = false\n }\n\n if (!isEmpty(node._children)) {\n node._children.forEach(id => this.toggleChildren(id, state))\n }\n }\n\n toggleNodeExpandState(id) {\n const node = this.getNodeById(id)\n node.expanded = !node.expanded\n if (!node.expanded) this.collapseChildren(node)\n return this.tree\n }\n\n collapseChildren(node) {\n node.expanded = false\n if (!isEmpty(node._children)) {\n node._children.forEach(c => this.collapseChildren(this.getNodeById(c)))\n }\n }\n\n get tags() {\n if (this.radioSelect || this.simpleSelect) {\n if (this.currentChecked) {\n return [this.getNodeById(this.currentChecked)]\n }\n return []\n }\n\n return nodeVisitor.getNodesMatching(this.tree, (node, key, visited) => {\n if (node.checked && !this.hierarchical) {\n // Parent node, so no need to walk children\n nodeVisitor.markSubTreeVisited(node, visited, id => this.getNodeById(id))\n }\n return node.checked\n })\n }\n\n getTreeAndTags() {\n return { tree: this.tree, tags: this.tags }\n }\n\n handleNavigationKey(currentFocus, tree, key, readOnly, markSubTreeOnNonExpanded, onToggleChecked, onToggleExpanded) {\n const prevFocus = currentFocus && this.getNodeById(currentFocus)\n const getNodeById = id => this.getNodeById(id)\n const action = keyboardNavigation.getAction(prevFocus, key)\n\n if (FocusActionNames.has(action)) {\n const newFocus = keyboardNavigation.handleFocusNavigationkey(\n tree,\n action,\n prevFocus,\n getNodeById,\n markSubTreeOnNonExpanded\n )\n return newFocus\n }\n\n if (!prevFocus || !tree.has(prevFocus._id)) {\n // No current focus or not visible\n return currentFocus\n }\n\n return keyboardNavigation.handleToggleNavigationkey(action, prevFocus, readOnly, onToggleChecked, onToggleExpanded)\n }\n\n _getAddOnMatch(matches, searchTerm) {\n let isMatch = (node, term) => node.label.toLowerCase().indexOf(term) >= 0\n if (typeof this.searchPredicate === 'function') {\n isMatch = this.searchPredicate\n }\n\n return node => {\n if (isMatch(node, searchTerm)) {\n matches.push(node._id)\n }\n }\n }\n}\n\nexport default TreeManager\n","/*!\n * React Dropdown Tree Select\n * A lightweight, fast and highly customizable tree select component.\n * Hrusikesh Panda \n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nimport PropTypes from 'prop-types'\nimport React, { Component } from 'react'\n\nimport { isOutsideClick, clientIdGenerator } from './utils'\nimport Input from './input'\nimport Tags from './tags'\nimport Trigger from './trigger'\nimport Tree from './tree'\nimport TreeManager from './tree-manager'\nimport keyboardNavigation from './tree-manager/keyboardNavigation'\n\nimport './index.css'\nimport { getAriaLabel } from './a11y'\n\nclass DropdownTreeSelect extends Component {\n static propTypes = {\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n clearSearchOnChange: PropTypes.bool,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n keepOpenOnSelect: PropTypes.bool,\n texts: PropTypes.shape({\n placeholder: PropTypes.string,\n noMatches: PropTypes.string,\n label: PropTypes.string,\n labelRemove: PropTypes.string,\n }),\n showDropdown: PropTypes.oneOf(['default', 'initial', 'always']),\n className: PropTypes.string,\n onChange: PropTypes.func,\n onAction: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n onReorderList:PropTypes.func,\n sortable: PropTypes.bool,\n searchPredicate: PropTypes.func,\n inlineSearchInput: PropTypes.bool,\n }\n\n static defaultProps = {\n onFocus: () => {},\n onBlur: () => {},\n onChange: () => {},\n texts: {},\n showDropdown: 'default',\n inlineSearchInput: false,\n }\n\n constructor(props) {\n super(props)\n this.state = {\n searchModeOn: false,\n currentFocus: undefined,\n }\n this.clientId = props.id || clientIdGenerator.get(this)\n }\n\n initNewProps = ({ data, mode, showDropdown, showPartiallySelected, searchPredicate }) => {\n this.treeManager = new TreeManager({\n data,\n mode,\n showPartiallySelected,\n rootPrefixId: this.clientId,\n searchPredicate,\n })\n // Restore focus-state\n const currentFocusNode = this.state.currentFocus && this.treeManager.getNodeById(this.state.currentFocus)\n if (currentFocusNode) {\n currentFocusNode._focused = true\n }\n this.setState(prevState => ({\n showDropdown: /initial|always/.test(showDropdown) || prevState.showDropdown === true,\n ...this.treeManager.getTreeAndTags(),\n }))\n }\n\n resetSearchState = () => {\n // clear the search criteria and avoid react controlled/uncontrolled warning\n // !this.props.inlineSearchInput is gated as inline search is not rendered until dropdown is shown\n if (!this.props.inlineSearchInput) {\n this.searchInput.value = ''\n }\n\n return {\n tree: this.treeManager.restoreNodes(), // restore the tree to its pre-search state\n searchModeOn: false,\n allNodesHidden: false,\n }\n }\n\n componentWillMount() {\n this.initNewProps(this.props)\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleOutsideClick, false)\n }\n\n componentWillReceiveProps(nextProps) {\n this.initNewProps(nextProps)\n }\n\n handleClick = (e, callback) => {\n this.setState(prevState => {\n // keep dropdown active when typing in search box\n const showDropdown = this.props.showDropdown === 'always' || this.keepDropdownActive || !prevState.showDropdown\n\n // register event listeners only if there is a state change\n if (showDropdown !== prevState.showDropdown) {\n if (showDropdown) {\n document.addEventListener('click', this.handleOutsideClick, false)\n } else {\n document.removeEventListener('click', this.handleOutsideClick, false)\n }\n }\n\n if (showDropdown) this.props.onFocus()\n else this.props.onBlur()\n\n return !showDropdown ? { showDropdown, ...this.resetSearchState() } : { showDropdown }\n }, callback)\n }\n\n handleOutsideClick = e => {\n if (this.props.showDropdown === 'always' || !isOutsideClick(e, this.node)) {\n return\n }\n\n this.handleClick()\n }\n\n onInputChange = value => {\n const { allNodesHidden, tree } = this.treeManager.filterTree(\n value,\n this.props.keepTreeOnSearch,\n this.props.keepChildrenOnSearch\n )\n const searchModeOn = value.length > 0\n\n this.setState({\n tree,\n searchModeOn,\n allNodesHidden,\n })\n }\n\n onTagRemove = (id, isKeyboardEvent) => {\n const { tags: prevTags } = this.state\n this.onCheckboxChange(id, false, tags => {\n if (!isKeyboardEvent) return\n\n keyboardNavigation.getNextFocusAfterTagDelete(id, prevTags, tags, this.searchInput).focus()\n })\n }\n\n onNodeToggle = id => {\n this.treeManager.toggleNodeExpandState(id)\n const tree = this.state.searchModeOn ? this.treeManager.matchTree : this.treeManager.tree\n this.setState({ tree })\n typeof this.props.onNodeToggle === 'function' && this.props.onNodeToggle(this.treeManager.getNodeById(id))\n }\n\n onCheckboxChange = (id, checked, callback) => {\n const { mode, keepOpenOnSelect } = this.props\n this.treeManager.setNodeCheckedState(id, checked)\n let tags = this.treeManager.tags\n const isSingleSelect = ['simpleSelect', 'radioSelect'].indexOf(mode) > -1\n const showDropdown = isSingleSelect && !keepOpenOnSelect ? false : this.state.showDropdown\n\n if (!tags.length) {\n this.treeManager.restoreDefaultValues()\n tags = this.treeManager.tags\n }\n\n const tree = this.state.searchModeOn ? this.treeManager.matchTree : this.treeManager.tree\n const nextState = {\n tree,\n tags,\n showDropdown,\n }\n\n if ((isSingleSelect && !showDropdown) || this.props.clearSearchOnChange) {\n Object.assign(nextState, this.resetSearchState())\n }\n\n if (isSingleSelect && !showDropdown) {\n document.removeEventListener('click', this.handleOutsideClick, false)\n }\n\n this.setState(nextState, () => {\n callback && callback(tags)\n })\n this.props.onChange(this.treeManager.getNodeById(id), tags)\n }\n\n onAction = (nodeId, action) => {\n this.props.onAction(this.treeManager.getNodeById(nodeId), action)\n }\n\n onInputFocus = () => {\n this.keepDropdownActive = true\n }\n\n onInputBlur = () => {\n this.keepDropdownActive = false\n }\n\n onTrigger = e => {\n this.handleClick(e, () => {\n // If the dropdown is shown after key press, focus the input\n if (this.state.showDropdown) {\n this.searchInput.focus()\n }\n })\n }\n\n onKeyboardKeyDown = e => {\n const { readOnly, mode } = this.props\n const { showDropdown, tags, searchModeOn, currentFocus } = this.state\n const tm = this.treeManager\n const tree = searchModeOn ? tm.matchTree : tm.tree\n\n if (!showDropdown && (keyboardNavigation.isValidKey(e.key, false) || /^\\w$/i.test(e.key))) {\n // Triggers open of dropdown and retriggers event\n e.persist()\n this.handleClick(null, () => this.onKeyboardKeyDown(e))\n if (/\\w/i.test(e.key)) return\n } else if (showDropdown && keyboardNavigation.isValidKey(e.key, true)) {\n const newFocus = tm.handleNavigationKey(\n currentFocus,\n tree,\n e.key,\n readOnly,\n !searchModeOn,\n this.onCheckboxChange,\n this.onNodeToggle\n )\n if (newFocus !== currentFocus) {\n this.setState({ currentFocus: newFocus })\n }\n } else if (showDropdown && ['Escape', 'Tab'].indexOf(e.key) > -1) {\n if (mode === 'simpleSelect' && tree.has(currentFocus)) {\n this.onCheckboxChange(currentFocus, true)\n } else {\n // Triggers close\n this.keepDropdownActive = false\n this.handleClick()\n }\n return\n } else if (e.key === 'Backspace' && tags.length && this.searchInput.value.length === 0) {\n const lastTag = tags.pop()\n this.onCheckboxChange(lastTag._id, false)\n } else {\n return\n }\n e.preventDefault()\n }\n\n onReorderList = (newList) => {\n this.setState({ tags: newList }, () => {\n if(this.props.onReorderList){\n this.props.onReorderList(newList)\n }else{\n this.props.onChange(newList)\n }\n \n })\n }\n\n getAriaAttributes = () => {\n const { mode, texts } = this.props\n\n if (mode !== 'radioSelect') return {}\n\n return {\n role: 'radiogroup',\n ...getAriaLabel(texts.label),\n }\n }\n\n render() {\n const { disabled, readOnly, mode, texts, inlineSearchInput, sortable = false } = this.props\n const { showDropdown, currentFocus, tags } = this.state\n\n const activeDescendant = currentFocus ? `${currentFocus}_li` : undefined\n\n const commonProps = { disabled, readOnly, activeDescendant, texts, mode, clientId: this.clientId }\n\n const searchInput = (\n {\n this.searchInput = el\n }}\n onInputChange={this.onInputChange}\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n onKeyDown={this.onKeyboardKeyDown}\n {...commonProps}\n />\n )\n return (\n {\n this.node = node\n }}\n >\n \n \n \n {!inlineSearchInput && searchInput}\n \n \n {showDropdown && (\n
    \n {inlineSearchInput && searchInput}\n {this.state.allNodesHidden ? (\n {texts.noMatches || 'No matches found'}\n ) : (\n \n )}\n
    \n )}\n \n \n )\n }\n}\n\nexport default DropdownTreeSelect\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://ReactDropdownTreeSelect/webpack/universalModuleDefinition","webpack://ReactDropdownTreeSelect/webpack/bootstrap","webpack://ReactDropdownTreeSelect/./node_modules/prop-types/index.js","webpack://ReactDropdownTreeSelect/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://ReactDropdownTreeSelect/./node_modules/classnames/index.js","webpack://ReactDropdownTreeSelect/./node_modules/react-infinite-scroll-component/lib/index.js","webpack://ReactDropdownTreeSelect/./node_modules/array.partial/index.js","webpack://ReactDropdownTreeSelect/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://ReactDropdownTreeSelect/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://ReactDropdownTreeSelect/./src/utils/dataset.js","webpack://ReactDropdownTreeSelect/./src/utils/isEmpty.js","webpack://ReactDropdownTreeSelect/./src/utils/isOutsideClick.js","webpack://ReactDropdownTreeSelect/./src/utils/debounce.js","webpack://ReactDropdownTreeSelect/./src/utils/generateUID.js","webpack://ReactDropdownTreeSelect/./src/a11y/index.js","webpack://ReactDropdownTreeSelect/./src/input/index.js","webpack://ReactDropdownTreeSelect/./src/tag/index.js","webpack://ReactDropdownTreeSelect/./node_modules/sortablejs/modular/sortable.esm.js","webpack://ReactDropdownTreeSelect/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://ReactDropdownTreeSelect/./node_modules/react-sortablejs/dist/index.es.js","webpack://ReactDropdownTreeSelect/./src/tags/index.js","webpack://ReactDropdownTreeSelect/./src/trigger/index.js","webpack://ReactDropdownTreeSelect/./src/tree-node/action.js","webpack://ReactDropdownTreeSelect/./src/tree-node/actions.js","webpack://ReactDropdownTreeSelect/./src/checkbox/index.js","webpack://ReactDropdownTreeSelect/./src/radio/index.js","webpack://ReactDropdownTreeSelect/./src/tree-node/node-label.js","webpack://ReactDropdownTreeSelect/./src/tree-node/toggle.js","webpack://ReactDropdownTreeSelect/./src/tree-node/index.js","webpack://ReactDropdownTreeSelect/./src/tree/index.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/getPartialState.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/flatten-tree.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/nodeVisitor.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/keyboardNavigation.js","webpack://ReactDropdownTreeSelect/./src/tree-manager/index.js","webpack://ReactDropdownTreeSelect/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__1__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","join","default","undefined","__WEBPACK_EXTERNAL_MODULE_8__","id","loaded","_extends","assign","target","source","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_get","_x2","_x3","_x4","_again","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","_interopRequireDefault","obj","_react","_react2","_propTypes2","_utilsThrottle2","_utilsThreshold","InfiniteScroll","_Component","instance","TypeError","_classCallCheck","state","showLoader","lastScrollTop","actionTriggered","pullToRefreshThresholdBreached","startY","currentY","dragging","maxPullDownDistance","onScrollListener","throttledOnScrollListener","onStart","onMove","onEnd","getScrollableTarget","subClass","superClass","constructor","setPrototypeOf","__proto__","_inherits","Component","_scrollableNode","el","height","_infScroll","window","addEventListener","initialScrollY","scrollHeight","scrollTo","pullDownToRefresh","_pullDown","firstChild","getBoundingClientRect","forceUpdate","refreshFunction","Error","removeEventListener","dataLength","setState","scrollableTarget","HTMLElement","document","getElementById","console","warn","evt","pageY","touches","style","willChange","transition","pullDownToRefreshThreshold","overflow","transform","_this","requestAnimationFrame","scrollThreshold","clientHeight","body","documentElement","screen","availHeight","threshold","parseThreshold","unit","ThresholdUnits","Pixel","scrollTop","event","_this2","onScroll","setTimeout","isElementAtBottom","hasMore","next","_this3","WebkitOverflowScrolling","hasChildren","children","outerDivStyle","createElement","className","ref","infScroll","position","pullDown","left","right","top","pullDownToRefreshContent","releaseToRefreshContent","loader","endMessage","defaultProps","disableBrowserPullToRefresh","propTypes","func","bool","node","isRequired","oneOfType","number","string","Percent","match","parseFloat","defaultThreshold","fn","threshhold","scope","last","deferTimer","context","now","Date","args","clearTimeout","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","condition","a","b","e","f","error","argIndex","replace","framesToPop","invariant","ReactPropTypesSecret","shim","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","array","symbol","any","arrayOf","element","instanceOf","objectOf","oneOf","shape","checkPropTypes","PropTypes","arr","some","filter","emptyFunctionWithReset","resetWarningCache","err","elementType","exact","getDataset","keys","reduce","acc","cur","str","toLowerCase","isEmpty","isOutsideClick","Event","path","elem","parentElement","unshift","getPath","eventNode","debounce","wait","timeout","_len","_key","callNow","clientIdGenerator","prefix","counter","map","WeakMap","item","has","set","reset","generateUID","getAriaLabel","label","additionalLabelledBy","attributes","aria-labelledby","substring","aria-label","getAriaAttributeForLabel","trim","Input","_possibleConstructorReturn","handleInputChange","persist","delayedCallback","onInputChange","PureComponent","_props","inputRef","_props$texts","texts","onFocus","onBlur","disabled","readOnly","onKeyDown","activeDescendant","external_root_React_commonjs2_react_commonjs_react_amd_react_default","type","placeholder","onChange","aria-activedescendant","aria-autocomplete","tags","onTagRemove","inlineSearchInput","getTagId","Tag","handleClick","_this$props","onDelete","stopPropagation","nativeEvent","stopImmediatePropagation","keyCode","preventDefault","onKeyUp","indexOf","_props$labelRemove","labelRemove","tagId","buttonId","Boolean","isDisabled","onClick","aria-disabled","_typeof","iterator","_defineProperty","sortable_esm_extends","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","forEach","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","userAgent","pattern","navigator","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","on","off","matches","selector","msMatchesSelector","webkitMatchesSelector","_","getParentOrHost","host","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","classList","css","prop","val","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","find","tagName","list","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","elRect","bottom","width","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","options","currentChild","display","Sortable","ghost","dragged","draggable","lastChild","lastElementChild","previousElementSibling","sortable_esm_index","index","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","includeSelf","gotSelf","clientWidth","scrollWidth","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","Math","round","throttle","callback","ms","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","slice","child","rect","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","splice","Number","indexOfObject","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","easing","animated","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","pullMode","lastPutMode","allEventProperties","data","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","nearest","clientX","clientY","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","toString","sort","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","destroy","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","sortable_esm","isProduction","tiny_invariant_esm","message","extendStatics","__assign","__read","ar","done","__spread","removeNode","removeNodes","customs","curr","insertNodes","newChild","refChild","createCustoms","getMode","custom","swapItem","oldIndicies","multiDragElement","newIndicies","createNormalized","handleStateRemove","normalized","newList","reverse","handleStateAdd","destructurePropsForOptions","setList","tag","onAdd","onChoose","onClone","onFilter","onRemove","onSort","onUnchoose","onUpdate","onSelect","onDeselect","__rest","index_es_ReactSortable","_super","ReactSortable","external_root_React_commonjs2_react_commonjs_react_amd_react_","chosen","selected","__","__extends","componentDidMount","current","newOptions","makeOptions","render","_a","classicProps","newTag","getChildren","_b","selectedClass","_c","_h","swapClass","dataid","prevClassName","filtered","classnames_default","k","includes","prepareOnHandlerPropAndDOM","prepareOnHandlerProp","originalEvt","defaultValue","result","evtName","callOnHandlerProp","propEvent","customClones","clones","newItem","handleStateChanges","removeOnSpill","revertOnSpill","log","getTags","_id","tagClassName","dataset","tags_extends","src_tag_0","Tags","_props$sortable","onReorderList","newType","lastItem","Trigger","getAriaAttributes","_this$props$texts","showDropdown","clientId","triggerId","labelledBy","labelAttributes","role","tabIndex","aria-haspopup","aria-expanded","handleTrigger","triggerNode","activeElement","onTrigger","dropdownTriggerClassname","trigger_extends","Action","onAction","actionData","nodeId","action","title","text","Actions","actions","rest","actions_objectWithoutProperties","actionId","tree_node_action","actions_extends","refUpdater","indeterminate","input","Checkbox","_props$indeterminate","checkbox_objectWithoutProperties","checkbox_extends","RadioButton","radio_objectWithoutProperties","radio_extends","NodeLabel","handleCheckboxChange","onCheckboxChange","partial","_props2","showPartiallySelected","nodeLabelProps","sharedProps","htmlFor","src_radio","node_label_extends","src_checkbox","Toggle","onToggle","onNodeToggle","expanded","isLeaf","toggleCx","aria-hidden","TreeNode","_children","_depth","keepTreeOnSearch","searchModeOn","liCx","keepChildrenOnSearch","matchInChildren","matchInParent","hide","focused","_focused","getNodeCx","liId","tree_node_extends","toggle","node_label","tree_node_actions","Tree","tree_classCallCheck","tree_possibleConstructorReturn","tree_initialiseProps","currentPage","computeInstanceProps","allVisibleNodes","pageSize","tree_extends","setNodeRef","lib_default","loadMore","componentWillReceiveProps","nextProps","hasSameActiveDescendant","activeLi","checkActiveDescendant","getNodes","totalPages","ceil","currentId","focusIndex","findIndex","_parent","shouldRenderNode","src_tree_node","nextItems","aria-multiselectable","identity","getPartialState","childProp","childSelector","flattenTree","tree","simple","radio","showPartialState","hierarchical","rootPrefixId","walkNodes","nodes","_ref2$depth","depth","_ref2$_rv","_rv","Map","defaultValues","singleSelectedNode","single","isDefaultValue","stateProps","setInitialStateProps","every","markSubTreeVisited","visited","getItemById","getNodesMatching","nodePredicate","nodeVisitor","getVisibleNodes","markSubTreeOnNonExpanded","Keys","NavActions","None","FocusPrevious","FocusNext","FocusParent","FocusFirst","FocusLast","ToggleExpanded","ToggleChecked","FocusActionNames","Set","validTriggerOpenKeys","validKeys","isMatchingEvent","currentFocus","nonFocusKey","getRelativeFocus","sortedNodes","prevFocus","focus","isEdgeTraverseAction","keyboardNavigation_slicedToArray","nextIndex","getRelativeNeighborsFocus","keyboardNavigation","isValidKey","isOpen","getAction","getLeftNavAction","getRightNavAction","isFocusFirstEvent","isFocusLastEvent","getRelativeAction","getNextFocus","getNodeById","getParentFocus","isReverseTraverseAction","getNextFocusAfterTagDelete","deletedId","prevTags","newFocusId","focusNode","firstElementChild","handleFocusNavigationkey","newFocus","handleToggleNavigationkey","onToggleChecked","onToggleExpanded","TreeManager","searchPredicate","tree_manager_classCallCheck","_src","simpleSelect","radioSelect","_flattenTree","JSON","parse","stringify","searchMaps","currentChecked","searchTerm","proximity","closestMatch","startsWith","addOnMatch","_getAddOnMatch","addParentsToTree","_isMatch","ids","addChildrenToTree","getMatches","matchTree","allNodesHidden","_this4","setNodeCheckedState","prevChecked","togglePreviousChecked","partialCheckParents","unCheckParents","toggleChildren","_this5","_this6","collapseChildren","_this7","_this8","isMatch","term","_this9","DropdownTreeSelect","src_classCallCheck","src_possibleConstructorReturn","initNewProps","treeManager","currentFocusNode","prevState","src_extends","getTreeAndTags","resetSearchState","searchInput","restoreNodes","keepDropdownActive","handleOutsideClick","_this$treeManager$fil","filterTree","isKeyboardEvent","toggleNodeExpandState","keepOpenOnSelect","isSingleSelect","restoreDefaultValues","nextState","clearSearchOnChange","onInputFocus","onInputBlur","onKeyboardKeyDown","_this$props2","_this$state","tm","handleNavigationKey","lastTag","pop","_this$props3","_state","commonProps","trigger","src_tags_0","noMatches","src_tree"],"mappings":"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","file":"react-dropdown-tree-select.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ReactDropdownTreeSelect\", [\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDropdownTreeSelect\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReactDropdownTreeSelect\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"InfiniteScroll\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"InfiniteScroll\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_8__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\n\tvar _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; };\n\n\tvar _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; }; })();\n\n\tvar _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _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; }\n\n\tvar _react = __webpack_require__(8);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(6);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tvar _utilsThrottle = __webpack_require__(2);\n\n\tvar _utilsThrottle2 = _interopRequireDefault(_utilsThrottle);\n\n\tvar _utilsThreshold = __webpack_require__(1);\n\n\tvar InfiniteScroll = (function (_Component) {\n\t _inherits(InfiniteScroll, _Component);\n\n\t function InfiniteScroll(props) {\n\t _classCallCheck(this, InfiniteScroll);\n\n\t _get(Object.getPrototypeOf(InfiniteScroll.prototype), \"constructor\", this).call(this);\n\t this.state = {\n\t showLoader: false,\n\t lastScrollTop: 0,\n\t actionTriggered: false,\n\t pullToRefreshThresholdBreached: false\n\t };\n\t // variables to keep track of pull down behaviour\n\t this.startY = 0;\n\t this.currentY = 0;\n\t this.dragging = false;\n\t // will be populated in componentDidMount\n\t // based on the height of the pull down element\n\t this.maxPullDownDistance = 0;\n\n\t this.onScrollListener = this.onScrollListener.bind(this);\n\t this.throttledOnScrollListener = (0, _utilsThrottle2[\"default\"])(this.onScrollListener, 150).bind(this);\n\t this.onStart = this.onStart.bind(this);\n\t this.onMove = this.onMove.bind(this);\n\t this.onEnd = this.onEnd.bind(this);\n\t this.getScrollableTarget = this.getScrollableTarget.bind(this);\n\t }\n\n\t _createClass(InfiniteScroll, [{\n\t key: \"componentDidMount\",\n\t value: function componentDidMount() {\n\t this._scrollableNode = this.getScrollableTarget();\n\t this.el = this.props.height ? this._infScroll : this._scrollableNode || window;\n\t this.el.addEventListener(\"scroll\", this.throttledOnScrollListener);\n\n\t if (typeof this.props.initialScrollY === \"number\" && this.el.scrollHeight > this.props.initialScrollY) {\n\t this.el.scrollTo(0, this.props.initialScrollY);\n\t }\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.addEventListener(\"touchstart\", this.onStart);\n\t this.el.addEventListener(\"touchmove\", this.onMove);\n\t this.el.addEventListener(\"touchend\", this.onEnd);\n\n\t this.el.addEventListener(\"mousedown\", this.onStart);\n\t this.el.addEventListener(\"mousemove\", this.onMove);\n\t this.el.addEventListener(\"mouseup\", this.onEnd);\n\n\t // get BCR of pullDown element to position it above\n\t this.maxPullDownDistance = this._pullDown.firstChild.getBoundingClientRect().height;\n\t this.forceUpdate();\n\n\t if (typeof this.props.refreshFunction !== \"function\") {\n\t throw new Error(\"Mandatory prop \\\"refreshFunction\\\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage'\");\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"componentWillUnmount\",\n\t value: function componentWillUnmount() {\n\t this.el.removeEventListener(\"scroll\", this.throttledOnScrollListener);\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.removeEventListener(\"touchstart\", this.onStart);\n\t this.el.removeEventListener(\"touchmove\", this.onMove);\n\t this.el.removeEventListener(\"touchend\", this.onEnd);\n\n\t this.el.removeEventListener(\"mousedown\", this.onStart);\n\t this.el.removeEventListener(\"mousemove\", this.onMove);\n\t this.el.removeEventListener(\"mouseup\", this.onEnd);\n\t }\n\t }\n\t }, {\n\t key: \"componentWillReceiveProps\",\n\t value: function componentWillReceiveProps(props) {\n\t // do nothing when dataLength and key are unchanged\n\t if (this.props.key === props.key && this.props.dataLength === props.dataLength) return;\n\n\t // update state when new data was sent in\n\t this.setState({\n\t showLoader: false,\n\t actionTriggered: false,\n\t pullToRefreshThresholdBreached: false\n\t });\n\t }\n\t }, {\n\t key: \"getScrollableTarget\",\n\t value: function getScrollableTarget() {\n\t if (this.props.scrollableTarget instanceof HTMLElement) return this.props.scrollableTarget;\n\t if (typeof this.props.scrollableTarget === 'string') {\n\t return document.getElementById(this.props.scrollableTarget);\n\t }\n\t if (this.props.scrollableTarget === null) {\n\t console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \");\n\t }\n\t return null;\n\t }\n\t }, {\n\t key: \"onStart\",\n\t value: function onStart(evt) {\n\t if (this.state.lastScrollTop) return;\n\n\t this.dragging = true;\n\t this.startY = evt.pageY || evt.touches[0].pageY;\n\t this.currentY = this.startY;\n\n\t this._infScroll.style.willChange = \"transform\";\n\t this._infScroll.style.transition = \"transform 0.2s cubic-bezier(0,0,0.31,1)\";\n\t }\n\t }, {\n\t key: \"onMove\",\n\t value: function onMove(evt) {\n\t if (!this.dragging) return;\n\t this.currentY = evt.pageY || evt.touches[0].pageY;\n\n\t // user is scrolling down to up\n\t if (this.currentY < this.startY) return;\n\n\t if (this.currentY - this.startY >= this.props.pullDownToRefreshThreshold) {\n\t this.setState({\n\t pullToRefreshThresholdBreached: true\n\t });\n\t }\n\n\t // so you can drag upto 1.5 times of the maxPullDownDistance\n\t if (this.currentY - this.startY > this.maxPullDownDistance * 1.5) return;\n\n\t this._infScroll.style.overflow = \"visible\";\n\t this._infScroll.style.transform = \"translate3d(0px, \" + (this.currentY - this.startY) + \"px, 0px)\";\n\t }\n\t }, {\n\t key: \"onEnd\",\n\t value: function onEnd(evt) {\n\t var _this = this;\n\n\t this.startY = 0;\n\t this.currentY = 0;\n\n\t this.dragging = false;\n\n\t if (this.state.pullToRefreshThresholdBreached) {\n\t this.props.refreshFunction && this.props.refreshFunction();\n\t }\n\n\t requestAnimationFrame(function () {\n\t // this._infScroll\n\t if (_this._infScroll) {\n\t _this._infScroll.style.overflow = \"auto\";\n\t _this._infScroll.style.transform = \"none\";\n\t _this._infScroll.style.willChange = \"none\";\n\t }\n\t });\n\t }\n\t }, {\n\t key: \"isElementAtBottom\",\n\t value: function isElementAtBottom(target) {\n\t var scrollThreshold = arguments.length <= 1 || arguments[1] === undefined ? 0.8 : arguments[1];\n\n\t var clientHeight = target === document.body || target === document.documentElement ? window.screen.availHeight : target.clientHeight;\n\n\t var threshold = (0, _utilsThreshold.parseThreshold)(scrollThreshold);\n\n\t if (threshold.unit === _utilsThreshold.ThresholdUnits.Pixel) {\n\t return target.scrollTop + clientHeight >= target.scrollHeight - threshold.value;\n\t }\n\n\t return target.scrollTop + clientHeight >= threshold.value / 100 * target.scrollHeight;\n\t }\n\t }, {\n\t key: \"onScrollListener\",\n\t value: function onScrollListener(event) {\n\t var _this2 = this;\n\n\t if (typeof this.props.onScroll === \"function\") {\n\t // Execute this callback in next tick so that it does not affect the\n\t // functionality of the library.\n\t setTimeout(function () {\n\t return _this2.props.onScroll(event);\n\t }, 0);\n\t }\n\n\t var target = this.props.height || this._scrollableNode ? event.target : document.documentElement.scrollTop ? document.documentElement : document.body;\n\n\t // return immediately if the action has already been triggered,\n\t // prevents multiple triggers.\n\t if (this.state.actionTriggered) return;\n\n\t var atBottom = this.isElementAtBottom(target, this.props.scrollThreshold);\n\n\t // call the `next` function in the props to trigger the next data fetch\n\t if (atBottom && this.props.hasMore) {\n\t this.setState({ actionTriggered: true, showLoader: true });\n\t this.props.next();\n\t }\n\t this.setState({ lastScrollTop: target.scrollTop });\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var _this3 = this;\n\n\t var style = _extends({\n\t height: this.props.height || \"auto\",\n\t overflow: \"auto\",\n\t WebkitOverflowScrolling: \"touch\"\n\t }, this.props.style);\n\t var hasChildren = this.props.hasChildren || !!(this.props.children && this.props.children.length);\n\n\t // because heighted infiniteScroll visualy breaks\n\t // on drag down as overflow becomes visible\n\t var outerDivStyle = this.props.pullDownToRefresh && this.props.height ? { overflow: \"auto\" } : {};\n\t return _react2[\"default\"].createElement(\n\t \"div\",\n\t { style: outerDivStyle },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t className: \"infinite-scroll-component \" + (this.props.className || ''),\n\t ref: function (infScroll) {\n\t return _this3._infScroll = infScroll;\n\t },\n\t style: style\n\t },\n\t this.props.pullDownToRefresh && _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: { position: \"relative\" },\n\t ref: function (pullDown) {\n\t return _this3._pullDown = pullDown;\n\t }\n\t },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: {\n\t position: \"absolute\",\n\t left: 0,\n\t right: 0,\n\t top: -1 * this.maxPullDownDistance\n\t }\n\t },\n\t !this.state.pullToRefreshThresholdBreached && this.props.pullDownToRefreshContent,\n\t this.state.pullToRefreshThresholdBreached && this.props.releaseToRefreshContent\n\t )\n\t ),\n\t this.props.children,\n\t !this.state.showLoader && !hasChildren && this.props.hasMore && this.props.loader,\n\t this.state.showLoader && this.props.hasMore && this.props.loader,\n\t !this.props.hasMore && this.props.endMessage\n\t )\n\t );\n\t }\n\t }]);\n\n\t return InfiniteScroll;\n\t})(_react.Component);\n\n\texports[\"default\"] = InfiniteScroll;\n\n\tInfiniteScroll.defaultProps = {\n\t pullDownToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Pull down to refresh\"\n\t ),\n\t releaseToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Release to refresh\"\n\t ),\n\t pullDownToRefreshThreshold: 100,\n\t disableBrowserPullToRefresh: true\n\t};\n\n\tInfiniteScroll.propTypes = {\n\t next: _propTypes2[\"default\"].func,\n\t hasMore: _propTypes2[\"default\"].bool,\n\t children: _propTypes2[\"default\"].node,\n\t loader: _propTypes2[\"default\"].node.isRequired,\n\t scrollThreshold: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n\t endMessage: _propTypes2[\"default\"].node,\n\t style: _propTypes2[\"default\"].object,\n\t height: _propTypes2[\"default\"].number,\n\t scrollableTarget: _propTypes2[\"default\"].node,\n\t hasChildren: _propTypes2[\"default\"].bool,\n\t pullDownToRefresh: _propTypes2[\"default\"].bool,\n\t pullDownToRefreshContent: _propTypes2[\"default\"].node,\n\t releaseToRefreshContent: _propTypes2[\"default\"].node,\n\t pullDownToRefreshThreshold: _propTypes2[\"default\"].number,\n\t refreshFunction: _propTypes2[\"default\"].func,\n\t onScroll: _propTypes2[\"default\"].func,\n\t dataLength: _propTypes2[\"default\"].number.isRequired,\n\t key: _propTypes2[\"default\"].string\n\t};\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\texports.parseThreshold = parseThreshold;\n\tvar ThresholdUnits = {\n\t Pixel: 'Pixel',\n\t Percent: 'Percent'\n\t};\n\n\texports.ThresholdUnits = ThresholdUnits;\n\tvar defaultThreshold = {\n\t unit: ThresholdUnits.Percent,\n\t value: 0.8\n\t};\n\n\tfunction parseThreshold(scrollThreshold) {\n\t if (typeof scrollThreshold === \"number\") {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: scrollThreshold * 100\n\t };\n\t }\n\n\t if (typeof scrollThreshold === \"string\") {\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)px$/)) {\n\t return {\n\t unit: ThresholdUnits.Pixel,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)%$/)) {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...');\n\n\t return defaultThreshold;\n\t }\n\n\t console.warn('scrollThreshold should be string or number');\n\n\t return defaultThreshold;\n\t}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t// https://remysharp.com/2010/07/21/throttling-function-calls\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports[\"default\"] = throttle;\n\n\tfunction throttle(fn, threshhold, scope) {\n\t threshhold || (threshhold = 250);\n\t var last, deferTimer;\n\t return function () {\n\t var context = scope || this;\n\n\t var now = +new Date(),\n\t args = arguments;\n\t if (last && now < last + threshhold) {\n\t // hold on to it\n\t clearTimeout(deferTimer);\n\t deferTimer = setTimeout(function () {\n\t last = now;\n\t fn.apply(context, args);\n\t }, threshhold);\n\t } else {\n\t last = now;\n\t fn.apply(context, args);\n\t }\n\t };\n\t}\n\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t * \n\t */\n\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t */\n\n\t'use strict';\n\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\n\tvar validateFormat = function validateFormat(format) {};\n\n\tif (false) {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\n\tmodule.exports = invariant;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar emptyFunction = __webpack_require__(3);\n\tvar invariant = __webpack_require__(4);\n\tvar ReactPropTypesSecret = __webpack_require__(7);\n\n\tmodule.exports = function() {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\tif (false) {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(5)();\n\t}\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ })\n/******/ ])\n});\n;","'use strict'\nmodule.exports = function (arr, func) {\n var some = arr.filter(func)\n return some.length !== 0 && some.length !== arr.length\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","const toKebabCase = str => str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n\nconst getDataset = (o = {}) =>\n Object.keys(o).reduce((acc, cur) => {\n acc[`data-${toKebabCase(cur)}`] = o[cur]\n return acc\n }, {})\n\nexport default getDataset\n","/**\n * Simplified implmentation of isEmpty.\n * Note: This is not complete and will return false positives for empty objects and likes.\n * However, it suffices for the limited use-case of this project.\n */\nconst isEmpty = o => !o || (Array.isArray(o) && !o.length)\n\nexport default isEmpty\n","const getPath = e => {\n if (e.path) return e.path\n\n let elem = e.target\n const path = [elem]\n\n while (elem.parentElement) {\n elem = elem.parentElement\n path.unshift(elem)\n }\n\n return path\n}\n\nexport default (e, node) => {\n if (!(e instanceof Event)) return false\n return !getPath(e).some(eventNode => eventNode === node)\n}\n","/**\n * Modified debounce that always invokes on leading edge\n * See unmodified: https://gist.github.com/mrchief/a7e8938ee96774f05644905b37f09536\n */\nexport default (func, wait) => {\n let timeout\n\n return (...args) => {\n const later = () => {\n timeout = null\n func(...args)\n }\n\n // timeout will be undefined the first time (leading edge)\n // so the callback will get executed once on leading edge\n const callNow = !timeout\n\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n\n if (callNow) func(...args)\n }\n}\n","const generateUID = prefix => {\n let counter = 1\n\n let map = new WeakMap()\n\n const get = item => {\n if (!map.has(item)) {\n map.set(item, counter++)\n }\n return `${prefix}${map.get(item)}`\n }\n\n const reset = () => {\n map = new WeakMap()\n counter = 1\n }\n\n return { get, reset }\n}\n\nconst clientIdGenerator = generateUID('rdts')\nexport default clientIdGenerator\n","export function getAriaLabel(label, additionalLabelledBy) {\n const attributes = getAriaAttributeForLabel(label)\n\n if (additionalLabelledBy) {\n attributes['aria-labelledby'] = `${attributes['aria-labelledby'] || ''} ${additionalLabelledBy}`.trim()\n }\n\n return attributes\n}\n\nfunction getAriaAttributeForLabel(label) {\n if (!label) return {}\n\n /* See readme for label. When label starts with # it references ids of dom nodes instead.\n When used on aria-labelledby, they should be referenced without a starting hash/# */\n if (label[0] === '#') {\n return { 'aria-labelledby': label.substring(1).replace(/ #/g, ' ') }\n }\n return { 'aria-label': label }\n}\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\nimport { debounce } from '../utils'\nimport { getAriaLabel } from '../a11y'\n\nclass Input extends PureComponent {\n static propTypes = {\n tags: PropTypes.array,\n texts: PropTypes.object,\n onInputChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTagRemove: PropTypes.func,\n onKeyDown: PropTypes.func,\n inputRef: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n activeDescendant: PropTypes.string,\n inlineSearchInput: PropTypes.bool,\n }\n\n constructor(props) {\n super(props)\n this.delayedCallback = debounce(e => this.props.onInputChange(e.target.value), 300)\n }\n\n handleInputChange = e => {\n e.persist()\n this.delayedCallback(e)\n }\n\n render() {\n const { inputRef, texts = {}, onFocus, onBlur, disabled, readOnly, onKeyDown, activeDescendant } = this.props\n\n return (\n \n )\n }\n}\n\nexport default Input\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nimport './index.css'\n\nexport const getTagId = id => `${id}_tag`\n\nclass Tag extends PureComponent {\n static propTypes = {\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onDelete: PropTypes.func,\n readOnly: PropTypes.bool,\n disabled: PropTypes.bool,\n labelRemove: PropTypes.string,\n }\n\n handleClick = e => {\n const { id, onDelete } = this.props\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n onDelete(id, (e.key || e.keyCode) !== undefined)\n }\n\n onKeyDown = e => {\n if (e.key === 'Backspace') {\n this.handleClick(e)\n e.preventDefault()\n }\n }\n\n onKeyUp = e => {\n if (e.keyCode === 32 || ['Delete', 'Enter'].indexOf(e.key) > -1) {\n this.handleClick(e)\n e.preventDefault()\n }\n }\n\n render() {\n const { id, label, labelRemove = 'Remove', readOnly, disabled } = this.props\n\n const tagId = getTagId(id)\n const buttonId = `${id}_button`\n const className = ['tag-remove', readOnly && 'readOnly', disabled && 'disabled'].filter(Boolean).join(' ')\n const isDisabled = readOnly || disabled\n\n return (\n \n {label}\n \n x\n \n \n )\n }\n}\n\nexport default Tag\n","/**!\n * Sortable 1.10.1\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.1\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n if (IE11OrLess) {\n return document.documentElement;\n } else {\n return document.scrollingElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\n * Selects the provided multi-drag item\n * @param {HTMLElement} el The element to be selected\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\n * Deselects the provided multi-drag item\n * @param {HTMLElement} el The element to be deselected\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\n * Insert multi-drag clones\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\n * @param {HTMLElement} rootEl\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import Sortable from 'sortablejs';\nexport { MultiDrag, default as Sortable, Swap } from 'sortablejs';\nimport classNames from 'classnames';\nimport { createElement, Children, cloneElement, createRef, Component } from 'react';\nimport invariant from 'tiny-invariant';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\n/**\r\n * Removes the `node` from the DOM\r\n * @param node\r\n */\r\nfunction removeNode(node) {\r\n if (node.parentElement !== null)\r\n node.parentElement.removeChild(node);\r\n}\r\n/**\r\n * Inserts the `newChild` node at the given index in a parent\r\n * @param parent The parent HTML Element.\r\n * @param newChild A HTML eement to add as a child of the parent.\r\n * @param index index of the parent to place the new child in.\r\n */\r\nfunction insertNodeAt(parent, newChild, index) {\r\n var refChild = parent.children[index] || null;\r\n parent.insertBefore(newChild, refChild);\r\n}\r\nfunction removeNodes(customs) {\r\n customs.forEach(function (curr) { return removeNode(curr.element); });\r\n}\r\nfunction insertNodes(customs) {\r\n customs.forEach(function (curr) {\r\n insertNodeAt(curr.parentElement, curr.element, curr.oldIndex);\r\n });\r\n}\r\nfunction createCustoms(evt, list) {\r\n var mode = getMode(evt);\r\n var parentElement = { parentElement: evt.from };\r\n var custom = [];\r\n switch (mode) {\r\n case \"normal\":\r\n var item = {\r\n element: evt.item,\r\n newIndex: evt.newIndex,\r\n oldIndex: evt.oldIndex,\r\n parentElement: evt.from\r\n };\r\n custom = [item];\r\n break;\r\n case \"swap\":\r\n var drag = __assign({ element: evt.item, oldIndex: evt.oldIndex, newIndex: evt.newIndex }, parentElement);\r\n var swap = __assign({ element: evt.swapItem, oldIndex: evt.newIndex, newIndex: evt.oldIndex }, parentElement);\r\n custom = [drag, swap];\r\n break;\r\n case \"multidrag\":\r\n custom = evt.oldIndicies.map(function (curr, index) { return (__assign({ element: curr.multiDragElement, oldIndex: curr.index, newIndex: evt.newIndicies[index].index }, parentElement)); });\r\n break;\r\n }\r\n var customs = createNormalized(custom, list);\r\n return customs;\r\n}\r\n/** moves items form old index to new index without breaking anything ideally. */\r\nfunction handleStateChanges(normalized, list) {\r\n var a = handleStateRemove(normalized, list);\r\n var b = handleStateAdd(normalized, a);\r\n return b;\r\n}\r\nfunction handleStateRemove(normalized, list) {\r\n var newList = __spread(list);\r\n normalized\r\n .concat()\r\n .reverse()\r\n .forEach(function (curr) { return newList.splice(curr.oldIndex, 1); });\r\n return newList;\r\n}\r\nfunction handleStateAdd(normalized, list) {\r\n var newList = __spread(list);\r\n normalized.forEach(function (curr) { return newList.splice(curr.newIndex, 0, curr.item); });\r\n return newList;\r\n}\r\nfunction getMode(evt) {\r\n if (evt.oldIndicies && evt.oldIndicies.length > 0)\r\n return \"multidrag\";\r\n if (evt.swapItem)\r\n return \"swap\";\r\n return \"normal\";\r\n}\r\nfunction createNormalized(inputs, list) {\r\n var normalized = inputs\r\n .map(function (curr) { return (__assign(__assign({}, curr), { item: list[curr.oldIndex] })); })\r\n .sort(function (a, b) { return a.oldIndex - b.oldIndex; });\r\n return normalized;\r\n}\r\n/**\r\n * Removes the following group of properties from `props`,\r\n * leaving only `Sortable.Options` without any `on` methods.\r\n * @param props `ReactSortable.Props`\r\n */\r\nfunction destructurePropsForOptions(props) {\r\n var \r\n // react sortable props\r\n list = props.list, setList = props.setList, children = props.children, tag = props.tag, style = props.style, className = props.className, clone = props.clone, \r\n // sortable options that have methods we want to overwrite\r\n onAdd = props.onAdd, onChange = props.onChange, onChoose = props.onChoose, onClone = props.onClone, onEnd = props.onEnd, onFilter = props.onFilter, onRemove = props.onRemove, onSort = props.onSort, onStart = props.onStart, onUnchoose = props.onUnchoose, onUpdate = props.onUpdate, onMove = props.onMove, onSpill = props.onSpill, onSelect = props.onSelect, onDeselect = props.onDeselect, options = __rest(props, [\"list\", \"setList\", \"children\", \"tag\", \"style\", \"className\", \"clone\", \"onAdd\", \"onChange\", \"onChoose\", \"onClone\", \"onEnd\", \"onFilter\", \"onRemove\", \"onSort\", \"onStart\", \"onUnchoose\", \"onUpdate\", \"onMove\", \"onSpill\", \"onSelect\", \"onDeselect\"]);\r\n return options;\r\n}\n\n/** Holds a global reference for which react element is being dragged */\r\n// @todo - use context to manage this. How does one use 2 different providers?\r\nvar store = { dragging: null };\r\nvar ReactSortable = /** @class */ (function (_super) {\r\n __extends(ReactSortable, _super);\r\n function ReactSortable(props) {\r\n var _this = _super.call(this, props) || this;\r\n // @todo forward ref this component\r\n _this.ref = createRef();\r\n // make all state false because we can't change sortable unless a mouse gesture is made.\r\n var newList = __spread(props.list).map(function (item) { return (__assign(__assign({}, item), { chosen: false, selected: false })); });\r\n props.setList(newList, _this.sortable, store);\r\n invariant(\r\n //@ts-ignore\r\n !props.plugins, \"\\nPlugins prop is no longer supported.\\nInstead, mount it with \\\"Sortable.mount(new MultiDrag())\\\"\\nPlease read the updated README.md at https://github.com/SortableJS/react-sortablejs.\\n \");\r\n return _this;\r\n }\r\n ReactSortable.prototype.componentDidMount = function () {\r\n if (this.ref.current === null)\r\n return;\r\n var newOptions = this.makeOptions();\r\n Sortable.create(this.ref.current, newOptions);\r\n };\r\n ReactSortable.prototype.render = function () {\r\n var _a = this.props, tag = _a.tag, style = _a.style, className = _a.className, id = _a.id;\r\n var classicProps = { style: style, className: className, id: id };\r\n // if no tag, default to a `div` element.\r\n var newTag = !tag || tag === null ? \"div\" : tag;\r\n return createElement(newTag, __assign({ \r\n // @todo - find a way (perhaps with the callback) to allow AntD components to work\r\n ref: this.ref }, classicProps), this.getChildren());\r\n };\r\n ReactSortable.prototype.getChildren = function () {\r\n var _a = this.props, children = _a.children, dataIdAttr = _a.dataIdAttr, _b = _a.selectedClass, selectedClass = _b === void 0 ? \"sortable-selected\" : _b, _c = _a.chosenClass, chosenClass = _c === void 0 ? \"sortable-chosen\" : _c, _d = _a.dragClass, _e = _a.fallbackClass, _f = _a.ghostClass, _g = _a.swapClass, _h = _a.filter, filter = _h === void 0 ? \"sortable-filter\" : _h, list = _a.list;\r\n // if no children, don't do anything.\r\n if (!children || children == null)\r\n return null;\r\n var dataid = dataIdAttr || \"data-id\";\r\n return Children.map(children, function (child, index) {\r\n var _a, _b, _c;\r\n var item = list[index];\r\n var prevClassName = child.props.className;\r\n // @todo - handle the function if avalable. I don't think anyone will be doing this soon.\r\n var filtered = typeof filter === \"string\" && (_a = {},\r\n _a[filter.replace(\".\", \"\")] = !!item.filtered,\r\n _a);\r\n var className = classNames(prevClassName, __assign((_b = {}, _b[selectedClass] = item.selected, _b[chosenClass] = item.chosen, _b), filtered\r\n // [dragClass]: true,\r\n // [fallbackClass]: true,\r\n // [ghostClass]: true,\r\n // [swapClass]: true\r\n ));\r\n return cloneElement(child, (_c = {},\r\n _c[dataid] = child.key,\r\n _c.className = className,\r\n _c));\r\n });\r\n };\r\n Object.defineProperty(ReactSortable.prototype, \"sortable\", {\r\n /** Appends the `sortable` property to this component */\r\n get: function () {\r\n var el = this.ref.current;\r\n if (el === null)\r\n return null;\r\n var key = Object.keys(el).find(function (k) { return k.includes(\"Sortable\"); });\r\n if (!key)\r\n return null;\r\n //@ts-ignore - I know what I'm doing.\r\n return el[key];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Converts all the props from `ReactSortable` into the `options` object that `Sortable.create(el, [options])` can use. */\r\n ReactSortable.prototype.makeOptions = function () {\r\n var _this = this;\r\n var DOMHandlers = [\r\n \"onAdd\",\r\n \"onChoose\",\r\n \"onDeselect\",\r\n \"onEnd\",\r\n \"onRemove\",\r\n \"onSelect\",\r\n \"onSpill\",\r\n \"onStart\",\r\n \"onUnchoose\",\r\n \"onUpdate\"\r\n ];\r\n var NonDOMHandlers = [\r\n \"onChange\",\r\n \"onClone\",\r\n \"onFilter\",\r\n \"onSort\"\r\n ];\r\n var newOptions = destructurePropsForOptions(this.props);\r\n DOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerPropAndDOM(name)); });\r\n NonDOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerProp(name)); });\r\n /** onMove has 2 arguments and needs to be handled seperately. */\r\n var onMove = function (evt, originalEvt) {\r\n var onMove = _this.props.onMove;\r\n var defaultValue = evt.willInsertAfter || -1;\r\n if (!onMove)\r\n return defaultValue;\r\n var result = onMove(evt, originalEvt, _this.sortable, store);\r\n if (typeof result === 'undefined')\r\n return false;\r\n return result;\r\n };\r\n return __assign(__assign({}, newOptions), { onMove: onMove });\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop & an `on[Handler]` ReactSortable method. */\r\n ReactSortable.prototype.prepareOnHandlerPropAndDOM = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n // calls state change\r\n //@ts-ignore - until @types multidrag item is in\r\n _this[evtName](evt);\r\n };\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop */\r\n ReactSortable.prototype.prepareOnHandlerProp = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n };\r\n };\r\n /** Calls the `props.on[Handler]` function */\r\n ReactSortable.prototype.callOnHandlerProp = function (evt, evtName) {\r\n var propEvent = this.props[evtName];\r\n if (propEvent)\r\n propEvent(evt, this.sortable, store);\r\n };\r\n // SORTABLE DOM HANDLING\r\n ReactSortable.prototype.onAdd = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var otherList = __spread(store.dragging.props.list);\r\n var customs = createCustoms(evt, otherList);\r\n removeNodes(customs);\r\n var newList = handleStateAdd(customs, list);\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onRemove = function (evt) {\r\n var _this = this;\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var mode = getMode(evt);\r\n var customs = createCustoms(evt, list);\r\n insertNodes(customs);\r\n var newList = __spread(list);\r\n // remove state if not in clone mode. otherwise, keep.\r\n if (evt.pullMode !== \"clone\")\r\n newList = handleStateRemove(customs, newList);\r\n // if clone, it doesn't really remove. instead it clones in place.\r\n // @todo -\r\n else {\r\n // switch used to get the clone\r\n var customClones = customs;\r\n switch (mode) {\r\n case \"multidrag\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clones[index] })); });\r\n break;\r\n case \"normal\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clone })); });\r\n break;\r\n case \"swap\":\r\n default: {\r\n invariant(true, \"mode \\\"\" + mode + \"\\\" cannot clone. Please remove \\\"props.clone\\\" from when using the \\\"\" + mode + \"\\\" plugin\");\r\n }\r\n }\r\n removeNodes(customClones);\r\n // replace selected items with cloned items\r\n customs.forEach(function (curr) {\r\n var index = curr.oldIndex;\r\n var newItem = _this.props.clone(curr.item, evt);\r\n newList.splice(index, 1, newItem);\r\n });\r\n }\r\n // remove item.selected from list\r\n newList = newList.map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUpdate = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var customs = createCustoms(evt, list);\r\n removeNodes(customs);\r\n insertNodes(customs);\r\n var newList = handleStateChanges(customs, list);\r\n return setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onStart = function (evt) {\r\n store.dragging = this;\r\n };\r\n ReactSortable.prototype.onEnd = function (evt) {\r\n store.dragging = null;\r\n };\r\n ReactSortable.prototype.onChoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = true;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUnchoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = false;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onSpill = function (evt) {\r\n var _a = this.props, removeOnSpill = _a.removeOnSpill, revertOnSpill = _a.revertOnSpill;\r\n if (removeOnSpill && !revertOnSpill)\r\n removeNode(evt.item);\r\n };\r\n ReactSortable.prototype.onSelect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1) {\r\n console.log(\"\\\"\" + evt.type + \"\\\" had indice of \\\"\" + curr.index + \"\\\", which is probably -1 and doesn't usually happen here.\");\r\n console.log(evt);\r\n return;\r\n }\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onDeselect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1)\r\n return;\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.defaultProps = {\r\n clone: function (item) { return item; }\r\n };\r\n return ReactSortable;\r\n}(Component));\n\nexport { ReactSortable };\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\nimport Tag from '../tag'\nimport { getDataset } from '../utils'\nimport { ReactSortable } from 'react-sortablejs'\n\nimport './index.css'\n\nconst getTags = (tags = [], onDelete, readOnly, disabled, labelRemove) =>\n tags.map(tag => {\n const { _id, label, tagClassName, dataset } = tag\n return (\n \n \n \n )\n })\n\nclass Tags extends PureComponent {\n static propTypes = {\n tags: PropTypes.array,\n onTagRemove: PropTypes.func,\n readOnly: PropTypes.bool,\n sortable: PropTypes.bool,\n onReorderList: PropTypes.func,\n newType: PropTypes.array,\n disabled: PropTypes.bool,\n texts: PropTypes.object,\n children: PropTypes.node,\n }\n\n render() {\n const {\n tags,\n onTagRemove,\n texts = {},\n disabled,\n readOnly,\n sortable = false,\n onReorderList,\n newType,\n children,\n } = this.props\n const lastItem = children || {texts.placeholder || 'Choose...'}\n\n return (\n
      \n {!sortable ? (\n getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)\n ) : (\n onReorderList(newList)}\n >\n {getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)}\n \n )}\n
    • {lastItem}
    • \n
    \n )\n }\n}\n\nexport default Tags\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nimport { getAriaLabel } from '../a11y'\nimport { getTagId } from '../tag'\n\nclass Trigger extends PureComponent {\n static propTypes = {\n onTrigger: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n showDropdown: PropTypes.bool,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n texts: PropTypes.object,\n clientId: PropTypes.string,\n tags: PropTypes.array,\n }\n\n getAriaAttributes = () => {\n const { mode, texts = {}, showDropdown, clientId, tags } = this.props\n\n const triggerId = `${clientId}_trigger`\n const labelledBy = []\n let labelAttributes = getAriaLabel(texts.label)\n if (tags && tags.length) {\n if (labelAttributes['aria-label']) {\n // Adds reference to self when having aria-label\n labelledBy.push(triggerId)\n }\n tags.forEach(t => {\n labelledBy.push(getTagId(t._id))\n })\n labelAttributes = getAriaLabel(texts.label, labelledBy.join(' '))\n }\n\n const attributes = {\n id: triggerId,\n role: 'button',\n tabIndex: 0,\n 'aria-haspopup': mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-expanded': showDropdown ? 'true' : 'false',\n ...labelAttributes,\n }\n\n return attributes\n }\n\n handleTrigger = e => {\n // Just return if triggered from keyDown and the key isn't enter, space or arrow down\n if (e.key && e.keyCode !== 13 && e.keyCode !== 32 && e.keyCode !== 40) {\n return\n } else if (e.key && this.triggerNode && this.triggerNode !== document.activeElement) {\n // Do not trigger if not activeElement\n return\n } else if (!this.props.showDropdown && e.keyCode === 32) {\n // Avoid adding space to input on open\n e.preventDefault()\n }\n\n // Else this is a key press that should trigger the dropdown\n this.props.onTrigger(e)\n }\n\n render() {\n const { disabled, readOnly, showDropdown } = this.props\n\n const dropdownTriggerClassname = [\n 'dropdown-trigger',\n 'arrow',\n disabled && 'disabled',\n readOnly && 'readOnly',\n showDropdown && 'top',\n !showDropdown && 'bottom',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n {\n this.triggerNode = node\n }}\n className={dropdownTriggerClassname}\n onClick={!disabled ? this.handleTrigger : undefined}\n onKeyDown={!disabled ? this.handleTrigger : undefined}\n {...this.getAriaAttributes()}\n >\n {this.props.children}\n \n )\n }\n}\n\nexport default Trigger\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nclass Action extends PureComponent {\n static propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n className: PropTypes.string,\n actionData: PropTypes.object,\n onAction: PropTypes.func,\n readOnly: PropTypes.bool,\n }\n\n static defaultProps = {\n onAction: () => {},\n }\n\n handleClick = () => {\n const { onAction, actionData } = this.props\n if (onAction) {\n onAction(actionData.nodeId, actionData.action)\n }\n }\n\n render() {\n const { title, className, text, readOnly } = this.props\n\n return (\n \n {text}\n \n )\n }\n}\n\nexport default Action\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nimport Action from './action'\nimport { isEmpty } from '../utils'\n\nclass Actions extends PureComponent {\n static propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array,\n }\n\n render() {\n const { actions, id, ...rest } = this.props\n\n if (isEmpty(actions)) return null\n\n return actions.map((a, idx) => {\n const actionId = a.id || `action-${idx}`\n return \n })\n }\n}\n\nexport default Actions\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nexport const refUpdater = ({ checked, indeterminate }) => input => {\n if (input) {\n input.checked = checked\n input.indeterminate = indeterminate\n }\n}\n\nclass Checkbox extends PureComponent {\n static propTypes = {\n checked: PropTypes.bool,\n indeterminate: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n }\n\n render() {\n const { checked, indeterminate = false, onChange, disabled, readOnly, ...rest } = this.props\n\n const isDisabled = disabled || readOnly\n\n return (\n \n )\n }\n}\n\nexport default Checkbox\n","import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\n\nexport const refUpdater = ({ checked }) => input => {\n if (input) {\n input.checked = checked\n }\n}\n\nclass RadioButton extends PureComponent {\n static propTypes = {\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n }\n\n render() {\n const { name, checked, onChange, disabled, readOnly, ...rest } = this.props\n\n const isDisabled = disabled || readOnly\n\n return (\n \n )\n }\n}\n\nexport default RadioButton\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport Checkbox from '../checkbox'\nimport RadioButton from '../radio'\n\nclass NodeLabel extends PureComponent {\n static propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n partial: PropTypes.bool,\n disabled: PropTypes.bool,\n dataset: PropTypes.object,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n onCheckboxChange: PropTypes.func,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n }\n\n handleCheckboxChange = e => {\n const { mode, id, onCheckboxChange } = this.props\n\n if (mode === 'simpleSelect' || mode === 'radioSelect') {\n onCheckboxChange(id, true)\n } else {\n const {\n target: { checked },\n } = e\n onCheckboxChange(id, checked)\n }\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n }\n\n render() {\n const { mode, title, label, id, partial, checked } = this.props\n const { value, disabled, showPartiallySelected, readOnly, clientId } = this.props\n const nodeLabelProps = { className: 'node-label' }\n\n // in case of simple select mode, there is no checkbox, so we need to handle the click via the node label\n // but not if the control is in readOnly or disabled state\n const shouldRegisterClickHandler = mode === 'simpleSelect' && !readOnly && !disabled\n\n if (shouldRegisterClickHandler) {\n nodeLabelProps.onClick = this.handleCheckboxChange\n }\n\n const sharedProps = { id, value, checked, disabled, readOnly, tabIndex: -1 }\n const className = ['checkbox-item', mode === 'simpleSelect' && 'simple-select'].filter(Boolean).join(' ')\n\n return (\n \n )\n }\n}\n\nexport default NodeLabel\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nclass Toggle extends PureComponent {\n static propTypes = {\n expanded: PropTypes.bool,\n isLeaf: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n id: PropTypes.string,\n }\n\n onToggle = e => {\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n this.props.onNodeToggle(this.props.id)\n }\n\n onKeyDown = e => {\n if (e.key === 'Enter' || e.keyCode === 32) {\n this.props.onNodeToggle(this.props.id)\n e.preventDefault()\n }\n }\n\n render() {\n const { expanded, isLeaf } = this.props\n if (isLeaf) return null\n\n const toggleCx = ['toggle', expanded && 'expanded', !expanded && 'collapsed'].filter(Boolean).join(' ')\n return (\n \n )\n }\n}\n\nexport default Toggle\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\n\nimport { getDataset, isEmpty } from '../utils'\nimport Actions from './actions'\nimport NodeLabel from './node-label'\nimport Toggle from './toggle'\n\nimport './index.css'\n\nconst isLeaf = children => isEmpty(children)\n\nconst getNodeCx = props => {\n const {\n keepTreeOnSearch,\n keepChildrenOnSearch,\n _children,\n matchInChildren,\n matchInParent,\n disabled,\n partial,\n hide,\n className,\n showPartiallySelected,\n readOnly,\n checked,\n _focused: focused,\n } = props\n\n return [\n 'node',\n isLeaf(_children) && 'leaf',\n !isLeaf(_children) && 'tree',\n disabled && 'disabled',\n hide && 'hide',\n keepTreeOnSearch && matchInChildren && 'match-in-children',\n keepTreeOnSearch && keepChildrenOnSearch && matchInParent && 'match-in-parent',\n showPartiallySelected && partial && 'partial',\n readOnly && 'readOnly',\n checked && 'checked',\n focused && 'focused',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nclass TreeNode extends PureComponent {\n static propTypes = {\n _id: PropTypes.string.isRequired,\n _depth: PropTypes.number,\n _children: PropTypes.array,\n actions: PropTypes.array,\n className: PropTypes.string,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n expanded: PropTypes.bool,\n disabled: PropTypes.bool,\n partial: PropTypes.bool,\n dataset: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n }\n\n getAriaAttributes = () => {\n const { _children, _depth, checked, disabled, expanded, readOnly, mode, partial } = this.props\n const attributes = {}\n\n attributes.role = mode === 'simpleSelect' ? 'option' : 'treeitem'\n attributes['aria-disabled'] = disabled || readOnly\n attributes['aria-selected'] = checked\n if (mode !== 'simpleSelect') {\n attributes['aria-checked'] = partial ? 'mixed' : checked\n attributes['aria-level'] = (_depth || 0) + 1\n attributes['aria-expanded'] = _children && (expanded ? 'true' : 'false')\n }\n return attributes\n }\n\n render() {\n const {\n mode,\n keepTreeOnSearch,\n _id,\n _children,\n dataset,\n _depth,\n expanded,\n title,\n label,\n partial,\n checked,\n value,\n disabled,\n actions,\n onAction,\n searchModeOn,\n onNodeToggle,\n onCheckboxChange,\n showPartiallySelected,\n readOnly,\n clientId,\n } = this.props\n const liCx = getNodeCx(this.props)\n const style = keepTreeOnSearch || !searchModeOn ? { paddingLeft: `${(_depth || 0) * 20}px` } : {}\n\n const liId = `${_id}_li`\n\n return (\n
  • \n \n \n \n
  • \n )\n }\n}\n\nexport default TreeNode\n","import InfiniteScroll from 'react-infinite-scroll-component'\nimport PropTypes from 'prop-types'\nimport React, { Component } from 'react'\n\nimport TreeNode from '../tree-node'\n\nconst shouldRenderNode = (node, searchModeOn, data) => {\n if (searchModeOn || node.expanded) return true\n\n const parent = node._parent && data.get(node._parent)\n // if it has a parent, then check parent's state.\n // otherwise root nodes are always rendered\n return !parent || parent.expanded\n}\n\nclass Tree extends Component {\n static propTypes = {\n data: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onChange: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n pageSize: PropTypes.number,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n activeDescendant: PropTypes.string,\n }\n\n static defaultProps = {\n pageSize: 100,\n }\n\n constructor(props) {\n super(props)\n\n this.currentPage = 1\n this.computeInstanceProps(props, true)\n\n this.state = {\n items: this.allVisibleNodes.slice(0, this.props.pageSize),\n }\n }\n\n componentWillReceiveProps = nextProps => {\n const { activeDescendant } = nextProps\n const hasSameActiveDescendant = activeDescendant === this.props.activeDescendant\n this.computeInstanceProps(nextProps, !hasSameActiveDescendant)\n this.setState({ items: this.allVisibleNodes.slice(0, this.currentPage * this.props.pageSize) }, () => {\n if (hasSameActiveDescendant) return\n const { scrollableTarget } = this.state\n const activeLi = activeDescendant && document && document.getElementById(activeDescendant)\n if (activeLi && scrollableTarget) {\n scrollableTarget.scrollTop = activeLi.offsetTop - (scrollableTarget.clientHeight - activeLi.clientHeight) / 2\n }\n })\n }\n\n componentDidMount = () => {\n this.setState({ scrollableTarget: this.node.parentNode })\n }\n\n computeInstanceProps = (props, checkActiveDescendant) => {\n this.allVisibleNodes = this.getNodes(props)\n this.totalPages = Math.ceil(this.allVisibleNodes.length / this.props.pageSize)\n if (checkActiveDescendant && props.activeDescendant) {\n const currentId = props.activeDescendant.replace(/_li$/, '')\n const focusIndex = this.allVisibleNodes.findIndex(n => n.key === currentId) + 1\n this.currentPage = focusIndex > 0 ? Math.ceil(focusIndex / this.props.pageSize) : 1\n }\n }\n\n getNodes = props => {\n const {\n data,\n keepTreeOnSearch,\n keepChildrenOnSearch,\n searchModeOn,\n mode,\n showPartiallySelected,\n readOnly,\n onAction,\n onChange,\n onCheckboxChange,\n onNodeToggle,\n activeDescendant,\n clientId,\n } = props\n const items = []\n data.forEach(node => {\n if (shouldRenderNode(node, searchModeOn, data)) {\n items.push(\n \n )\n }\n })\n return items\n }\n\n hasMore = () => this.currentPage < this.totalPages\n\n loadMore = () => {\n this.currentPage = this.currentPage + 1\n const nextItems = this.allVisibleNodes.slice(0, this.currentPage * this.props.pageSize)\n this.setState({ items: nextItems })\n }\n\n setNodeRef = node => {\n this.node = node\n }\n\n getAriaAttributes = () => {\n const { mode } = this.props\n\n const attributes = {\n /* https://www.w3.org/TR/wai-aria-1.1/#select\n * https://www.w3.org/TR/wai-aria-1.1/#tree */\n role: mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-multiselectable': /multiSelect|hierarchical/.test(mode),\n }\n\n return attributes\n }\n\n render() {\n const { searchModeOn } = this.props\n\n return (\n
      \n {this.state.scrollableTarget && (\n Loading...}\n scrollableTarget={this.state.scrollableTarget}\n >\n {this.state.items}\n \n )}\n
    \n )\n }\n}\n\nexport default Tree\n","import partial from 'array.partial'\n\nconst identity = c => c\n\nexport default (node, childProp = 'children', childSelector = identity) =>\n partial(node[childProp], c => childSelector(c).checked) || node[childProp].some(c => childSelector(c).partial)\n","import getPartialState from './getPartialState'\n\nimport { isEmpty } from '../utils'\n\n/**\n * Converts a nested node into an associative array with pointers to child and parent nodes\n * Given:\n```\nconst tree = [\n {\n label: 'item1',\n value: 'value1',\n children: [\n {\n label: 'item1-1',\n value: 'value1-1',\n children: [\n {\n label: 'item1-1-1',\n value: 'value1-1-1'\n },\n {\n label: 'item1-1-2',\n value: 'value1-1-2'\n }\n ]\n },\n {\n label: 'item1-2',\n value: 'value1-2'\n }\n ]\n },\n {\n label: 'item2',\n value: 'value2',\n children: [\n {\n label: 'item2-1',\n value: 'value2-1',\n children: [\n {\n label: 'item2-1-1',\n value: 'value2-1-1'\n },\n {\n label: 'item2-1-2',\n value: 'value2-1-2'\n },\n {\n label: 'item2-1-3',\n value: 'item2-1-3',\n children: [\n {\n label: 'item2-1-3-1',\n value: 'value2-1-3-1'\n }\n ]\n }\n ]\n },\n {\n label: 'item2-2',\n value: 'value2-2'\n }\n ]\n }\n]\n```\n * results in\n```\n{\n \"0\": {\n _id: \"0\",\n _parent: null,\n _children: [\n \"0-0\",\n \"0-1\"\n ],\n label: \"item1\",\n value: \"value1\"\n },\n \"1\": {\n _id: \"1\",\n _parent: null,\n _children: [\n \"1-0\",\n \"1-1\"\n ],\n label: \"item2\",\n value: \"value2\"\n },\n \"0-0\": {\n _id: \"0-0\",\n _parent: \"0\",\n _children: [\n \"0-0-0\",\n \"0-0-1\"\n ],\n label: \"item1-1\",\n value: \"value1-1\"\n },\n \"0-1\": {\n _id: \"0-1\",\n _parent: \"0\",\n label: \"item1-2\",\n value: \"value1-2\"\n },\n \"0-0-0\": {\n _id: \"0-0-0\",\n _parent: \"0-0\",\n label: \"item1-1-1\",\n value: \"value1-1-1\"\n },\n \"0-0-1\": {\n _id: \"0-0-1\",\n _parent: \"0-0\",\n label: \"item1-1-2\",\n value: \"value1-1-2\"\n },\n \"1-0\": {\n _id: \"1-0\",\n _parent: \"1\",\n _children: [\n \"1-0-0\",\n \"1-0-1\",\n \"1-0-2\"\n ],\n label: \"item2-1\",\n value: \"value2-1\"\n },\n \"1-1\": {\n _id: \"1-1\",\n _parent: \"1\",\n label: \"item2-2\",\n value: \"value2-2\"\n },\n \"1-0-0\": {\n _id: \"1-0-0\",\n _parent: \"1-0\",\n label: \"item2-1-1\",\n value: \"value2-1-1\"\n },\n \"1-0-1\": {\n _id: \"1-0-1\",\n _parent: \"1-0\",\n label: \"item2-1-2\",\n value: \"value2-1-2\"\n },\n \"1-0-2\": {\n _id: \"1-0-2\",\n _parent: \"1-0\",\n _children: [\n \"1-0-2-0\"\n ],\n label: \"item2-1-3\",\n value: \"value2-1-3\"\n },\n \"1-0-2-0\": {\n _id: \"1-0-2-0\",\n _parent: \"1-0-2\",\n label: \"item2-1-3-1\",\n value: \"value2-1-3-1\"\n }\n}\n```\n * @param {[type]} tree The incoming tree object\n * @param {[bool]} simple Whether its in Single select mode (simple dropdown)\n * @param {[bool]} radio Whether its in Radio select mode (radio dropdown)\n * @param {[bool]} showPartialState Whether to show partially checked state\n * @param {[string]} rootPrefixId The prefix to use when setting root node ids\n * @return {object} The flattened list\n */\nfunction flattenTree({ tree, simple, radio, showPartialState, hierarchical, rootPrefixId }) {\n const forest = Array.isArray(tree) ? tree : [tree]\n\n // eslint-disable-next-line no-use-before-define\n return walkNodes({\n nodes: forest,\n simple,\n radio,\n showPartialState,\n hierarchical,\n rootPrefixId,\n })\n}\n\n/**\n * If the node didn't specify anything on its own\n * figure out the initial state based on parent\n * @param {object} node [current node]\n * @param {object} parent [node's immediate parent]\n * @param {bool} inheritChecked [if checked should be inherited]\n */\nfunction setInitialStateProps(node, parent = {}, inheritChecked = true) {\n const stateProps = inheritChecked ? ['checked', 'disabled'] : ['disabled']\n for (let index = 0; index < stateProps.length; index++) {\n const prop = stateProps[index]\n\n // if and only if, node doesn't explicitly define a prop, grab it from parent\n if (node[prop] === undefined && parent[prop] !== undefined) {\n node[prop] = parent[prop]\n }\n }\n}\n\nfunction walkNodes({\n nodes,\n parent,\n depth = 0,\n simple,\n radio,\n showPartialState,\n hierarchical,\n rootPrefixId,\n _rv = { list: new Map(), defaultValues: [], singleSelectedNode: null },\n}) {\n const single = simple || radio\n nodes.forEach((node, i) => {\n node._depth = depth\n\n if (parent) {\n node._id = node.id || `${parent._id}-${i}`\n node._parent = parent._id\n parent._children.push(node._id)\n } else {\n node._id = node.id || `${rootPrefixId ? `${rootPrefixId}-${i}` : i}`\n }\n\n if (single && node.checked) {\n if (_rv.singleSelectedNode) {\n node.checked = false\n } else {\n _rv.singleSelectedNode = node\n }\n }\n\n if (single && node.isDefaultValue && _rv.singleSelectedNode && !_rv.singleSelectedNode.isDefaultValue) {\n // Default value has precedence, uncheck previous value\n _rv.singleSelectedNode.checked = false\n _rv.singleSelectedNode = null\n }\n\n if (node.isDefaultValue && (!single || _rv.defaultValues.length === 0)) {\n _rv.defaultValues.push(node._id)\n node.checked = true\n if (single) {\n _rv.singleSelectedNode = node\n }\n }\n\n if (!hierarchical || radio) setInitialStateProps(node, parent, !radio)\n\n _rv.list.set(node._id, node)\n if (!simple && node.children) {\n node._children = []\n walkNodes({\n nodes: node.children,\n parent: node,\n depth: depth + 1,\n radio,\n showPartialState,\n hierarchical,\n _rv,\n })\n\n if (showPartialState && !node.checked) {\n node.partial = getPartialState(node)\n\n // re-check if all children are checked. if so, check thyself\n if (!single && !isEmpty(node.children) && node.children.every(c => c.checked)) {\n node.checked = true\n }\n }\n\n node.children = undefined\n }\n })\n\n return _rv\n}\n\nexport default flattenTree\n","import { isEmpty } from '../utils'\n\nconst markSubTreeVisited = (node, visited, getItemById) => {\n visited[node._id] = true\n if (!isEmpty(node._children)) {\n node._children.forEach(c => markSubTreeVisited(getItemById(c), visited, getItemById))\n }\n}\n\nconst getNodesMatching = (tree, nodePredicate) => {\n const nodes = []\n const visited = {}\n\n tree.forEach((node, key) => {\n if (visited[key]) return\n\n if (nodePredicate(node, key, visited)) {\n nodes.push(node)\n }\n\n visited[key] = true\n })\n\n return nodes\n}\n\nconst getVisibleNodes = (tree, getItemById, markSubTreeOnNonExpanded) =>\n getNodesMatching(tree, (node, key, visited) => {\n if (markSubTreeOnNonExpanded && node._children && node._children.length && node.expanded !== true) {\n markSubTreeVisited(node, visited, getItemById)\n }\n return !node.hide\n })\n\nconst nodeVisitor = {\n getNodesMatching,\n getVisibleNodes,\n markSubTreeVisited,\n}\nexport default nodeVisitor\n","import nodeVisitor from './nodeVisitor'\nimport { getTagId } from '../tag'\n\nconst Keys = {\n Up: 'ArrowUp',\n Down: 'ArrowDown',\n Left: 'ArrowLeft',\n Right: 'ArrowRight',\n Enter: 'Enter',\n Home: 'Home',\n PageUp: 'PageUp',\n End: 'End',\n PageDown: 'PageDown',\n}\n\nexport const NavActions = {\n None: 'None',\n FocusPrevious: 'FocusPrevious',\n FocusNext: 'FocusNext',\n FocusParent: 'FocusParent',\n FocusFirst: 'FocusFirst',\n FocusLast: 'FocusLast',\n ToggleExpanded: 'ToggleExpanded',\n ToggleChecked: 'ToggleChecked',\n}\n\nexport const FocusActionNames = new Set([\n NavActions.FocusPrevious,\n NavActions.FocusNext,\n NavActions.FocusParent,\n NavActions.FocusFirst,\n NavActions.FocusLast,\n])\n\nconst validTriggerOpenKeys = [Keys.Up, Keys.Down, Keys.Home, Keys.PageUp, Keys.End, Keys.PageDown]\nconst validKeys = validTriggerOpenKeys.concat([Keys.Left, Keys.Right, Keys.Enter])\n\nconst isValidKey = (key, isOpen) => {\n const keysToCheck = isOpen ? validKeys : validTriggerOpenKeys\n return keysToCheck.indexOf(key) > -1\n}\n\nconst isMatchingEvent = (key, keys, currentFocus, nonFocusKey) =>\n keys.indexOf(key) > -1 || (!currentFocus && key === nonFocusKey)\n\nconst isFocusFirstEvent = (key, currentFocus) => isMatchingEvent(key, [Keys.Home, Keys.PageUp], currentFocus, Keys.Down)\n\nconst isFocusLastEvent = (key, currentFocus) => isMatchingEvent(key, [Keys.End, Keys.PageDown], currentFocus, Keys.Up)\n\nconst isReverseTraverseAction = action =>\n isMatchingEvent(action, [NavActions.FocusPrevious, NavActions.FocusLast], true)\n\nconst isEdgeTraverseAction = action => isMatchingEvent(action, [NavActions.FocusFirst, NavActions.FocusLast], true)\n\nconst getLeftNavAction = (currentFocus, key) => {\n if (!currentFocus || key !== Keys.Left) return NavActions.None\n\n if (currentFocus.expanded === true) {\n return NavActions.ToggleExpanded\n }\n if (currentFocus._parent) {\n return NavActions.FocusParent\n }\n\n return NavActions.None\n}\n\nconst getRightNavAction = (currentFocus, key) => {\n if (!currentFocus || !currentFocus._children || key !== Keys.Right) {\n return NavActions.None\n }\n\n return currentFocus.expanded !== true ? NavActions.ToggleExpanded : NavActions.FocusNext\n}\n\nconst getRelativeAction = (currentFocus, key) => {\n if (!currentFocus) return NavActions.None\n switch (key) {\n case Keys.Up:\n return NavActions.FocusPrevious\n case Keys.Down:\n return NavActions.FocusNext\n case Keys.Enter:\n return NavActions.ToggleChecked\n default:\n return NavActions.None\n }\n}\n\nconst getAction = (currentFocus, key) => {\n let action\n if (key === Keys.Left) {\n action = getLeftNavAction(currentFocus, key)\n } else if (key === Keys.Right) {\n action = getRightNavAction(currentFocus, key)\n } else if (isFocusFirstEvent(key, currentFocus)) {\n action = NavActions.FocusFirst\n } else if (isFocusLastEvent(key, currentFocus)) {\n action = NavActions.FocusLast\n } else {\n action = getRelativeAction(currentFocus, key)\n }\n return action\n}\n\nconst getParentFocus = (prevFocus, getNodeById) =>\n prevFocus && prevFocus._parent ? getNodeById(prevFocus._parent) : prevFocus\n\nconst getRelativeNeighborsFocus = (sortedNodes, prevFocus) => {\n const nextIndex = sortedNodes.indexOf(prevFocus) + 1\n if (nextIndex % sortedNodes.length === 0) {\n return sortedNodes[0]\n }\n return sortedNodes[nextIndex]\n}\n\nconst getRelativeFocus = (sortedNodes, prevFocus, action) => {\n if (!sortedNodes || sortedNodes.length === 0) {\n return prevFocus\n }\n\n let focus = prevFocus\n if (isEdgeTraverseAction(action)) {\n ;[focus] = sortedNodes\n } else if ([NavActions.FocusPrevious, NavActions.FocusNext].indexOf(action) > -1) {\n focus = getRelativeNeighborsFocus(sortedNodes, prevFocus)\n }\n return focus\n}\n\nconst getNextFocus = (tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded) => {\n if (action === NavActions.FocusParent) {\n return getParentFocus(prevFocus, getNodeById)\n }\n if (!FocusActionNames.has(action)) {\n return prevFocus\n }\n\n let nodes = nodeVisitor.getVisibleNodes(tree, getNodeById, markSubTreeOnNonExpanded)\n if (isReverseTraverseAction(action)) {\n nodes = nodes.reverse()\n }\n\n return getRelativeFocus(nodes, prevFocus, action)\n}\n\nconst getNextFocusAfterTagDelete = (deletedId, prevTags, tags, fallback) => {\n // Sets new focus to next tag or returns fallback\n let index = prevTags && prevTags.findIndex(t => t._id === deletedId)\n if (index < 0 || !tags.length) return fallback\n\n index = tags.length > index ? index : tags.length - 1\n const newFocusId = tags[index]._id\n const focusNode = document.getElementById(getTagId(newFocusId))\n if (focusNode) {\n return focusNode.firstElementChild || fallback\n }\n return fallback\n}\n\nconst handleFocusNavigationkey = (tree, action, prevFocus, getNodeById, markSubTreeOnNonExpanded) => {\n const newFocus = keyboardNavigation.getNextFocus(tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded)\n if (prevFocus && newFocus && prevFocus._id !== newFocus._id) {\n prevFocus._focused = false\n }\n if (newFocus) {\n newFocus._focused = true\n return newFocus._id\n }\n return prevFocus && prevFocus._id\n}\n\nconst handleToggleNavigationkey = (action, prevFocus, readOnly, onToggleChecked, onToggleExpanded) => {\n if (action === NavActions.ToggleChecked && !readOnly && !(prevFocus.readOnly || prevFocus.disabled)) {\n onToggleChecked(prevFocus._id, prevFocus.checked !== true)\n } else if (action === NavActions.ToggleExpanded) {\n onToggleExpanded(prevFocus._id)\n }\n return prevFocus && prevFocus._id\n}\n\nconst keyboardNavigation = {\n isValidKey,\n getAction,\n getNextFocus,\n getNextFocusAfterTagDelete,\n handleFocusNavigationkey,\n handleToggleNavigationkey,\n}\n\nexport default keyboardNavigation\n","import getPartialState from './getPartialState'\nimport { isEmpty } from '../utils'\nimport flattenTree from './flatten-tree'\nimport nodeVisitor from './nodeVisitor'\nimport keyboardNavigation, { FocusActionNames } from './keyboardNavigation'\n\nclass TreeManager {\n constructor({ data, mode, showPartiallySelected, rootPrefixId, searchPredicate }) {\n this._src = data\n this.simpleSelect = mode === 'simpleSelect'\n this.radioSelect = mode === 'radioSelect'\n this.hierarchical = mode === 'hierarchical'\n this.searchPredicate = searchPredicate\n const { list, defaultValues, singleSelectedNode } = flattenTree({\n tree: JSON.parse(JSON.stringify(data)),\n simple: this.simpleSelect,\n radio: this.radioSelect,\n showPartialState: showPartiallySelected,\n hierarchical: this.hierarchical,\n rootPrefixId,\n })\n this.tree = list\n this.defaultValues = defaultValues\n this.showPartialState = !this.hierarchical && showPartiallySelected\n this.searchMaps = new Map()\n\n if ((this.simpleSelect || this.radioSelect) && singleSelectedNode) {\n // Remembers initial check on single select dropdowns\n this.currentChecked = singleSelectedNode._id\n }\n }\n\n getNodeById(id) {\n return this.tree.get(id)\n }\n\n getMatches(searchTerm) {\n if (this.searchMaps.has(searchTerm)) {\n return this.searchMaps.get(searchTerm)\n }\n\n let proximity = -1\n let closestMatch = searchTerm\n this.searchMaps.forEach((m, key) => {\n if (searchTerm.startsWith(key) && key.length > proximity) {\n proximity = key.length\n closestMatch = key\n }\n })\n\n const matches = []\n\n const addOnMatch = this._getAddOnMatch(matches, searchTerm)\n\n if (closestMatch !== searchTerm) {\n const superMatches = this.searchMaps.get(closestMatch)\n superMatches.forEach(key => addOnMatch(this.getNodeById(key)))\n } else {\n this.tree.forEach(addOnMatch)\n }\n\n this.searchMaps.set(searchTerm, matches)\n return matches\n }\n\n addParentsToTree(id, tree) {\n if (id !== undefined) {\n const node = this.getNodeById(id)\n this.addParentsToTree(node._parent, tree)\n node.hide = node._isMatch ? node.hide : true\n node.matchInChildren = true\n tree.set(id, node)\n }\n }\n\n addChildrenToTree(ids, tree, matches) {\n if (ids !== undefined) {\n ids.forEach(id => {\n if (matches && matches.includes(id)) {\n // if a child is found by search anyways, don't display it as a child here\n return\n }\n const node = this.getNodeById(id)\n node.matchInParent = true\n tree.set(id, node)\n this.addChildrenToTree(node._children, tree)\n })\n }\n }\n\n filterTree(searchTerm, keepTreeOnSearch, keepChildrenOnSearch) {\n const matches = this.getMatches(searchTerm.toLowerCase())\n\n const matchTree = new Map()\n\n matches.forEach(m => {\n const node = this.getNodeById(m)\n node.hide = false\n\n // add a marker to tell `addParentsToTree` to not hide this node; even if it's an ancestor node\n node._isMatch = true\n\n if (keepTreeOnSearch) {\n // add parent nodes first or else the tree won't be rendered in correct hierarchy\n this.addParentsToTree(node._parent, matchTree)\n }\n matchTree.set(m, node)\n if (keepTreeOnSearch && keepChildrenOnSearch) {\n // add children nodes after a found match\n this.addChildrenToTree(node._children, matchTree, matches)\n }\n })\n\n const allNodesHidden = matches.length === 0\n\n // we store a local reference so that components can use it in subsequent renders\n // this is the least intrusive way of fixing #190\n this.matchTree = matchTree\n\n return { allNodesHidden, tree: matchTree }\n }\n\n restoreNodes() {\n this.tree.forEach(node => {\n node.hide = false\n })\n\n return this.tree\n }\n\n restoreDefaultValues() {\n this.defaultValues.forEach(id => {\n this.setNodeCheckedState(id, true)\n })\n\n return this.tree\n }\n\n togglePreviousChecked(id, checked) {\n const prevChecked = this.currentChecked\n\n // if id is same as previously selected node, then do nothing (since it's state is already set correctly by setNodeCheckedState)\n // but if they ar not same, then toggle the previous one\n if (prevChecked && prevChecked !== id) this.getNodeById(prevChecked).checked = false\n\n this.currentChecked = checked ? id : null\n }\n\n setNodeCheckedState(id, checked) {\n const node = this.getNodeById(id)\n node.checked = checked\n\n // TODO: this can probably be combined with the same check in the else block. investigate in a separate release.\n if (this.showPartialState) {\n node.partial = false\n }\n\n if (this.simpleSelect) {\n this.togglePreviousChecked(id, checked)\n } else if (this.radioSelect) {\n this.togglePreviousChecked(id, checked)\n if (this.showPartialState) {\n this.partialCheckParents(node)\n }\n if (!checked) {\n this.unCheckParents(node)\n }\n } else {\n if (!this.hierarchical) this.toggleChildren(id, checked)\n\n if (this.showPartialState) {\n this.partialCheckParents(node)\n }\n\n if (!this.hierarchical && !checked) {\n this.unCheckParents(node)\n }\n }\n }\n\n /**\n * Walks up the tree unchecking parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n unCheckParents(node) {\n let parent = node._parent\n while (parent) {\n const next = this.getNodeById(parent)\n next.checked = false\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this))\n parent = next._parent\n }\n }\n\n /**\n * Walks up the tree setting partial state on parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n partialCheckParents(node) {\n let parent = node._parent\n while (parent) {\n const next = this.getNodeById(parent)\n next.checked = next._children.every(c => this.getNodeById(c).checked)\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this))\n parent = next._parent\n }\n }\n\n toggleChildren(id, state) {\n const node = this.getNodeById(id)\n node.checked = state\n\n if (this.showPartialState) {\n node.partial = false\n }\n\n if (!isEmpty(node._children)) {\n node._children.forEach(id => this.toggleChildren(id, state))\n }\n }\n\n toggleNodeExpandState(id) {\n const node = this.getNodeById(id)\n node.expanded = !node.expanded\n if (!node.expanded) this.collapseChildren(node)\n return this.tree\n }\n\n collapseChildren(node) {\n node.expanded = false\n if (!isEmpty(node._children)) {\n node._children.forEach(c => this.collapseChildren(this.getNodeById(c)))\n }\n }\n\n get tags() {\n if (this.radioSelect || this.simpleSelect) {\n if (this.currentChecked) {\n return [this.getNodeById(this.currentChecked)]\n }\n return []\n }\n\n return nodeVisitor.getNodesMatching(this.tree, (node, key, visited) => {\n if (node.checked && !this.hierarchical) {\n // Parent node, so no need to walk children\n nodeVisitor.markSubTreeVisited(node, visited, id => this.getNodeById(id))\n }\n return node.checked\n })\n }\n\n getTreeAndTags() {\n return { tree: this.tree, tags: this.tags }\n }\n\n handleNavigationKey(currentFocus, tree, key, readOnly, markSubTreeOnNonExpanded, onToggleChecked, onToggleExpanded) {\n const prevFocus = currentFocus && this.getNodeById(currentFocus)\n const getNodeById = id => this.getNodeById(id)\n const action = keyboardNavigation.getAction(prevFocus, key)\n\n if (FocusActionNames.has(action)) {\n const newFocus = keyboardNavigation.handleFocusNavigationkey(\n tree,\n action,\n prevFocus,\n getNodeById,\n markSubTreeOnNonExpanded\n )\n return newFocus\n }\n\n if (!prevFocus || !tree.has(prevFocus._id)) {\n // No current focus or not visible\n return currentFocus\n }\n\n return keyboardNavigation.handleToggleNavigationkey(action, prevFocus, readOnly, onToggleChecked, onToggleExpanded)\n }\n\n _getAddOnMatch(matches, searchTerm) {\n let isMatch = (node, term) => node.label.toLowerCase().indexOf(term) >= 0\n if (typeof this.searchPredicate === 'function') {\n isMatch = this.searchPredicate\n }\n\n return node => {\n if (isMatch(node, searchTerm)) {\n matches.push(node._id)\n }\n }\n }\n}\n\nexport default TreeManager\n","/*!\n * React Dropdown Tree Select\n * A lightweight, fast and highly customizable tree select component.\n * Hrusikesh Panda \n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nimport PropTypes from 'prop-types'\nimport React, { Component } from 'react'\n\nimport { isOutsideClick, clientIdGenerator } from './utils'\nimport Input from './input'\nimport Tags from './tags'\nimport Trigger from './trigger'\nimport Tree from './tree'\nimport TreeManager from './tree-manager'\nimport keyboardNavigation from './tree-manager/keyboardNavigation'\n\nimport './index.css'\nimport { getAriaLabel } from './a11y'\n\nclass DropdownTreeSelect extends Component {\n static propTypes = {\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n clearSearchOnChange: PropTypes.bool,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n keepOpenOnSelect: PropTypes.bool,\n texts: PropTypes.shape({\n placeholder: PropTypes.string,\n noMatches: PropTypes.string,\n label: PropTypes.string,\n labelRemove: PropTypes.string,\n }),\n showDropdown: PropTypes.oneOf(['default', 'initial', 'always']),\n className: PropTypes.string,\n onChange: PropTypes.func,\n onAction: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n onReorderList:PropTypes.func,\n sortable: PropTypes.bool,\n searchPredicate: PropTypes.func,\n inlineSearchInput: PropTypes.bool,\n }\n\n static defaultProps = {\n onFocus: () => {},\n onBlur: () => {},\n onChange: () => {},\n texts: {},\n showDropdown: 'default',\n inlineSearchInput: false,\n }\n\n constructor(props) {\n super(props)\n this.state = {\n searchModeOn: false,\n currentFocus: undefined,\n }\n this.clientId = props.id || clientIdGenerator.get(this)\n }\n\n initNewProps = ({ data, mode, showDropdown, showPartiallySelected, searchPredicate }) => {\n this.treeManager = new TreeManager({\n data,\n mode,\n showPartiallySelected,\n rootPrefixId: this.clientId,\n searchPredicate,\n })\n // Restore focus-state\n const currentFocusNode = this.state.currentFocus && this.treeManager.getNodeById(this.state.currentFocus)\n if (currentFocusNode) {\n currentFocusNode._focused = true\n }\n this.setState(prevState => ({\n showDropdown: /initial|always/.test(showDropdown) || prevState.showDropdown === true,\n ...this.treeManager.getTreeAndTags(),\n }))\n }\n\n resetSearchState = () => {\n // clear the search criteria and avoid react controlled/uncontrolled warning\n // !this.props.inlineSearchInput is gated as inline search is not rendered until dropdown is shown\n if (!this.props.inlineSearchInput) {\n this.searchInput.value = ''\n }\n\n return {\n tree: this.treeManager.restoreNodes(), // restore the tree to its pre-search state\n searchModeOn: false,\n allNodesHidden: false,\n }\n }\n\n componentWillMount() {\n this.initNewProps(this.props)\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleOutsideClick, false)\n }\n\n componentWillReceiveProps(nextProps) {\n this.initNewProps(nextProps)\n }\n\n handleClick = (e, callback) => {\n this.setState(prevState => {\n // keep dropdown active when typing in search box\n const showDropdown = this.props.showDropdown === 'always' || this.keepDropdownActive || !prevState.showDropdown\n\n // register event listeners only if there is a state change\n if (showDropdown !== prevState.showDropdown) {\n if (showDropdown) {\n document.addEventListener('click', this.handleOutsideClick, false)\n } else {\n document.removeEventListener('click', this.handleOutsideClick, false)\n }\n }\n\n if (showDropdown) this.props.onFocus()\n else this.props.onBlur()\n\n return !showDropdown ? { showDropdown, ...this.resetSearchState() } : { showDropdown }\n }, callback)\n }\n\n handleOutsideClick = e => {\n if (this.props.showDropdown === 'always' || !isOutsideClick(e, this.node)) {\n return\n }\n\n this.handleClick()\n }\n\n onInputChange = value => {\n const { allNodesHidden, tree } = this.treeManager.filterTree(\n value,\n this.props.keepTreeOnSearch,\n this.props.keepChildrenOnSearch\n )\n const searchModeOn = value.length > 0\n\n this.setState({\n tree,\n searchModeOn,\n allNodesHidden,\n })\n }\n\n onTagRemove = (id, isKeyboardEvent) => {\n const { tags: prevTags } = this.state\n this.onCheckboxChange(id, false, tags => {\n if (!isKeyboardEvent) return\n\n keyboardNavigation.getNextFocusAfterTagDelete(id, prevTags, tags, this.searchInput).focus()\n })\n }\n\n onNodeToggle = id => {\n this.treeManager.toggleNodeExpandState(id)\n const tree = this.state.searchModeOn ? this.treeManager.matchTree : this.treeManager.tree\n this.setState({ tree })\n typeof this.props.onNodeToggle === 'function' && this.props.onNodeToggle(this.treeManager.getNodeById(id))\n }\n\n onCheckboxChange = (id, checked, callback) => {\n const { mode, keepOpenOnSelect } = this.props\n this.treeManager.setNodeCheckedState(id, checked)\n let tags = this.treeManager.tags\n const isSingleSelect = ['simpleSelect', 'radioSelect'].indexOf(mode) > -1\n const showDropdown = isSingleSelect && !keepOpenOnSelect ? false : this.state.showDropdown\n\n if (!tags.length) {\n this.treeManager.restoreDefaultValues()\n tags = this.treeManager.tags\n }\n\n const tree = this.state.searchModeOn ? this.treeManager.matchTree : this.treeManager.tree\n const nextState = {\n tree,\n tags,\n showDropdown,\n }\n\n if ((isSingleSelect && !showDropdown) || this.props.clearSearchOnChange) {\n Object.assign(nextState, this.resetSearchState())\n }\n\n if (isSingleSelect && !showDropdown) {\n document.removeEventListener('click', this.handleOutsideClick, false)\n }\n\n this.setState(nextState, () => {\n callback && callback(tags)\n })\n this.props.onChange(this.treeManager.getNodeById(id), tags)\n }\n\n onAction = (nodeId, action) => {\n this.props.onAction(this.treeManager.getNodeById(nodeId), action)\n }\n\n onInputFocus = () => {\n this.keepDropdownActive = true\n }\n\n onInputBlur = () => {\n this.keepDropdownActive = false\n }\n\n onTrigger = e => {\n this.handleClick(e, () => {\n // If the dropdown is shown after key press, focus the input\n if (this.state.showDropdown) {\n this.searchInput.focus()\n }\n })\n }\n\n onKeyboardKeyDown = e => {\n const { readOnly, mode } = this.props\n const { showDropdown, tags, searchModeOn, currentFocus } = this.state\n const tm = this.treeManager\n const tree = searchModeOn ? tm.matchTree : tm.tree\n\n if (!showDropdown && (keyboardNavigation.isValidKey(e.key, false) || /^\\w$/i.test(e.key))) {\n // Triggers open of dropdown and retriggers event\n e.persist()\n this.handleClick(null, () => this.onKeyboardKeyDown(e))\n if (/\\w/i.test(e.key)) return\n } else if (showDropdown && keyboardNavigation.isValidKey(e.key, true)) {\n const newFocus = tm.handleNavigationKey(\n currentFocus,\n tree,\n e.key,\n readOnly,\n !searchModeOn,\n this.onCheckboxChange,\n this.onNodeToggle\n )\n if (newFocus !== currentFocus) {\n this.setState({ currentFocus: newFocus })\n }\n } else if (showDropdown && ['Escape', 'Tab'].indexOf(e.key) > -1) {\n if (mode === 'simpleSelect' && tree.has(currentFocus)) {\n this.onCheckboxChange(currentFocus, true)\n } else {\n // Triggers close\n this.keepDropdownActive = false\n this.handleClick()\n }\n return\n } else if (e.key === 'Backspace' && tags.length && this.searchInput.value.length === 0) {\n const lastTag = tags.pop()\n this.onCheckboxChange(lastTag._id, false)\n } else {\n return\n }\n e.preventDefault()\n }\n\n onReorderList = (newList) => {\n this.setState({ tags: newList }, () => {\n if(this.props.onReorderList){\n this.props.onReorderList(newList)\n }else{\n this.props.onChange(newList)\n }\n \n })\n }\n\n getAriaAttributes = () => {\n const { mode, texts } = this.props\n\n if (mode !== 'radioSelect') return {}\n\n return {\n role: 'radiogroup',\n ...getAriaLabel(texts.label),\n }\n }\n\n render() {\n const { disabled, readOnly, mode, texts, inlineSearchInput, sortable = false } = this.props\n const { showDropdown, currentFocus, tags } = this.state\n\n const activeDescendant = currentFocus ? `${currentFocus}_li` : undefined\n\n const commonProps = { disabled, readOnly, activeDescendant, texts, mode, clientId: this.clientId }\n\n const searchInput = (\n {\n this.searchInput = el\n }}\n onInputChange={this.onInputChange}\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n onKeyDown={this.onKeyboardKeyDown}\n {...commonProps}\n />\n )\n return (\n {\n this.node = node\n }}\n >\n \n \n \n {!inlineSearchInput && searchInput}\n \n \n {showDropdown && (\n
    \n {inlineSearchInput && searchInput}\n {this.state.allNodesHidden ? (\n {texts.noMatches || 'No matches found'}\n ) : (\n \n )}\n
    \n )}\n \n \n )\n }\n}\n\nexport default DropdownTreeSelect\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/report.html b/dist/report.html index 5674325f..bc26c206 100644 --- a/dist/report.html +++ b/dist/report.html @@ -56,7 +56,7 @@
    diff --git a/dist/stats.json b/dist/stats.json index 9b226406..5be66908 100644 --- a/dist/stats.json +++ b/dist/stats.json @@ -1,12 +1,10 @@ { - "errors": [ - ], - "warnings": [ - ], + "errors": [], + "warnings": [], "version": "4.31.0", - "hash": "f037ae7881664dc6b3fa", - "time": 7850, - "builtAt": 1582708230858, + "hash": "bc6f87b7b432640fc82b", + "time": 8551, + "builtAt": 1584467072821, "publicPath": "", "outputPath": "/Users/ice/Work/upwork/react-dropdown-tree-select/dist", "assetsByChunkName": { @@ -20,49 +18,27 @@ "assets": [ { "name": "react-dropdown-tree-select.js", - "size": 102119, - "chunks": [ - 0 - ], - "chunkNames": [ - "react-dropdown-tree-select" - ], + "size": 102179, + "chunks": [0], + "chunkNames": ["react-dropdown-tree-select"], "emitted": true } ], "filteredAssets": 0, "entrypoints": { "react-dropdown-tree-select": { - "chunks": [ - 0 - ], - "assets": [ - "styles.css", - "react-dropdown-tree-select.js", - "styles.css.map", - "react-dropdown-tree-select.js.map" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["styles.css", "react-dropdown-tree-select.js", "styles.css.map", "react-dropdown-tree-select.js.map"], + "children": {}, + "childAssets": {} } }, "namedChunkGroups": { "react-dropdown-tree-select": { - "chunks": [ - 0 - ], - "assets": [ - "styles.css", - "react-dropdown-tree-select.js", - "styles.css.map", - "react-dropdown-tree-select.js.map" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["styles.css", "react-dropdown-tree-select.js", "styles.css.map", "react-dropdown-tree-select.js.map"], + "children": {}, + "childAssets": {} } }, "chunks": [ @@ -71,25 +47,14 @@ "rendered": true, "initial": true, "entry": true, - "size": 266382, - "names": [ - "react-dropdown-tree-select" - ], - "files": [ - "styles.css", - "react-dropdown-tree-select.js", - "styles.css.map", - "react-dropdown-tree-select.js.map" - ], - "hash": "eccf5210ad2e829cd6f2", - "siblings": [ - ], - "parents": [ - ], - "children": [ - ], - "childrenByOrder": { - }, + "size": 266566, + "names": ["react-dropdown-tree-select"], + "files": ["styles.css", "react-dropdown-tree-select.js", "styles.css.map", "react-dropdown-tree-select.js.map"], + "hash": "c31c3cd97fd00b9dc0c5", + "siblings": [], + "parents": [], + "children": [], + "childrenByOrder": {}, "modules": [ { "id": 0, @@ -102,9 +67,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -118,8 +81,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -731,7 +693,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "102:8-17" + "loc": "102:11-20" }, { "moduleId": 11, @@ -740,7 +702,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "102:11-20" + "loc": "102:15-24" }, { "moduleId": 11, @@ -749,7 +711,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "102:15-24" + "loc": "103:9-18" }, { "moduleId": 11, @@ -758,7 +720,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "103:9-18" + "loc": "104:9-18" }, { "moduleId": 11, @@ -767,7 +729,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "103:15-24" + "loc": "105:9-18" }, { "moduleId": 11, @@ -776,7 +738,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "104:9-18" + "loc": "106:8-17" }, { "moduleId": 11, @@ -785,7 +747,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "104:12-21" + "loc": "106:11-20" }, { "moduleId": 11, @@ -794,7 +756,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "105:9-18" + "loc": "107:11-20" }, { "moduleId": 11, @@ -803,7 +765,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "105:12-21" + "loc": "107:15-24" }, { "moduleId": 11, @@ -812,7 +774,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "106:11-20" + "loc": "108:12-21" }, { "moduleId": 11, @@ -821,7 +783,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "106:17-26" + "loc": "108:12-21" }, { "moduleId": 11, @@ -830,7 +792,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "107:11-20" + "loc": "109:11-20" }, { "moduleId": 11, @@ -839,7 +801,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "107:12-21" + "loc": "109:12-21" }, { "moduleId": 11, @@ -848,7 +810,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "108:9-18" + "loc": "110:8-17" }, { "moduleId": 11, @@ -857,7 +819,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "108:12-21" + "loc": "110:17-26" }, { "moduleId": 11, @@ -866,7 +828,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "109:11-20" + "loc": "111:11-20" }, { "moduleId": 11, @@ -875,7 +837,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "109:12-21" + "loc": "111:25-34" }, { "moduleId": 11, @@ -884,7 +846,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "110:8-17" + "loc": "112:12-21" }, { "moduleId": 11, @@ -893,7 +855,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "111:25-34" + "loc": "112:20-29" }, { "moduleId": 11, @@ -902,7 +864,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "112:20-29" + "loc": "113:9-18" }, { "moduleId": 11, @@ -940,6 +902,15 @@ "userRequest": "prop-types", "loc": "114:12-21" }, + { + "moduleId": 11, + "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js 532080210f55a83a36f76d9d5977d244", + "module": "./src/index.js + 28 modules", + "moduleName": "./src/index.js + 28 modules", + "type": "harmony import specifier", + "userRequest": "prop-types", + "loc": "114:12-21" + }, { "moduleId": 11, "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js 532080210f55a83a36f76d9d5977d244", @@ -1208,7 +1179,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "375:8-17" + "loc": "376:8-17" }, { "moduleId": 11, @@ -1217,7 +1188,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "375:29-38" + "loc": "376:29-38" }, { "moduleId": 11, @@ -1226,7 +1197,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "375:47-56" + "loc": "376:47-56" }, { "moduleId": 11, @@ -1235,7 +1206,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "376:23-32" + "loc": "377:23-32" }, { "moduleId": 11, @@ -1244,7 +1215,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "377:20-29" + "loc": "378:20-29" }, { "moduleId": 11, @@ -1253,7 +1224,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "378:24-33" + "loc": "379:24-33" }, { "moduleId": 11, @@ -1262,7 +1233,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "379:20-29" + "loc": "380:20-29" }, { "moduleId": 11, @@ -1271,7 +1242,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "380:9-18" + "loc": "381:9-18" }, { "moduleId": 11, @@ -1280,7 +1251,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "381:17-26" + "loc": "382:17-26" }, { "moduleId": 11, @@ -1289,7 +1260,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "382:15-24" + "loc": "383:15-24" }, { "moduleId": 11, @@ -1298,7 +1269,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "383:11-20" + "loc": "384:11-20" }, { "moduleId": 11, @@ -1307,7 +1278,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "384:17-26" + "loc": "385:17-26" }, { "moduleId": 11, @@ -1316,7 +1287,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "386:16-25" + "loc": "387:16-25" }, { "moduleId": 11, @@ -1325,7 +1296,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "387:13-22" + "loc": "388:13-22" }, { "moduleId": 11, @@ -1334,7 +1305,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "388:12-21" + "loc": "389:12-21" }, { "moduleId": 11, @@ -1343,7 +1314,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "389:12-21" + "loc": "390:12-21" }, { "moduleId": 11, @@ -1352,7 +1323,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "390:16-25" + "loc": "391:16-25" }, { "moduleId": 11, @@ -1361,7 +1332,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "391:11-20" + "loc": "392:11-20" }, { "moduleId": 11, @@ -1370,7 +1341,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "392:10-19" + "loc": "393:10-19" }, { "moduleId": 11, @@ -1379,7 +1350,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "393:8-17" + "loc": "394:8-17" }, { "moduleId": 11, @@ -1388,7 +1359,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "394:25-34" + "loc": "395:25-34" }, { "moduleId": 11, @@ -1397,7 +1368,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "395:12-21" + "loc": "396:12-21" }, { "moduleId": 11, @@ -1406,7 +1377,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "396:12-21" + "loc": "397:12-21" }, { "moduleId": 11, @@ -1415,7 +1386,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "397:6-15" + "loc": "398:6-15" }, { "moduleId": 11, @@ -1424,7 +1395,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "398:17-26" + "loc": "399:17-26" }, { "moduleId": 11, @@ -1433,7 +1404,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "399:12-21" + "loc": "400:12-21" }, { "moduleId": 11, @@ -1442,7 +1413,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "400:19-28" + "loc": "401:19-28" }, { "moduleId": 11, @@ -1451,16 +1422,12 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "401:21-30" + "loc": "402:21-30" } ], - "usedExports": [ - "default" - ], + "usedExports": ["default"], "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n", "parsedSrc": "function(e,t,n){e.exports=n(5)()}" @@ -1475,9 +1442,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -1491,8 +1456,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 3, @@ -1798,7 +1762,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "73:33-38" + "loc": "74:2-11" }, { "moduleId": 11, @@ -1807,7 +1771,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "74:2-11" + "loc": "74:8-13" }, { "moduleId": 11, @@ -1816,7 +1780,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "74:8-13" + "loc": "74:33-38" }, { "moduleId": 11, @@ -1834,7 +1798,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "79:13-18" + "loc": "80:13-18" }, { "moduleId": 11, @@ -1852,7 +1816,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "82:88-93" + "loc": "82:173-178" }, { "moduleId": 11, @@ -1861,7 +1825,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "82:173-178" + "loc": "83:88-93" }, { "moduleId": 11, @@ -1879,7 +1843,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "89:8-13" + "loc": "93:8-13" }, { "moduleId": 11, @@ -1915,7 +1879,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "99:2-15" + "loc": "103:2-15" }, { "moduleId": 11, @@ -2068,7 +2032,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "346:26-31" + "loc": "347:26-31" }, { "moduleId": 11, @@ -2077,7 +2041,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "350:40-45" + "loc": "351:40-45" }, { "moduleId": 11, @@ -2086,7 +2050,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "354:16-21" + "loc": "355:16-21" }, { "moduleId": 11, @@ -2095,7 +2059,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "372:2-11" + "loc": "373:2-11" }, { "moduleId": 11, @@ -2109,9 +2073,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "parsedSrc": "function(t,n){t.exports=e}" }, @@ -2126,9 +2088,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/react-sortablejs/dist/index.es.js", "issuerId": null, "issuerName": "./node_modules/react-sortablejs/dist/index.es.js", @@ -2152,8 +2112,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -2174,13 +2133,9 @@ "loc": "226:28-38" } ], - "usedExports": [ - "default" - ], + "usedExports": ["default"], "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3, "source": "/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n", "parsedSrc": "function(e,t,n){var o;\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n!function(){\"use strict\";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t this.props.initialScrollY) {\n\t this.el.scrollTo(0, this.props.initialScrollY);\n\t }\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.addEventListener(\"touchstart\", this.onStart);\n\t this.el.addEventListener(\"touchmove\", this.onMove);\n\t this.el.addEventListener(\"touchend\", this.onEnd);\n\n\t this.el.addEventListener(\"mousedown\", this.onStart);\n\t this.el.addEventListener(\"mousemove\", this.onMove);\n\t this.el.addEventListener(\"mouseup\", this.onEnd);\n\n\t // get BCR of pullDown element to position it above\n\t this.maxPullDownDistance = this._pullDown.firstChild.getBoundingClientRect().height;\n\t this.forceUpdate();\n\n\t if (typeof this.props.refreshFunction !== \"function\") {\n\t throw new Error(\"Mandatory prop \\\"refreshFunction\\\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage'\");\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"componentWillUnmount\",\n\t value: function componentWillUnmount() {\n\t this.el.removeEventListener(\"scroll\", this.throttledOnScrollListener);\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.removeEventListener(\"touchstart\", this.onStart);\n\t this.el.removeEventListener(\"touchmove\", this.onMove);\n\t this.el.removeEventListener(\"touchend\", this.onEnd);\n\n\t this.el.removeEventListener(\"mousedown\", this.onStart);\n\t this.el.removeEventListener(\"mousemove\", this.onMove);\n\t this.el.removeEventListener(\"mouseup\", this.onEnd);\n\t }\n\t }\n\t }, {\n\t key: \"componentWillReceiveProps\",\n\t value: function componentWillReceiveProps(props) {\n\t // do nothing when dataLength and key are unchanged\n\t if (this.props.key === props.key && this.props.dataLength === props.dataLength) return;\n\n\t // update state when new data was sent in\n\t this.setState({\n\t showLoader: false,\n\t actionTriggered: false,\n\t pullToRefreshThresholdBreached: false\n\t });\n\t }\n\t }, {\n\t key: \"getScrollableTarget\",\n\t value: function getScrollableTarget() {\n\t if (this.props.scrollableTarget instanceof HTMLElement) return this.props.scrollableTarget;\n\t if (typeof this.props.scrollableTarget === 'string') {\n\t return document.getElementById(this.props.scrollableTarget);\n\t }\n\t if (this.props.scrollableTarget === null) {\n\t console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \");\n\t }\n\t return null;\n\t }\n\t }, {\n\t key: \"onStart\",\n\t value: function onStart(evt) {\n\t if (this.state.lastScrollTop) return;\n\n\t this.dragging = true;\n\t this.startY = evt.pageY || evt.touches[0].pageY;\n\t this.currentY = this.startY;\n\n\t this._infScroll.style.willChange = \"transform\";\n\t this._infScroll.style.transition = \"transform 0.2s cubic-bezier(0,0,0.31,1)\";\n\t }\n\t }, {\n\t key: \"onMove\",\n\t value: function onMove(evt) {\n\t if (!this.dragging) return;\n\t this.currentY = evt.pageY || evt.touches[0].pageY;\n\n\t // user is scrolling down to up\n\t if (this.currentY < this.startY) return;\n\n\t if (this.currentY - this.startY >= this.props.pullDownToRefreshThreshold) {\n\t this.setState({\n\t pullToRefreshThresholdBreached: true\n\t });\n\t }\n\n\t // so you can drag upto 1.5 times of the maxPullDownDistance\n\t if (this.currentY - this.startY > this.maxPullDownDistance * 1.5) return;\n\n\t this._infScroll.style.overflow = \"visible\";\n\t this._infScroll.style.transform = \"translate3d(0px, \" + (this.currentY - this.startY) + \"px, 0px)\";\n\t }\n\t }, {\n\t key: \"onEnd\",\n\t value: function onEnd(evt) {\n\t var _this = this;\n\n\t this.startY = 0;\n\t this.currentY = 0;\n\n\t this.dragging = false;\n\n\t if (this.state.pullToRefreshThresholdBreached) {\n\t this.props.refreshFunction && this.props.refreshFunction();\n\t }\n\n\t requestAnimationFrame(function () {\n\t // this._infScroll\n\t if (_this._infScroll) {\n\t _this._infScroll.style.overflow = \"auto\";\n\t _this._infScroll.style.transform = \"none\";\n\t _this._infScroll.style.willChange = \"none\";\n\t }\n\t });\n\t }\n\t }, {\n\t key: \"isElementAtBottom\",\n\t value: function isElementAtBottom(target) {\n\t var scrollThreshold = arguments.length <= 1 || arguments[1] === undefined ? 0.8 : arguments[1];\n\n\t var clientHeight = target === document.body || target === document.documentElement ? window.screen.availHeight : target.clientHeight;\n\n\t var threshold = (0, _utilsThreshold.parseThreshold)(scrollThreshold);\n\n\t if (threshold.unit === _utilsThreshold.ThresholdUnits.Pixel) {\n\t return target.scrollTop + clientHeight >= target.scrollHeight - threshold.value;\n\t }\n\n\t return target.scrollTop + clientHeight >= threshold.value / 100 * target.scrollHeight;\n\t }\n\t }, {\n\t key: \"onScrollListener\",\n\t value: function onScrollListener(event) {\n\t var _this2 = this;\n\n\t if (typeof this.props.onScroll === \"function\") {\n\t // Execute this callback in next tick so that it does not affect the\n\t // functionality of the library.\n\t setTimeout(function () {\n\t return _this2.props.onScroll(event);\n\t }, 0);\n\t }\n\n\t var target = this.props.height || this._scrollableNode ? event.target : document.documentElement.scrollTop ? document.documentElement : document.body;\n\n\t // return immediately if the action has already been triggered,\n\t // prevents multiple triggers.\n\t if (this.state.actionTriggered) return;\n\n\t var atBottom = this.isElementAtBottom(target, this.props.scrollThreshold);\n\n\t // call the `next` function in the props to trigger the next data fetch\n\t if (atBottom && this.props.hasMore) {\n\t this.setState({ actionTriggered: true, showLoader: true });\n\t this.props.next();\n\t }\n\t this.setState({ lastScrollTop: target.scrollTop });\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var _this3 = this;\n\n\t var style = _extends({\n\t height: this.props.height || \"auto\",\n\t overflow: \"auto\",\n\t WebkitOverflowScrolling: \"touch\"\n\t }, this.props.style);\n\t var hasChildren = this.props.hasChildren || !!(this.props.children && this.props.children.length);\n\n\t // because heighted infiniteScroll visualy breaks\n\t // on drag down as overflow becomes visible\n\t var outerDivStyle = this.props.pullDownToRefresh && this.props.height ? { overflow: \"auto\" } : {};\n\t return _react2[\"default\"].createElement(\n\t \"div\",\n\t { style: outerDivStyle },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t className: \"infinite-scroll-component \" + (this.props.className || ''),\n\t ref: function (infScroll) {\n\t return _this3._infScroll = infScroll;\n\t },\n\t style: style\n\t },\n\t this.props.pullDownToRefresh && _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: { position: \"relative\" },\n\t ref: function (pullDown) {\n\t return _this3._pullDown = pullDown;\n\t }\n\t },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: {\n\t position: \"absolute\",\n\t left: 0,\n\t right: 0,\n\t top: -1 * this.maxPullDownDistance\n\t }\n\t },\n\t !this.state.pullToRefreshThresholdBreached && this.props.pullDownToRefreshContent,\n\t this.state.pullToRefreshThresholdBreached && this.props.releaseToRefreshContent\n\t )\n\t ),\n\t this.props.children,\n\t !this.state.showLoader && !hasChildren && this.props.hasMore && this.props.loader,\n\t this.state.showLoader && this.props.hasMore && this.props.loader,\n\t !this.props.hasMore && this.props.endMessage\n\t )\n\t );\n\t }\n\t }]);\n\n\t return InfiniteScroll;\n\t})(_react.Component);\n\n\texports[\"default\"] = InfiniteScroll;\n\n\tInfiniteScroll.defaultProps = {\n\t pullDownToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Pull down to refresh\"\n\t ),\n\t releaseToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Release to refresh\"\n\t ),\n\t pullDownToRefreshThreshold: 100,\n\t disableBrowserPullToRefresh: true\n\t};\n\n\tInfiniteScroll.propTypes = {\n\t next: _propTypes2[\"default\"].func,\n\t hasMore: _propTypes2[\"default\"].bool,\n\t children: _propTypes2[\"default\"].node,\n\t loader: _propTypes2[\"default\"].node.isRequired,\n\t scrollThreshold: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n\t endMessage: _propTypes2[\"default\"].node,\n\t style: _propTypes2[\"default\"].object,\n\t height: _propTypes2[\"default\"].number,\n\t scrollableTarget: _propTypes2[\"default\"].node,\n\t hasChildren: _propTypes2[\"default\"].bool,\n\t pullDownToRefresh: _propTypes2[\"default\"].bool,\n\t pullDownToRefreshContent: _propTypes2[\"default\"].node,\n\t releaseToRefreshContent: _propTypes2[\"default\"].node,\n\t pullDownToRefreshThreshold: _propTypes2[\"default\"].number,\n\t refreshFunction: _propTypes2[\"default\"].func,\n\t onScroll: _propTypes2[\"default\"].func,\n\t dataLength: _propTypes2[\"default\"].number.isRequired,\n\t key: _propTypes2[\"default\"].string\n\t};\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\texports.parseThreshold = parseThreshold;\n\tvar ThresholdUnits = {\n\t Pixel: 'Pixel',\n\t Percent: 'Percent'\n\t};\n\n\texports.ThresholdUnits = ThresholdUnits;\n\tvar defaultThreshold = {\n\t unit: ThresholdUnits.Percent,\n\t value: 0.8\n\t};\n\n\tfunction parseThreshold(scrollThreshold) {\n\t if (typeof scrollThreshold === \"number\") {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: scrollThreshold * 100\n\t };\n\t }\n\n\t if (typeof scrollThreshold === \"string\") {\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)px$/)) {\n\t return {\n\t unit: ThresholdUnits.Pixel,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)%$/)) {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...');\n\n\t return defaultThreshold;\n\t }\n\n\t console.warn('scrollThreshold should be string or number');\n\n\t return defaultThreshold;\n\t}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t// https://remysharp.com/2010/07/21/throttling-function-calls\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports[\"default\"] = throttle;\n\n\tfunction throttle(fn, threshhold, scope) {\n\t threshhold || (threshhold = 250);\n\t var last, deferTimer;\n\t return function () {\n\t var context = scope || this;\n\n\t var now = +new Date(),\n\t args = arguments;\n\t if (last && now < last + threshhold) {\n\t // hold on to it\n\t clearTimeout(deferTimer);\n\t deferTimer = setTimeout(function () {\n\t last = now;\n\t fn.apply(context, args);\n\t }, threshhold);\n\t } else {\n\t last = now;\n\t fn.apply(context, args);\n\t }\n\t };\n\t}\n\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t * \n\t */\n\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t */\n\n\t'use strict';\n\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\n\tvar validateFormat = function validateFormat(format) {};\n\n\tif (false) {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\n\tmodule.exports = invariant;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar emptyFunction = __webpack_require__(3);\n\tvar invariant = __webpack_require__(4);\n\tvar ReactPropTypesSecret = __webpack_require__(7);\n\n\tmodule.exports = function() {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\tif (false) {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(5)();\n\t}\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ })\n/******/ ])\n});\n;", "parsedSrc": "function(e,t,n){var o;o=function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p=\"\",n(0)}([function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=Object.assign||function(e){for(var t=1;tthis.props.initialScrollY&&this.el.scrollTo(0,this.props.initialScrollY),this.props.pullDownToRefresh&&(this.el.addEventListener(\"touchstart\",this.onStart),this.el.addEventListener(\"touchmove\",this.onMove),this.el.addEventListener(\"touchend\",this.onEnd),this.el.addEventListener(\"mousedown\",this.onStart),this.el.addEventListener(\"mousemove\",this.onMove),this.el.addEventListener(\"mouseup\",this.onEnd),this.maxPullDownDistance=this._pullDown.firstChild.getBoundingClientRect().height,this.forceUpdate(),\"function\"!=typeof this.props.refreshFunction))throw new Error('Mandatory prop \"refreshFunction\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage\\'')}},{key:\"componentWillUnmount\",value:function(){this.el.removeEventListener(\"scroll\",this.throttledOnScrollListener),this.props.pullDownToRefresh&&(this.el.removeEventListener(\"touchstart\",this.onStart),this.el.removeEventListener(\"touchmove\",this.onMove),this.el.removeEventListener(\"touchend\",this.onEnd),this.el.removeEventListener(\"mousedown\",this.onStart),this.el.removeEventListener(\"mousemove\",this.onMove),this.el.removeEventListener(\"mouseup\",this.onEnd))}},{key:\"componentWillReceiveProps\",value:function(e){this.props.key===e.key&&this.props.dataLength===e.dataLength||this.setState({showLoader:!1,actionTriggered:!1,pullToRefreshThresholdBreached:!1})}},{key:\"getScrollableTarget\",value:function(){return this.props.scrollableTarget instanceof HTMLElement?this.props.scrollableTarget:\"string\"==typeof this.props.scrollableTarget?document.getElementById(this.props.scrollableTarget):(null===this.props.scrollableTarget&&console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \"),null)}},{key:\"onStart\",value:function(e){this.state.lastScrollTop||(this.dragging=!0,this.startY=e.pageY||e.touches[0].pageY,this.currentY=this.startY,this._infScroll.style.willChange=\"transform\",this._infScroll.style.transition=\"transform 0.2s cubic-bezier(0,0,0.31,1)\")}},{key:\"onMove\",value:function(e){this.dragging&&(this.currentY=e.pageY||e.touches[0].pageY,this.currentY=this.props.pullDownToRefreshThreshold&&this.setState({pullToRefreshThresholdBreached:!0}),this.currentY-this.startY>1.5*this.maxPullDownDistance||(this._infScroll.style.overflow=\"visible\",this._infScroll.style.transform=\"translate3d(0px, \"+(this.currentY-this.startY)+\"px, 0px)\")))}},{key:\"onEnd\",value:function(e){var t=this;this.startY=0,this.currentY=0,this.dragging=!1,this.state.pullToRefreshThresholdBreached&&this.props.refreshFunction&&this.props.refreshFunction(),requestAnimationFrame(function(){t._infScroll&&(t._infScroll.style.overflow=\"auto\",t._infScroll.style.transform=\"none\",t._infScroll.style.willChange=\"none\")})}},{key:\"isElementAtBottom\",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?.8:arguments[1],n=e===document.body||e===document.documentElement?window.screen.availHeight:e.clientHeight,o=(0,d.parseThreshold)(t);return o.unit===d.ThresholdUnits.Pixel?e.scrollTop+n>=e.scrollHeight-o.value:e.scrollTop+n>=o.value/100*e.scrollHeight}},{key:\"onScrollListener\",value:function(e){var t=this;\"function\"==typeof this.props.onScroll&&setTimeout(function(){return t.props.onScroll(e)},0);var n=this.props.height||this._scrollableNode?e.target:document.documentElement.scrollTop?document.documentElement:document.body;this.state.actionTriggered||(this.isElementAtBottom(n,this.props.scrollThreshold)&&this.props.hasMore&&(this.setState({actionTriggered:!0,showLoader:!0}),this.props.next()),this.setState({lastScrollTop:n.scrollTop}))}},{key:\"render\",value:function(){var e=this,t=o({height:this.props.height||\"auto\",overflow:\"auto\",WebkitOverflowScrolling:\"touch\"},this.props.style),n=this.props.hasChildren||!(!this.props.children||!this.props.children.length),r=this.props.pullDownToRefresh&&this.props.height?{overflow:\"auto\"}:{};return s.default.createElement(\"div\",{style:r},s.default.createElement(\"div\",{className:\"infinite-scroll-component \"+(this.props.className||\"\"),ref:function(t){return e._infScroll=t},style:t},this.props.pullDownToRefresh&&s.default.createElement(\"div\",{style:{position:\"relative\"},ref:function(t){return e._pullDown=t}},s.default.createElement(\"div\",{style:{position:\"absolute\",left:0,right:0,top:-1*this.maxPullDownDistance}},!this.state.pullToRefreshThresholdBreached&&this.props.pullDownToRefreshContent,this.state.pullToRefreshThresholdBreached&&this.props.releaseToRefreshContent)),this.props.children,!this.state.showLoader&&!n&&this.props.hasMore&&this.props.loader,this.state.showLoader&&this.props.hasMore&&this.props.loader,!this.props.hasMore&&this.props.endMessage))}}]),t}();t.default=h,h.defaultProps={pullDownToRefreshContent:s.default.createElement(\"h3\",null,\"Pull down to refresh\"),releaseToRefreshContent:s.default.createElement(\"h3\",null,\"Release to refresh\"),pullDownToRefreshThreshold:100,disableBrowserPullToRefresh:!0},h.propTypes={next:c.default.func,hasMore:c.default.bool,children:c.default.node,loader:c.default.node.isRequired,scrollThreshold:c.default.oneOfType([c.default.number,c.default.string]),endMessage:c.default.node,style:c.default.object,height:c.default.number,scrollableTarget:c.default.node,hasChildren:c.default.bool,pullDownToRefresh:c.default.bool,pullDownToRefreshContent:c.default.node,releaseToRefreshContent:c.default.node,pullDownToRefreshThreshold:c.default.number,refreshFunction:c.default.func,onScroll:c.default.func,dataLength:c.default.number.isRequired,key:c.default.string},e.exports=t.default},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.parseThreshold=function(e){if(\"number\"==typeof e)return{unit:n.Percent,value:100*e};if(\"string\"==typeof e)return e.match(/^(\\d*(\\.\\d+)?)px$/)?{unit:n.Pixel,value:parseFloat(e)}:e.match(/^(\\d*(\\.\\d+)?)%$/)?{unit:n.Percent,value:parseFloat(e)}:(console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...'),o);return console.warn(\"scrollThreshold should be string or number\"),o};var n={Pixel:\"Pixel\",Percent:\"Percent\"};t.ThresholdUnits=n;var o={unit:n.Percent,value:.8}},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e,t,n){var o,r;return t||(t=250),function(){var a=n||this,i=+new Date,l=arguments;o&&i\n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport { isOutsideClick, clientIdGenerator } from './utils';\nimport Input from './input';\nimport Tags from './tags';\nimport Trigger from './trigger';\nimport Tree from './tree';\nimport TreeManager from './tree-manager';\nimport keyboardNavigation from './tree-manager/keyboardNavigation';\n\nimport './index.css';\nimport { getAriaLabel } from './a11y';\n\nvar DropdownTreeSelect = function (_Component) {\n _inherits(DropdownTreeSelect, _Component);\n\n function DropdownTreeSelect(props) {\n _classCallCheck(this, DropdownTreeSelect);\n\n var _this = _possibleConstructorReturn(this, (DropdownTreeSelect.__proto__ || Object.getPrototypeOf(DropdownTreeSelect)).call(this, props));\n\n _this.initNewProps = function (_ref) {\n var data = _ref.data,\n mode = _ref.mode,\n showDropdown = _ref.showDropdown,\n showPartiallySelected = _ref.showPartiallySelected,\n searchPredicate = _ref.searchPredicate;\n\n _this.treeManager = new TreeManager({\n data: data,\n mode: mode,\n showPartiallySelected: showPartiallySelected,\n rootPrefixId: _this.clientId,\n searchPredicate: searchPredicate\n });\n // Restore focus-state\n var currentFocusNode = _this.state.currentFocus && _this.treeManager.getNodeById(_this.state.currentFocus);\n if (currentFocusNode) {\n currentFocusNode._focused = true;\n }\n _this.setState(function (prevState) {\n return _extends({\n showDropdown: /initial|always/.test(showDropdown) || prevState.showDropdown === true\n }, _this.treeManager.getTreeAndTags());\n });\n };\n\n _this.resetSearchState = function () {\n // clear the search criteria and avoid react controlled/uncontrolled warning\n // !this.props.inlineSearchInput is gated as inline search is not rendered until dropdown is shown\n if (!_this.props.inlineSearchInput) {\n _this.searchInput.value = '';\n }\n\n return {\n tree: _this.treeManager.restoreNodes(), // restore the tree to its pre-search state\n searchModeOn: false,\n allNodesHidden: false\n };\n };\n\n _this.handleClick = function (e, callback) {\n _this.setState(function (prevState) {\n // keep dropdown active when typing in search box\n var showDropdown = _this.props.showDropdown === 'always' || _this.keepDropdownActive || !prevState.showDropdown;\n\n // register event listeners only if there is a state change\n if (showDropdown !== prevState.showDropdown) {\n if (showDropdown) {\n document.addEventListener('click', _this.handleOutsideClick, false);\n } else {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n }\n\n if (showDropdown) _this.props.onFocus();else _this.props.onBlur();\n\n return !showDropdown ? _extends({ showDropdown: showDropdown }, _this.resetSearchState()) : { showDropdown: showDropdown };\n }, callback);\n };\n\n _this.handleOutsideClick = function (e) {\n if (_this.props.showDropdown === 'always' || !isOutsideClick(e, _this.node)) {\n return;\n }\n\n _this.handleClick();\n };\n\n _this.onInputChange = function (value) {\n var _this$treeManager$fil = _this.treeManager.filterTree(value, _this.props.keepTreeOnSearch, _this.props.keepChildrenOnSearch),\n allNodesHidden = _this$treeManager$fil.allNodesHidden,\n tree = _this$treeManager$fil.tree;\n\n var searchModeOn = value.length > 0;\n\n _this.setState({\n tree: tree,\n searchModeOn: searchModeOn,\n allNodesHidden: allNodesHidden\n });\n };\n\n _this.onTagRemove = function (id, isKeyboardEvent) {\n var prevTags = _this.state.tags;\n\n _this.onCheckboxChange(id, false, function (tags) {\n if (!isKeyboardEvent) return;\n\n keyboardNavigation.getNextFocusAfterTagDelete(id, prevTags, tags, _this.searchInput).focus();\n });\n };\n\n _this.onNodeToggle = function (id) {\n _this.treeManager.toggleNodeExpandState(id);\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n _this.setState({ tree: tree });\n typeof _this.props.onNodeToggle === 'function' && _this.props.onNodeToggle(_this.treeManager.getNodeById(id));\n };\n\n _this.onCheckboxChange = function (id, checked, callback) {\n var _this$props = _this.props,\n mode = _this$props.mode,\n keepOpenOnSelect = _this$props.keepOpenOnSelect;\n\n _this.treeManager.setNodeCheckedState(id, checked);\n var tags = _this.treeManager.tags;\n var isSingleSelect = ['simpleSelect', 'radioSelect'].indexOf(mode) > -1;\n var showDropdown = isSingleSelect && !keepOpenOnSelect ? false : _this.state.showDropdown;\n\n if (!tags.length) {\n _this.treeManager.restoreDefaultValues();\n tags = _this.treeManager.tags;\n }\n\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n var nextState = {\n tree: tree,\n tags: tags,\n showDropdown: showDropdown\n };\n\n if (isSingleSelect && !showDropdown || _this.props.clearSearchOnChange) {\n Object.assign(nextState, _this.resetSearchState());\n }\n\n if (isSingleSelect && !showDropdown) {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n\n _this.setState(nextState, function () {\n callback && callback(tags);\n });\n _this.props.onChange(_this.treeManager.getNodeById(id), tags);\n };\n\n _this.onAction = function (nodeId, action) {\n _this.props.onAction(_this.treeManager.getNodeById(nodeId), action);\n };\n\n _this.onInputFocus = function () {\n _this.keepDropdownActive = true;\n };\n\n _this.onInputBlur = function () {\n _this.keepDropdownActive = false;\n };\n\n _this.onTrigger = function (e) {\n _this.handleClick(e, function () {\n // If the dropdown is shown after key press, focus the input\n if (_this.state.showDropdown) {\n _this.searchInput.focus();\n }\n });\n };\n\n _this.onKeyboardKeyDown = function (e) {\n var _this$props2 = _this.props,\n readOnly = _this$props2.readOnly,\n mode = _this$props2.mode;\n var _this$state = _this.state,\n showDropdown = _this$state.showDropdown,\n tags = _this$state.tags,\n searchModeOn = _this$state.searchModeOn,\n currentFocus = _this$state.currentFocus;\n\n var tm = _this.treeManager;\n var tree = searchModeOn ? tm.matchTree : tm.tree;\n\n if (!showDropdown && (keyboardNavigation.isValidKey(e.key, false) || /^\\w$/i.test(e.key))) {\n // Triggers open of dropdown and retriggers event\n e.persist();\n _this.handleClick(null, function () {\n return _this.onKeyboardKeyDown(e);\n });\n if (/\\w/i.test(e.key)) return;\n } else if (showDropdown && keyboardNavigation.isValidKey(e.key, true)) {\n var newFocus = tm.handleNavigationKey(currentFocus, tree, e.key, readOnly, !searchModeOn, _this.onCheckboxChange, _this.onNodeToggle);\n if (newFocus !== currentFocus) {\n _this.setState({ currentFocus: newFocus });\n }\n } else if (showDropdown && ['Escape', 'Tab'].indexOf(e.key) > -1) {\n if (mode === 'simpleSelect' && tree.has(currentFocus)) {\n _this.onCheckboxChange(currentFocus, true);\n } else {\n // Triggers close\n _this.keepDropdownActive = false;\n _this.handleClick();\n }\n return;\n } else if (e.key === 'Backspace' && tags.length && _this.searchInput.value.length === 0) {\n var lastTag = tags.pop();\n _this.onCheckboxChange(lastTag._id, false);\n } else {\n return;\n }\n e.preventDefault();\n };\n\n _this.onReorderList = function (newList) {\n _this.setState({ tags: newList }, function () {\n if (_this.props.onReorderList) {\n _this.props.onReorderList(newList);\n } else {\n _this.props.onChange(newList);\n }\n });\n };\n\n _this.getAriaAttributes = function () {\n var _this$props3 = _this.props,\n mode = _this$props3.mode,\n texts = _this$props3.texts;\n\n\n if (mode !== 'radioSelect') return {};\n\n return _extends({\n role: 'radiogroup'\n }, getAriaLabel(texts.label));\n };\n\n _this.state = {\n searchModeOn: false,\n currentFocus: undefined\n };\n _this.clientId = props.id || clientIdGenerator.get(_this);\n return _this;\n }\n\n _createClass(DropdownTreeSelect, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.initNewProps(this.props);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('click', this.handleOutsideClick, false);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.initNewProps(nextProps);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n mode = _props.mode,\n texts = _props.texts,\n inlineSearchInput = _props.inlineSearchInput,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable;\n var _state = this.state,\n showDropdown = _state.showDropdown,\n currentFocus = _state.currentFocus,\n tags = _state.tags;\n\n\n var activeDescendant = currentFocus ? currentFocus + '_li' : undefined;\n\n var commonProps = { disabled: disabled, readOnly: readOnly, activeDescendant: activeDescendant, texts: texts, mode: mode, clientId: this.clientId };\n\n var searchInput = React.createElement(Input, _extends({\n inputRef: function inputRef(el) {\n _this2.searchInput = el;\n },\n onInputChange: this.onInputChange,\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onKeyboardKeyDown\n }, commonProps));\n return React.createElement(\n 'div',\n {\n id: this.clientId,\n className: [this.props.className && this.props.className, 'react-dropdown-tree-select'].filter(Boolean).join(' '),\n ref: function ref(node) {\n _this2.node = node;\n }\n },\n React.createElement(\n 'div',\n {\n className: ['dropdown', mode === 'simpleSelect' && 'simple-select', mode === 'radioSelect' && 'radio-select'].filter(Boolean).join(' ')\n },\n React.createElement(\n Trigger,\n _extends({ onTrigger: this.onTrigger, showDropdown: showDropdown }, commonProps, { tags: tags }),\n React.createElement(\n Tags,\n _extends({\n tags: tags,\n onTagRemove: this.onTagRemove,\n onReorderList: this.onReorderList,\n sortable: sortable\n }, commonProps),\n !inlineSearchInput && searchInput\n )\n ),\n showDropdown && React.createElement(\n 'div',\n _extends({ className: 'dropdown-content' }, this.getAriaAttributes()),\n inlineSearchInput && searchInput,\n this.state.allNodesHidden ? React.createElement(\n 'span',\n { className: 'no-matches' },\n texts.noMatches || 'No matches found'\n ) : React.createElement(Tree, _extends({\n data: this.state.tree,\n keepTreeOnSearch: this.props.keepTreeOnSearch,\n keepChildrenOnSearch: this.props.keepChildrenOnSearch,\n searchModeOn: this.state.searchModeOn,\n onAction: this.onAction,\n onCheckboxChange: this.onCheckboxChange,\n onNodeToggle: this.onNodeToggle,\n mode: mode,\n showPartiallySelected: this.props.showPartiallySelected\n }, commonProps))\n )\n )\n );\n }\n }]);\n\n return DropdownTreeSelect;\n}(Component);\n\nDropdownTreeSelect.propTypes = {\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n clearSearchOnChange: PropTypes.bool,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n keepOpenOnSelect: PropTypes.bool,\n texts: PropTypes.shape({\n placeholder: PropTypes.string,\n noMatches: PropTypes.string,\n label: PropTypes.string,\n labelRemove: PropTypes.string\n }),\n showDropdown: PropTypes.oneOf(['default', 'initial', 'always']),\n className: PropTypes.string,\n onChange: PropTypes.func,\n onAction: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n onReorderList: PropTypes.func,\n sortable: PropTypes.bool,\n searchPredicate: PropTypes.func,\n inlineSearchInput: PropTypes.bool\n};\nDropdownTreeSelect.defaultProps = {\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onChange: function onChange() {},\n texts: {},\n showDropdown: 'default',\n inlineSearchInput: false\n};\n\n\nexport default DropdownTreeSelect;" + "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\n/*!\n * React Dropdown Tree Select\n * A lightweight, fast and highly customizable tree select component.\n * Hrusikesh Panda \n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport { isOutsideClick, clientIdGenerator } from './utils';\nimport Input from './input';\nimport Tags from './tags';\nimport Trigger from './trigger';\nimport Tree from './tree';\nimport TreeManager from './tree-manager';\nimport keyboardNavigation from './tree-manager/keyboardNavigation';\n\nimport './index.css';\nimport { getAriaLabel } from './a11y';\n\nvar DropdownTreeSelect = function (_Component) {\n _inherits(DropdownTreeSelect, _Component);\n\n function DropdownTreeSelect(props) {\n _classCallCheck(this, DropdownTreeSelect);\n\n var _this = _possibleConstructorReturn(this, (DropdownTreeSelect.__proto__ || Object.getPrototypeOf(DropdownTreeSelect)).call(this, props));\n\n _this.initNewProps = function (_ref) {\n var data = _ref.data,\n mode = _ref.mode,\n showDropdown = _ref.showDropdown,\n showPartiallySelected = _ref.showPartiallySelected,\n searchPredicate = _ref.searchPredicate;\n\n _this.treeManager = new TreeManager({\n data: data,\n mode: mode,\n showPartiallySelected: showPartiallySelected,\n rootPrefixId: _this.clientId,\n searchPredicate: searchPredicate\n });\n // Restore focus-state\n var currentFocusNode = _this.state.currentFocus && _this.treeManager.getNodeById(_this.state.currentFocus);\n if (currentFocusNode) {\n currentFocusNode._focused = true;\n }\n _this.setState(function (prevState) {\n return _extends({\n showDropdown: /initial|always/.test(showDropdown) || prevState.showDropdown === true\n }, _this.treeManager.getTreeAndTags());\n });\n };\n\n _this.resetSearchState = function () {\n // clear the search criteria and avoid react controlled/uncontrolled warning\n // !this.props.inlineSearchInput is gated as inline search is not rendered until dropdown is shown\n if (!_this.props.inlineSearchInput) {\n _this.searchInput.value = '';\n }\n\n return {\n tree: _this.treeManager.restoreNodes(), // restore the tree to its pre-search state\n searchModeOn: false,\n allNodesHidden: false\n };\n };\n\n _this.handleClick = function (e, callback) {\n _this.setState(function (prevState) {\n // keep dropdown active when typing in search box\n var showDropdown = _this.props.showDropdown === 'always' || _this.keepDropdownActive || !prevState.showDropdown;\n\n // register event listeners only if there is a state change\n if (showDropdown !== prevState.showDropdown) {\n if (showDropdown) {\n document.addEventListener('click', _this.handleOutsideClick, false);\n } else {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n }\n\n if (showDropdown) _this.props.onFocus();else _this.props.onBlur();\n\n return !showDropdown ? _extends({ showDropdown: showDropdown }, _this.resetSearchState()) : { showDropdown: showDropdown };\n }, callback);\n };\n\n _this.handleOutsideClick = function (e) {\n if (_this.props.showDropdown === 'always' || !isOutsideClick(e, _this.node)) {\n return;\n }\n\n _this.handleClick();\n };\n\n _this.onInputChange = function (value) {\n var _this$treeManager$fil = _this.treeManager.filterTree(value, _this.props.keepTreeOnSearch, _this.props.keepChildrenOnSearch),\n allNodesHidden = _this$treeManager$fil.allNodesHidden,\n tree = _this$treeManager$fil.tree;\n\n var searchModeOn = value.length > 0;\n\n _this.setState({\n tree: tree,\n searchModeOn: searchModeOn,\n allNodesHidden: allNodesHidden\n });\n };\n\n _this.onTagRemove = function (id, isKeyboardEvent) {\n var prevTags = _this.state.tags;\n\n _this.onCheckboxChange(id, false, function (tags) {\n if (!isKeyboardEvent) return;\n\n keyboardNavigation.getNextFocusAfterTagDelete(id, prevTags, tags, _this.searchInput).focus();\n });\n };\n\n _this.onNodeToggle = function (id) {\n _this.treeManager.toggleNodeExpandState(id);\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n _this.setState({ tree: tree });\n typeof _this.props.onNodeToggle === 'function' && _this.props.onNodeToggle(_this.treeManager.getNodeById(id));\n };\n\n _this.onCheckboxChange = function (id, checked, callback) {\n var _this$props = _this.props,\n mode = _this$props.mode,\n keepOpenOnSelect = _this$props.keepOpenOnSelect;\n\n _this.treeManager.setNodeCheckedState(id, checked);\n var tags = _this.treeManager.tags;\n var isSingleSelect = ['simpleSelect', 'radioSelect'].indexOf(mode) > -1;\n var showDropdown = isSingleSelect && !keepOpenOnSelect ? false : _this.state.showDropdown;\n\n if (!tags.length) {\n _this.treeManager.restoreDefaultValues();\n tags = _this.treeManager.tags;\n }\n\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n var nextState = {\n tree: tree,\n tags: tags,\n showDropdown: showDropdown\n };\n\n if (isSingleSelect && !showDropdown || _this.props.clearSearchOnChange) {\n Object.assign(nextState, _this.resetSearchState());\n }\n\n if (isSingleSelect && !showDropdown) {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n\n _this.setState(nextState, function () {\n callback && callback(tags);\n });\n _this.props.onChange(_this.treeManager.getNodeById(id), tags);\n };\n\n _this.onAction = function (nodeId, action) {\n _this.props.onAction(_this.treeManager.getNodeById(nodeId), action);\n };\n\n _this.onInputFocus = function () {\n _this.keepDropdownActive = true;\n };\n\n _this.onInputBlur = function () {\n _this.keepDropdownActive = false;\n };\n\n _this.onTrigger = function (e) {\n _this.handleClick(e, function () {\n // If the dropdown is shown after key press, focus the input\n if (_this.state.showDropdown) {\n _this.searchInput.focus();\n }\n });\n };\n\n _this.onKeyboardKeyDown = function (e) {\n var _this$props2 = _this.props,\n readOnly = _this$props2.readOnly,\n mode = _this$props2.mode;\n var _this$state = _this.state,\n showDropdown = _this$state.showDropdown,\n tags = _this$state.tags,\n searchModeOn = _this$state.searchModeOn,\n currentFocus = _this$state.currentFocus;\n\n var tm = _this.treeManager;\n var tree = searchModeOn ? tm.matchTree : tm.tree;\n\n if (!showDropdown && (keyboardNavigation.isValidKey(e.key, false) || /^\\w$/i.test(e.key))) {\n // Triggers open of dropdown and retriggers event\n e.persist();\n _this.handleClick(null, function () {\n return _this.onKeyboardKeyDown(e);\n });\n if (/\\w/i.test(e.key)) return;\n } else if (showDropdown && keyboardNavigation.isValidKey(e.key, true)) {\n var newFocus = tm.handleNavigationKey(currentFocus, tree, e.key, readOnly, !searchModeOn, _this.onCheckboxChange, _this.onNodeToggle);\n if (newFocus !== currentFocus) {\n _this.setState({ currentFocus: newFocus });\n }\n } else if (showDropdown && ['Escape', 'Tab'].indexOf(e.key) > -1) {\n if (mode === 'simpleSelect' && tree.has(currentFocus)) {\n _this.onCheckboxChange(currentFocus, true);\n } else {\n // Triggers close\n _this.keepDropdownActive = false;\n _this.handleClick();\n }\n return;\n } else if (e.key === 'Backspace' && tags.length && _this.searchInput.value.length === 0) {\n var lastTag = tags.pop();\n _this.onCheckboxChange(lastTag._id, false);\n } else {\n return;\n }\n e.preventDefault();\n };\n\n _this.onReorderList = function (newList) {\n _this.setState({ tags: newList }, function () {\n if (_this.props.onReorderList) {\n _this.props.onReorderList(newList);\n } else {\n _this.props.onChange(newList);\n }\n });\n };\n\n _this.getAriaAttributes = function () {\n var _this$props3 = _this.props,\n mode = _this$props3.mode,\n texts = _this$props3.texts;\n\n\n if (mode !== 'radioSelect') return {};\n\n return _extends({\n role: 'radiogroup'\n }, getAriaLabel(texts.label));\n };\n\n _this.state = {\n searchModeOn: false,\n currentFocus: undefined\n };\n _this.clientId = props.id || clientIdGenerator.get(_this);\n return _this;\n }\n\n _createClass(DropdownTreeSelect, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.initNewProps(this.props);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('click', this.handleOutsideClick, false);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.initNewProps(nextProps);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n mode = _props.mode,\n texts = _props.texts,\n inlineSearchInput = _props.inlineSearchInput,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable;\n var _state = this.state,\n showDropdown = _state.showDropdown,\n currentFocus = _state.currentFocus,\n tags = _state.tags;\n\n\n var activeDescendant = currentFocus ? currentFocus + '_li' : undefined;\n\n var commonProps = { disabled: disabled, readOnly: readOnly, activeDescendant: activeDescendant, texts: texts, mode: mode, clientId: this.clientId };\n\n var searchInput = React.createElement(Input, _extends({\n inputRef: function inputRef(el) {\n _this2.searchInput = el;\n },\n onInputChange: this.onInputChange,\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onKeyboardKeyDown\n }, commonProps));\n return React.createElement(\n 'div',\n {\n id: this.clientId,\n className: [this.props.className && this.props.className, 'react-dropdown-tree-select'].filter(Boolean).join(' '),\n ref: function ref(node) {\n _this2.node = node;\n }\n },\n React.createElement(\n 'div',\n {\n className: ['dropdown', mode === 'simpleSelect' && 'simple-select', mode === 'radioSelect' && 'radio-select'].filter(Boolean).join(' ')\n },\n React.createElement(\n Trigger,\n _extends({ onTrigger: this.onTrigger, showDropdown: showDropdown }, commonProps, { tags: tags }),\n React.createElement(\n Tags,\n _extends({\n tags: tags,\n onTagRemove: this.onTagRemove,\n onReorderList: this.onReorderList,\n newType: this.props.newType,\n sortable: true\n }, commonProps),\n !inlineSearchInput && searchInput\n )\n ),\n showDropdown && React.createElement(\n 'div',\n _extends({ className: 'dropdown-content' }, this.getAriaAttributes()),\n inlineSearchInput && searchInput,\n this.state.allNodesHidden ? React.createElement(\n 'span',\n { className: 'no-matches' },\n texts.noMatches || 'No matches found'\n ) : React.createElement(Tree, _extends({\n data: this.state.tree,\n keepTreeOnSearch: this.props.keepTreeOnSearch,\n keepChildrenOnSearch: this.props.keepChildrenOnSearch,\n searchModeOn: this.state.searchModeOn,\n onAction: this.onAction,\n onCheckboxChange: this.onCheckboxChange,\n onNodeToggle: this.onNodeToggle,\n mode: mode,\n showPartiallySelected: this.props.showPartiallySelected\n }, commonProps))\n )\n )\n );\n }\n }]);\n\n return DropdownTreeSelect;\n}(Component);\n\nDropdownTreeSelect.propTypes = {\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n clearSearchOnChange: PropTypes.bool,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n keepOpenOnSelect: PropTypes.bool,\n texts: PropTypes.shape({\n placeholder: PropTypes.string,\n noMatches: PropTypes.string,\n label: PropTypes.string,\n labelRemove: PropTypes.string\n }),\n showDropdown: PropTypes.oneOf(['default', 'initial', 'always']),\n className: PropTypes.string,\n onChange: PropTypes.func,\n onAction: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n onReorderList: PropTypes.func,\n sortable: PropTypes.bool,\n searchPredicate: PropTypes.func,\n inlineSearchInput: PropTypes.bool\n};\nDropdownTreeSelect.defaultProps = {\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onChange: function onChange() {},\n texts: {},\n showDropdown: 'default',\n inlineSearchInput: false\n};\n\n\nexport default DropdownTreeSelect;" }, { "id": null, @@ -2755,8 +2655,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -2770,8 +2669,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -2945,13 +2843,7 @@ "loc": "289:11-18" } ], - "usedExports": [ - "isOutsideClick", - "clientIdGenerator", - "isEmpty", - "getDataset", - "debounce" - ], + "usedExports": ["isOutsideClick", "clientIdGenerator", "isEmpty", "getDataset", "debounce"], "providedExports": [ "getDataset", "mapToObject", @@ -2960,8 +2852,7 @@ "debounce", "clientIdGenerator" ], - "optimizationBailout": [ - ], + "optimizationBailout": [], "depth": 1, "source": "export { default as getDataset } from './dataset';\nexport { default as mapToObject } from './mapToObject';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isOutsideClick } from './isOutsideClick';\nexport { default as debounce } from './debounce';\nexport { default as clientIdGenerator } from './generateUID';" }, @@ -2976,8 +2867,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -2991,23 +2881,22 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, - "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/input/index.js", - "module": "./src/input/index.js", - "moduleName": "./src/input/index.js", + "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/trigger/index.js", + "module": "./src/trigger/index.js", + "moduleName": "./src/trigger/index.js", "type": "harmony side effect evaluation", "userRequest": "../a11y", "loc": "14:0-39" }, { "moduleId": null, - "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/trigger/index.js", - "module": "./src/trigger/index.js", - "moduleName": "./src/trigger/index.js", + "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/input/index.js", + "module": "./src/input/index.js", + "moduleName": "./src/input/index.js", "type": "harmony side effect evaluation", "userRequest": "../a11y", "loc": "14:0-39" @@ -3058,14 +2947,9 @@ "loc": "260:9-21" } ], - "usedExports": [ - "getAriaLabel" - ], - "providedExports": [ - "getAriaLabel" - ], - "optimizationBailout": [ - ], + "usedExports": ["getAriaLabel"], + "providedExports": ["getAriaLabel"], + "optimizationBailout": [], "depth": 1, "source": "export function getAriaLabel(label, additionalLabelledBy) {\n var attributes = getAriaAttributeForLabel(label);\n\n if (additionalLabelledBy) {\n attributes['aria-labelledby'] = ((attributes['aria-labelledby'] || '') + ' ' + additionalLabelledBy).trim();\n }\n\n return attributes;\n}\n\nfunction getAriaAttributeForLabel(label) {\n if (!label) return {};\n\n /* See readme for label. When label starts with # it references ids of dom nodes instead.\n When used on aria-labelledby, they should be referenced without a starting hash/# */\n if (label[0] === '#') {\n return { 'aria-labelledby': label.substring(1).replace(/ #/g, ' ') };\n }\n return { 'aria-label': label };\n}" }, @@ -3080,8 +2964,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -3095,8 +2978,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3117,14 +2999,9 @@ "loc": "309:44-49" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { debounce } from '../utils';\nimport { getAriaLabel } from '../a11y';\n\nvar Input = function (_PureComponent) {\n _inherits(Input, _PureComponent);\n\n function Input(props) {\n _classCallCheck(this, Input);\n\n var _this = _possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).call(this, props));\n\n _this.handleInputChange = function (e) {\n e.persist();\n _this.delayedCallback(e);\n };\n\n _this.delayedCallback = debounce(function (e) {\n return _this.props.onInputChange(e.target.value);\n }, 300);\n return _this;\n }\n\n _createClass(Input, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n inputRef = _props.inputRef,\n _props$texts = _props.texts,\n texts = _props$texts === undefined ? {} : _props$texts,\n onFocus = _props.onFocus,\n onBlur = _props.onBlur,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n onKeyDown = _props.onKeyDown,\n activeDescendant = _props.activeDescendant;\n\n\n return React.createElement('input', _extends({\n type: 'text',\n disabled: disabled,\n ref: inputRef,\n className: 'search',\n placeholder: texts.placeholder || 'Choose...',\n onKeyDown: onKeyDown,\n onChange: this.handleInputChange,\n onFocus: onFocus,\n onBlur: onBlur,\n readOnly: readOnly,\n 'aria-activedescendant': activeDescendant,\n 'aria-autocomplete': onKeyDown ? 'list' : undefined\n }, getAriaLabel(texts.label)));\n }\n }]);\n\n return Input;\n}(PureComponent);\n\nInput.propTypes = {\n tags: PropTypes.array,\n texts: PropTypes.object,\n onInputChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTagRemove: PropTypes.func,\n onKeyDown: PropTypes.func,\n inputRef: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n activeDescendant: PropTypes.string,\n inlineSearchInput: PropTypes.bool\n};\n\n\nexport default Input;" }, @@ -3134,13 +3011,12 @@ "name": "./src/tags/index.js", "index": 14, "index2": 22, - "size": 4601, + "size": 4744, "cacheable": true, "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -3154,8 +3030,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3176,16 +3051,11 @@ "loc": "336:14-18" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, - "source": "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; }; }();\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Tag from '../tag';\nimport { getDataset } from '../utils';\nimport { ReactSortable } from 'react-sortablejs';\n\nimport './index.css';\n\nvar getTags = function getTags() {\n var tags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var onDelete = arguments[1];\n var readOnly = arguments[2];\n var disabled = arguments[3];\n var labelRemove = arguments[4];\n return tags.map(function (tag) {\n var _id = tag._id,\n label = tag.label,\n tagClassName = tag.tagClassName,\n dataset = tag.dataset;\n\n return React.createElement(\n 'li',\n _extends({\n className: ['tag-item', tagClassName].filter(Boolean).join(' '),\n key: 'tag-item-' + _id\n }, getDataset(dataset)),\n React.createElement(Tag, {\n label: label,\n id: _id,\n onDelete: onDelete,\n readOnly: readOnly,\n disabled: disabled,\n labelRemove: labelRemove\n })\n );\n });\n};\n\nvar Tags = function (_PureComponent) {\n _inherits(Tags, _PureComponent);\n\n function Tags() {\n _classCallCheck(this, Tags);\n\n return _possibleConstructorReturn(this, (Tags.__proto__ || Object.getPrototypeOf(Tags)).apply(this, arguments));\n }\n\n _createClass(Tags, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tags = _props.tags,\n onTagRemove = _props.onTagRemove,\n _props$texts = _props.texts,\n texts = _props$texts === undefined ? {} : _props$texts,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable,\n onReorderList = _props.onReorderList,\n children = _props.children;\n\n var lastItem = children || React.createElement(\n 'span',\n { className: 'placeholder' },\n texts.placeholder || 'Choose...'\n );\n\n return React.createElement(\n 'ul',\n { className: 'tag-list' },\n !sortable ? getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove) : React.createElement(\n ReactSortable,\n { list: tags, setList: function setList(newList) {\n return onReorderList(newList);\n } },\n getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)\n ),\n React.createElement(\n 'li',\n { className: 'tag-item' },\n lastItem\n )\n );\n }\n }]);\n\n return Tags;\n}(PureComponent);\n\nTags.propTypes = {\n tags: PropTypes.array,\n onTagRemove: PropTypes.func,\n readOnly: PropTypes.bool,\n sortable: PropTypes.bool,\n onReorderList: PropTypes.func,\n disabled: PropTypes.bool,\n texts: PropTypes.object,\n children: PropTypes.node\n};\n\n\nexport default Tags;" + "source": "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; }; }();\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Tag from '../tag';\nimport { getDataset } from '../utils';\nimport { ReactSortable } from 'react-sortablejs';\n\nimport './index.css';\n\nvar getTags = function getTags() {\n var tags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var onDelete = arguments[1];\n var readOnly = arguments[2];\n var disabled = arguments[3];\n var labelRemove = arguments[4];\n return tags.map(function (tag) {\n var _id = tag._id,\n label = tag.label,\n tagClassName = tag.tagClassName,\n dataset = tag.dataset;\n\n return React.createElement(\n 'li',\n _extends({\n className: ['tag-item', tagClassName].filter(Boolean).join(' '),\n key: 'tag-item-' + _id\n }, getDataset(dataset)),\n React.createElement(Tag, {\n label: label,\n id: _id,\n onDelete: onDelete,\n readOnly: readOnly,\n disabled: disabled,\n labelRemove: labelRemove\n })\n );\n });\n};\n\nvar Tags = function (_PureComponent) {\n _inherits(Tags, _PureComponent);\n\n function Tags() {\n _classCallCheck(this, Tags);\n\n return _possibleConstructorReturn(this, (Tags.__proto__ || Object.getPrototypeOf(Tags)).apply(this, arguments));\n }\n\n _createClass(Tags, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tags = _props.tags,\n onTagRemove = _props.onTagRemove,\n _props$texts = _props.texts,\n texts = _props$texts === undefined ? {} : _props$texts,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable,\n onReorderList = _props.onReorderList,\n newType = _props.newType,\n children = _props.children;\n\n var lastItem = children || React.createElement(\n 'span',\n { className: 'placeholder' },\n texts.placeholder || 'Choose...'\n );\n\n return React.createElement(\n 'ul',\n { className: 'tag-list' },\n !sortable ? getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove) : React.createElement(\n ReactSortable,\n {\n list: !newType || newType.length === 0 ? tags : newType,\n setList: function setList(newList) {\n return onReorderList(newList);\n }\n },\n getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)\n ),\n React.createElement(\n 'li',\n { className: 'tag-item' },\n lastItem\n )\n );\n }\n }]);\n\n return Tags;\n}(PureComponent);\n\nTags.propTypes = {\n tags: PropTypes.array,\n onTagRemove: PropTypes.func,\n readOnly: PropTypes.bool,\n sortable: PropTypes.bool,\n onReorderList: PropTypes.func,\n newType: PropTypes.array,\n disabled: PropTypes.bool,\n texts: PropTypes.object,\n children: PropTypes.node\n};\n\n\nexport default Tags;" }, { "id": null, @@ -3198,8 +3068,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -3213,8 +3082,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3235,14 +3103,9 @@ "loc": "333:12-19" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getAriaLabel } from '../a11y';\nimport { getTagId } from '../tag';\n\nvar Trigger = function (_PureComponent) {\n _inherits(Trigger, _PureComponent);\n\n function Trigger() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Trigger);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Trigger.__proto__ || Object.getPrototypeOf(Trigger)).call.apply(_ref, [this].concat(args))), _this), _this.getAriaAttributes = function () {\n var _this$props = _this.props,\n mode = _this$props.mode,\n _this$props$texts = _this$props.texts,\n texts = _this$props$texts === undefined ? {} : _this$props$texts,\n showDropdown = _this$props.showDropdown,\n clientId = _this$props.clientId,\n tags = _this$props.tags;\n\n\n var triggerId = clientId + '_trigger';\n var labelledBy = [];\n var labelAttributes = getAriaLabel(texts.label);\n if (tags && tags.length) {\n if (labelAttributes['aria-label']) {\n // Adds reference to self when having aria-label\n labelledBy.push(triggerId);\n }\n tags.forEach(function (t) {\n labelledBy.push(getTagId(t._id));\n });\n labelAttributes = getAriaLabel(texts.label, labelledBy.join(' '));\n }\n\n var attributes = _extends({\n id: triggerId,\n role: 'button',\n tabIndex: 0,\n 'aria-haspopup': mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-expanded': showDropdown ? 'true' : 'false'\n }, labelAttributes);\n\n return attributes;\n }, _this.handleTrigger = function (e) {\n // Just return if triggered from keyDown and the key isn't enter, space or arrow down\n if (e.key && e.keyCode !== 13 && e.keyCode !== 32 && e.keyCode !== 40) {\n return;\n } else if (e.key && _this.triggerNode && _this.triggerNode !== document.activeElement) {\n // Do not trigger if not activeElement\n return;\n } else if (!_this.props.showDropdown && e.keyCode === 32) {\n // Avoid adding space to input on open\n e.preventDefault();\n }\n\n // Else this is a key press that should trigger the dropdown\n _this.props.onTrigger(e);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Trigger, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n showDropdown = _props.showDropdown;\n\n\n var dropdownTriggerClassname = ['dropdown-trigger', 'arrow', disabled && 'disabled', readOnly && 'readOnly', showDropdown && 'top', !showDropdown && 'bottom'].filter(Boolean).join(' ');\n\n return React.createElement(\n 'a',\n _extends({\n ref: function ref(node) {\n _this2.triggerNode = node;\n },\n className: dropdownTriggerClassname,\n onClick: !disabled ? this.handleTrigger : undefined,\n onKeyDown: !disabled ? this.handleTrigger : undefined\n }, this.getAriaAttributes()),\n this.props.children\n );\n }\n }]);\n\n return Trigger;\n}(PureComponent);\n\nTrigger.propTypes = {\n onTrigger: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n showDropdown: PropTypes.bool,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n texts: PropTypes.object,\n clientId: PropTypes.string,\n tags: PropTypes.array\n};\n\n\nexport default Trigger;" }, @@ -3257,8 +3120,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -3272,8 +3134,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3291,17 +3152,12 @@ "moduleName": "./src/index.js", "type": "harmony import specifier", "userRequest": "./tree", - "loc": "354:36-40" + "loc": "355:36-40" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport TreeNode from '../tree-node';\n\nvar shouldRenderNode = function shouldRenderNode(node, searchModeOn, data) {\n if (searchModeOn || node.expanded) return true;\n\n var parent = node._parent && data.get(node._parent);\n // if it has a parent, then check parent's state.\n // otherwise root nodes are always rendered\n return !parent || parent.expanded;\n};\n\nvar Tree = function (_Component) {\n _inherits(Tree, _Component);\n\n function Tree(props) {\n _classCallCheck(this, Tree);\n\n var _this = _possibleConstructorReturn(this, (Tree.__proto__ || Object.getPrototypeOf(Tree)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.currentPage = 1;\n _this.computeInstanceProps(props, true);\n\n _this.state = {\n items: _this.allVisibleNodes.slice(0, _this.props.pageSize)\n };\n return _this;\n }\n\n _createClass(Tree, [{\n key: 'render',\n value: function render() {\n var searchModeOn = this.props.searchModeOn;\n\n\n return React.createElement(\n 'ul',\n _extends({ className: 'root ' + (searchModeOn ? 'searchModeOn' : ''), ref: this.setNodeRef }, this.getAriaAttributes()),\n this.state.scrollableTarget && React.createElement(\n InfiniteScroll,\n {\n dataLength: this.state.items.length,\n next: this.loadMore,\n hasMore: this.hasMore(),\n loader: React.createElement(\n 'span',\n { className: 'searchLoader' },\n 'Loading...'\n ),\n scrollableTarget: this.state.scrollableTarget\n },\n this.state.items\n )\n );\n }\n }]);\n\n return Tree;\n}(Component);\n\nTree.propTypes = {\n data: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onChange: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n pageSize: PropTypes.number,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n activeDescendant: PropTypes.string\n};\nTree.defaultProps = {\n pageSize: 100\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.componentWillReceiveProps = function (nextProps) {\n var activeDescendant = nextProps.activeDescendant;\n\n var hasSameActiveDescendant = activeDescendant === _this2.props.activeDescendant;\n _this2.computeInstanceProps(nextProps, !hasSameActiveDescendant);\n _this2.setState({ items: _this2.allVisibleNodes.slice(0, _this2.currentPage * _this2.props.pageSize) }, function () {\n if (hasSameActiveDescendant) return;\n var scrollableTarget = _this2.state.scrollableTarget;\n\n var activeLi = activeDescendant && document && document.getElementById(activeDescendant);\n if (activeLi && scrollableTarget) {\n scrollableTarget.scrollTop = activeLi.offsetTop - (scrollableTarget.clientHeight - activeLi.clientHeight) / 2;\n }\n });\n };\n\n this.componentDidMount = function () {\n _this2.setState({ scrollableTarget: _this2.node.parentNode });\n };\n\n this.computeInstanceProps = function (props, checkActiveDescendant) {\n _this2.allVisibleNodes = _this2.getNodes(props);\n _this2.totalPages = Math.ceil(_this2.allVisibleNodes.length / _this2.props.pageSize);\n if (checkActiveDescendant && props.activeDescendant) {\n var currentId = props.activeDescendant.replace(/_li$/, '');\n var focusIndex = _this2.allVisibleNodes.findIndex(function (n) {\n return n.key === currentId;\n }) + 1;\n _this2.currentPage = focusIndex > 0 ? Math.ceil(focusIndex / _this2.props.pageSize) : 1;\n }\n };\n\n this.getNodes = function (props) {\n var data = props.data,\n keepTreeOnSearch = props.keepTreeOnSearch,\n keepChildrenOnSearch = props.keepChildrenOnSearch,\n searchModeOn = props.searchModeOn,\n mode = props.mode,\n showPartiallySelected = props.showPartiallySelected,\n readOnly = props.readOnly,\n onAction = props.onAction,\n onChange = props.onChange,\n onCheckboxChange = props.onCheckboxChange,\n onNodeToggle = props.onNodeToggle,\n activeDescendant = props.activeDescendant,\n clientId = props.clientId;\n\n var items = [];\n data.forEach(function (node) {\n if (shouldRenderNode(node, searchModeOn, data)) {\n items.push(React.createElement(TreeNode, _extends({\n keepTreeOnSearch: keepTreeOnSearch,\n keepChildrenOnSearch: keepChildrenOnSearch,\n key: node._id\n }, node, {\n searchModeOn: searchModeOn,\n onChange: onChange,\n onCheckboxChange: onCheckboxChange,\n onNodeToggle: onNodeToggle,\n onAction: onAction,\n mode: mode,\n showPartiallySelected: showPartiallySelected,\n readOnly: readOnly,\n clientId: clientId,\n activeDescendant: activeDescendant\n })));\n }\n });\n return items;\n };\n\n this.hasMore = function () {\n return _this2.currentPage < _this2.totalPages;\n };\n\n this.loadMore = function () {\n _this2.currentPage = _this2.currentPage + 1;\n var nextItems = _this2.allVisibleNodes.slice(0, _this2.currentPage * _this2.props.pageSize);\n _this2.setState({ items: nextItems });\n };\n\n this.setNodeRef = function (node) {\n _this2.node = node;\n };\n\n this.getAriaAttributes = function () {\n var mode = _this2.props.mode;\n\n\n var attributes = {\n /* https://www.w3.org/TR/wai-aria-1.1/#select\n * https://www.w3.org/TR/wai-aria-1.1/#tree */\n role: mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-multiselectable': /multiSelect|hierarchical/.test(mode)\n };\n\n return attributes;\n };\n};\n\nexport default Tree;" }, @@ -3316,8 +3172,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -3331,8 +3186,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3416,17 +3270,9 @@ "loc": "321:13-31" } ], - "usedExports": [ - "default", - "FocusActionNames" - ], - "providedExports": [ - "NavActions", - "FocusActionNames", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default", "FocusActionNames"], + "providedExports": ["NavActions", "FocusActionNames", "default"], + "optimizationBailout": [], "depth": 1, "source": "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\"); } }; }();\n\nimport nodeVisitor from './nodeVisitor';\nimport { getTagId } from '../tag';\n\nvar Keys = {\n Up: 'ArrowUp',\n Down: 'ArrowDown',\n Left: 'ArrowLeft',\n Right: 'ArrowRight',\n Enter: 'Enter',\n Home: 'Home',\n PageUp: 'PageUp',\n End: 'End',\n PageDown: 'PageDown'\n};\n\nexport var NavActions = {\n None: 'None',\n FocusPrevious: 'FocusPrevious',\n FocusNext: 'FocusNext',\n FocusParent: 'FocusParent',\n FocusFirst: 'FocusFirst',\n FocusLast: 'FocusLast',\n ToggleExpanded: 'ToggleExpanded',\n ToggleChecked: 'ToggleChecked'\n};\n\nexport var FocusActionNames = new Set([NavActions.FocusPrevious, NavActions.FocusNext, NavActions.FocusParent, NavActions.FocusFirst, NavActions.FocusLast]);\n\nvar validTriggerOpenKeys = [Keys.Up, Keys.Down, Keys.Home, Keys.PageUp, Keys.End, Keys.PageDown];\nvar validKeys = validTriggerOpenKeys.concat([Keys.Left, Keys.Right, Keys.Enter]);\n\nvar isValidKey = function isValidKey(key, isOpen) {\n var keysToCheck = isOpen ? validKeys : validTriggerOpenKeys;\n return keysToCheck.indexOf(key) > -1;\n};\n\nvar isMatchingEvent = function isMatchingEvent(key, keys, currentFocus, nonFocusKey) {\n return keys.indexOf(key) > -1 || !currentFocus && key === nonFocusKey;\n};\n\nvar isFocusFirstEvent = function isFocusFirstEvent(key, currentFocus) {\n return isMatchingEvent(key, [Keys.Home, Keys.PageUp], currentFocus, Keys.Down);\n};\n\nvar isFocusLastEvent = function isFocusLastEvent(key, currentFocus) {\n return isMatchingEvent(key, [Keys.End, Keys.PageDown], currentFocus, Keys.Up);\n};\n\nvar isReverseTraverseAction = function isReverseTraverseAction(action) {\n return isMatchingEvent(action, [NavActions.FocusPrevious, NavActions.FocusLast], true);\n};\n\nvar isEdgeTraverseAction = function isEdgeTraverseAction(action) {\n return isMatchingEvent(action, [NavActions.FocusFirst, NavActions.FocusLast], true);\n};\n\nvar getLeftNavAction = function getLeftNavAction(currentFocus, key) {\n if (!currentFocus || key !== Keys.Left) return NavActions.None;\n\n if (currentFocus.expanded === true) {\n return NavActions.ToggleExpanded;\n }\n if (currentFocus._parent) {\n return NavActions.FocusParent;\n }\n\n return NavActions.None;\n};\n\nvar getRightNavAction = function getRightNavAction(currentFocus, key) {\n if (!currentFocus || !currentFocus._children || key !== Keys.Right) {\n return NavActions.None;\n }\n\n return currentFocus.expanded !== true ? NavActions.ToggleExpanded : NavActions.FocusNext;\n};\n\nvar getRelativeAction = function getRelativeAction(currentFocus, key) {\n if (!currentFocus) return NavActions.None;\n switch (key) {\n case Keys.Up:\n return NavActions.FocusPrevious;\n case Keys.Down:\n return NavActions.FocusNext;\n case Keys.Enter:\n return NavActions.ToggleChecked;\n default:\n return NavActions.None;\n }\n};\n\nvar getAction = function getAction(currentFocus, key) {\n var action = void 0;\n if (key === Keys.Left) {\n action = getLeftNavAction(currentFocus, key);\n } else if (key === Keys.Right) {\n action = getRightNavAction(currentFocus, key);\n } else if (isFocusFirstEvent(key, currentFocus)) {\n action = NavActions.FocusFirst;\n } else if (isFocusLastEvent(key, currentFocus)) {\n action = NavActions.FocusLast;\n } else {\n action = getRelativeAction(currentFocus, key);\n }\n return action;\n};\n\nvar getParentFocus = function getParentFocus(prevFocus, getNodeById) {\n return prevFocus && prevFocus._parent ? getNodeById(prevFocus._parent) : prevFocus;\n};\n\nvar getRelativeNeighborsFocus = function getRelativeNeighborsFocus(sortedNodes, prevFocus) {\n var nextIndex = sortedNodes.indexOf(prevFocus) + 1;\n if (nextIndex % sortedNodes.length === 0) {\n return sortedNodes[0];\n }\n return sortedNodes[nextIndex];\n};\n\nvar getRelativeFocus = function getRelativeFocus(sortedNodes, prevFocus, action) {\n if (!sortedNodes || sortedNodes.length === 0) {\n return prevFocus;\n }\n\n var focus = prevFocus;\n if (isEdgeTraverseAction(action)) {\n ;\n var _sortedNodes = _slicedToArray(sortedNodes, 1);\n\n focus = _sortedNodes[0];\n } else if ([NavActions.FocusPrevious, NavActions.FocusNext].indexOf(action) > -1) {\n focus = getRelativeNeighborsFocus(sortedNodes, prevFocus);\n }\n return focus;\n};\n\nvar getNextFocus = function getNextFocus(tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded) {\n if (action === NavActions.FocusParent) {\n return getParentFocus(prevFocus, getNodeById);\n }\n if (!FocusActionNames.has(action)) {\n return prevFocus;\n }\n\n var nodes = nodeVisitor.getVisibleNodes(tree, getNodeById, markSubTreeOnNonExpanded);\n if (isReverseTraverseAction(action)) {\n nodes = nodes.reverse();\n }\n\n return getRelativeFocus(nodes, prevFocus, action);\n};\n\nvar getNextFocusAfterTagDelete = function getNextFocusAfterTagDelete(deletedId, prevTags, tags, fallback) {\n // Sets new focus to next tag or returns fallback\n var index = prevTags && prevTags.findIndex(function (t) {\n return t._id === deletedId;\n });\n if (index < 0 || !tags.length) return fallback;\n\n index = tags.length > index ? index : tags.length - 1;\n var newFocusId = tags[index]._id;\n var focusNode = document.getElementById(getTagId(newFocusId));\n if (focusNode) {\n return focusNode.firstElementChild || fallback;\n }\n return fallback;\n};\n\nvar handleFocusNavigationkey = function handleFocusNavigationkey(tree, action, prevFocus, getNodeById, markSubTreeOnNonExpanded) {\n var newFocus = keyboardNavigation.getNextFocus(tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded);\n if (prevFocus && newFocus && prevFocus._id !== newFocus._id) {\n prevFocus._focused = false;\n }\n if (newFocus) {\n newFocus._focused = true;\n return newFocus._id;\n }\n return prevFocus && prevFocus._id;\n};\n\nvar handleToggleNavigationkey = function handleToggleNavigationkey(action, prevFocus, readOnly, onToggleChecked, onToggleExpanded) {\n if (action === NavActions.ToggleChecked && !readOnly && !(prevFocus.readOnly || prevFocus.disabled)) {\n onToggleChecked(prevFocus._id, prevFocus.checked !== true);\n } else if (action === NavActions.ToggleExpanded) {\n onToggleExpanded(prevFocus._id);\n }\n return prevFocus && prevFocus._id;\n};\n\nvar keyboardNavigation = {\n isValidKey: isValidKey,\n getAction: getAction,\n getNextFocus: getNextFocus,\n getNextFocusAfterTagDelete: getNextFocusAfterTagDelete,\n handleFocusNavigationkey: handleFocusNavigationkey,\n handleToggleNavigationkey: handleToggleNavigationkey\n};\n\nexport default keyboardNavigation;" }, @@ -3441,8 +3287,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -3456,8 +3301,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3478,14 +3322,9 @@ "loc": "48:30-41" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport getPartialState from './getPartialState';\nimport { isEmpty } from '../utils';\nimport flattenTree from './flatten-tree';\nimport nodeVisitor from './nodeVisitor';\nimport keyboardNavigation, { FocusActionNames } from './keyboardNavigation';\n\nvar TreeManager = function () {\n function TreeManager(_ref) {\n var data = _ref.data,\n mode = _ref.mode,\n showPartiallySelected = _ref.showPartiallySelected,\n rootPrefixId = _ref.rootPrefixId,\n searchPredicate = _ref.searchPredicate;\n\n _classCallCheck(this, TreeManager);\n\n this._src = data;\n this.simpleSelect = mode === 'simpleSelect';\n this.radioSelect = mode === 'radioSelect';\n this.hierarchical = mode === 'hierarchical';\n this.searchPredicate = searchPredicate;\n\n var _flattenTree = flattenTree({\n tree: JSON.parse(JSON.stringify(data)),\n simple: this.simpleSelect,\n radio: this.radioSelect,\n showPartialState: showPartiallySelected,\n hierarchical: this.hierarchical,\n rootPrefixId: rootPrefixId\n }),\n list = _flattenTree.list,\n defaultValues = _flattenTree.defaultValues,\n singleSelectedNode = _flattenTree.singleSelectedNode;\n\n this.tree = list;\n this.defaultValues = defaultValues;\n this.showPartialState = !this.hierarchical && showPartiallySelected;\n this.searchMaps = new Map();\n\n if ((this.simpleSelect || this.radioSelect) && singleSelectedNode) {\n // Remembers initial check on single select dropdowns\n this.currentChecked = singleSelectedNode._id;\n }\n }\n\n _createClass(TreeManager, [{\n key: 'getNodeById',\n value: function getNodeById(id) {\n return this.tree.get(id);\n }\n }, {\n key: 'getMatches',\n value: function getMatches(searchTerm) {\n var _this = this;\n\n if (this.searchMaps.has(searchTerm)) {\n return this.searchMaps.get(searchTerm);\n }\n\n var proximity = -1;\n var closestMatch = searchTerm;\n this.searchMaps.forEach(function (m, key) {\n if (searchTerm.startsWith(key) && key.length > proximity) {\n proximity = key.length;\n closestMatch = key;\n }\n });\n\n var matches = [];\n\n var addOnMatch = this._getAddOnMatch(matches, searchTerm);\n\n if (closestMatch !== searchTerm) {\n var superMatches = this.searchMaps.get(closestMatch);\n superMatches.forEach(function (key) {\n return addOnMatch(_this.getNodeById(key));\n });\n } else {\n this.tree.forEach(addOnMatch);\n }\n\n this.searchMaps.set(searchTerm, matches);\n return matches;\n }\n }, {\n key: 'addParentsToTree',\n value: function addParentsToTree(id, tree) {\n if (id !== undefined) {\n var node = this.getNodeById(id);\n this.addParentsToTree(node._parent, tree);\n node.hide = node._isMatch ? node.hide : true;\n node.matchInChildren = true;\n tree.set(id, node);\n }\n }\n }, {\n key: 'addChildrenToTree',\n value: function addChildrenToTree(ids, tree, matches) {\n var _this2 = this;\n\n if (ids !== undefined) {\n ids.forEach(function (id) {\n if (matches && matches.includes(id)) {\n // if a child is found by search anyways, don't display it as a child here\n return;\n }\n var node = _this2.getNodeById(id);\n node.matchInParent = true;\n tree.set(id, node);\n _this2.addChildrenToTree(node._children, tree);\n });\n }\n }\n }, {\n key: 'filterTree',\n value: function filterTree(searchTerm, keepTreeOnSearch, keepChildrenOnSearch) {\n var _this3 = this;\n\n var matches = this.getMatches(searchTerm.toLowerCase());\n\n var matchTree = new Map();\n\n matches.forEach(function (m) {\n var node = _this3.getNodeById(m);\n node.hide = false;\n\n // add a marker to tell `addParentsToTree` to not hide this node; even if it's an ancestor node\n node._isMatch = true;\n\n if (keepTreeOnSearch) {\n // add parent nodes first or else the tree won't be rendered in correct hierarchy\n _this3.addParentsToTree(node._parent, matchTree);\n }\n matchTree.set(m, node);\n if (keepTreeOnSearch && keepChildrenOnSearch) {\n // add children nodes after a found match\n _this3.addChildrenToTree(node._children, matchTree, matches);\n }\n });\n\n var allNodesHidden = matches.length === 0;\n\n // we store a local reference so that components can use it in subsequent renders\n // this is the least intrusive way of fixing #190\n this.matchTree = matchTree;\n\n return { allNodesHidden: allNodesHidden, tree: matchTree };\n }\n }, {\n key: 'restoreNodes',\n value: function restoreNodes() {\n this.tree.forEach(function (node) {\n node.hide = false;\n });\n\n return this.tree;\n }\n }, {\n key: 'restoreDefaultValues',\n value: function restoreDefaultValues() {\n var _this4 = this;\n\n this.defaultValues.forEach(function (id) {\n _this4.setNodeCheckedState(id, true);\n });\n\n return this.tree;\n }\n }, {\n key: 'togglePreviousChecked',\n value: function togglePreviousChecked(id, checked) {\n var prevChecked = this.currentChecked;\n\n // if id is same as previously selected node, then do nothing (since it's state is already set correctly by setNodeCheckedState)\n // but if they ar not same, then toggle the previous one\n if (prevChecked && prevChecked !== id) this.getNodeById(prevChecked).checked = false;\n\n this.currentChecked = checked ? id : null;\n }\n }, {\n key: 'setNodeCheckedState',\n value: function setNodeCheckedState(id, checked) {\n var node = this.getNodeById(id);\n node.checked = checked;\n\n // TODO: this can probably be combined with the same check in the else block. investigate in a separate release.\n if (this.showPartialState) {\n node.partial = false;\n }\n\n if (this.simpleSelect) {\n this.togglePreviousChecked(id, checked);\n } else if (this.radioSelect) {\n this.togglePreviousChecked(id, checked);\n if (this.showPartialState) {\n this.partialCheckParents(node);\n }\n if (!checked) {\n this.unCheckParents(node);\n }\n } else {\n if (!this.hierarchical) this.toggleChildren(id, checked);\n\n if (this.showPartialState) {\n this.partialCheckParents(node);\n }\n\n if (!this.hierarchical && !checked) {\n this.unCheckParents(node);\n }\n }\n }\n\n /**\n * Walks up the tree unchecking parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n\n }, {\n key: 'unCheckParents',\n value: function unCheckParents(node) {\n var parent = node._parent;\n while (parent) {\n var next = this.getNodeById(parent);\n next.checked = false;\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this));\n parent = next._parent;\n }\n }\n\n /**\n * Walks up the tree setting partial state on parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n\n }, {\n key: 'partialCheckParents',\n value: function partialCheckParents(node) {\n var _this5 = this;\n\n var parent = node._parent;\n while (parent) {\n var next = this.getNodeById(parent);\n next.checked = next._children.every(function (c) {\n return _this5.getNodeById(c).checked;\n });\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this));\n parent = next._parent;\n }\n }\n }, {\n key: 'toggleChildren',\n value: function toggleChildren(id, state) {\n var _this6 = this;\n\n var node = this.getNodeById(id);\n node.checked = state;\n\n if (this.showPartialState) {\n node.partial = false;\n }\n\n if (!isEmpty(node._children)) {\n node._children.forEach(function (id) {\n return _this6.toggleChildren(id, state);\n });\n }\n }\n }, {\n key: 'toggleNodeExpandState',\n value: function toggleNodeExpandState(id) {\n var node = this.getNodeById(id);\n node.expanded = !node.expanded;\n if (!node.expanded) this.collapseChildren(node);\n return this.tree;\n }\n }, {\n key: 'collapseChildren',\n value: function collapseChildren(node) {\n var _this7 = this;\n\n node.expanded = false;\n if (!isEmpty(node._children)) {\n node._children.forEach(function (c) {\n return _this7.collapseChildren(_this7.getNodeById(c));\n });\n }\n }\n }, {\n key: 'getTreeAndTags',\n value: function getTreeAndTags() {\n return { tree: this.tree, tags: this.tags };\n }\n }, {\n key: 'handleNavigationKey',\n value: function handleNavigationKey(currentFocus, tree, key, readOnly, markSubTreeOnNonExpanded, onToggleChecked, onToggleExpanded) {\n var _this8 = this;\n\n var prevFocus = currentFocus && this.getNodeById(currentFocus);\n var getNodeById = function getNodeById(id) {\n return _this8.getNodeById(id);\n };\n var action = keyboardNavigation.getAction(prevFocus, key);\n\n if (FocusActionNames.has(action)) {\n var newFocus = keyboardNavigation.handleFocusNavigationkey(tree, action, prevFocus, getNodeById, markSubTreeOnNonExpanded);\n return newFocus;\n }\n\n if (!prevFocus || !tree.has(prevFocus._id)) {\n // No current focus or not visible\n return currentFocus;\n }\n\n return keyboardNavigation.handleToggleNavigationkey(action, prevFocus, readOnly, onToggleChecked, onToggleExpanded);\n }\n }, {\n key: '_getAddOnMatch',\n value: function _getAddOnMatch(matches, searchTerm) {\n var isMatch = function isMatch(node, term) {\n return node.label.toLowerCase().indexOf(term) >= 0;\n };\n if (typeof this.searchPredicate === 'function') {\n isMatch = this.searchPredicate;\n }\n\n return function (node) {\n if (isMatch(node, searchTerm)) {\n matches.push(node._id);\n }\n };\n }\n }, {\n key: 'tags',\n get: function get() {\n var _this9 = this;\n\n if (this.radioSelect || this.simpleSelect) {\n if (this.currentChecked) {\n return [this.getNodeById(this.currentChecked)];\n }\n return [];\n }\n\n return nodeVisitor.getNodesMatching(this.tree, function (node, key, visited) {\n if (node.checked && !_this9.hierarchical) {\n // Parent node, so no need to walk children\n nodeVisitor.markSubTreeVisited(node, visited, function (id) {\n return _this9.getNodeById(id);\n });\n }\n return node.checked;\n });\n }\n }]);\n\n return TreeManager;\n}();\n\nexport default TreeManager;" }, @@ -3500,8 +3339,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -3520,8 +3358,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3542,14 +3379,9 @@ "loc": "1:0-50" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "var toKebabCase = function toKebabCase(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n};\n\nvar getDataset = function getDataset() {\n var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(o).reduce(function (acc, cur) {\n acc['data-' + toKebabCase(cur)] = o[cur];\n return acc;\n }, {});\n};\n\nexport default getDataset;" }, @@ -3564,8 +3396,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -3584,8 +3415,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3607,11 +3437,8 @@ } ], "usedExports": false, - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "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\"); } }; }();\n\nvar mapToObject = function mapToObject(map) {\n var obj = Object.create(null);\n // eslint-disable-next-line no-restricted-syntax\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = map[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _step$value = _slicedToArray(_step.value, 2),\n k = _step$value[0],\n v = _step$value[1];\n\n // We don’t escape the key '__proto__'\n // which can cause problems on older engines\n obj[k] = v;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return obj;\n};\n\nexport default mapToObject;" }, @@ -3626,8 +3453,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -3646,8 +3472,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3668,14 +3493,9 @@ "loc": "3:0-47" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "/**\n * Simplified implmentation of isEmpty.\n * Note: This is not complete and will return false positives for empty objects and likes.\n * However, it suffices for the limited use-case of this project.\n */\nvar isEmpty = function isEmpty(o) {\n return !o || Array.isArray(o) && !o.length;\n};\n\nexport default isEmpty;" }, @@ -3690,8 +3510,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -3710,8 +3529,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3732,14 +3550,9 @@ "loc": "4:0-61" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "var getPath = function getPath(e) {\n if (e.path) return e.path;\n\n var elem = e.target;\n var path = [elem];\n\n while (elem.parentElement) {\n elem = elem.parentElement;\n path.unshift(elem);\n }\n\n return path;\n};\n\nexport default (function (e, node) {\n if (!(e instanceof Event)) return false;\n return !getPath(e).some(function (eventNode) {\n return eventNode === node;\n });\n});" }, @@ -3754,8 +3567,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -3774,8 +3586,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3796,14 +3607,9 @@ "loc": "5:0-49" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "/**\n * Modified debounce that always invokes on leading edge\n * See unmodified: https://gist.github.com/mrchief/a7e8938ee96774f05644905b37f09536\n */\nexport default (function (func, wait) {\n var timeout = void 0;\n\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var later = function later() {\n timeout = null;\n func.apply(undefined, args);\n };\n\n // timeout will be undefined the first time (leading edge)\n // so the callback will get executed once on leading edge\n var callNow = !timeout;\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) func.apply(undefined, args);\n };\n});" }, @@ -3818,8 +3624,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -3838,8 +3643,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3860,14 +3664,9 @@ "loc": "6:0-61" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "var generateUID = function generateUID(prefix) {\n var counter = 1;\n\n var map = new WeakMap();\n\n var get = function get(item) {\n if (!map.has(item)) {\n map.set(item, counter++);\n }\n return '' + prefix + map.get(item);\n };\n\n var reset = function reset() {\n map = new WeakMap();\n counter = 1;\n };\n\n return { get: get, reset: reset };\n};\n\nvar clientIdGenerator = generateUID('rdts');\nexport default clientIdGenerator;" }, @@ -3882,8 +3681,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/keyboardNavigation.js", "issuerId": null, "issuerName": "./src/tree-manager/keyboardNavigation.js", @@ -3902,8 +3700,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -3960,16 +3757,9 @@ "loc": "164:42-50" } ], - "usedExports": [ - "default", - "getTagId" - ], - "providedExports": [ - "getTagId", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default", "getTagId"], + "providedExports": ["getTagId", "default"], + "optimizationBailout": [], "depth": 2, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport './index.css';\n\nexport var getTagId = function getTagId(id) {\n return id + '_tag';\n};\n\nvar Tag = function (_PureComponent) {\n _inherits(Tag, _PureComponent);\n\n function Tag() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Tag);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Tag.__proto__ || Object.getPrototypeOf(Tag)).call.apply(_ref, [this].concat(args))), _this), _this.handleClick = function (e) {\n var _this$props = _this.props,\n id = _this$props.id,\n onDelete = _this$props.onDelete;\n\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n onDelete(id, (e.key || e.keyCode) !== undefined);\n }, _this.onKeyDown = function (e) {\n if (e.key === 'Backspace') {\n _this.handleClick(e);\n e.preventDefault();\n }\n }, _this.onKeyUp = function (e) {\n if (e.keyCode === 32 || ['Delete', 'Enter'].indexOf(e.key) > -1) {\n _this.handleClick(e);\n e.preventDefault();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Tag, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n id = _props.id,\n label = _props.label,\n _props$labelRemove = _props.labelRemove,\n labelRemove = _props$labelRemove === undefined ? 'Remove' : _props$labelRemove,\n readOnly = _props.readOnly,\n disabled = _props.disabled;\n\n\n var tagId = getTagId(id);\n var buttonId = id + '_button';\n var className = ['tag-remove', readOnly && 'readOnly', disabled && 'disabled'].filter(Boolean).join(' ');\n var isDisabled = readOnly || disabled;\n\n return React.createElement(\n 'span',\n { className: 'tag', id: tagId, 'aria-label': label },\n label,\n React.createElement(\n 'button',\n {\n id: buttonId,\n onClick: !isDisabled ? this.handleClick : undefined,\n onKeyDown: !isDisabled ? this.onKeyDown : undefined,\n onKeyUp: !isDisabled ? this.onKeyUp : undefined,\n className: className,\n type: 'button',\n 'aria-label': labelRemove,\n 'aria-labelledby': buttonId + ' ' + tagId,\n 'aria-disabled': isDisabled\n },\n 'x'\n )\n );\n }\n }]);\n\n return Tag;\n}(PureComponent);\n\nTag.propTypes = {\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onDelete: PropTypes.func,\n readOnly: PropTypes.bool,\n disabled: PropTypes.bool,\n labelRemove: PropTypes.string\n};\n\n\nexport default Tag;" }, @@ -3984,8 +3774,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.js", "issuerId": null, "issuerName": "./src/tags/index.js", @@ -4004,8 +3793,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4023,20 +3811,12 @@ "moduleName": "./src/tags/index.js", "type": "harmony import specifier", "userRequest": "react-sortablejs", - "loc": "83:10-23" + "loc": "84:10-23" } ], - "usedExports": [ - "ReactSortable" - ], - "providedExports": [ - "MultiDrag", - "Sortable", - "Swap", - "ReactSortable" - ], - "optimizationBailout": [ - ], + "usedExports": ["ReactSortable"], + "providedExports": ["MultiDrag", "Sortable", "Swap", "ReactSortable"], + "optimizationBailout": [], "depth": 2, "source": "import Sortable from 'sortablejs';\nexport { MultiDrag, default as Sortable, Swap } from 'sortablejs';\nimport classNames from 'classnames';\nimport { createElement, Children, cloneElement, createRef, Component } from 'react';\nimport invariant from 'tiny-invariant';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\n/**\r\n * Removes the `node` from the DOM\r\n * @param node\r\n */\r\nfunction removeNode(node) {\r\n if (node.parentElement !== null)\r\n node.parentElement.removeChild(node);\r\n}\r\n/**\r\n * Inserts the `newChild` node at the given index in a parent\r\n * @param parent The parent HTML Element.\r\n * @param newChild A HTML eement to add as a child of the parent.\r\n * @param index index of the parent to place the new child in.\r\n */\r\nfunction insertNodeAt(parent, newChild, index) {\r\n var refChild = parent.children[index] || null;\r\n parent.insertBefore(newChild, refChild);\r\n}\r\nfunction removeNodes(customs) {\r\n customs.forEach(function (curr) { return removeNode(curr.element); });\r\n}\r\nfunction insertNodes(customs) {\r\n customs.forEach(function (curr) {\r\n insertNodeAt(curr.parentElement, curr.element, curr.oldIndex);\r\n });\r\n}\r\nfunction createCustoms(evt, list) {\r\n var mode = getMode(evt);\r\n var parentElement = { parentElement: evt.from };\r\n var custom = [];\r\n switch (mode) {\r\n case \"normal\":\r\n var item = {\r\n element: evt.item,\r\n newIndex: evt.newIndex,\r\n oldIndex: evt.oldIndex,\r\n parentElement: evt.from\r\n };\r\n custom = [item];\r\n break;\r\n case \"swap\":\r\n var drag = __assign({ element: evt.item, oldIndex: evt.oldIndex, newIndex: evt.newIndex }, parentElement);\r\n var swap = __assign({ element: evt.swapItem, oldIndex: evt.newIndex, newIndex: evt.oldIndex }, parentElement);\r\n custom = [drag, swap];\r\n break;\r\n case \"multidrag\":\r\n custom = evt.oldIndicies.map(function (curr, index) { return (__assign({ element: curr.multiDragElement, oldIndex: curr.index, newIndex: evt.newIndicies[index].index }, parentElement)); });\r\n break;\r\n }\r\n var customs = createNormalized(custom, list);\r\n return customs;\r\n}\r\n/** moves items form old index to new index without breaking anything ideally. */\r\nfunction handleStateChanges(normalized, list) {\r\n var a = handleStateRemove(normalized, list);\r\n var b = handleStateAdd(normalized, a);\r\n return b;\r\n}\r\nfunction handleStateRemove(normalized, list) {\r\n var newList = __spread(list);\r\n normalized\r\n .concat()\r\n .reverse()\r\n .forEach(function (curr) { return newList.splice(curr.oldIndex, 1); });\r\n return newList;\r\n}\r\nfunction handleStateAdd(normalized, list) {\r\n var newList = __spread(list);\r\n normalized.forEach(function (curr) { return newList.splice(curr.newIndex, 0, curr.item); });\r\n return newList;\r\n}\r\nfunction getMode(evt) {\r\n if (evt.oldIndicies && evt.oldIndicies.length > 0)\r\n return \"multidrag\";\r\n if (evt.swapItem)\r\n return \"swap\";\r\n return \"normal\";\r\n}\r\nfunction createNormalized(inputs, list) {\r\n var normalized = inputs\r\n .map(function (curr) { return (__assign(__assign({}, curr), { item: list[curr.oldIndex] })); })\r\n .sort(function (a, b) { return a.oldIndex - b.oldIndex; });\r\n return normalized;\r\n}\r\n/**\r\n * Removes the following group of properties from `props`,\r\n * leaving only `Sortable.Options` without any `on` methods.\r\n * @param props `ReactSortable.Props`\r\n */\r\nfunction destructurePropsForOptions(props) {\r\n var \r\n // react sortable props\r\n list = props.list, setList = props.setList, children = props.children, tag = props.tag, style = props.style, className = props.className, clone = props.clone, \r\n // sortable options that have methods we want to overwrite\r\n onAdd = props.onAdd, onChange = props.onChange, onChoose = props.onChoose, onClone = props.onClone, onEnd = props.onEnd, onFilter = props.onFilter, onRemove = props.onRemove, onSort = props.onSort, onStart = props.onStart, onUnchoose = props.onUnchoose, onUpdate = props.onUpdate, onMove = props.onMove, onSpill = props.onSpill, onSelect = props.onSelect, onDeselect = props.onDeselect, options = __rest(props, [\"list\", \"setList\", \"children\", \"tag\", \"style\", \"className\", \"clone\", \"onAdd\", \"onChange\", \"onChoose\", \"onClone\", \"onEnd\", \"onFilter\", \"onRemove\", \"onSort\", \"onStart\", \"onUnchoose\", \"onUpdate\", \"onMove\", \"onSpill\", \"onSelect\", \"onDeselect\"]);\r\n return options;\r\n}\n\n/** Holds a global reference for which react element is being dragged */\r\n// @todo - use context to manage this. How does one use 2 different providers?\r\nvar store = { dragging: null };\r\nvar ReactSortable = /** @class */ (function (_super) {\r\n __extends(ReactSortable, _super);\r\n function ReactSortable(props) {\r\n var _this = _super.call(this, props) || this;\r\n // @todo forward ref this component\r\n _this.ref = createRef();\r\n // make all state false because we can't change sortable unless a mouse gesture is made.\r\n var newList = __spread(props.list).map(function (item) { return (__assign(__assign({}, item), { chosen: false, selected: false })); });\r\n props.setList(newList, _this.sortable, store);\r\n invariant(\r\n //@ts-ignore\r\n !props.plugins, \"\\nPlugins prop is no longer supported.\\nInstead, mount it with \\\"Sortable.mount(new MultiDrag())\\\"\\nPlease read the updated README.md at https://github.com/SortableJS/react-sortablejs.\\n \");\r\n return _this;\r\n }\r\n ReactSortable.prototype.componentDidMount = function () {\r\n if (this.ref.current === null)\r\n return;\r\n var newOptions = this.makeOptions();\r\n Sortable.create(this.ref.current, newOptions);\r\n };\r\n ReactSortable.prototype.render = function () {\r\n var _a = this.props, tag = _a.tag, style = _a.style, className = _a.className, id = _a.id;\r\n var classicProps = { style: style, className: className, id: id };\r\n // if no tag, default to a `div` element.\r\n var newTag = !tag || tag === null ? \"div\" : tag;\r\n return createElement(newTag, __assign({ \r\n // @todo - find a way (perhaps with the callback) to allow AntD components to work\r\n ref: this.ref }, classicProps), this.getChildren());\r\n };\r\n ReactSortable.prototype.getChildren = function () {\r\n var _a = this.props, children = _a.children, dataIdAttr = _a.dataIdAttr, _b = _a.selectedClass, selectedClass = _b === void 0 ? \"sortable-selected\" : _b, _c = _a.chosenClass, chosenClass = _c === void 0 ? \"sortable-chosen\" : _c, _d = _a.dragClass, _e = _a.fallbackClass, _f = _a.ghostClass, _g = _a.swapClass, _h = _a.filter, filter = _h === void 0 ? \"sortable-filter\" : _h, list = _a.list;\r\n // if no children, don't do anything.\r\n if (!children || children == null)\r\n return null;\r\n var dataid = dataIdAttr || \"data-id\";\r\n return Children.map(children, function (child, index) {\r\n var _a, _b, _c;\r\n var item = list[index];\r\n var prevClassName = child.props.className;\r\n // @todo - handle the function if avalable. I don't think anyone will be doing this soon.\r\n var filtered = typeof filter === \"string\" && (_a = {},\r\n _a[filter.replace(\".\", \"\")] = !!item.filtered,\r\n _a);\r\n var className = classNames(prevClassName, __assign((_b = {}, _b[selectedClass] = item.selected, _b[chosenClass] = item.chosen, _b), filtered\r\n // [dragClass]: true,\r\n // [fallbackClass]: true,\r\n // [ghostClass]: true,\r\n // [swapClass]: true\r\n ));\r\n return cloneElement(child, (_c = {},\r\n _c[dataid] = child.key,\r\n _c.className = className,\r\n _c));\r\n });\r\n };\r\n Object.defineProperty(ReactSortable.prototype, \"sortable\", {\r\n /** Appends the `sortable` property to this component */\r\n get: function () {\r\n var el = this.ref.current;\r\n if (el === null)\r\n return null;\r\n var key = Object.keys(el).find(function (k) { return k.includes(\"Sortable\"); });\r\n if (!key)\r\n return null;\r\n //@ts-ignore - I know what I'm doing.\r\n return el[key];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Converts all the props from `ReactSortable` into the `options` object that `Sortable.create(el, [options])` can use. */\r\n ReactSortable.prototype.makeOptions = function () {\r\n var _this = this;\r\n var DOMHandlers = [\r\n \"onAdd\",\r\n \"onChoose\",\r\n \"onDeselect\",\r\n \"onEnd\",\r\n \"onRemove\",\r\n \"onSelect\",\r\n \"onSpill\",\r\n \"onStart\",\r\n \"onUnchoose\",\r\n \"onUpdate\"\r\n ];\r\n var NonDOMHandlers = [\r\n \"onChange\",\r\n \"onClone\",\r\n \"onFilter\",\r\n \"onSort\"\r\n ];\r\n var newOptions = destructurePropsForOptions(this.props);\r\n DOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerPropAndDOM(name)); });\r\n NonDOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerProp(name)); });\r\n /** onMove has 2 arguments and needs to be handled seperately. */\r\n var onMove = function (evt, originalEvt) {\r\n var onMove = _this.props.onMove;\r\n var defaultValue = evt.willInsertAfter || -1;\r\n if (!onMove)\r\n return defaultValue;\r\n var result = onMove(evt, originalEvt, _this.sortable, store);\r\n if (typeof result === 'undefined')\r\n return false;\r\n return result;\r\n };\r\n return __assign(__assign({}, newOptions), { onMove: onMove });\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop & an `on[Handler]` ReactSortable method. */\r\n ReactSortable.prototype.prepareOnHandlerPropAndDOM = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n // calls state change\r\n //@ts-ignore - until @types multidrag item is in\r\n _this[evtName](evt);\r\n };\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop */\r\n ReactSortable.prototype.prepareOnHandlerProp = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n };\r\n };\r\n /** Calls the `props.on[Handler]` function */\r\n ReactSortable.prototype.callOnHandlerProp = function (evt, evtName) {\r\n var propEvent = this.props[evtName];\r\n if (propEvent)\r\n propEvent(evt, this.sortable, store);\r\n };\r\n // SORTABLE DOM HANDLING\r\n ReactSortable.prototype.onAdd = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var otherList = __spread(store.dragging.props.list);\r\n var customs = createCustoms(evt, otherList);\r\n removeNodes(customs);\r\n var newList = handleStateAdd(customs, list);\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onRemove = function (evt) {\r\n var _this = this;\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var mode = getMode(evt);\r\n var customs = createCustoms(evt, list);\r\n insertNodes(customs);\r\n var newList = __spread(list);\r\n // remove state if not in clone mode. otherwise, keep.\r\n if (evt.pullMode !== \"clone\")\r\n newList = handleStateRemove(customs, newList);\r\n // if clone, it doesn't really remove. instead it clones in place.\r\n // @todo -\r\n else {\r\n // switch used to get the clone\r\n var customClones = customs;\r\n switch (mode) {\r\n case \"multidrag\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clones[index] })); });\r\n break;\r\n case \"normal\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clone })); });\r\n break;\r\n case \"swap\":\r\n default: {\r\n invariant(true, \"mode \\\"\" + mode + \"\\\" cannot clone. Please remove \\\"props.clone\\\" from when using the \\\"\" + mode + \"\\\" plugin\");\r\n }\r\n }\r\n removeNodes(customClones);\r\n // replace selected items with cloned items\r\n customs.forEach(function (curr) {\r\n var index = curr.oldIndex;\r\n var newItem = _this.props.clone(curr.item, evt);\r\n newList.splice(index, 1, newItem);\r\n });\r\n }\r\n // remove item.selected from list\r\n newList = newList.map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUpdate = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var customs = createCustoms(evt, list);\r\n removeNodes(customs);\r\n insertNodes(customs);\r\n var newList = handleStateChanges(customs, list);\r\n return setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onStart = function (evt) {\r\n store.dragging = this;\r\n };\r\n ReactSortable.prototype.onEnd = function (evt) {\r\n store.dragging = null;\r\n };\r\n ReactSortable.prototype.onChoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = true;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUnchoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = false;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onSpill = function (evt) {\r\n var _a = this.props, removeOnSpill = _a.removeOnSpill, revertOnSpill = _a.revertOnSpill;\r\n if (removeOnSpill && !revertOnSpill)\r\n removeNode(evt.item);\r\n };\r\n ReactSortable.prototype.onSelect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1) {\r\n console.log(\"\\\"\" + evt.type + \"\\\" had indice of \\\"\" + curr.index + \"\\\", which is probably -1 and doesn't usually happen here.\");\r\n console.log(evt);\r\n return;\r\n }\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onDeselect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1)\r\n return;\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.defaultProps = {\r\n clone: function (item) { return item; }\r\n };\r\n return ReactSortable;\r\n}(Component));\n\nexport { ReactSortable };\n" }, @@ -4051,8 +3831,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree/index.js", "issuerId": null, "issuerName": "./src/tree/index.js", @@ -4071,8 +3850,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4093,14 +3871,9 @@ "loc": "149:39-47" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport { getDataset, isEmpty } from '../utils';\nimport Actions from './actions';\nimport NodeLabel from './node-label';\nimport Toggle from './toggle';\n\nimport './index.css';\n\nvar isLeaf = function isLeaf(children) {\n return isEmpty(children);\n};\n\nvar getNodeCx = function getNodeCx(props) {\n var keepTreeOnSearch = props.keepTreeOnSearch,\n keepChildrenOnSearch = props.keepChildrenOnSearch,\n _children = props._children,\n matchInChildren = props.matchInChildren,\n matchInParent = props.matchInParent,\n disabled = props.disabled,\n partial = props.partial,\n hide = props.hide,\n className = props.className,\n showPartiallySelected = props.showPartiallySelected,\n readOnly = props.readOnly,\n checked = props.checked,\n focused = props._focused;\n\n\n return ['node', isLeaf(_children) && 'leaf', !isLeaf(_children) && 'tree', disabled && 'disabled', hide && 'hide', keepTreeOnSearch && matchInChildren && 'match-in-children', keepTreeOnSearch && keepChildrenOnSearch && matchInParent && 'match-in-parent', showPartiallySelected && partial && 'partial', readOnly && 'readOnly', checked && 'checked', focused && 'focused', className].filter(Boolean).join(' ');\n};\n\nvar TreeNode = function (_PureComponent) {\n _inherits(TreeNode, _PureComponent);\n\n function TreeNode() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, TreeNode);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = TreeNode.__proto__ || Object.getPrototypeOf(TreeNode)).call.apply(_ref, [this].concat(args))), _this), _this.getAriaAttributes = function () {\n var _this$props = _this.props,\n _children = _this$props._children,\n _depth = _this$props._depth,\n checked = _this$props.checked,\n disabled = _this$props.disabled,\n expanded = _this$props.expanded,\n readOnly = _this$props.readOnly,\n mode = _this$props.mode,\n partial = _this$props.partial;\n\n var attributes = {};\n\n attributes.role = mode === 'simpleSelect' ? 'option' : 'treeitem';\n attributes['aria-disabled'] = disabled || readOnly;\n attributes['aria-selected'] = checked;\n if (mode !== 'simpleSelect') {\n attributes['aria-checked'] = partial ? 'mixed' : checked;\n attributes['aria-level'] = (_depth || 0) + 1;\n attributes['aria-expanded'] = _children && (expanded ? 'true' : 'false');\n }\n return attributes;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(TreeNode, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n mode = _props.mode,\n keepTreeOnSearch = _props.keepTreeOnSearch,\n _id = _props._id,\n _children = _props._children,\n dataset = _props.dataset,\n _depth = _props._depth,\n expanded = _props.expanded,\n title = _props.title,\n label = _props.label,\n partial = _props.partial,\n checked = _props.checked,\n value = _props.value,\n disabled = _props.disabled,\n actions = _props.actions,\n onAction = _props.onAction,\n searchModeOn = _props.searchModeOn,\n onNodeToggle = _props.onNodeToggle,\n onCheckboxChange = _props.onCheckboxChange,\n showPartiallySelected = _props.showPartiallySelected,\n readOnly = _props.readOnly,\n clientId = _props.clientId;\n\n var liCx = getNodeCx(this.props);\n var style = keepTreeOnSearch || !searchModeOn ? { paddingLeft: (_depth || 0) * 20 + 'px' } : {};\n\n var liId = _id + '_li';\n\n return React.createElement(\n 'li',\n _extends({ className: liCx, style: style, id: liId }, getDataset(dataset), this.getAriaAttributes()),\n React.createElement(Toggle, { isLeaf: isLeaf(_children), expanded: expanded, id: _id, onNodeToggle: onNodeToggle }),\n React.createElement(NodeLabel, {\n title: title,\n label: label,\n id: _id,\n partial: partial,\n checked: checked,\n value: value,\n disabled: disabled,\n mode: mode,\n onCheckboxChange: onCheckboxChange,\n showPartiallySelected: showPartiallySelected,\n readOnly: readOnly,\n clientId: clientId\n }),\n React.createElement(Actions, { actions: actions, onAction: onAction, id: _id, readOnly: readOnly })\n );\n }\n }]);\n\n return TreeNode;\n}(PureComponent);\n\nTreeNode.propTypes = {\n _id: PropTypes.string.isRequired,\n _depth: PropTypes.number,\n _children: PropTypes.array,\n actions: PropTypes.array,\n className: PropTypes.string,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n expanded: PropTypes.bool,\n disabled: PropTypes.bool,\n partial: PropTypes.bool,\n dataset: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string\n};\n\n\nexport default TreeNode;" }, @@ -4115,8 +3888,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/index.js", "issuerId": null, "issuerName": "./src/tree-manager/index.js", @@ -4135,8 +3907,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4184,14 +3955,9 @@ "loc": "280:23-38" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "import partial from 'array.partial';\n\nvar identity = function identity(c) {\n return c;\n};\n\nexport default (function (node) {\n var childProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'children';\n var childSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return partial(node[childProp], function (c) {\n return childSelector(c).checked;\n }) || node[childProp].some(function (c) {\n return childSelector(c).partial;\n });\n});" }, @@ -4206,8 +3972,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/index.js", "issuerId": null, "issuerName": "./src/tree-manager/index.js", @@ -4226,8 +3991,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4248,14 +4012,9 @@ "loc": "27:23-34" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "import getPartialState from './getPartialState';\n\nimport { isEmpty } from '../utils';\n\n/**\n * Converts a nested node into an associative array with pointers to child and parent nodes\n * Given:\n```\nconst tree = [\n {\n label: 'item1',\n value: 'value1',\n children: [\n {\n label: 'item1-1',\n value: 'value1-1',\n children: [\n {\n label: 'item1-1-1',\n value: 'value1-1-1'\n },\n {\n label: 'item1-1-2',\n value: 'value1-1-2'\n }\n ]\n },\n {\n label: 'item1-2',\n value: 'value1-2'\n }\n ]\n },\n {\n label: 'item2',\n value: 'value2',\n children: [\n {\n label: 'item2-1',\n value: 'value2-1',\n children: [\n {\n label: 'item2-1-1',\n value: 'value2-1-1'\n },\n {\n label: 'item2-1-2',\n value: 'value2-1-2'\n },\n {\n label: 'item2-1-3',\n value: 'item2-1-3',\n children: [\n {\n label: 'item2-1-3-1',\n value: 'value2-1-3-1'\n }\n ]\n }\n ]\n },\n {\n label: 'item2-2',\n value: 'value2-2'\n }\n ]\n }\n]\n```\n * results in\n```\n{\n \"0\": {\n _id: \"0\",\n _parent: null,\n _children: [\n \"0-0\",\n \"0-1\"\n ],\n label: \"item1\",\n value: \"value1\"\n },\n \"1\": {\n _id: \"1\",\n _parent: null,\n _children: [\n \"1-0\",\n \"1-1\"\n ],\n label: \"item2\",\n value: \"value2\"\n },\n \"0-0\": {\n _id: \"0-0\",\n _parent: \"0\",\n _children: [\n \"0-0-0\",\n \"0-0-1\"\n ],\n label: \"item1-1\",\n value: \"value1-1\"\n },\n \"0-1\": {\n _id: \"0-1\",\n _parent: \"0\",\n label: \"item1-2\",\n value: \"value1-2\"\n },\n \"0-0-0\": {\n _id: \"0-0-0\",\n _parent: \"0-0\",\n label: \"item1-1-1\",\n value: \"value1-1-1\"\n },\n \"0-0-1\": {\n _id: \"0-0-1\",\n _parent: \"0-0\",\n label: \"item1-1-2\",\n value: \"value1-1-2\"\n },\n \"1-0\": {\n _id: \"1-0\",\n _parent: \"1\",\n _children: [\n \"1-0-0\",\n \"1-0-1\",\n \"1-0-2\"\n ],\n label: \"item2-1\",\n value: \"value2-1\"\n },\n \"1-1\": {\n _id: \"1-1\",\n _parent: \"1\",\n label: \"item2-2\",\n value: \"value2-2\"\n },\n \"1-0-0\": {\n _id: \"1-0-0\",\n _parent: \"1-0\",\n label: \"item2-1-1\",\n value: \"value2-1-1\"\n },\n \"1-0-1\": {\n _id: \"1-0-1\",\n _parent: \"1-0\",\n label: \"item2-1-2\",\n value: \"value2-1-2\"\n },\n \"1-0-2\": {\n _id: \"1-0-2\",\n _parent: \"1-0\",\n _children: [\n \"1-0-2-0\"\n ],\n label: \"item2-1-3\",\n value: \"value2-1-3\"\n },\n \"1-0-2-0\": {\n _id: \"1-0-2-0\",\n _parent: \"1-0-2\",\n label: \"item2-1-3-1\",\n value: \"value2-1-3-1\"\n }\n}\n```\n * @param {[type]} tree The incoming tree object\n * @param {[bool]} simple Whether its in Single select mode (simple dropdown)\n * @param {[bool]} radio Whether its in Radio select mode (radio dropdown)\n * @param {[bool]} showPartialState Whether to show partially checked state\n * @param {[string]} rootPrefixId The prefix to use when setting root node ids\n * @return {object} The flattened list\n */\nfunction flattenTree(_ref) {\n var tree = _ref.tree,\n simple = _ref.simple,\n radio = _ref.radio,\n showPartialState = _ref.showPartialState,\n hierarchical = _ref.hierarchical,\n rootPrefixId = _ref.rootPrefixId;\n\n var forest = Array.isArray(tree) ? tree : [tree];\n\n // eslint-disable-next-line no-use-before-define\n return walkNodes({\n nodes: forest,\n simple: simple,\n radio: radio,\n showPartialState: showPartialState,\n hierarchical: hierarchical,\n rootPrefixId: rootPrefixId\n });\n}\n\n/**\n * If the node didn't specify anything on its own\n * figure out the initial state based on parent\n * @param {object} node [current node]\n * @param {object} parent [node's immediate parent]\n * @param {bool} inheritChecked [if checked should be inherited]\n */\nfunction setInitialStateProps(node) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var inheritChecked = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var stateProps = inheritChecked ? ['checked', 'disabled'] : ['disabled'];\n for (var index = 0; index < stateProps.length; index++) {\n var prop = stateProps[index];\n\n // if and only if, node doesn't explicitly define a prop, grab it from parent\n if (node[prop] === undefined && parent[prop] !== undefined) {\n node[prop] = parent[prop];\n }\n }\n}\n\nfunction walkNodes(_ref2) {\n var nodes = _ref2.nodes,\n parent = _ref2.parent,\n _ref2$depth = _ref2.depth,\n depth = _ref2$depth === undefined ? 0 : _ref2$depth,\n simple = _ref2.simple,\n radio = _ref2.radio,\n showPartialState = _ref2.showPartialState,\n hierarchical = _ref2.hierarchical,\n rootPrefixId = _ref2.rootPrefixId,\n _ref2$_rv = _ref2._rv,\n _rv = _ref2$_rv === undefined ? { list: new Map(), defaultValues: [], singleSelectedNode: null } : _ref2$_rv;\n\n var single = simple || radio;\n nodes.forEach(function (node, i) {\n node._depth = depth;\n\n if (parent) {\n node._id = node.id || parent._id + '-' + i;\n node._parent = parent._id;\n parent._children.push(node._id);\n } else {\n node._id = node.id || '' + (rootPrefixId ? rootPrefixId + '-' + i : i);\n }\n\n if (single && node.checked) {\n if (_rv.singleSelectedNode) {\n node.checked = false;\n } else {\n _rv.singleSelectedNode = node;\n }\n }\n\n if (single && node.isDefaultValue && _rv.singleSelectedNode && !_rv.singleSelectedNode.isDefaultValue) {\n // Default value has precedence, uncheck previous value\n _rv.singleSelectedNode.checked = false;\n _rv.singleSelectedNode = null;\n }\n\n if (node.isDefaultValue && (!single || _rv.defaultValues.length === 0)) {\n _rv.defaultValues.push(node._id);\n node.checked = true;\n if (single) {\n _rv.singleSelectedNode = node;\n }\n }\n\n if (!hierarchical || radio) setInitialStateProps(node, parent, !radio);\n\n _rv.list.set(node._id, node);\n if (!simple && node.children) {\n node._children = [];\n walkNodes({\n nodes: node.children,\n parent: node,\n depth: depth + 1,\n radio: radio,\n showPartialState: showPartialState,\n hierarchical: hierarchical,\n _rv: _rv\n });\n\n if (showPartialState && !node.checked) {\n node.partial = getPartialState(node);\n\n // re-check if all children are checked. if so, check thyself\n if (!single && !isEmpty(node.children) && node.children.every(function (c) {\n return c.checked;\n })) {\n node.checked = true;\n }\n }\n\n node.children = undefined;\n }\n });\n\n return _rv;\n}\n\nexport default flattenTree;" }, @@ -4270,8 +4029,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/keyboardNavigation.js", "issuerId": null, "issuerName": "./src/tree-manager/keyboardNavigation.js", @@ -4290,8 +4048,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4339,14 +4096,9 @@ "loc": "354:10-21" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "import { isEmpty } from '../utils';\n\nvar markSubTreeVisited = function markSubTreeVisited(node, visited, getItemById) {\n visited[node._id] = true;\n if (!isEmpty(node._children)) {\n node._children.forEach(function (c) {\n return markSubTreeVisited(getItemById(c), visited, getItemById);\n });\n }\n};\n\nvar getNodesMatching = function getNodesMatching(tree, nodePredicate) {\n var nodes = [];\n var visited = {};\n\n tree.forEach(function (node, key) {\n if (visited[key]) return;\n\n if (nodePredicate(node, key, visited)) {\n nodes.push(node);\n }\n\n visited[key] = true;\n });\n\n return nodes;\n};\n\nvar getVisibleNodes = function getVisibleNodes(tree, getItemById, markSubTreeOnNonExpanded) {\n return getNodesMatching(tree, function (node, key, visited) {\n if (markSubTreeOnNonExpanded && node._children && node._children.length && node.expanded !== true) {\n markSubTreeVisited(node, visited, getItemById);\n }\n return !node.hide;\n });\n};\n\nvar nodeVisitor = {\n getNodesMatching: getNodesMatching,\n getVisibleNodes: getVisibleNodes,\n markSubTreeVisited: markSubTreeVisited\n};\nexport default nodeVisitor;" }, @@ -4361,8 +4113,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/react-sortablejs/dist/index.es.js", "issuerId": null, "issuerName": "./node_modules/react-sortablejs/dist/index.es.js", @@ -4386,8 +4137,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4444,17 +4194,9 @@ "loc": "201:8-16" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default", - "MultiDrag", - "Sortable", - "Swap" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default", "MultiDrag", "Sortable", "Swap"], + "optimizationBailout": [], "depth": 3, "source": "/**!\n * Sortable 1.10.1\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.1\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n if (IE11OrLess) {\n return document.documentElement;\n } else {\n return document.scrollingElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\n * Selects the provided multi-drag item\n * @param {HTMLElement} el The element to be selected\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\n * Deselects the provided multi-drag item\n * @param {HTMLElement} el The element to be deselected\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\n * Insert multi-drag clones\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\n * @param {HTMLElement} rootEl\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n" }, @@ -4469,8 +4211,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/react-sortablejs/dist/index.es.js", "issuerId": null, "issuerName": "./node_modules/react-sortablejs/dist/index.es.js", @@ -4494,8 +4235,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4525,14 +4265,9 @@ "loc": "348:20-29" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n" }, @@ -4547,8 +4282,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.js", "issuerId": null, "issuerName": "./src/tree-node/index.js", @@ -4572,8 +4306,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4594,14 +4327,9 @@ "loc": "132:28-35" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "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; };\n\nvar _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; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport Action from './action';\nimport { isEmpty } from '../utils';\n\nvar Actions = function (_PureComponent) {\n _inherits(Actions, _PureComponent);\n\n function Actions() {\n _classCallCheck(this, Actions);\n\n return _possibleConstructorReturn(this, (Actions.__proto__ || Object.getPrototypeOf(Actions)).apply(this, arguments));\n }\n\n _createClass(Actions, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n actions = _props.actions,\n id = _props.id,\n rest = _objectWithoutProperties(_props, ['actions', 'id']);\n\n if (isEmpty(actions)) return null;\n\n return actions.map(function (a, idx) {\n var actionId = a.id || 'action-' + idx;\n return React.createElement(Action, _extends({ key: actionId }, rest, a, { actionData: { action: _extends({}, a, { id: actionId }), nodeId: id } }));\n });\n }\n }]);\n\n return Actions;\n}(PureComponent);\n\nActions.propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array\n};\n\n\nexport default Actions;" }, @@ -4616,8 +4344,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.js", "issuerId": null, "issuerName": "./src/tree-node/index.js", @@ -4641,8 +4368,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4663,14 +4389,9 @@ "loc": "118:28-37" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport Checkbox from '../checkbox';\nimport RadioButton from '../radio';\n\nvar NodeLabel = function (_PureComponent) {\n _inherits(NodeLabel, _PureComponent);\n\n function NodeLabel() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, NodeLabel);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = NodeLabel.__proto__ || Object.getPrototypeOf(NodeLabel)).call.apply(_ref, [this].concat(args))), _this), _this.handleCheckboxChange = function (e) {\n var _this$props = _this.props,\n mode = _this$props.mode,\n id = _this$props.id,\n onCheckboxChange = _this$props.onCheckboxChange;\n\n\n if (mode === 'simpleSelect' || mode === 'radioSelect') {\n onCheckboxChange(id, true);\n } else {\n var checked = e.target.checked;\n\n onCheckboxChange(id, checked);\n }\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(NodeLabel, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n mode = _props.mode,\n title = _props.title,\n label = _props.label,\n id = _props.id,\n partial = _props.partial,\n checked = _props.checked;\n var _props2 = this.props,\n value = _props2.value,\n disabled = _props2.disabled,\n showPartiallySelected = _props2.showPartiallySelected,\n readOnly = _props2.readOnly,\n clientId = _props2.clientId;\n\n var nodeLabelProps = { className: 'node-label'\n\n // in case of simple select mode, there is no checkbox, so we need to handle the click via the node label\n // but not if the control is in readOnly or disabled state\n };var shouldRegisterClickHandler = mode === 'simpleSelect' && !readOnly && !disabled;\n\n if (shouldRegisterClickHandler) {\n nodeLabelProps.onClick = this.handleCheckboxChange;\n }\n\n var sharedProps = { id: id, value: value, checked: checked, disabled: disabled, readOnly: readOnly, tabIndex: -1 };\n var className = ['checkbox-item', mode === 'simpleSelect' && 'simple-select'].filter(Boolean).join(' ');\n\n return React.createElement(\n 'label',\n { title: title || label, htmlFor: id },\n mode === 'radioSelect' ? React.createElement(RadioButton, _extends({ name: clientId, className: 'radio-item', onChange: this.handleCheckboxChange }, sharedProps)) : React.createElement(Checkbox, _extends({\n name: id,\n className: className,\n indeterminate: showPartiallySelected && partial,\n onChange: this.handleCheckboxChange\n }, sharedProps)),\n React.createElement(\n 'span',\n nodeLabelProps,\n label\n )\n );\n }\n }]);\n\n return NodeLabel;\n}(PureComponent);\n\nNodeLabel.propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n partial: PropTypes.bool,\n disabled: PropTypes.bool,\n dataset: PropTypes.object,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n onCheckboxChange: PropTypes.func,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string\n};\n\n\nexport default NodeLabel;" }, @@ -4685,8 +4406,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.js", "issuerId": null, "issuerName": "./src/tree-node/index.js", @@ -4710,8 +4430,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4732,14 +4451,9 @@ "loc": "117:28-34" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nvar Toggle = function (_PureComponent) {\n _inherits(Toggle, _PureComponent);\n\n function Toggle() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Toggle);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Toggle.__proto__ || Object.getPrototypeOf(Toggle)).call.apply(_ref, [this].concat(args))), _this), _this.onToggle = function (e) {\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n _this.props.onNodeToggle(_this.props.id);\n }, _this.onKeyDown = function (e) {\n if (e.key === 'Enter' || e.keyCode === 32) {\n _this.props.onNodeToggle(_this.props.id);\n e.preventDefault();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Toggle, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n expanded = _props.expanded,\n isLeaf = _props.isLeaf;\n\n if (isLeaf) return null;\n\n var toggleCx = ['toggle', expanded && 'expanded', !expanded && 'collapsed'].filter(Boolean).join(' ');\n return React.createElement('i', {\n role: 'button',\n tabIndex: -1,\n className: toggleCx,\n onClick: this.onToggle,\n onKeyDown: this.onKeyDown,\n 'aria-hidden': true\n });\n }\n }]);\n\n return Toggle;\n}(PureComponent);\n\nToggle.propTypes = {\n expanded: PropTypes.bool,\n isLeaf: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n id: PropTypes.string\n};\n\n\nexport default Toggle;" }, @@ -4754,8 +4468,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/actions.js", "issuerId": null, "issuerName": "./src/tree-node/actions.js", @@ -4784,8 +4497,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4806,14 +4518,9 @@ "loc": "40:35-41" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 4, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nvar Action = function (_PureComponent) {\n _inherits(Action, _PureComponent);\n\n function Action() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Action);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Action.__proto__ || Object.getPrototypeOf(Action)).call.apply(_ref, [this].concat(args))), _this), _this.handleClick = function () {\n var _this$props = _this.props,\n onAction = _this$props.onAction,\n actionData = _this$props.actionData;\n\n if (onAction) {\n onAction(actionData.nodeId, actionData.action);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Action, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n title = _props.title,\n className = _props.className,\n text = _props.text,\n readOnly = _props.readOnly;\n\n\n return React.createElement(\n 'i',\n { title: title, className: className, onClick: !readOnly ? this.handleClick : undefined },\n text\n );\n }\n }]);\n\n return Action;\n}(PureComponent);\n\nAction.propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n className: PropTypes.string,\n actionData: PropTypes.object,\n onAction: PropTypes.func,\n readOnly: PropTypes.bool\n};\nAction.defaultProps = {\n onAction: function onAction() {}\n};\n\n\nexport default Action;" }, @@ -4828,8 +4535,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/node-label.js", "issuerId": null, "issuerName": "./src/tree-node/node-label.js", @@ -4858,8 +4564,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4880,15 +4585,9 @@ "loc": "82:193-201" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "refUpdater", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["refUpdater", "default"], + "optimizationBailout": [], "depth": 4, "source": "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; };\n\nvar _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; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nexport var refUpdater = function refUpdater(_ref) {\n var checked = _ref.checked,\n indeterminate = _ref.indeterminate;\n return function (input) {\n if (input) {\n input.checked = checked;\n input.indeterminate = indeterminate;\n }\n };\n};\n\nvar Checkbox = function (_PureComponent) {\n _inherits(Checkbox, _PureComponent);\n\n function Checkbox() {\n _classCallCheck(this, Checkbox);\n\n return _possibleConstructorReturn(this, (Checkbox.__proto__ || Object.getPrototypeOf(Checkbox)).apply(this, arguments));\n }\n\n _createClass(Checkbox, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n checked = _props.checked,\n _props$indeterminate = _props.indeterminate,\n indeterminate = _props$indeterminate === undefined ? false : _props$indeterminate,\n onChange = _props.onChange,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n rest = _objectWithoutProperties(_props, ['checked', 'indeterminate', 'onChange', 'disabled', 'readOnly']);\n\n var isDisabled = disabled || readOnly;\n\n return React.createElement('input', _extends({\n type: 'checkbox',\n ref: refUpdater({ checked: checked, indeterminate: indeterminate }),\n onChange: onChange,\n disabled: isDisabled\n }, rest));\n }\n }]);\n\n return Checkbox;\n}(PureComponent);\n\nCheckbox.propTypes = {\n checked: PropTypes.bool,\n indeterminate: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\n\nexport default Checkbox;" }, @@ -4903,8 +4602,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/node-label.js", "issuerId": null, "issuerName": "./src/tree-node/node-label.js", @@ -4933,8 +4631,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -4955,21 +4652,15 @@ "loc": "82:53-64" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "refUpdater", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["refUpdater", "default"], + "optimizationBailout": [], "depth": 4, "source": "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; };\n\nvar _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; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nexport var refUpdater = function refUpdater(_ref) {\n var checked = _ref.checked;\n return function (input) {\n if (input) {\n input.checked = checked;\n }\n };\n};\n\nvar RadioButton = function (_PureComponent) {\n _inherits(RadioButton, _PureComponent);\n\n function RadioButton() {\n _classCallCheck(this, RadioButton);\n\n return _possibleConstructorReturn(this, (RadioButton.__proto__ || Object.getPrototypeOf(RadioButton)).apply(this, arguments));\n }\n\n _createClass(RadioButton, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n name = _props.name,\n checked = _props.checked,\n onChange = _props.onChange,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n rest = _objectWithoutProperties(_props, ['name', 'checked', 'onChange', 'disabled', 'readOnly']);\n\n var isDisabled = disabled || readOnly;\n\n return React.createElement('input', _extends({\n type: 'radio',\n name: name,\n ref: refUpdater({ checked: checked }),\n onChange: onChange,\n disabled: isDisabled\n }, rest));\n }\n }]);\n\n return RadioButton;\n}(PureComponent);\n\nRadioButton.propTypes = {\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\n\nexport default RadioButton;" } ], "filteredModules": 0, - "parsedSrc": "function(e,t,n){\"use strict\";n.r(t);var o=n(0),r=n.n(o),a=n(1),i=n.n(a),l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce(function(t,n){var o;return t[\"data-\"+(o=n,o.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase())]=e[n],t},{})},s=(function(){}(),function(e){return!e||Array.isArray(e)&&!e.length}),c=function(e,t){return e instanceof Event&&!function(e){if(e.path)return e.path;for(var t=e.target,n=[t];t.parentElement;)t=t.parentElement,n.unshift(t);return n}(e).some(function(e){return e===t})},u=function(e,t){var n=void 0;return function(){for(var o=arguments.length,r=Array(o),a=0;a-1)&&(o.handleClick(e),e.preventDefault())},b(o,n)}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)}(t,a[\"PureComponent\"]),m(t,[{key:\"render\",value:function(){var e=this.props,t=e.id,n=e.label,o=e.labelRemove,r=void 0===o?\"Remove\":o,a=e.readOnly,l=e.disabled,s=y(t),c=t+\"_button\",u=[\"tag-remove\",a&&\"readOnly\",l&&\"disabled\"].filter(Boolean).join(\" \"),d=a||l;return i.a.createElement(\"span\",{className:\"tag\",id:s,\"aria-label\":n},n,i.a.createElement(\"button\",{id:c,onClick:d?void 0:this.handleClick,onKeyDown:d?void 0:this.onKeyDown,onKeyUp:d?void 0:this.onKeyUp,className:u,type:\"button\",\"aria-label\":r,\"aria-labelledby\":c+\" \"+s,\"aria-disabled\":d},\"x\"))}}]),t}();w.propTypes={id:r.a.string.isRequired,label:r.a.string.isRequired,onDelete:r.a.func,readOnly:r.a.bool,disabled:r.a.bool,labelRemove:r.a.string};var O=w;\n/**!\n * Sortable 1.10.1\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */function _(e){return(_=\"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 S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(){return(T=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function k(e){if(\"undefined\"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var P=k(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i),x=k(/Edge/i),D=k(/firefox/i),N=k(/safari/i)&&!k(/chrome/i)&&!k(/android/i),I=k(/iP(ad|od|hone)/i),j=k(/chrome/i)&&k(/android/i),M={capture:!1,passive:!1};function R(e,t,n){e.addEventListener(t,n,!P&&M)}function A(e,t,n){e.removeEventListener(t,n,!P&&M)}function F(e,t){if(t){if(\">\"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function L(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function B(e,t,n,o){if(e){n=n||document;do{if(null!=t&&(\">\"===t[0]?e.parentNode===n&&F(e,t):F(e,t))||o&&e===n)return e;if(e===n)break}while(e=L(e))}return null}var Y,H=/\\s+/g;function X(e,t,n){if(e&&t)if(e.classList)e.classList[n?\"add\":\"remove\"](t);else{var o=(\" \"+e.className+\" \").replace(H,\" \").replace(\" \"+t+\" \",\" \");e.className=(o+(n?\" \"+t:\"\")).replace(H,\" \")}}function V(e,t,n){var o=e&&e.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,\"\"):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in o||-1!==t.indexOf(\"webkit\")||(t=\"-webkit-\"+t),o[t]=n+(\"string\"==typeof n?\"\":\"px\")}}function W(e,t){var n=\"\";if(\"string\"==typeof e)n=e;else do{var o=V(e,\"transform\");o&&\"none\"!==o&&(n=o+\" \"+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix;return r&&new r(n)}function K(e,t,n){if(e){var o=e.getElementsByTagName(t),r=0,a=o.length;if(n)for(;r=a:r<=a))return o;if(o===U())break;o=Q(o,!1)}return!1}function G(e,t,n){for(var o=0,r=0,a=e.children;r2&&void 0!==arguments[2]?arguments[2]:{},o=n.evt,r=C(n,[\"evt\"]);se.pluginEvent.bind(nt)(e,t,E({dragEl:he,parentEl:pe,ghostEl:fe,rootEl:ge,nextEl:ve,lastDownEl:me,cloneEl:be,cloneHidden:ye,dragStarted:Ie,putSortable:Ee,activeSortable:nt.active,originalEvent:o,oldIndex:we,oldDraggableIndex:_e,newIndex:Oe,newDraggableIndex:Se,hideGhostForTarget:Ze,unhideGhostForTarget:Qe,cloneNowHidden:function(){ye=!0},cloneNowShown:function(){ye=!1},dispatchSortableEvent:function(e){de({sortable:t,name:e,originalEvent:o})}},r))};function de(e){ce(E({putSortable:Ee,cloneEl:be,targetEl:he,rootEl:ge,oldIndex:we,oldDraggableIndex:_e,newIndex:Oe,newDraggableIndex:Se},e))}var he,pe,fe,ge,ve,me,be,ye,we,Oe,_e,Se,Te,Ee,Ce,ke,Pe,xe,De,Ne,Ie,je,Me,Re,Ae,Fe=!1,Le=!1,Be=[],Ye=!1,He=!1,Xe=[],Ve=!1,We=[],Ke=\"undefined\"!=typeof document,Ue=I,ze=x||P?\"cssFloat\":\"float\",qe=Ke&&!j&&!I&&\"draggable\"in document.createElement(\"div\"),Ge=function(){if(Ke){if(P)return!1;var e=document.createElement(\"x\");return e.style.cssText=\"pointer-events:auto\",\"auto\"===e.style.pointerEvents}}(),$e=function(e,t){var n=V(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=G(e,0,t),a=G(e,1,t),i=r&&V(r),l=a&&V(a),s=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+z(r).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+z(a).width;if(\"flex\"===n.display)return\"column\"===n.flexDirection||\"column-reverse\"===n.flexDirection?\"vertical\":\"horizontal\";if(\"grid\"===n.display)return n.gridTemplateColumns.split(\" \").length<=1?\"vertical\":\"horizontal\";if(r&&i.float&&\"none\"!==i.float){var u=\"left\"===i.float?\"left\":\"right\";return!a||\"both\"!==l.clear&&l.clear!==u?\"horizontal\":\"vertical\"}return r&&(\"block\"===i.display||\"flex\"===i.display||\"table\"===i.display||\"grid\"===i.display||s>=o&&\"none\"===n[ze]||a&&\"none\"===n[ze]&&s+c>o)?\"vertical\":\"horizontal\"},Je=function(e){function t(e,n){return function(o,r,a,i){var l=o.options.group.name&&r.options.group.name&&o.options.group.name===r.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&\"clone\"===e)return e;if(\"function\"==typeof e)return t(e(o,r,a,i),n)(o,r,a,i);var s=(n?o:r).options.group.name;return!0===e||\"string\"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},o=e.group;o&&\"object\"==_(o)||(o={name:o}),n.name=o.name,n.checkPull=t(o.pull,!0),n.checkPut=t(o.put),n.revertClone=o.revertClone,e.group=n},Ze=function(){!Ge&&fe&&V(fe,\"display\",\"none\")},Qe=function(){!Ge&&fe&&V(fe,\"display\",\"\")};Ke&&document.addEventListener(\"click\",function(e){if(Le)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Le=!1,!1},!0);var et=function(e){if(he){e=e.touches?e.touches[0]:e;var t=(r=e.clientX,a=e.clientY,Be.some(function(e){if(!$(e)){var t=z(e),n=e[re].options.emptyInsertThreshold,o=r>=t.left-n&&r<=t.right+n,l=a>=t.top-n&&a<=t.bottom+n;return n&&o&&l?i=e:void 0}}),i);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[re]._onDragOver(n)}}var r,a,i},tt=function(e){he&&he.parentNode[re]._isOutsideThisEl(e.target)};function nt(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw\"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(e));this.el=e,this.options=t=T({},t),e[re]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?\">li\":\">*\",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return $e(e,this.options)},ghostClass:\"sortable-ghost\",chosenClass:\"sortable-chosen\",dragClass:\"sortable-drag\",ignore:\"a, img\",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(\"Text\",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:\"data-id\",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:\"sortable-fallback\",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==nt.supportPointer&&\"PointerEvent\"in window,emptyInsertThreshold:5};for(var o in se.initializePlugins(this,e,n),n)!(o in t)&&(t[o]=n[o]);for(var r in Je(t),this)\"_\"===r.charAt(0)&&\"function\"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&qe,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?R(e,\"pointerdown\",this._onTapStart):(R(e,\"mousedown\",this._onTapStart),R(e,\"touchstart\",this._onTapStart)),this.nativeDraggable&&(R(e,\"dragover\",this),R(e,\"dragenter\",this)),Be.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),T(this,ae())}function ot(e,t,n,o,r,a,i,l){var s,c,u=e[re],d=u.options.onMove;return!window.CustomEvent||P||x?(s=document.createEvent(\"Event\")).initEvent(\"move\",!0,!0):s=new CustomEvent(\"move\",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=o,s.related=r||t,s.relatedRect=a||z(t),s.willInsertAfter=l,s.originalEvent=i,e.dispatchEvent(s),d&&(c=d.call(u,s,i)),c}function rt(e){e.draggable=!1}function at(){Ve=!1}function it(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,o=0;n--;)o+=t.charCodeAt(n);return o.toString(36)}function lt(e){return setTimeout(e,0)}function st(e){return clearTimeout(e)}nt.prototype={constructor:nt,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(je=null)},_getDirection:function(e,t){return\"function\"==typeof this.options.direction?this.options.direction.call(this,e,t,he):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,o=this.options,r=o.preventOnFilter,a=e.type,i=e.touches&&e.touches[0]||e.pointerType&&\"touch\"===e.pointerType&&e,l=(i||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=o.filter;if(function(e){We.length=0;var t=e.getElementsByTagName(\"input\"),n=t.length;for(;n--;){var o=t[n];o.checked&&We.push(o)}}(n),!he&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||o.disabled||s.isContentEditable||(l=B(l,o.draggable,n,!1))&&l.animated||me===l)){if(we=J(l),_e=J(l,o.draggable),\"function\"==typeof c){if(c.call(this,e,l,this))return de({sortable:t,rootEl:s,name:\"filter\",targetEl:l,toEl:n,fromEl:n}),ue(\"filter\",t,{evt:e}),void(r&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(\",\").some(function(o){if(o=B(s,o.trim(),n,!1))return de({sortable:t,rootEl:o,name:\"filter\",targetEl:l,fromEl:n,toEl:n}),ue(\"filter\",t,{evt:e}),!0})))return void(r&&e.cancelable&&e.preventDefault());o.handle&&!B(s,o.handle,n,!1)||this._prepareDragStart(e,i,l)}}},_prepareDragStart:function(e,t,n){var o,r=this,a=r.el,i=r.options,l=a.ownerDocument;if(n&&!he&&n.parentNode===a){var s=z(n);if(ge=a,pe=(he=n).parentNode,ve=he.nextSibling,me=n,Te=i.group,nt.dragged=he,Ce={target:he,clientX:(t||e).clientX,clientY:(t||e).clientY},De=Ce.clientX-s.left,Ne=Ce.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,he.style[\"will-change\"]=\"all\",o=function(){ue(\"delayEnded\",r,{evt:e}),nt.eventCanceled?r._onDrop():(r._disableDelayedDragEvents(),!D&&r.nativeDraggable&&(he.draggable=!0),r._triggerDragStart(e,t),de({sortable:r,name:\"choose\",originalEvent:e}),X(he,i.chosenClass,!0))},i.ignore.split(\",\").forEach(function(e){K(he,e.trim(),rt)}),R(l,\"dragover\",et),R(l,\"mousemove\",et),R(l,\"touchmove\",et),R(l,\"mouseup\",r._onDrop),R(l,\"touchend\",r._onDrop),R(l,\"touchcancel\",r._onDrop),D&&this.nativeDraggable&&(this.options.touchStartThreshold=4,he.draggable=!0),ue(\"delayStart\",this,{evt:e}),!i.delay||i.delayOnTouchOnly&&!t||this.nativeDraggable&&(x||P))o();else{if(nt.eventCanceled)return void this._onDrop();R(l,\"mouseup\",r._disableDelayedDrag),R(l,\"touchend\",r._disableDelayedDrag),R(l,\"touchcancel\",r._disableDelayedDrag),R(l,\"mousemove\",r._delayedDragTouchMoveHandler),R(l,\"touchmove\",r._delayedDragTouchMoveHandler),i.supportPointer&&R(l,\"pointermove\",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(o,i.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){he&&rt(he),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;A(e,\"mouseup\",this._disableDelayedDrag),A(e,\"touchend\",this._disableDelayedDrag),A(e,\"touchcancel\",this._disableDelayedDrag),A(e,\"mousemove\",this._delayedDragTouchMoveHandler),A(e,\"touchmove\",this._delayedDragTouchMoveHandler),A(e,\"pointermove\",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||\"touch\"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?R(document,\"pointermove\",this._onTouchMove):R(document,t?\"touchmove\":\"mousemove\",this._onTouchMove):(R(he,\"dragend\",this),R(ge,\"dragstart\",this._onDragStart));try{document.selection?lt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(Fe=!1,ge&&he){ue(\"dragStarted\",this,{evt:t}),this.nativeDraggable&&R(document,\"dragover\",tt);var n=this.options;!e&&X(he,n.dragClass,!1),X(he,n.ghostClass,!0),nt.active=this,e&&this._appendGhost(),de({sortable:this,name:\"start\",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ke){this._lastX=ke.clientX,this._lastY=ke.clientY,Ze();for(var e=document.elementFromPoint(ke.clientX,ke.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ke.clientX,ke.clientY))!==t;)t=e;if(he.parentNode[re]._isOutsideThisEl(e),t)do{if(t[re]){if(t[re]._onDragOver({clientX:ke.clientX,clientY:ke.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Qe()}},_onTouchMove:function(e){if(Ce){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,r=e.touches?e.touches[0]:e,a=fe&&W(fe),i=fe&&a&&a.a,l=fe&&a&&a.d,s=Ue&&Ae&&Z(Ae),c=(r.clientX-Ce.clientX+o.x)/(i||1)+(s?s[0]-Xe[0]:0)/(i||1),u=(r.clientY-Ce.clientY+o.y)/(l||1)+(s?s[1]-Xe[1]:0)/(l||1);if(!nt.active&&!Fe){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))o.right+10||e.clientX<=o.right&&e.clientY>o.bottom&&e.clientX>=o.left:e.clientX>o.right&&e.clientY>o.top||e.clientX<=o.right&&e.clientY>o.bottom+10}(e,r,this)&&!g.animated){if(g===he)return N(!1);if(g&&a===e.target&&(i=g),i&&(n=z(i)),!1!==ot(ge,a,he,t,i,n,e,!!i))return D(),a.appendChild(he),pe=a,I(),N(!0)}else if(i.parentNode===a){n=z(i);var v,m,b,y=he.parentNode!==a,w=!function(e,t,n){var o=n?e.left:e.top,r=n?e.right:e.bottom,a=n?e.width:e.height,i=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return o===i||r===l||o+a/2===i+s/2}(he.animated&&he.toRect||t,i.animated&&i.toRect||n,r),O=r?\"top\":\"left\",_=q(i,\"top\",\"top\")||q(he,\"top\",\"top\"),S=_?_.scrollTop:void 0;if(je!==i&&(m=n[O],Ye=!1,He=!w&&l.invertSwap||y),0!==(v=function(e,t,n,o,r,a,i,l){var s=o?e.clientY:e.clientX,c=o?n.height:n.width,u=o?n.top:n.left,d=o?n.bottom:n.right,h=!1;if(!i)if(l&&Reu+c*a/2:sd-Re)return-Me}else if(s>u+c*(1-r)/2&&sd-c*a/2))return s>u+c/2?1:-1;return 0}(e,i,n,r,w?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,He,je===i))){var T=J(he);do{T-=v,b=pe.children[T]}while(b&&(\"none\"===V(b,\"display\")||b===fe))}if(0===v||b===i)return N(!1);je=i,Me=v;var C=i.nextElementSibling,k=!1,P=ot(ge,a,he,t,i,n,e,k=1===v);if(!1!==P)return 1!==P&&-1!==P||(k=1===P),Ve=!0,setTimeout(at,30),D(),k&&!C?a.appendChild(he):i.parentNode.insertBefore(he,k?C:i),_&&ne(_,0,S-_.scrollTop),pe=he.parentNode,void 0===m||He||(Re=Math.abs(m-z(i)[O])),I(),N(!0)}if(a.contains(he))return N(!1)}return!1}function x(l,s){ue(l,p,E({evt:e,isOwner:u,axis:r?\"vertical\":\"horizontal\",revert:o,dragRect:t,targetRect:n,canSort:d,fromSortable:h,target:i,completed:N,onMove:function(n,o){return ot(ge,a,he,t,n,z(n),e,o)},changed:I},s))}function D(){x(\"dragOverAnimationCapture\"),p.captureAnimationState(),p!==h&&h.captureAnimationState()}function N(t){return x(\"dragOverCompleted\",{insertion:t}),t&&(u?c._hideClone():c._showClone(p),p!==h&&(X(he,Ee?Ee.options.ghostClass:c.options.ghostClass,!1),X(he,l.ghostClass,!0)),Ee!==p&&p!==nt.active?Ee=p:p===nt.active&&Ee&&(Ee=null),h===p&&(p._ignoreWhileAnimating=i),p.animateAll(function(){x(\"dragOverAnimationComplete\"),p._ignoreWhileAnimating=null}),p!==h&&(h.animateAll(),h._ignoreWhileAnimating=null)),(i===he&&!he.animated||i===a&&!i.animated)&&(je=null),l.dragoverBubble||e.rootEl||i===document||(he.parentNode[re]._isOutsideThisEl(e.target),!t&&et(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),f=!0}function I(){Oe=J(he),Se=J(he,l.draggable),de({sortable:p,name:\"change\",toEl:a,newIndex:Oe,newDraggableIndex:Se,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){A(document,\"mousemove\",this._onTouchMove),A(document,\"touchmove\",this._onTouchMove),A(document,\"pointermove\",this._onTouchMove),A(document,\"dragover\",et),A(document,\"mousemove\",et),A(document,\"touchmove\",et)},_offUpEvents:function(){var e=this.el.ownerDocument;A(e,\"mouseup\",this._onDrop),A(e,\"touchend\",this._onDrop),A(e,\"pointerup\",this._onDrop),A(e,\"touchcancel\",this._onDrop),A(document,\"selectstart\",this)},_onDrop:function(e){var t=this.el,n=this.options;Oe=J(he),Se=J(he,n.draggable),ue(\"drop\",this,{evt:e}),pe=he&&he.parentNode,Oe=J(he),Se=J(he,n.draggable),nt.eventCanceled?this._nulling():(Fe=!1,He=!1,Ye=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),st(this.cloneId),st(this._dragStartId),this.nativeDraggable&&(A(document,\"drop\",this),A(t,\"dragstart\",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),N&&V(document.body,\"user-select\",\"\"),e&&(Ie&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),fe&&fe.parentNode&&fe.parentNode.removeChild(fe),(ge===pe||Ee&&\"clone\"!==Ee.lastPutMode)&&be&&be.parentNode&&be.parentNode.removeChild(be),he&&(this.nativeDraggable&&A(he,\"dragend\",this),rt(he),he.style[\"will-change\"]=\"\",Ie&&!Fe&&X(he,Ee?Ee.options.ghostClass:this.options.ghostClass,!1),X(he,this.options.chosenClass,!1),de({sortable:this,name:\"unchoose\",toEl:pe,newIndex:null,newDraggableIndex:null,originalEvent:e}),ge!==pe?(Oe>=0&&(de({rootEl:pe,name:\"add\",toEl:pe,fromEl:ge,originalEvent:e}),de({sortable:this,name:\"remove\",toEl:pe,originalEvent:e}),de({rootEl:pe,name:\"sort\",toEl:pe,fromEl:ge,originalEvent:e}),de({sortable:this,name:\"sort\",toEl:pe,originalEvent:e})),Ee&&Ee.save()):Oe!==we&&Oe>=0&&(de({sortable:this,name:\"update\",toEl:pe,originalEvent:e}),de({sortable:this,name:\"sort\",toEl:pe,originalEvent:e})),nt.active&&(null!=Oe&&-1!==Oe||(Oe=we,Se=_e),de({sortable:this,name:\"end\",toEl:pe,originalEvent:e}),this.save()))),this._nulling())},_nulling:function(){ue(\"nulling\",this),ge=he=pe=fe=ve=be=me=ye=Ce=ke=Ie=Oe=Se=we=_e=je=Me=Ee=Te=nt.dragged=nt.ghost=nt.clone=nt.active=null,We.forEach(function(e){e.checked=!0}),We.length=Pe=xe=0},handleEvent:function(e){switch(e.type){case\"drop\":case\"dragend\":this._onDrop(e);break;case\"dragenter\":case\"dragover\":he&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect=\"move\");e.cancelable&&e.preventDefault()}(e));break;case\"selectstart\":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,o=0,r=n.length,a=this.options;o0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function It(){for(var e=[],t=0;t0?\"multidrag\":e.swapItem?\"swap\":\"normal\"}function Yt(e){e.list,e.setList,e.children,e.tag,e.style,e.className,e.clone,e.onAdd,e.onChange,e.onChoose,e.onClone,e.onEnd,e.onFilter,e.onRemove,e.onSort,e.onStart,e.onUnchoose,e.onUpdate,e.onMove,e.onSpill,e.onSelect,e.onDeselect;return function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r when using the \"'+a+'\" plugin')}Mt(s),i.forEach(function(n){var o=n.oldIndex,r=t.props.clone(n.item,e);l.splice(o,1,r)})}r(l=l.map(function(e){return Dt(Dt({},e),{selected:!1})}),this.sortable,Ht)},t.prototype.onUpdate=function(e){var t=this.props,n=t.list,o=t.setList,r=At(e,n);return Mt(r),Rt(r),o(function(e,t){return Lt(e,Ft(e,t))}(r,n),this.sortable,Ht)},t.prototype.onStart=function(e){Ht.dragging=this},t.prototype.onEnd=function(e){Ht.dragging=null},t.prototype.onChoose=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n);r[e.oldIndex].chosen=!0,o(r,this.sortable,Ht)},t.prototype.onUnchoose=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n);r[e.oldIndex].chosen=!1,o(r,this.sortable,Ht)},t.prototype.onSpill=function(e){var t=this.props,n=t.removeOnSpill,o=t.revertOnSpill;n&&!o&&jt(e.item)},t.prototype.onSelect=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n).map(function(e){return Dt(Dt({},e),{selected:!1})});e.newIndicies.forEach(function(t){var n=t.index;if(-1===n)return console.log('\"'+e.type+'\" had indice of \"'+t.index+\"\\\", which is probably -1 and doesn't usually happen here.\"),void console.log(e);r[n].selected=!0}),o(r,this.sortable,Ht)},t.prototype.onDeselect=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n).map(function(e){return Dt(Dt({},e),{selected:!1})});e.newIndicies.forEach(function(e){var t=e.index;-1!==t&&(r[t].selected=!0)}),o(r,this.sortable,Ht)},t.defaultProps={clone:function(e){return e}},t}(a.Component),Vt=(n(8),function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=arguments[2],o=arguments[3],r=arguments[4];return e.map(function(e){var a=e._id,s=e.label,c=e.tagClassName,u=e.dataset;return i.a.createElement(\"li\",Wt({className:[\"tag-item\",c].filter(Boolean).join(\" \"),key:\"tag-item-\"+a},l(u)),i.a.createElement(O,{label:s,id:a,onDelete:t,readOnly:n,disabled:o,labelRemove:r}))})},Ut=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t),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,(t.__proto__||Object.getPrototypeOf(t)).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)}(t,a[\"PureComponent\"]),Vt(t,[{key:\"render\",value:function(){var e=this.props,t=e.tags,n=e.onTagRemove,o=e.texts,r=void 0===o?{}:o,a=e.disabled,l=e.readOnly,s=e.sortable,c=void 0!==s&&s,u=e.onReorderList,d=e.children||i.a.createElement(\"span\",{className:\"placeholder\"},r.placeholder||\"Choose...\");return i.a.createElement(\"ul\",{className:\"tag-list\"},c?i.a.createElement(Xt,{list:t,setList:function(e){return u(e)}},Kt(t,n,l,a,r.labelRemove)):Kt(t,n,l,a,r.labelRemove),i.a.createElement(\"li\",{className:\"tag-item\"},d))}}]),t}();Ut.propTypes={tags:r.a.array,onTagRemove:r.a.func,readOnly:r.a.bool,sortable:r.a.bool,onReorderList:r.a.func,disabled:r.a.bool,texts:r.a.object,children:r.a.node};var zt=Ut,qt=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,[\"actions\",\"id\"]);return s(t)?null:t.map(function(e,t){var r=e.id||\"action-\"+t;return i.a.createElement(rn,an({key:r},o,e,{actionData:{action:an({},e,{id:r}),nodeId:n}}))})}}]),t}();sn.propTypes={id:r.a.string.isRequired,actions:r.a.array};var cn=sn,un=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,[\"checked\",\"indeterminate\",\"onChange\",\"disabled\",\"readOnly\"]),c=a||l;return i.a.createElement(\"input\",un({type:\"checkbox\",ref:hn({checked:t,indeterminate:o}),onChange:r,disabled:c},s))}}]),t}();pn.propTypes={checked:r.a.bool,indeterminate:r.a.bool,onChange:r.a.func,disabled:r.a.bool,readOnly:r.a.bool};var fn=pn,gn=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,[\"name\",\"checked\",\"onChange\",\"disabled\",\"readOnly\"]),s=r||a;return i.a.createElement(\"input\",gn({type:\"radio\",name:t,ref:mn({checked:n}),onChange:o,disabled:s},l))}}]),t}();bn.propTypes={name:r.a.string.isRequired,checked:r.a.bool,onChange:r.a.func,disabled:r.a.bool,readOnly:r.a.bool};var yn=bn,wn=Object.assign||function(e){for(var t=1;t0?Math.ceil(r/e.props.pageSize):1}},this.getNodes=function(e){var t=e.data,n=e.keepTreeOnSearch,o=e.keepChildrenOnSearch,r=e.searchModeOn,a=e.mode,l=e.showPartiallySelected,s=e.readOnly,c=e.onAction,u=e.onChange,d=e.onCheckboxChange,h=e.onNodeToggle,p=e.activeDescendant,f=e.clientId,g=[];return t.forEach(function(e){(function(e,t,n){if(t||e.expanded)return!0;var o=e._parent&&n.get(e._parent);return!o||o.expanded})(e,r,t)&&g.push(i.a.createElement(Mn,Rn({keepTreeOnSearch:n,keepChildrenOnSearch:o,key:e._id},e,{searchModeOn:r,onChange:u,onCheckboxChange:d,onNodeToggle:h,onAction:c,mode:a,showPartiallySelected:l,readOnly:s,clientId:f,activeDescendant:p})))}),g},this.hasMore=function(){return e.currentPage1&&void 0!==arguments[1]?arguments[1]:\"children\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Xn;return Hn()(e[t],function(e){return n(e).checked})||e[t].some(function(e){return n(e).partial})};var Wn=function(e){var t=e.tree,n=e.simple,o=e.radio,r=e.showPartialState,a=e.hierarchical,i=e.rootPrefixId;return function e(t){var n=t.nodes,o=t.parent,r=t.depth,a=void 0===r?0:r,i=t.simple,l=t.radio,c=t.showPartialState,u=t.hierarchical,d=t.rootPrefixId,h=t._rv,p=void 0===h?{list:new Map,defaultValues:[],singleSelectedNode:null}:h,f=i||l;return n.forEach(function(t,n){t._depth=a,o?(t._id=t.id||o._id+\"-\"+n,t._parent=o._id,o._children.push(t._id)):t._id=t.id||\"\"+(d?d+\"-\"+n:n),f&&t.checked&&(p.singleSelectedNode?t.checked=!1:p.singleSelectedNode=t),f&&t.isDefaultValue&&p.singleSelectedNode&&!p.singleSelectedNode.isDefaultValue&&(p.singleSelectedNode.checked=!1,p.singleSelectedNode=null),!t.isDefaultValue||f&&0!==p.defaultValues.length||(p.defaultValues.push(t._id),t.checked=!0,f&&(p.singleSelectedNode=t)),u&&!l||function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&!arguments[2]?[\"disabled\"]:[\"checked\",\"disabled\"],o=0;o-1||!n&&e===o},co=function(e,t,n){if(!e||0===e.length)return t;var o=t;(function(e){return so(e,[ro.FocusFirst,ro.FocusLast],!0)})(n)?o=qn(e,1)[0]:[ro.FocusPrevious,ro.FocusNext].indexOf(n)>-1&&(o=function(e,t){var n=e.indexOf(t)+1;return n%e.length==0?e[0]:e[n]}(e,t));return o},uo={isValidKey:function(e,t){return(t?lo:io).indexOf(e)>-1},getAction:function(e,t){return t===Jn?function(e,t){return e&&t===Jn?!0===e.expanded?ro.ToggleExpanded:e._parent?ro.FocusParent:ro.None:ro.None}(e,t):t===Zn?function(e,t){return e&&e._children&&t===Zn?!0!==e.expanded?ro.ToggleExpanded:ro.FocusNext:ro.None}(e,t):function(e,t){return so(e,[eo,to],t,$n)}(t,e)?ro.FocusFirst:function(e,t){return so(e,[no,oo],t,Gn)}(t,e)?ro.FocusLast:function(e,t){if(!e)return ro.None;switch(t){case Gn:return ro.FocusPrevious;case $n:return ro.FocusNext;case Qn:return ro.ToggleChecked;default:return ro.None}}(e,t)},getNextFocus:function(e,t,n,o,r){if(n===ro.FocusParent)return function(e,t){return e&&e._parent?t(e._parent):e}(t,o);if(!ao.has(n))return t;var a=zn.getVisibleNodes(e,o,r);return function(e){return so(e,[ro.FocusPrevious,ro.FocusLast],!0)}(n)&&(a=a.reverse()),co(a,t,n)},getNextFocusAfterTagDelete:function(e,t,n,o){var r=t&&t.findIndex(function(t){return t._id===e});if(r<0||!n.length)return o;var a=n[r=n.length>r?r:n.length-1]._id,i=document.getElementById(y(a));return i&&i.firstElementChild||o},handleFocusNavigationkey:function(e,t,n,o,r){var a=uo.getNextFocus(e,n,t,o,r);return n&&a&&n._id!==a._id&&(n._focused=!1),a?(a._focused=!0,a._id):n&&n._id},handleToggleNavigationkey:function(e,t,n,o,r){return e!==ro.ToggleChecked||n||t.readOnly||t.disabled?e===ro.ToggleExpanded&&r(t._id):o(t._id,!0!==t.checked),t&&t._id}},ho=uo,po=function(){function e(e,t){for(var n=0;nn&&(n=r.length,o=r)});var r=[],a=this._getAddOnMatch(r,e);o!==e?this.searchMaps.get(o).forEach(function(e){return a(t.getNodeById(e))}):this.tree.forEach(a);return this.searchMaps.set(e,r),r}},{key:\"addParentsToTree\",value:function(e,t){if(void 0!==e){var n=this.getNodeById(e);this.addParentsToTree(n._parent,t),n.hide=!n._isMatch||n.hide,n.matchInChildren=!0,t.set(e,n)}}},{key:\"addChildrenToTree\",value:function(e,t,n){var o=this;void 0!==e&&e.forEach(function(e){if(!n||!n.includes(e)){var r=o.getNodeById(e);r.matchInParent=!0,t.set(e,r),o.addChildrenToTree(r._children,t)}})}},{key:\"filterTree\",value:function(e,t,n){var o=this,r=this.getMatches(e.toLowerCase()),a=new Map;r.forEach(function(e){var i=o.getNodeById(e);i.hide=!1,i._isMatch=!0,t&&o.addParentsToTree(i._parent,a),a.set(e,i),t&&n&&o.addChildrenToTree(i._children,a,r)});var i=0===r.length;return this.matchTree=a,{allNodesHidden:i,tree:a}}},{key:\"restoreNodes\",value:function(){return this.tree.forEach(function(e){e.hide=!1}),this.tree}},{key:\"restoreDefaultValues\",value:function(){var e=this;return this.defaultValues.forEach(function(t){e.setNodeCheckedState(t,!0)}),this.tree}},{key:\"togglePreviousChecked\",value:function(e,t){var n=this.currentChecked;n&&n!==e&&(this.getNodeById(n).checked=!1),this.currentChecked=t?e:null}},{key:\"setNodeCheckedState\",value:function(e,t){var n=this.getNodeById(e);n.checked=t,this.showPartialState&&(n.partial=!1),this.simpleSelect?this.togglePreviousChecked(e,t):this.radioSelect?(this.togglePreviousChecked(e,t),this.showPartialState&&this.partialCheckParents(n),t||this.unCheckParents(n)):(this.hierarchical||this.toggleChildren(e,t),this.showPartialState&&this.partialCheckParents(n),this.hierarchical||t||this.unCheckParents(n))}},{key:\"unCheckParents\",value:function(e){for(var t=e._parent;t;){var n=this.getNodeById(t);n.checked=!1,n.partial=Vn(n,\"_children\",this.getNodeById.bind(this)),t=n._parent}}},{key:\"partialCheckParents\",value:function(e){for(var t=this,n=e._parent;n;){var o=this.getNodeById(n);o.checked=o._children.every(function(e){return t.getNodeById(e).checked}),o.partial=Vn(o,\"_children\",this.getNodeById.bind(this)),n=o._parent}}},{key:\"toggleChildren\",value:function(e,t){var n=this,o=this.getNodeById(e);o.checked=t,this.showPartialState&&(o.partial=!1),s(o._children)||o._children.forEach(function(e){return n.toggleChildren(e,t)})}},{key:\"toggleNodeExpandState\",value:function(e){var t=this.getNodeById(e);return t.expanded=!t.expanded,t.expanded||this.collapseChildren(t),this.tree}},{key:\"collapseChildren\",value:function(e){var t=this;e.expanded=!1,s(e._children)||e._children.forEach(function(e){return t.collapseChildren(t.getNodeById(e))})}},{key:\"getTreeAndTags\",value:function(){return{tree:this.tree,tags:this.tags}}},{key:\"handleNavigationKey\",value:function(e,t,n,o,r,a,i){var l=this,s=e&&this.getNodeById(e),c=ho.getAction(s,n);return ao.has(c)?ho.handleFocusNavigationkey(t,c,s,function(e){return l.getNodeById(e)},r):s&&t.has(s._id)?ho.handleToggleNavigationkey(c,s,o,a,i):e}},{key:\"_getAddOnMatch\",value:function(e,t){var n=function(e,t){return e.label.toLowerCase().indexOf(t)>=0};return\"function\"==typeof this.searchPredicate&&(n=this.searchPredicate),function(o){n(o,t)&&e.push(o._id)}}},{key:\"tags\",get:function(){var e=this;return this.radioSelect||this.simpleSelect?this.currentChecked?[this.getNodeById(this.currentChecked)]:[]:zn.getNodesMatching(this.tree,function(t,n,o){return t.checked&&!e.hierarchical&&zn.markSubTreeVisited(t,o,function(t){return e.getNodeById(t)}),t.checked})}}]),e}(),go=(n(10),Object.assign||function(e){for(var t=1;t\n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nvar mo=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var 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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.initNewProps=function(e){var t=e.data,o=e.mode,r=e.showDropdown,a=e.showPartiallySelected,i=e.searchPredicate;n.treeManager=new fo({data:t,mode:o,showPartiallySelected:a,rootPrefixId:n.clientId,searchPredicate:i});var l=n.state.currentFocus&&n.treeManager.getNodeById(n.state.currentFocus);l&&(l._focused=!0),n.setState(function(e){return go({showDropdown:/initial|always/.test(r)||!0===e.showDropdown},n.treeManager.getTreeAndTags())})},n.resetSearchState=function(){return n.props.inlineSearchInput||(n.searchInput.value=\"\"),{tree:n.treeManager.restoreNodes(),searchModeOn:!1,allNodesHidden:!1}},n.handleClick=function(e,t){n.setState(function(e){var t=\"always\"===n.props.showDropdown||n.keepDropdownActive||!e.showDropdown;return t!==e.showDropdown&&(t?document.addEventListener(\"click\",n.handleOutsideClick,!1):document.removeEventListener(\"click\",n.handleOutsideClick,!1)),t?n.props.onFocus():n.props.onBlur(),t?{showDropdown:t}:go({showDropdown:t},n.resetSearchState())},t)},n.handleOutsideClick=function(e){\"always\"!==n.props.showDropdown&&c(e,n.node)&&n.handleClick()},n.onInputChange=function(e){var t=n.treeManager.filterTree(e,n.props.keepTreeOnSearch,n.props.keepChildrenOnSearch),o=t.allNodesHidden,r=t.tree,a=e.length>0;n.setState({tree:r,searchModeOn:a,allNodesHidden:o})},n.onTagRemove=function(e,t){var o=n.state.tags;n.onCheckboxChange(e,!1,function(r){t&&ho.getNextFocusAfterTagDelete(e,o,r,n.searchInput).focus()})},n.onNodeToggle=function(e){n.treeManager.toggleNodeExpandState(e);var t=n.state.searchModeOn?n.treeManager.matchTree:n.treeManager.tree;n.setState({tree:t}),\"function\"==typeof n.props.onNodeToggle&&n.props.onNodeToggle(n.treeManager.getNodeById(e))},n.onCheckboxChange=function(e,t,o){var r=n.props,a=r.mode,i=r.keepOpenOnSelect;n.treeManager.setNodeCheckedState(e,t);var l=n.treeManager.tags,s=[\"simpleSelect\",\"radioSelect\"].indexOf(a)>-1,c=!(s&&!i)&&n.state.showDropdown;l.length||(n.treeManager.restoreDefaultValues(),l=n.treeManager.tags);var u={tree:n.state.searchModeOn?n.treeManager.matchTree:n.treeManager.tree,tags:l,showDropdown:c};(s&&!c||n.props.clearSearchOnChange)&&Object.assign(u,n.resetSearchState()),s&&!c&&document.removeEventListener(\"click\",n.handleOutsideClick,!1),n.setState(u,function(){o&&o(l)}),n.props.onChange(n.treeManager.getNodeById(e),l)},n.onAction=function(e,t){n.props.onAction(n.treeManager.getNodeById(e),t)},n.onInputFocus=function(){n.keepDropdownActive=!0},n.onInputBlur=function(){n.keepDropdownActive=!1},n.onTrigger=function(e){n.handleClick(e,function(){n.state.showDropdown&&n.searchInput.focus()})},n.onKeyboardKeyDown=function(e){var t=n.props,o=t.readOnly,r=t.mode,a=n.state,i=a.showDropdown,l=a.tags,s=a.searchModeOn,c=a.currentFocus,u=n.treeManager,d=s?u.matchTree:u.tree;if(i||!ho.isValidKey(e.key,!1)&&!/^\\w$/i.test(e.key))if(i&&ho.isValidKey(e.key,!0)){var h=u.handleNavigationKey(c,d,e.key,o,!s,n.onCheckboxChange,n.onNodeToggle);h!==c&&n.setState({currentFocus:h})}else{if(i&&[\"Escape\",\"Tab\"].indexOf(e.key)>-1)return void(\"simpleSelect\"===r&&d.has(c)?n.onCheckboxChange(c,!0):(n.keepDropdownActive=!1,n.handleClick()));if(\"Backspace\"!==e.key||!l.length||0!==n.searchInput.value.length)return;var p=l.pop();n.onCheckboxChange(p._id,!1)}else if(e.persist(),n.handleClick(null,function(){return n.onKeyboardKeyDown(e)}),/\\w/i.test(e.key))return;e.preventDefault()},n.onReorderList=function(e){n.setState({tags:e},function(){n.props.onReorderList?n.props.onReorderList(e):n.props.onChange(e)})},n.getAriaAttributes=function(){var e=n.props,t=e.mode,o=e.texts;return\"radioSelect\"!==t?{}:go({role:\"radiogroup\"},h(o.label))},n.state={searchModeOn:!1,currentFocus:void 0},n.clientId=e.id||d.get(n),n}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)}(t,a[\"Component\"]),vo(t,[{key:\"componentWillMount\",value:function(){this.initNewProps(this.props)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener(\"click\",this.handleOutsideClick,!1)}},{key:\"componentWillReceiveProps\",value:function(e){this.initNewProps(e)}},{key:\"render\",value:function(){var e=this,t=this.props,n=t.disabled,o=t.readOnly,r=t.mode,a=t.texts,l=t.inlineSearchInput,s=t.sortable,c=void 0!==s&&s,u=this.state,d=u.showDropdown,h=u.currentFocus,p=u.tags,f={disabled:n,readOnly:o,activeDescendant:h?h+\"_li\":void 0,texts:a,mode:r,clientId:this.clientId},g=i.a.createElement(v,go({inputRef:function(t){e.searchInput=t},onInputChange:this.onInputChange,onFocus:this.onInputFocus,onBlur:this.onInputBlur,onKeyDown:this.onKeyboardKeyDown},f));return i.a.createElement(\"div\",{id:this.clientId,className:[this.props.className&&this.props.className,\"react-dropdown-tree-select\"].filter(Boolean).join(\" \"),ref:function(t){e.node=t}},i.a.createElement(\"div\",{className:[\"dropdown\",\"simpleSelect\"===r&&\"simple-select\",\"radioSelect\"===r&&\"radio-select\"].filter(Boolean).join(\" \")},i.a.createElement(Zt,go({onTrigger:this.onTrigger,showDropdown:d},f,{tags:p}),i.a.createElement(zt,go({tags:p,onTagRemove:this.onTagRemove,onReorderList:this.onReorderList,sortable:c},f),!l&&g)),d&&i.a.createElement(\"div\",go({className:\"dropdown-content\"},this.getAriaAttributes()),l&&g,this.state.allNodesHidden?i.a.createElement(\"span\",{className:\"no-matches\"},a.noMatches||\"No matches found\"):i.a.createElement(Bn,go({data:this.state.tree,keepTreeOnSearch:this.props.keepTreeOnSearch,keepChildrenOnSearch:this.props.keepChildrenOnSearch,searchModeOn:this.state.searchModeOn,onAction:this.onAction,onCheckboxChange:this.onCheckboxChange,onNodeToggle:this.onNodeToggle,mode:r,showPartiallySelected:this.props.showPartiallySelected},f)))))}}]),t}();mo.propTypes={data:r.a.oneOfType([r.a.object,r.a.array]).isRequired,clearSearchOnChange:r.a.bool,keepTreeOnSearch:r.a.bool,keepChildrenOnSearch:r.a.bool,keepOpenOnSelect:r.a.bool,texts:r.a.shape({placeholder:r.a.string,noMatches:r.a.string,label:r.a.string,labelRemove:r.a.string}),showDropdown:r.a.oneOf([\"default\",\"initial\",\"always\"]),className:r.a.string,onChange:r.a.func,onAction:r.a.func,onNodeToggle:r.a.func,onFocus:r.a.func,onBlur:r.a.func,mode:r.a.oneOf([\"multiSelect\",\"simpleSelect\",\"radioSelect\",\"hierarchical\"]),showPartiallySelected:r.a.bool,disabled:r.a.bool,readOnly:r.a.bool,id:r.a.string,onReorderList:r.a.func,sortable:r.a.bool,searchPredicate:r.a.func,inlineSearchInput:r.a.bool},mo.defaultProps={onFocus:function(){},onBlur:function(){},onChange:function(){},texts:{},showDropdown:\"default\",inlineSearchInput:!1};t.default=mo}" + "parsedSrc": "function(e,t,n){\"use strict\";n.r(t);var o=n(0),r=n.n(o),a=n(1),i=n.n(a),l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce(function(t,n){var o;return t[\"data-\"+(o=n,o.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase())]=e[n],t},{})},s=(function(){}(),function(e){return!e||Array.isArray(e)&&!e.length}),c=function(e,t){return e instanceof Event&&!function(e){if(e.path)return e.path;for(var t=e.target,n=[t];t.parentElement;)t=t.parentElement,n.unshift(t);return n}(e).some(function(e){return e===t})},u=function(e,t){var n=void 0;return function(){for(var o=arguments.length,r=Array(o),a=0;a-1)&&(o.handleClick(e),e.preventDefault())},b(o,n)}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)}(t,a[\"PureComponent\"]),m(t,[{key:\"render\",value:function(){var e=this.props,t=e.id,n=e.label,o=e.labelRemove,r=void 0===o?\"Remove\":o,a=e.readOnly,l=e.disabled,s=y(t),c=t+\"_button\",u=[\"tag-remove\",a&&\"readOnly\",l&&\"disabled\"].filter(Boolean).join(\" \"),d=a||l;return i.a.createElement(\"span\",{className:\"tag\",id:s,\"aria-label\":n},n,i.a.createElement(\"button\",{id:c,onClick:d?void 0:this.handleClick,onKeyDown:d?void 0:this.onKeyDown,onKeyUp:d?void 0:this.onKeyUp,className:u,type:\"button\",\"aria-label\":r,\"aria-labelledby\":c+\" \"+s,\"aria-disabled\":d},\"x\"))}}]),t}();w.propTypes={id:r.a.string.isRequired,label:r.a.string.isRequired,onDelete:r.a.func,readOnly:r.a.bool,disabled:r.a.bool,labelRemove:r.a.string};var O=w;\n/**!\n * Sortable 1.10.1\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */function _(e){return(_=\"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 S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(){return(T=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function k(e){if(\"undefined\"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var P=k(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i),x=k(/Edge/i),D=k(/firefox/i),N=k(/safari/i)&&!k(/chrome/i)&&!k(/android/i),I=k(/iP(ad|od|hone)/i),j=k(/chrome/i)&&k(/android/i),M={capture:!1,passive:!1};function R(e,t,n){e.addEventListener(t,n,!P&&M)}function A(e,t,n){e.removeEventListener(t,n,!P&&M)}function F(e,t){if(t){if(\">\"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function L(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function B(e,t,n,o){if(e){n=n||document;do{if(null!=t&&(\">\"===t[0]?e.parentNode===n&&F(e,t):F(e,t))||o&&e===n)return e;if(e===n)break}while(e=L(e))}return null}var Y,H=/\\s+/g;function X(e,t,n){if(e&&t)if(e.classList)e.classList[n?\"add\":\"remove\"](t);else{var o=(\" \"+e.className+\" \").replace(H,\" \").replace(\" \"+t+\" \",\" \");e.className=(o+(n?\" \"+t:\"\")).replace(H,\" \")}}function V(e,t,n){var o=e&&e.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,\"\"):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in o||-1!==t.indexOf(\"webkit\")||(t=\"-webkit-\"+t),o[t]=n+(\"string\"==typeof n?\"\":\"px\")}}function W(e,t){var n=\"\";if(\"string\"==typeof e)n=e;else do{var o=V(e,\"transform\");o&&\"none\"!==o&&(n=o+\" \"+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix;return r&&new r(n)}function K(e,t,n){if(e){var o=e.getElementsByTagName(t),r=0,a=o.length;if(n)for(;r=a:r<=a))return o;if(o===U())break;o=Q(o,!1)}return!1}function G(e,t,n){for(var o=0,r=0,a=e.children;r2&&void 0!==arguments[2]?arguments[2]:{},o=n.evt,r=C(n,[\"evt\"]);se.pluginEvent.bind(nt)(e,t,E({dragEl:he,parentEl:pe,ghostEl:fe,rootEl:ge,nextEl:ve,lastDownEl:me,cloneEl:be,cloneHidden:ye,dragStarted:Ie,putSortable:Ee,activeSortable:nt.active,originalEvent:o,oldIndex:we,oldDraggableIndex:_e,newIndex:Oe,newDraggableIndex:Se,hideGhostForTarget:Ze,unhideGhostForTarget:Qe,cloneNowHidden:function(){ye=!0},cloneNowShown:function(){ye=!1},dispatchSortableEvent:function(e){de({sortable:t,name:e,originalEvent:o})}},r))};function de(e){ce(E({putSortable:Ee,cloneEl:be,targetEl:he,rootEl:ge,oldIndex:we,oldDraggableIndex:_e,newIndex:Oe,newDraggableIndex:Se},e))}var he,pe,fe,ge,ve,me,be,ye,we,Oe,_e,Se,Te,Ee,Ce,ke,Pe,xe,De,Ne,Ie,je,Me,Re,Ae,Fe=!1,Le=!1,Be=[],Ye=!1,He=!1,Xe=[],Ve=!1,We=[],Ke=\"undefined\"!=typeof document,Ue=I,ze=x||P?\"cssFloat\":\"float\",qe=Ke&&!j&&!I&&\"draggable\"in document.createElement(\"div\"),Ge=function(){if(Ke){if(P)return!1;var e=document.createElement(\"x\");return e.style.cssText=\"pointer-events:auto\",\"auto\"===e.style.pointerEvents}}(),$e=function(e,t){var n=V(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=G(e,0,t),a=G(e,1,t),i=r&&V(r),l=a&&V(a),s=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+z(r).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+z(a).width;if(\"flex\"===n.display)return\"column\"===n.flexDirection||\"column-reverse\"===n.flexDirection?\"vertical\":\"horizontal\";if(\"grid\"===n.display)return n.gridTemplateColumns.split(\" \").length<=1?\"vertical\":\"horizontal\";if(r&&i.float&&\"none\"!==i.float){var u=\"left\"===i.float?\"left\":\"right\";return!a||\"both\"!==l.clear&&l.clear!==u?\"horizontal\":\"vertical\"}return r&&(\"block\"===i.display||\"flex\"===i.display||\"table\"===i.display||\"grid\"===i.display||s>=o&&\"none\"===n[ze]||a&&\"none\"===n[ze]&&s+c>o)?\"vertical\":\"horizontal\"},Je=function(e){function t(e,n){return function(o,r,a,i){var l=o.options.group.name&&r.options.group.name&&o.options.group.name===r.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&\"clone\"===e)return e;if(\"function\"==typeof e)return t(e(o,r,a,i),n)(o,r,a,i);var s=(n?o:r).options.group.name;return!0===e||\"string\"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},o=e.group;o&&\"object\"==_(o)||(o={name:o}),n.name=o.name,n.checkPull=t(o.pull,!0),n.checkPut=t(o.put),n.revertClone=o.revertClone,e.group=n},Ze=function(){!Ge&&fe&&V(fe,\"display\",\"none\")},Qe=function(){!Ge&&fe&&V(fe,\"display\",\"\")};Ke&&document.addEventListener(\"click\",function(e){if(Le)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Le=!1,!1},!0);var et=function(e){if(he){e=e.touches?e.touches[0]:e;var t=(r=e.clientX,a=e.clientY,Be.some(function(e){if(!$(e)){var t=z(e),n=e[re].options.emptyInsertThreshold,o=r>=t.left-n&&r<=t.right+n,l=a>=t.top-n&&a<=t.bottom+n;return n&&o&&l?i=e:void 0}}),i);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[re]._onDragOver(n)}}var r,a,i},tt=function(e){he&&he.parentNode[re]._isOutsideThisEl(e.target)};function nt(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw\"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(e));this.el=e,this.options=t=T({},t),e[re]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?\">li\":\">*\",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return $e(e,this.options)},ghostClass:\"sortable-ghost\",chosenClass:\"sortable-chosen\",dragClass:\"sortable-drag\",ignore:\"a, img\",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(\"Text\",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:\"data-id\",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:\"sortable-fallback\",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==nt.supportPointer&&\"PointerEvent\"in window,emptyInsertThreshold:5};for(var o in se.initializePlugins(this,e,n),n)!(o in t)&&(t[o]=n[o]);for(var r in Je(t),this)\"_\"===r.charAt(0)&&\"function\"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&qe,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?R(e,\"pointerdown\",this._onTapStart):(R(e,\"mousedown\",this._onTapStart),R(e,\"touchstart\",this._onTapStart)),this.nativeDraggable&&(R(e,\"dragover\",this),R(e,\"dragenter\",this)),Be.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),T(this,ae())}function ot(e,t,n,o,r,a,i,l){var s,c,u=e[re],d=u.options.onMove;return!window.CustomEvent||P||x?(s=document.createEvent(\"Event\")).initEvent(\"move\",!0,!0):s=new CustomEvent(\"move\",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=o,s.related=r||t,s.relatedRect=a||z(t),s.willInsertAfter=l,s.originalEvent=i,e.dispatchEvent(s),d&&(c=d.call(u,s,i)),c}function rt(e){e.draggable=!1}function at(){Ve=!1}function it(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,o=0;n--;)o+=t.charCodeAt(n);return o.toString(36)}function lt(e){return setTimeout(e,0)}function st(e){return clearTimeout(e)}nt.prototype={constructor:nt,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(je=null)},_getDirection:function(e,t){return\"function\"==typeof this.options.direction?this.options.direction.call(this,e,t,he):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,o=this.options,r=o.preventOnFilter,a=e.type,i=e.touches&&e.touches[0]||e.pointerType&&\"touch\"===e.pointerType&&e,l=(i||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=o.filter;if(function(e){We.length=0;var t=e.getElementsByTagName(\"input\"),n=t.length;for(;n--;){var o=t[n];o.checked&&We.push(o)}}(n),!he&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||o.disabled||s.isContentEditable||(l=B(l,o.draggable,n,!1))&&l.animated||me===l)){if(we=J(l),_e=J(l,o.draggable),\"function\"==typeof c){if(c.call(this,e,l,this))return de({sortable:t,rootEl:s,name:\"filter\",targetEl:l,toEl:n,fromEl:n}),ue(\"filter\",t,{evt:e}),void(r&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(\",\").some(function(o){if(o=B(s,o.trim(),n,!1))return de({sortable:t,rootEl:o,name:\"filter\",targetEl:l,fromEl:n,toEl:n}),ue(\"filter\",t,{evt:e}),!0})))return void(r&&e.cancelable&&e.preventDefault());o.handle&&!B(s,o.handle,n,!1)||this._prepareDragStart(e,i,l)}}},_prepareDragStart:function(e,t,n){var o,r=this,a=r.el,i=r.options,l=a.ownerDocument;if(n&&!he&&n.parentNode===a){var s=z(n);if(ge=a,pe=(he=n).parentNode,ve=he.nextSibling,me=n,Te=i.group,nt.dragged=he,Ce={target:he,clientX:(t||e).clientX,clientY:(t||e).clientY},De=Ce.clientX-s.left,Ne=Ce.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,he.style[\"will-change\"]=\"all\",o=function(){ue(\"delayEnded\",r,{evt:e}),nt.eventCanceled?r._onDrop():(r._disableDelayedDragEvents(),!D&&r.nativeDraggable&&(he.draggable=!0),r._triggerDragStart(e,t),de({sortable:r,name:\"choose\",originalEvent:e}),X(he,i.chosenClass,!0))},i.ignore.split(\",\").forEach(function(e){K(he,e.trim(),rt)}),R(l,\"dragover\",et),R(l,\"mousemove\",et),R(l,\"touchmove\",et),R(l,\"mouseup\",r._onDrop),R(l,\"touchend\",r._onDrop),R(l,\"touchcancel\",r._onDrop),D&&this.nativeDraggable&&(this.options.touchStartThreshold=4,he.draggable=!0),ue(\"delayStart\",this,{evt:e}),!i.delay||i.delayOnTouchOnly&&!t||this.nativeDraggable&&(x||P))o();else{if(nt.eventCanceled)return void this._onDrop();R(l,\"mouseup\",r._disableDelayedDrag),R(l,\"touchend\",r._disableDelayedDrag),R(l,\"touchcancel\",r._disableDelayedDrag),R(l,\"mousemove\",r._delayedDragTouchMoveHandler),R(l,\"touchmove\",r._delayedDragTouchMoveHandler),i.supportPointer&&R(l,\"pointermove\",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(o,i.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){he&&rt(he),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;A(e,\"mouseup\",this._disableDelayedDrag),A(e,\"touchend\",this._disableDelayedDrag),A(e,\"touchcancel\",this._disableDelayedDrag),A(e,\"mousemove\",this._delayedDragTouchMoveHandler),A(e,\"touchmove\",this._delayedDragTouchMoveHandler),A(e,\"pointermove\",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||\"touch\"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?R(document,\"pointermove\",this._onTouchMove):R(document,t?\"touchmove\":\"mousemove\",this._onTouchMove):(R(he,\"dragend\",this),R(ge,\"dragstart\",this._onDragStart));try{document.selection?lt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(Fe=!1,ge&&he){ue(\"dragStarted\",this,{evt:t}),this.nativeDraggable&&R(document,\"dragover\",tt);var n=this.options;!e&&X(he,n.dragClass,!1),X(he,n.ghostClass,!0),nt.active=this,e&&this._appendGhost(),de({sortable:this,name:\"start\",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ke){this._lastX=ke.clientX,this._lastY=ke.clientY,Ze();for(var e=document.elementFromPoint(ke.clientX,ke.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ke.clientX,ke.clientY))!==t;)t=e;if(he.parentNode[re]._isOutsideThisEl(e),t)do{if(t[re]){if(t[re]._onDragOver({clientX:ke.clientX,clientY:ke.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Qe()}},_onTouchMove:function(e){if(Ce){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,r=e.touches?e.touches[0]:e,a=fe&&W(fe),i=fe&&a&&a.a,l=fe&&a&&a.d,s=Ue&&Ae&&Z(Ae),c=(r.clientX-Ce.clientX+o.x)/(i||1)+(s?s[0]-Xe[0]:0)/(i||1),u=(r.clientY-Ce.clientY+o.y)/(l||1)+(s?s[1]-Xe[1]:0)/(l||1);if(!nt.active&&!Fe){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))o.right+10||e.clientX<=o.right&&e.clientY>o.bottom&&e.clientX>=o.left:e.clientX>o.right&&e.clientY>o.top||e.clientX<=o.right&&e.clientY>o.bottom+10}(e,r,this)&&!g.animated){if(g===he)return N(!1);if(g&&a===e.target&&(i=g),i&&(n=z(i)),!1!==ot(ge,a,he,t,i,n,e,!!i))return D(),a.appendChild(he),pe=a,I(),N(!0)}else if(i.parentNode===a){n=z(i);var v,m,b,y=he.parentNode!==a,w=!function(e,t,n){var o=n?e.left:e.top,r=n?e.right:e.bottom,a=n?e.width:e.height,i=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return o===i||r===l||o+a/2===i+s/2}(he.animated&&he.toRect||t,i.animated&&i.toRect||n,r),O=r?\"top\":\"left\",_=q(i,\"top\",\"top\")||q(he,\"top\",\"top\"),S=_?_.scrollTop:void 0;if(je!==i&&(m=n[O],Ye=!1,He=!w&&l.invertSwap||y),0!==(v=function(e,t,n,o,r,a,i,l){var s=o?e.clientY:e.clientX,c=o?n.height:n.width,u=o?n.top:n.left,d=o?n.bottom:n.right,h=!1;if(!i)if(l&&Reu+c*a/2:sd-Re)return-Me}else if(s>u+c*(1-r)/2&&sd-c*a/2))return s>u+c/2?1:-1;return 0}(e,i,n,r,w?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,He,je===i))){var T=J(he);do{T-=v,b=pe.children[T]}while(b&&(\"none\"===V(b,\"display\")||b===fe))}if(0===v||b===i)return N(!1);je=i,Me=v;var C=i.nextElementSibling,k=!1,P=ot(ge,a,he,t,i,n,e,k=1===v);if(!1!==P)return 1!==P&&-1!==P||(k=1===P),Ve=!0,setTimeout(at,30),D(),k&&!C?a.appendChild(he):i.parentNode.insertBefore(he,k?C:i),_&&ne(_,0,S-_.scrollTop),pe=he.parentNode,void 0===m||He||(Re=Math.abs(m-z(i)[O])),I(),N(!0)}if(a.contains(he))return N(!1)}return!1}function x(l,s){ue(l,p,E({evt:e,isOwner:u,axis:r?\"vertical\":\"horizontal\",revert:o,dragRect:t,targetRect:n,canSort:d,fromSortable:h,target:i,completed:N,onMove:function(n,o){return ot(ge,a,he,t,n,z(n),e,o)},changed:I},s))}function D(){x(\"dragOverAnimationCapture\"),p.captureAnimationState(),p!==h&&h.captureAnimationState()}function N(t){return x(\"dragOverCompleted\",{insertion:t}),t&&(u?c._hideClone():c._showClone(p),p!==h&&(X(he,Ee?Ee.options.ghostClass:c.options.ghostClass,!1),X(he,l.ghostClass,!0)),Ee!==p&&p!==nt.active?Ee=p:p===nt.active&&Ee&&(Ee=null),h===p&&(p._ignoreWhileAnimating=i),p.animateAll(function(){x(\"dragOverAnimationComplete\"),p._ignoreWhileAnimating=null}),p!==h&&(h.animateAll(),h._ignoreWhileAnimating=null)),(i===he&&!he.animated||i===a&&!i.animated)&&(je=null),l.dragoverBubble||e.rootEl||i===document||(he.parentNode[re]._isOutsideThisEl(e.target),!t&&et(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),f=!0}function I(){Oe=J(he),Se=J(he,l.draggable),de({sortable:p,name:\"change\",toEl:a,newIndex:Oe,newDraggableIndex:Se,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){A(document,\"mousemove\",this._onTouchMove),A(document,\"touchmove\",this._onTouchMove),A(document,\"pointermove\",this._onTouchMove),A(document,\"dragover\",et),A(document,\"mousemove\",et),A(document,\"touchmove\",et)},_offUpEvents:function(){var e=this.el.ownerDocument;A(e,\"mouseup\",this._onDrop),A(e,\"touchend\",this._onDrop),A(e,\"pointerup\",this._onDrop),A(e,\"touchcancel\",this._onDrop),A(document,\"selectstart\",this)},_onDrop:function(e){var t=this.el,n=this.options;Oe=J(he),Se=J(he,n.draggable),ue(\"drop\",this,{evt:e}),pe=he&&he.parentNode,Oe=J(he),Se=J(he,n.draggable),nt.eventCanceled?this._nulling():(Fe=!1,He=!1,Ye=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),st(this.cloneId),st(this._dragStartId),this.nativeDraggable&&(A(document,\"drop\",this),A(t,\"dragstart\",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),N&&V(document.body,\"user-select\",\"\"),e&&(Ie&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),fe&&fe.parentNode&&fe.parentNode.removeChild(fe),(ge===pe||Ee&&\"clone\"!==Ee.lastPutMode)&&be&&be.parentNode&&be.parentNode.removeChild(be),he&&(this.nativeDraggable&&A(he,\"dragend\",this),rt(he),he.style[\"will-change\"]=\"\",Ie&&!Fe&&X(he,Ee?Ee.options.ghostClass:this.options.ghostClass,!1),X(he,this.options.chosenClass,!1),de({sortable:this,name:\"unchoose\",toEl:pe,newIndex:null,newDraggableIndex:null,originalEvent:e}),ge!==pe?(Oe>=0&&(de({rootEl:pe,name:\"add\",toEl:pe,fromEl:ge,originalEvent:e}),de({sortable:this,name:\"remove\",toEl:pe,originalEvent:e}),de({rootEl:pe,name:\"sort\",toEl:pe,fromEl:ge,originalEvent:e}),de({sortable:this,name:\"sort\",toEl:pe,originalEvent:e})),Ee&&Ee.save()):Oe!==we&&Oe>=0&&(de({sortable:this,name:\"update\",toEl:pe,originalEvent:e}),de({sortable:this,name:\"sort\",toEl:pe,originalEvent:e})),nt.active&&(null!=Oe&&-1!==Oe||(Oe=we,Se=_e),de({sortable:this,name:\"end\",toEl:pe,originalEvent:e}),this.save()))),this._nulling())},_nulling:function(){ue(\"nulling\",this),ge=he=pe=fe=ve=be=me=ye=Ce=ke=Ie=Oe=Se=we=_e=je=Me=Ee=Te=nt.dragged=nt.ghost=nt.clone=nt.active=null,We.forEach(function(e){e.checked=!0}),We.length=Pe=xe=0},handleEvent:function(e){switch(e.type){case\"drop\":case\"dragend\":this._onDrop(e);break;case\"dragenter\":case\"dragover\":he&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect=\"move\");e.cancelable&&e.preventDefault()}(e));break;case\"selectstart\":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,o=0,r=n.length,a=this.options;o0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function It(){for(var e=[],t=0;t0?\"multidrag\":e.swapItem?\"swap\":\"normal\"}function Yt(e){e.list,e.setList,e.children,e.tag,e.style,e.className,e.clone,e.onAdd,e.onChange,e.onChoose,e.onClone,e.onEnd,e.onFilter,e.onRemove,e.onSort,e.onStart,e.onUnchoose,e.onUpdate,e.onMove,e.onSpill,e.onSelect,e.onDeselect;return function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r when using the \"'+a+'\" plugin')}Mt(s),i.forEach(function(n){var o=n.oldIndex,r=t.props.clone(n.item,e);l.splice(o,1,r)})}r(l=l.map(function(e){return Dt(Dt({},e),{selected:!1})}),this.sortable,Ht)},t.prototype.onUpdate=function(e){var t=this.props,n=t.list,o=t.setList,r=At(e,n);return Mt(r),Rt(r),o(function(e,t){return Lt(e,Ft(e,t))}(r,n),this.sortable,Ht)},t.prototype.onStart=function(e){Ht.dragging=this},t.prototype.onEnd=function(e){Ht.dragging=null},t.prototype.onChoose=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n);r[e.oldIndex].chosen=!0,o(r,this.sortable,Ht)},t.prototype.onUnchoose=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n);r[e.oldIndex].chosen=!1,o(r,this.sortable,Ht)},t.prototype.onSpill=function(e){var t=this.props,n=t.removeOnSpill,o=t.revertOnSpill;n&&!o&&jt(e.item)},t.prototype.onSelect=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n).map(function(e){return Dt(Dt({},e),{selected:!1})});e.newIndicies.forEach(function(t){var n=t.index;if(-1===n)return console.log('\"'+e.type+'\" had indice of \"'+t.index+\"\\\", which is probably -1 and doesn't usually happen here.\"),void console.log(e);r[n].selected=!0}),o(r,this.sortable,Ht)},t.prototype.onDeselect=function(e){var t=this.props,n=t.list,o=t.setList,r=It(n).map(function(e){return Dt(Dt({},e),{selected:!1})});e.newIndicies.forEach(function(e){var t=e.index;-1!==t&&(r[t].selected=!0)}),o(r,this.sortable,Ht)},t.defaultProps={clone:function(e){return e}},t}(a.Component),Vt=(n(8),function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=arguments[2],o=arguments[3],r=arguments[4];return e.map(function(e){var a=e._id,s=e.label,c=e.tagClassName,u=e.dataset;return i.a.createElement(\"li\",Wt({className:[\"tag-item\",c].filter(Boolean).join(\" \"),key:\"tag-item-\"+a},l(u)),i.a.createElement(O,{label:s,id:a,onDelete:t,readOnly:n,disabled:o,labelRemove:r}))})},Ut=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t),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,(t.__proto__||Object.getPrototypeOf(t)).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)}(t,a[\"PureComponent\"]),Vt(t,[{key:\"render\",value:function(){var e=this.props,t=e.tags,n=e.onTagRemove,o=e.texts,r=void 0===o?{}:o,a=e.disabled,l=e.readOnly,s=e.sortable,c=void 0!==s&&s,u=e.onReorderList,d=e.newType,h=e.children||i.a.createElement(\"span\",{className:\"placeholder\"},r.placeholder||\"Choose...\");return i.a.createElement(\"ul\",{className:\"tag-list\"},c?i.a.createElement(Xt,{list:d&&0!==d.length?d:t,setList:function(e){return u(e)}},Kt(t,n,l,a,r.labelRemove)):Kt(t,n,l,a,r.labelRemove),i.a.createElement(\"li\",{className:\"tag-item\"},h))}}]),t}();Ut.propTypes={tags:r.a.array,onTagRemove:r.a.func,readOnly:r.a.bool,sortable:r.a.bool,onReorderList:r.a.func,newType:r.a.array,disabled:r.a.bool,texts:r.a.object,children:r.a.node};var zt=Ut,qt=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,[\"actions\",\"id\"]);return s(t)?null:t.map(function(e,t){var r=e.id||\"action-\"+t;return i.a.createElement(rn,an({key:r},o,e,{actionData:{action:an({},e,{id:r}),nodeId:n}}))})}}]),t}();sn.propTypes={id:r.a.string.isRequired,actions:r.a.array};var cn=sn,un=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,[\"checked\",\"indeterminate\",\"onChange\",\"disabled\",\"readOnly\"]),c=a||l;return i.a.createElement(\"input\",un({type:\"checkbox\",ref:hn({checked:t,indeterminate:o}),onChange:r,disabled:c},s))}}]),t}();pn.propTypes={checked:r.a.bool,indeterminate:r.a.bool,onChange:r.a.func,disabled:r.a.bool,readOnly:r.a.bool};var fn=pn,gn=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n}(e,[\"name\",\"checked\",\"onChange\",\"disabled\",\"readOnly\"]),s=r||a;return i.a.createElement(\"input\",gn({type:\"radio\",name:t,ref:mn({checked:n}),onChange:o,disabled:s},l))}}]),t}();bn.propTypes={name:r.a.string.isRequired,checked:r.a.bool,onChange:r.a.func,disabled:r.a.bool,readOnly:r.a.bool};var yn=bn,wn=Object.assign||function(e){for(var t=1;t0?Math.ceil(r/e.props.pageSize):1}},this.getNodes=function(e){var t=e.data,n=e.keepTreeOnSearch,o=e.keepChildrenOnSearch,r=e.searchModeOn,a=e.mode,l=e.showPartiallySelected,s=e.readOnly,c=e.onAction,u=e.onChange,d=e.onCheckboxChange,h=e.onNodeToggle,p=e.activeDescendant,f=e.clientId,g=[];return t.forEach(function(e){(function(e,t,n){if(t||e.expanded)return!0;var o=e._parent&&n.get(e._parent);return!o||o.expanded})(e,r,t)&&g.push(i.a.createElement(Mn,Rn({keepTreeOnSearch:n,keepChildrenOnSearch:o,key:e._id},e,{searchModeOn:r,onChange:u,onCheckboxChange:d,onNodeToggle:h,onAction:c,mode:a,showPartiallySelected:l,readOnly:s,clientId:f,activeDescendant:p})))}),g},this.hasMore=function(){return e.currentPage1&&void 0!==arguments[1]?arguments[1]:\"children\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Xn;return Hn()(e[t],function(e){return n(e).checked})||e[t].some(function(e){return n(e).partial})};var Wn=function(e){var t=e.tree,n=e.simple,o=e.radio,r=e.showPartialState,a=e.hierarchical,i=e.rootPrefixId;return function e(t){var n=t.nodes,o=t.parent,r=t.depth,a=void 0===r?0:r,i=t.simple,l=t.radio,c=t.showPartialState,u=t.hierarchical,d=t.rootPrefixId,h=t._rv,p=void 0===h?{list:new Map,defaultValues:[],singleSelectedNode:null}:h,f=i||l;return n.forEach(function(t,n){t._depth=a,o?(t._id=t.id||o._id+\"-\"+n,t._parent=o._id,o._children.push(t._id)):t._id=t.id||\"\"+(d?d+\"-\"+n:n),f&&t.checked&&(p.singleSelectedNode?t.checked=!1:p.singleSelectedNode=t),f&&t.isDefaultValue&&p.singleSelectedNode&&!p.singleSelectedNode.isDefaultValue&&(p.singleSelectedNode.checked=!1,p.singleSelectedNode=null),!t.isDefaultValue||f&&0!==p.defaultValues.length||(p.defaultValues.push(t._id),t.checked=!0,f&&(p.singleSelectedNode=t)),u&&!l||function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&!arguments[2]?[\"disabled\"]:[\"checked\",\"disabled\"],o=0;o-1||!n&&e===o},co=function(e,t,n){if(!e||0===e.length)return t;var o=t;(function(e){return so(e,[ro.FocusFirst,ro.FocusLast],!0)})(n)?o=qn(e,1)[0]:[ro.FocusPrevious,ro.FocusNext].indexOf(n)>-1&&(o=function(e,t){var n=e.indexOf(t)+1;return n%e.length==0?e[0]:e[n]}(e,t));return o},uo={isValidKey:function(e,t){return(t?lo:io).indexOf(e)>-1},getAction:function(e,t){return t===Jn?function(e,t){return e&&t===Jn?!0===e.expanded?ro.ToggleExpanded:e._parent?ro.FocusParent:ro.None:ro.None}(e,t):t===Zn?function(e,t){return e&&e._children&&t===Zn?!0!==e.expanded?ro.ToggleExpanded:ro.FocusNext:ro.None}(e,t):function(e,t){return so(e,[eo,to],t,$n)}(t,e)?ro.FocusFirst:function(e,t){return so(e,[no,oo],t,Gn)}(t,e)?ro.FocusLast:function(e,t){if(!e)return ro.None;switch(t){case Gn:return ro.FocusPrevious;case $n:return ro.FocusNext;case Qn:return ro.ToggleChecked;default:return ro.None}}(e,t)},getNextFocus:function(e,t,n,o,r){if(n===ro.FocusParent)return function(e,t){return e&&e._parent?t(e._parent):e}(t,o);if(!ao.has(n))return t;var a=zn.getVisibleNodes(e,o,r);return function(e){return so(e,[ro.FocusPrevious,ro.FocusLast],!0)}(n)&&(a=a.reverse()),co(a,t,n)},getNextFocusAfterTagDelete:function(e,t,n,o){var r=t&&t.findIndex(function(t){return t._id===e});if(r<0||!n.length)return o;var a=n[r=n.length>r?r:n.length-1]._id,i=document.getElementById(y(a));return i&&i.firstElementChild||o},handleFocusNavigationkey:function(e,t,n,o,r){var a=uo.getNextFocus(e,n,t,o,r);return n&&a&&n._id!==a._id&&(n._focused=!1),a?(a._focused=!0,a._id):n&&n._id},handleToggleNavigationkey:function(e,t,n,o,r){return e!==ro.ToggleChecked||n||t.readOnly||t.disabled?e===ro.ToggleExpanded&&r(t._id):o(t._id,!0!==t.checked),t&&t._id}},ho=uo,po=function(){function e(e,t){for(var n=0;nn&&(n=r.length,o=r)});var r=[],a=this._getAddOnMatch(r,e);o!==e?this.searchMaps.get(o).forEach(function(e){return a(t.getNodeById(e))}):this.tree.forEach(a);return this.searchMaps.set(e,r),r}},{key:\"addParentsToTree\",value:function(e,t){if(void 0!==e){var n=this.getNodeById(e);this.addParentsToTree(n._parent,t),n.hide=!n._isMatch||n.hide,n.matchInChildren=!0,t.set(e,n)}}},{key:\"addChildrenToTree\",value:function(e,t,n){var o=this;void 0!==e&&e.forEach(function(e){if(!n||!n.includes(e)){var r=o.getNodeById(e);r.matchInParent=!0,t.set(e,r),o.addChildrenToTree(r._children,t)}})}},{key:\"filterTree\",value:function(e,t,n){var o=this,r=this.getMatches(e.toLowerCase()),a=new Map;r.forEach(function(e){var i=o.getNodeById(e);i.hide=!1,i._isMatch=!0,t&&o.addParentsToTree(i._parent,a),a.set(e,i),t&&n&&o.addChildrenToTree(i._children,a,r)});var i=0===r.length;return this.matchTree=a,{allNodesHidden:i,tree:a}}},{key:\"restoreNodes\",value:function(){return this.tree.forEach(function(e){e.hide=!1}),this.tree}},{key:\"restoreDefaultValues\",value:function(){var e=this;return this.defaultValues.forEach(function(t){e.setNodeCheckedState(t,!0)}),this.tree}},{key:\"togglePreviousChecked\",value:function(e,t){var n=this.currentChecked;n&&n!==e&&(this.getNodeById(n).checked=!1),this.currentChecked=t?e:null}},{key:\"setNodeCheckedState\",value:function(e,t){var n=this.getNodeById(e);n.checked=t,this.showPartialState&&(n.partial=!1),this.simpleSelect?this.togglePreviousChecked(e,t):this.radioSelect?(this.togglePreviousChecked(e,t),this.showPartialState&&this.partialCheckParents(n),t||this.unCheckParents(n)):(this.hierarchical||this.toggleChildren(e,t),this.showPartialState&&this.partialCheckParents(n),this.hierarchical||t||this.unCheckParents(n))}},{key:\"unCheckParents\",value:function(e){for(var t=e._parent;t;){var n=this.getNodeById(t);n.checked=!1,n.partial=Vn(n,\"_children\",this.getNodeById.bind(this)),t=n._parent}}},{key:\"partialCheckParents\",value:function(e){for(var t=this,n=e._parent;n;){var o=this.getNodeById(n);o.checked=o._children.every(function(e){return t.getNodeById(e).checked}),o.partial=Vn(o,\"_children\",this.getNodeById.bind(this)),n=o._parent}}},{key:\"toggleChildren\",value:function(e,t){var n=this,o=this.getNodeById(e);o.checked=t,this.showPartialState&&(o.partial=!1),s(o._children)||o._children.forEach(function(e){return n.toggleChildren(e,t)})}},{key:\"toggleNodeExpandState\",value:function(e){var t=this.getNodeById(e);return t.expanded=!t.expanded,t.expanded||this.collapseChildren(t),this.tree}},{key:\"collapseChildren\",value:function(e){var t=this;e.expanded=!1,s(e._children)||e._children.forEach(function(e){return t.collapseChildren(t.getNodeById(e))})}},{key:\"getTreeAndTags\",value:function(){return{tree:this.tree,tags:this.tags}}},{key:\"handleNavigationKey\",value:function(e,t,n,o,r,a,i){var l=this,s=e&&this.getNodeById(e),c=ho.getAction(s,n);return ao.has(c)?ho.handleFocusNavigationkey(t,c,s,function(e){return l.getNodeById(e)},r):s&&t.has(s._id)?ho.handleToggleNavigationkey(c,s,o,a,i):e}},{key:\"_getAddOnMatch\",value:function(e,t){var n=function(e,t){return e.label.toLowerCase().indexOf(t)>=0};return\"function\"==typeof this.searchPredicate&&(n=this.searchPredicate),function(o){n(o,t)&&e.push(o._id)}}},{key:\"tags\",get:function(){var e=this;return this.radioSelect||this.simpleSelect?this.currentChecked?[this.getNodeById(this.currentChecked)]:[]:zn.getNodesMatching(this.tree,function(t,n,o){return t.checked&&!e.hierarchical&&zn.markSubTreeVisited(t,o,function(t){return e.getNodeById(t)}),t.checked})}}]),e}(),go=(n(10),Object.assign||function(e){for(var t=1;t\n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nvar mo=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var 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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.initNewProps=function(e){var t=e.data,o=e.mode,r=e.showDropdown,a=e.showPartiallySelected,i=e.searchPredicate;n.treeManager=new fo({data:t,mode:o,showPartiallySelected:a,rootPrefixId:n.clientId,searchPredicate:i});var l=n.state.currentFocus&&n.treeManager.getNodeById(n.state.currentFocus);l&&(l._focused=!0),n.setState(function(e){return go({showDropdown:/initial|always/.test(r)||!0===e.showDropdown},n.treeManager.getTreeAndTags())})},n.resetSearchState=function(){return n.props.inlineSearchInput||(n.searchInput.value=\"\"),{tree:n.treeManager.restoreNodes(),searchModeOn:!1,allNodesHidden:!1}},n.handleClick=function(e,t){n.setState(function(e){var t=\"always\"===n.props.showDropdown||n.keepDropdownActive||!e.showDropdown;return t!==e.showDropdown&&(t?document.addEventListener(\"click\",n.handleOutsideClick,!1):document.removeEventListener(\"click\",n.handleOutsideClick,!1)),t?n.props.onFocus():n.props.onBlur(),t?{showDropdown:t}:go({showDropdown:t},n.resetSearchState())},t)},n.handleOutsideClick=function(e){\"always\"!==n.props.showDropdown&&c(e,n.node)&&n.handleClick()},n.onInputChange=function(e){var t=n.treeManager.filterTree(e,n.props.keepTreeOnSearch,n.props.keepChildrenOnSearch),o=t.allNodesHidden,r=t.tree,a=e.length>0;n.setState({tree:r,searchModeOn:a,allNodesHidden:o})},n.onTagRemove=function(e,t){var o=n.state.tags;n.onCheckboxChange(e,!1,function(r){t&&ho.getNextFocusAfterTagDelete(e,o,r,n.searchInput).focus()})},n.onNodeToggle=function(e){n.treeManager.toggleNodeExpandState(e);var t=n.state.searchModeOn?n.treeManager.matchTree:n.treeManager.tree;n.setState({tree:t}),\"function\"==typeof n.props.onNodeToggle&&n.props.onNodeToggle(n.treeManager.getNodeById(e))},n.onCheckboxChange=function(e,t,o){var r=n.props,a=r.mode,i=r.keepOpenOnSelect;n.treeManager.setNodeCheckedState(e,t);var l=n.treeManager.tags,s=[\"simpleSelect\",\"radioSelect\"].indexOf(a)>-1,c=!(s&&!i)&&n.state.showDropdown;l.length||(n.treeManager.restoreDefaultValues(),l=n.treeManager.tags);var u={tree:n.state.searchModeOn?n.treeManager.matchTree:n.treeManager.tree,tags:l,showDropdown:c};(s&&!c||n.props.clearSearchOnChange)&&Object.assign(u,n.resetSearchState()),s&&!c&&document.removeEventListener(\"click\",n.handleOutsideClick,!1),n.setState(u,function(){o&&o(l)}),n.props.onChange(n.treeManager.getNodeById(e),l)},n.onAction=function(e,t){n.props.onAction(n.treeManager.getNodeById(e),t)},n.onInputFocus=function(){n.keepDropdownActive=!0},n.onInputBlur=function(){n.keepDropdownActive=!1},n.onTrigger=function(e){n.handleClick(e,function(){n.state.showDropdown&&n.searchInput.focus()})},n.onKeyboardKeyDown=function(e){var t=n.props,o=t.readOnly,r=t.mode,a=n.state,i=a.showDropdown,l=a.tags,s=a.searchModeOn,c=a.currentFocus,u=n.treeManager,d=s?u.matchTree:u.tree;if(i||!ho.isValidKey(e.key,!1)&&!/^\\w$/i.test(e.key))if(i&&ho.isValidKey(e.key,!0)){var h=u.handleNavigationKey(c,d,e.key,o,!s,n.onCheckboxChange,n.onNodeToggle);h!==c&&n.setState({currentFocus:h})}else{if(i&&[\"Escape\",\"Tab\"].indexOf(e.key)>-1)return void(\"simpleSelect\"===r&&d.has(c)?n.onCheckboxChange(c,!0):(n.keepDropdownActive=!1,n.handleClick()));if(\"Backspace\"!==e.key||!l.length||0!==n.searchInput.value.length)return;var p=l.pop();n.onCheckboxChange(p._id,!1)}else if(e.persist(),n.handleClick(null,function(){return n.onKeyboardKeyDown(e)}),/\\w/i.test(e.key))return;e.preventDefault()},n.onReorderList=function(e){n.setState({tags:e},function(){n.props.onReorderList?n.props.onReorderList(e):n.props.onChange(e)})},n.getAriaAttributes=function(){var e=n.props,t=e.mode,o=e.texts;return\"radioSelect\"!==t?{}:go({role:\"radiogroup\"},h(o.label))},n.state={searchModeOn:!1,currentFocus:void 0},n.clientId=e.id||d.get(n),n}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)}(t,a[\"Component\"]),vo(t,[{key:\"componentWillMount\",value:function(){this.initNewProps(this.props)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener(\"click\",this.handleOutsideClick,!1)}},{key:\"componentWillReceiveProps\",value:function(e){this.initNewProps(e)}},{key:\"render\",value:function(){var e=this,t=this.props,n=t.disabled,o=t.readOnly,r=t.mode,a=t.texts,l=t.inlineSearchInput,s=(t.sortable,this.state),c=s.showDropdown,u=s.currentFocus,d=s.tags,h={disabled:n,readOnly:o,activeDescendant:u?u+\"_li\":void 0,texts:a,mode:r,clientId:this.clientId},p=i.a.createElement(v,go({inputRef:function(t){e.searchInput=t},onInputChange:this.onInputChange,onFocus:this.onInputFocus,onBlur:this.onInputBlur,onKeyDown:this.onKeyboardKeyDown},h));return i.a.createElement(\"div\",{id:this.clientId,className:[this.props.className&&this.props.className,\"react-dropdown-tree-select\"].filter(Boolean).join(\" \"),ref:function(t){e.node=t}},i.a.createElement(\"div\",{className:[\"dropdown\",\"simpleSelect\"===r&&\"simple-select\",\"radioSelect\"===r&&\"radio-select\"].filter(Boolean).join(\" \")},i.a.createElement(Zt,go({onTrigger:this.onTrigger,showDropdown:c},h,{tags:d}),i.a.createElement(zt,go({tags:d,onTagRemove:this.onTagRemove,onReorderList:this.onReorderList,newType:this.props.newType,sortable:!0},h),!l&&p)),c&&i.a.createElement(\"div\",go({className:\"dropdown-content\"},this.getAriaAttributes()),l&&p,this.state.allNodesHidden?i.a.createElement(\"span\",{className:\"no-matches\"},a.noMatches||\"No matches found\"):i.a.createElement(Bn,go({data:this.state.tree,keepTreeOnSearch:this.props.keepTreeOnSearch,keepChildrenOnSearch:this.props.keepChildrenOnSearch,searchModeOn:this.state.searchModeOn,onAction:this.onAction,onCheckboxChange:this.onCheckboxChange,onNodeToggle:this.onNodeToggle,mode:r,showPartiallySelected:this.props.showPartiallySelected},h)))))}}]),t}();mo.propTypes={data:r.a.oneOfType([r.a.object,r.a.array]).isRequired,clearSearchOnChange:r.a.bool,keepTreeOnSearch:r.a.bool,keepChildrenOnSearch:r.a.bool,keepOpenOnSelect:r.a.bool,texts:r.a.shape({placeholder:r.a.string,noMatches:r.a.string,label:r.a.string,labelRemove:r.a.string}),showDropdown:r.a.oneOf([\"default\",\"initial\",\"always\"]),className:r.a.string,onChange:r.a.func,onAction:r.a.func,onNodeToggle:r.a.func,onFocus:r.a.func,onBlur:r.a.func,mode:r.a.oneOf([\"multiSelect\",\"simpleSelect\",\"radioSelect\",\"hierarchical\"]),showPartiallySelected:r.a.bool,disabled:r.a.bool,readOnly:r.a.bool,id:r.a.string,onReorderList:r.a.func,sortable:r.a.bool,searchPredicate:r.a.func,inlineSearchInput:r.a.bool},mo.defaultProps={onFocus:function(){},onBlur:function(){},onChange:function(){},texts:{},showDropdown:\"default\",inlineSearchInput:!1};t.default=mo}" }, { "id": "", @@ -4981,9 +4672,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.css", "issuerId": 10, "issuerName": "./src/index.css", @@ -5002,8 +4691,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 10, @@ -5014,9 +4702,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 2 }, { @@ -5029,9 +4715,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.css", "issuerId": 8, "issuerName": "./src/tags/index.css", @@ -5055,8 +4739,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 8, @@ -5067,9 +4750,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3 }, { @@ -5082,9 +4763,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tag/index.css", "issuerId": 7, "issuerName": "./src/tag/index.css", @@ -5113,8 +4792,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 7, @@ -5125,9 +4803,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 4 }, { @@ -5140,9 +4816,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.css", "issuerId": 9, "issuerName": "./src/tree-node/index.css", @@ -5171,8 +4845,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 9, @@ -5183,9 +4856,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 4 } ], @@ -5197,8 +4868,7 @@ "moduleName": "", "loc": "react-dropdown-tree-select", "request": "./src/index.js", - "reasons": [ - ] + "reasons": [] } ] } @@ -5215,9 +4885,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -5231,8 +4899,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -5844,7 +5511,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "102:8-17" + "loc": "102:11-20" }, { "moduleId": 11, @@ -5853,7 +5520,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "102:11-20" + "loc": "102:15-24" }, { "moduleId": 11, @@ -5862,7 +5529,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "102:15-24" + "loc": "103:9-18" }, { "moduleId": 11, @@ -5871,7 +5538,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "103:9-18" + "loc": "104:9-18" }, { "moduleId": 11, @@ -5880,7 +5547,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "103:15-24" + "loc": "105:9-18" }, { "moduleId": 11, @@ -5889,7 +5556,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "104:9-18" + "loc": "106:8-17" }, { "moduleId": 11, @@ -5898,7 +5565,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "104:12-21" + "loc": "106:11-20" }, { "moduleId": 11, @@ -5907,7 +5574,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "105:9-18" + "loc": "107:11-20" }, { "moduleId": 11, @@ -5916,7 +5583,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "105:12-21" + "loc": "107:15-24" }, { "moduleId": 11, @@ -5925,7 +5592,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "106:11-20" + "loc": "108:12-21" }, { "moduleId": 11, @@ -5934,7 +5601,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "106:17-26" + "loc": "108:12-21" }, { "moduleId": 11, @@ -5943,7 +5610,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "107:11-20" + "loc": "109:11-20" }, { "moduleId": 11, @@ -5952,7 +5619,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "107:12-21" + "loc": "109:12-21" }, { "moduleId": 11, @@ -5961,7 +5628,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "108:9-18" + "loc": "110:8-17" }, { "moduleId": 11, @@ -5970,7 +5637,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "108:12-21" + "loc": "110:17-26" }, { "moduleId": 11, @@ -5979,7 +5646,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "109:11-20" + "loc": "111:11-20" }, { "moduleId": 11, @@ -5988,7 +5655,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "109:12-21" + "loc": "111:25-34" }, { "moduleId": 11, @@ -5997,7 +5664,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "110:8-17" + "loc": "112:12-21" }, { "moduleId": 11, @@ -6006,7 +5673,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "111:25-34" + "loc": "112:20-29" }, { "moduleId": 11, @@ -6015,7 +5682,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "112:20-29" + "loc": "113:9-18" }, { "moduleId": 11, @@ -6053,6 +5720,15 @@ "userRequest": "prop-types", "loc": "114:12-21" }, + { + "moduleId": 11, + "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js 532080210f55a83a36f76d9d5977d244", + "module": "./src/index.js + 28 modules", + "moduleName": "./src/index.js + 28 modules", + "type": "harmony import specifier", + "userRequest": "prop-types", + "loc": "114:12-21" + }, { "moduleId": 11, "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js 532080210f55a83a36f76d9d5977d244", @@ -6321,7 +5997,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "375:8-17" + "loc": "376:8-17" }, { "moduleId": 11, @@ -6330,7 +6006,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "375:29-38" + "loc": "376:29-38" }, { "moduleId": 11, @@ -6339,7 +6015,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "375:47-56" + "loc": "376:47-56" }, { "moduleId": 11, @@ -6348,7 +6024,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "376:23-32" + "loc": "377:23-32" }, { "moduleId": 11, @@ -6357,7 +6033,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "377:20-29" + "loc": "378:20-29" }, { "moduleId": 11, @@ -6366,7 +6042,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "378:24-33" + "loc": "379:24-33" }, { "moduleId": 11, @@ -6375,7 +6051,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "379:20-29" + "loc": "380:20-29" }, { "moduleId": 11, @@ -6384,7 +6060,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "380:9-18" + "loc": "381:9-18" }, { "moduleId": 11, @@ -6393,7 +6069,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "381:17-26" + "loc": "382:17-26" }, { "moduleId": 11, @@ -6402,7 +6078,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "382:15-24" + "loc": "383:15-24" }, { "moduleId": 11, @@ -6411,7 +6087,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "383:11-20" + "loc": "384:11-20" }, { "moduleId": 11, @@ -6420,7 +6096,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "384:17-26" + "loc": "385:17-26" }, { "moduleId": 11, @@ -6429,7 +6105,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "386:16-25" + "loc": "387:16-25" }, { "moduleId": 11, @@ -6438,7 +6114,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "387:13-22" + "loc": "388:13-22" }, { "moduleId": 11, @@ -6447,7 +6123,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "388:12-21" + "loc": "389:12-21" }, { "moduleId": 11, @@ -6456,7 +6132,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "389:12-21" + "loc": "390:12-21" }, { "moduleId": 11, @@ -6465,7 +6141,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "390:16-25" + "loc": "391:16-25" }, { "moduleId": 11, @@ -6474,7 +6150,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "391:11-20" + "loc": "392:11-20" }, { "moduleId": 11, @@ -6483,7 +6159,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "392:10-19" + "loc": "393:10-19" }, { "moduleId": 11, @@ -6492,7 +6168,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "393:8-17" + "loc": "394:8-17" }, { "moduleId": 11, @@ -6501,7 +6177,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "394:25-34" + "loc": "395:25-34" }, { "moduleId": 11, @@ -6510,7 +6186,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "395:12-21" + "loc": "396:12-21" }, { "moduleId": 11, @@ -6519,7 +6195,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "396:12-21" + "loc": "397:12-21" }, { "moduleId": 11, @@ -6528,7 +6204,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "397:6-15" + "loc": "398:6-15" }, { "moduleId": 11, @@ -6537,7 +6213,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "398:17-26" + "loc": "399:17-26" }, { "moduleId": 11, @@ -6546,7 +6222,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "399:12-21" + "loc": "400:12-21" }, { "moduleId": 11, @@ -6555,7 +6231,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "400:19-28" + "loc": "401:19-28" }, { "moduleId": 11, @@ -6564,16 +6240,12 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "prop-types", - "loc": "401:21-30" + "loc": "402:21-30" } ], - "usedExports": [ - "default" - ], + "usedExports": ["default"], "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n" }, @@ -6587,9 +6259,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -6603,8 +6273,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 3, @@ -6910,7 +6579,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "73:33-38" + "loc": "74:2-11" }, { "moduleId": 11, @@ -6919,7 +6588,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "74:2-11" + "loc": "74:8-13" }, { "moduleId": 11, @@ -6928,7 +6597,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "74:8-13" + "loc": "74:33-38" }, { "moduleId": 11, @@ -6946,7 +6615,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "79:13-18" + "loc": "80:13-18" }, { "moduleId": 11, @@ -6964,7 +6633,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "82:88-93" + "loc": "82:173-178" }, { "moduleId": 11, @@ -6973,7 +6642,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "82:173-178" + "loc": "83:88-93" }, { "moduleId": 11, @@ -6991,7 +6660,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "89:8-13" + "loc": "93:8-13" }, { "moduleId": 11, @@ -7027,7 +6696,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "99:2-15" + "loc": "103:2-15" }, { "moduleId": 11, @@ -7180,7 +6849,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "346:26-31" + "loc": "347:26-31" }, { "moduleId": 11, @@ -7189,7 +6858,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "350:40-45" + "loc": "351:40-45" }, { "moduleId": 11, @@ -7198,7 +6867,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "354:16-21" + "loc": "355:16-21" }, { "moduleId": 11, @@ -7207,7 +6876,7 @@ "moduleName": "./src/index.js + 28 modules", "type": "harmony import specifier", "userRequest": "react", - "loc": "372:2-11" + "loc": "373:2-11" }, { "moduleId": 11, @@ -7221,9 +6890,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1 }, { @@ -7237,9 +6904,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/react-sortablejs/dist/index.es.js", "issuerId": null, "issuerName": "./node_modules/react-sortablejs/dist/index.es.js", @@ -7263,8 +6928,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -7285,13 +6949,9 @@ "loc": "226:28-38" } ], - "usedExports": [ - "default" - ], + "usedExports": ["default"], "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3, "source": "/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n" }, @@ -7306,9 +6966,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree/index.js", "issuerId": null, "issuerName": "./src/tree/index.js", @@ -7327,8 +6985,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -7349,13 +7006,9 @@ "loc": "55:10-24" } ], - "usedExports": [ - "default" - ], + "usedExports": ["default"], "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 2, "source": "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"InfiniteScroll\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"InfiniteScroll\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_8__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\n\tvar _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; };\n\n\tvar _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; }; })();\n\n\tvar _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _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; }\n\n\tvar _react = __webpack_require__(8);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(6);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tvar _utilsThrottle = __webpack_require__(2);\n\n\tvar _utilsThrottle2 = _interopRequireDefault(_utilsThrottle);\n\n\tvar _utilsThreshold = __webpack_require__(1);\n\n\tvar InfiniteScroll = (function (_Component) {\n\t _inherits(InfiniteScroll, _Component);\n\n\t function InfiniteScroll(props) {\n\t _classCallCheck(this, InfiniteScroll);\n\n\t _get(Object.getPrototypeOf(InfiniteScroll.prototype), \"constructor\", this).call(this);\n\t this.state = {\n\t showLoader: false,\n\t lastScrollTop: 0,\n\t actionTriggered: false,\n\t pullToRefreshThresholdBreached: false\n\t };\n\t // variables to keep track of pull down behaviour\n\t this.startY = 0;\n\t this.currentY = 0;\n\t this.dragging = false;\n\t // will be populated in componentDidMount\n\t // based on the height of the pull down element\n\t this.maxPullDownDistance = 0;\n\n\t this.onScrollListener = this.onScrollListener.bind(this);\n\t this.throttledOnScrollListener = (0, _utilsThrottle2[\"default\"])(this.onScrollListener, 150).bind(this);\n\t this.onStart = this.onStart.bind(this);\n\t this.onMove = this.onMove.bind(this);\n\t this.onEnd = this.onEnd.bind(this);\n\t this.getScrollableTarget = this.getScrollableTarget.bind(this);\n\t }\n\n\t _createClass(InfiniteScroll, [{\n\t key: \"componentDidMount\",\n\t value: function componentDidMount() {\n\t this._scrollableNode = this.getScrollableTarget();\n\t this.el = this.props.height ? this._infScroll : this._scrollableNode || window;\n\t this.el.addEventListener(\"scroll\", this.throttledOnScrollListener);\n\n\t if (typeof this.props.initialScrollY === \"number\" && this.el.scrollHeight > this.props.initialScrollY) {\n\t this.el.scrollTo(0, this.props.initialScrollY);\n\t }\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.addEventListener(\"touchstart\", this.onStart);\n\t this.el.addEventListener(\"touchmove\", this.onMove);\n\t this.el.addEventListener(\"touchend\", this.onEnd);\n\n\t this.el.addEventListener(\"mousedown\", this.onStart);\n\t this.el.addEventListener(\"mousemove\", this.onMove);\n\t this.el.addEventListener(\"mouseup\", this.onEnd);\n\n\t // get BCR of pullDown element to position it above\n\t this.maxPullDownDistance = this._pullDown.firstChild.getBoundingClientRect().height;\n\t this.forceUpdate();\n\n\t if (typeof this.props.refreshFunction !== \"function\") {\n\t throw new Error(\"Mandatory prop \\\"refreshFunction\\\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage'\");\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"componentWillUnmount\",\n\t value: function componentWillUnmount() {\n\t this.el.removeEventListener(\"scroll\", this.throttledOnScrollListener);\n\n\t if (this.props.pullDownToRefresh) {\n\t this.el.removeEventListener(\"touchstart\", this.onStart);\n\t this.el.removeEventListener(\"touchmove\", this.onMove);\n\t this.el.removeEventListener(\"touchend\", this.onEnd);\n\n\t this.el.removeEventListener(\"mousedown\", this.onStart);\n\t this.el.removeEventListener(\"mousemove\", this.onMove);\n\t this.el.removeEventListener(\"mouseup\", this.onEnd);\n\t }\n\t }\n\t }, {\n\t key: \"componentWillReceiveProps\",\n\t value: function componentWillReceiveProps(props) {\n\t // do nothing when dataLength and key are unchanged\n\t if (this.props.key === props.key && this.props.dataLength === props.dataLength) return;\n\n\t // update state when new data was sent in\n\t this.setState({\n\t showLoader: false,\n\t actionTriggered: false,\n\t pullToRefreshThresholdBreached: false\n\t });\n\t }\n\t }, {\n\t key: \"getScrollableTarget\",\n\t value: function getScrollableTarget() {\n\t if (this.props.scrollableTarget instanceof HTMLElement) return this.props.scrollableTarget;\n\t if (typeof this.props.scrollableTarget === 'string') {\n\t return document.getElementById(this.props.scrollableTarget);\n\t }\n\t if (this.props.scrollableTarget === null) {\n\t console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \");\n\t }\n\t return null;\n\t }\n\t }, {\n\t key: \"onStart\",\n\t value: function onStart(evt) {\n\t if (this.state.lastScrollTop) return;\n\n\t this.dragging = true;\n\t this.startY = evt.pageY || evt.touches[0].pageY;\n\t this.currentY = this.startY;\n\n\t this._infScroll.style.willChange = \"transform\";\n\t this._infScroll.style.transition = \"transform 0.2s cubic-bezier(0,0,0.31,1)\";\n\t }\n\t }, {\n\t key: \"onMove\",\n\t value: function onMove(evt) {\n\t if (!this.dragging) return;\n\t this.currentY = evt.pageY || evt.touches[0].pageY;\n\n\t // user is scrolling down to up\n\t if (this.currentY < this.startY) return;\n\n\t if (this.currentY - this.startY >= this.props.pullDownToRefreshThreshold) {\n\t this.setState({\n\t pullToRefreshThresholdBreached: true\n\t });\n\t }\n\n\t // so you can drag upto 1.5 times of the maxPullDownDistance\n\t if (this.currentY - this.startY > this.maxPullDownDistance * 1.5) return;\n\n\t this._infScroll.style.overflow = \"visible\";\n\t this._infScroll.style.transform = \"translate3d(0px, \" + (this.currentY - this.startY) + \"px, 0px)\";\n\t }\n\t }, {\n\t key: \"onEnd\",\n\t value: function onEnd(evt) {\n\t var _this = this;\n\n\t this.startY = 0;\n\t this.currentY = 0;\n\n\t this.dragging = false;\n\n\t if (this.state.pullToRefreshThresholdBreached) {\n\t this.props.refreshFunction && this.props.refreshFunction();\n\t }\n\n\t requestAnimationFrame(function () {\n\t // this._infScroll\n\t if (_this._infScroll) {\n\t _this._infScroll.style.overflow = \"auto\";\n\t _this._infScroll.style.transform = \"none\";\n\t _this._infScroll.style.willChange = \"none\";\n\t }\n\t });\n\t }\n\t }, {\n\t key: \"isElementAtBottom\",\n\t value: function isElementAtBottom(target) {\n\t var scrollThreshold = arguments.length <= 1 || arguments[1] === undefined ? 0.8 : arguments[1];\n\n\t var clientHeight = target === document.body || target === document.documentElement ? window.screen.availHeight : target.clientHeight;\n\n\t var threshold = (0, _utilsThreshold.parseThreshold)(scrollThreshold);\n\n\t if (threshold.unit === _utilsThreshold.ThresholdUnits.Pixel) {\n\t return target.scrollTop + clientHeight >= target.scrollHeight - threshold.value;\n\t }\n\n\t return target.scrollTop + clientHeight >= threshold.value / 100 * target.scrollHeight;\n\t }\n\t }, {\n\t key: \"onScrollListener\",\n\t value: function onScrollListener(event) {\n\t var _this2 = this;\n\n\t if (typeof this.props.onScroll === \"function\") {\n\t // Execute this callback in next tick so that it does not affect the\n\t // functionality of the library.\n\t setTimeout(function () {\n\t return _this2.props.onScroll(event);\n\t }, 0);\n\t }\n\n\t var target = this.props.height || this._scrollableNode ? event.target : document.documentElement.scrollTop ? document.documentElement : document.body;\n\n\t // return immediately if the action has already been triggered,\n\t // prevents multiple triggers.\n\t if (this.state.actionTriggered) return;\n\n\t var atBottom = this.isElementAtBottom(target, this.props.scrollThreshold);\n\n\t // call the `next` function in the props to trigger the next data fetch\n\t if (atBottom && this.props.hasMore) {\n\t this.setState({ actionTriggered: true, showLoader: true });\n\t this.props.next();\n\t }\n\t this.setState({ lastScrollTop: target.scrollTop });\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var _this3 = this;\n\n\t var style = _extends({\n\t height: this.props.height || \"auto\",\n\t overflow: \"auto\",\n\t WebkitOverflowScrolling: \"touch\"\n\t }, this.props.style);\n\t var hasChildren = this.props.hasChildren || !!(this.props.children && this.props.children.length);\n\n\t // because heighted infiniteScroll visualy breaks\n\t // on drag down as overflow becomes visible\n\t var outerDivStyle = this.props.pullDownToRefresh && this.props.height ? { overflow: \"auto\" } : {};\n\t return _react2[\"default\"].createElement(\n\t \"div\",\n\t { style: outerDivStyle },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t className: \"infinite-scroll-component \" + (this.props.className || ''),\n\t ref: function (infScroll) {\n\t return _this3._infScroll = infScroll;\n\t },\n\t style: style\n\t },\n\t this.props.pullDownToRefresh && _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: { position: \"relative\" },\n\t ref: function (pullDown) {\n\t return _this3._pullDown = pullDown;\n\t }\n\t },\n\t _react2[\"default\"].createElement(\n\t \"div\",\n\t {\n\t style: {\n\t position: \"absolute\",\n\t left: 0,\n\t right: 0,\n\t top: -1 * this.maxPullDownDistance\n\t }\n\t },\n\t !this.state.pullToRefreshThresholdBreached && this.props.pullDownToRefreshContent,\n\t this.state.pullToRefreshThresholdBreached && this.props.releaseToRefreshContent\n\t )\n\t ),\n\t this.props.children,\n\t !this.state.showLoader && !hasChildren && this.props.hasMore && this.props.loader,\n\t this.state.showLoader && this.props.hasMore && this.props.loader,\n\t !this.props.hasMore && this.props.endMessage\n\t )\n\t );\n\t }\n\t }]);\n\n\t return InfiniteScroll;\n\t})(_react.Component);\n\n\texports[\"default\"] = InfiniteScroll;\n\n\tInfiniteScroll.defaultProps = {\n\t pullDownToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Pull down to refresh\"\n\t ),\n\t releaseToRefreshContent: _react2[\"default\"].createElement(\n\t \"h3\",\n\t null,\n\t \"Release to refresh\"\n\t ),\n\t pullDownToRefreshThreshold: 100,\n\t disableBrowserPullToRefresh: true\n\t};\n\n\tInfiniteScroll.propTypes = {\n\t next: _propTypes2[\"default\"].func,\n\t hasMore: _propTypes2[\"default\"].bool,\n\t children: _propTypes2[\"default\"].node,\n\t loader: _propTypes2[\"default\"].node.isRequired,\n\t scrollThreshold: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n\t endMessage: _propTypes2[\"default\"].node,\n\t style: _propTypes2[\"default\"].object,\n\t height: _propTypes2[\"default\"].number,\n\t scrollableTarget: _propTypes2[\"default\"].node,\n\t hasChildren: _propTypes2[\"default\"].bool,\n\t pullDownToRefresh: _propTypes2[\"default\"].bool,\n\t pullDownToRefreshContent: _propTypes2[\"default\"].node,\n\t releaseToRefreshContent: _propTypes2[\"default\"].node,\n\t pullDownToRefreshThreshold: _propTypes2[\"default\"].number,\n\t refreshFunction: _propTypes2[\"default\"].func,\n\t onScroll: _propTypes2[\"default\"].func,\n\t dataLength: _propTypes2[\"default\"].number.isRequired,\n\t key: _propTypes2[\"default\"].string\n\t};\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\texports.parseThreshold = parseThreshold;\n\tvar ThresholdUnits = {\n\t Pixel: 'Pixel',\n\t Percent: 'Percent'\n\t};\n\n\texports.ThresholdUnits = ThresholdUnits;\n\tvar defaultThreshold = {\n\t unit: ThresholdUnits.Percent,\n\t value: 0.8\n\t};\n\n\tfunction parseThreshold(scrollThreshold) {\n\t if (typeof scrollThreshold === \"number\") {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: scrollThreshold * 100\n\t };\n\t }\n\n\t if (typeof scrollThreshold === \"string\") {\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)px$/)) {\n\t return {\n\t unit: ThresholdUnits.Pixel,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)%$/)) {\n\t return {\n\t unit: ThresholdUnits.Percent,\n\t value: parseFloat(scrollThreshold)\n\t };\n\t }\n\n\t console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...');\n\n\t return defaultThreshold;\n\t }\n\n\t console.warn('scrollThreshold should be string or number');\n\n\t return defaultThreshold;\n\t}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t// https://remysharp.com/2010/07/21/throttling-function-calls\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports[\"default\"] = throttle;\n\n\tfunction throttle(fn, threshhold, scope) {\n\t threshhold || (threshhold = 250);\n\t var last, deferTimer;\n\t return function () {\n\t var context = scope || this;\n\n\t var now = +new Date(),\n\t args = arguments;\n\t if (last && now < last + threshhold) {\n\t // hold on to it\n\t clearTimeout(deferTimer);\n\t deferTimer = setTimeout(function () {\n\t last = now;\n\t fn.apply(context, args);\n\t }, threshhold);\n\t } else {\n\t last = now;\n\t fn.apply(context, args);\n\t }\n\t };\n\t}\n\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t * \n\t */\n\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t */\n\n\t'use strict';\n\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\n\tvar validateFormat = function validateFormat(format) {};\n\n\tif (false) {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\n\tmodule.exports = invariant;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar emptyFunction = __webpack_require__(3);\n\tvar invariant = __webpack_require__(4);\n\tvar ReactPropTypesSecret = __webpack_require__(7);\n\n\tmodule.exports = function() {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\tif (false) {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(5)();\n\t}\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\n\t'use strict';\n\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ })\n/******/ ])\n});\n;" }, @@ -7370,9 +7023,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/getPartialState.js", "issuerId": null, "issuerName": "./src/tree-manager/getPartialState.js", @@ -7396,8 +7047,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -7418,13 +7068,9 @@ "loc": "10:9-16" } ], - "usedExports": [ - "default" - ], + "usedExports": ["default"], "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3, "source": "'use strict'\nmodule.exports = function (arr, func) {\n var some = arr.filter(func)\n return some.length !== 0 && some.length !== arr.length\n}\n" }, @@ -7439,9 +7085,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/prop-types/index.js", "issuerId": 0, "issuerName": "./node_modules/prop-types/index.js", @@ -7460,8 +7104,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -7475,9 +7118,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 2, "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n" }, @@ -7492,9 +7133,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/prop-types/factoryWithThrowingShims.js", "issuerId": 5, "issuerName": "./node_modules/prop-types/factoryWithThrowingShims.js", @@ -7518,8 +7157,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 5, @@ -7533,9 +7171,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3, "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n" }, @@ -7550,9 +7186,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tag/index.js", "issuerId": null, "issuerName": "./src/tag/index.js", @@ -7576,8 +7210,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -7591,9 +7224,7 @@ ], "usedExports": false, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3, "source": "// extracted by mini-css-extract-plugin" }, @@ -7608,9 +7239,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.js", "issuerId": null, "issuerName": "./src/tags/index.js", @@ -7629,8 +7258,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -7644,9 +7272,7 @@ ], "usedExports": false, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 2, "source": "// extracted by mini-css-extract-plugin" }, @@ -7661,9 +7287,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.js", "issuerId": null, "issuerName": "./src/tree-node/index.js", @@ -7687,8 +7311,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -7702,9 +7325,7 @@ ], "usedExports": false, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3, "source": "// extracted by mini-css-extract-plugin" }, @@ -7719,9 +7340,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -7735,8 +7354,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 11, @@ -7750,9 +7368,7 @@ ], "usedExports": false, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "// extracted by mini-css-extract-plugin" }, @@ -7762,14 +7378,12 @@ "name": "./src/index.js + 28 modules", "index": 0, "index2": 43, - "size": 235939, + "size": 236123, "cacheable": true, "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -7777,8 +7391,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -7791,9 +7404,7 @@ } ], "usedExports": true, - "providedExports": [ - "default" - ], + "providedExports": ["default"], "optimizationBailout": [ "ModuleConcatenation bailout: Cannot concat with ./node_modules/array.partial/index.js (<- Module is not an ECMAScript module)", "ModuleConcatenation bailout: Cannot concat with ./node_modules/classnames/index.js (<- Module is not an ECMAScript module)", @@ -7809,13 +7420,12 @@ "name": "./src/index.js", "index": 0, "index2": 43, - "size": 15613, + "size": 15654, "cacheable": true, "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": null, "issuerId": null, "issuerName": null, @@ -7823,8 +7433,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -7837,14 +7446,10 @@ } ], "usedExports": true, - "providedExports": [ - "default" - ], - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is an entry point" - ], + "providedExports": ["default"], + "optimizationBailout": ["ModuleConcatenation bailout: Module is an entry point"], "depth": 0, - "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\n/*!\n * React Dropdown Tree Select\n * A lightweight, fast and highly customizable tree select component.\n * Hrusikesh Panda \n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport { isOutsideClick, clientIdGenerator } from './utils';\nimport Input from './input';\nimport Tags from './tags';\nimport Trigger from './trigger';\nimport Tree from './tree';\nimport TreeManager from './tree-manager';\nimport keyboardNavigation from './tree-manager/keyboardNavigation';\n\nimport './index.css';\nimport { getAriaLabel } from './a11y';\n\nvar DropdownTreeSelect = function (_Component) {\n _inherits(DropdownTreeSelect, _Component);\n\n function DropdownTreeSelect(props) {\n _classCallCheck(this, DropdownTreeSelect);\n\n var _this = _possibleConstructorReturn(this, (DropdownTreeSelect.__proto__ || Object.getPrototypeOf(DropdownTreeSelect)).call(this, props));\n\n _this.initNewProps = function (_ref) {\n var data = _ref.data,\n mode = _ref.mode,\n showDropdown = _ref.showDropdown,\n showPartiallySelected = _ref.showPartiallySelected,\n searchPredicate = _ref.searchPredicate;\n\n _this.treeManager = new TreeManager({\n data: data,\n mode: mode,\n showPartiallySelected: showPartiallySelected,\n rootPrefixId: _this.clientId,\n searchPredicate: searchPredicate\n });\n // Restore focus-state\n var currentFocusNode = _this.state.currentFocus && _this.treeManager.getNodeById(_this.state.currentFocus);\n if (currentFocusNode) {\n currentFocusNode._focused = true;\n }\n _this.setState(function (prevState) {\n return _extends({\n showDropdown: /initial|always/.test(showDropdown) || prevState.showDropdown === true\n }, _this.treeManager.getTreeAndTags());\n });\n };\n\n _this.resetSearchState = function () {\n // clear the search criteria and avoid react controlled/uncontrolled warning\n // !this.props.inlineSearchInput is gated as inline search is not rendered until dropdown is shown\n if (!_this.props.inlineSearchInput) {\n _this.searchInput.value = '';\n }\n\n return {\n tree: _this.treeManager.restoreNodes(), // restore the tree to its pre-search state\n searchModeOn: false,\n allNodesHidden: false\n };\n };\n\n _this.handleClick = function (e, callback) {\n _this.setState(function (prevState) {\n // keep dropdown active when typing in search box\n var showDropdown = _this.props.showDropdown === 'always' || _this.keepDropdownActive || !prevState.showDropdown;\n\n // register event listeners only if there is a state change\n if (showDropdown !== prevState.showDropdown) {\n if (showDropdown) {\n document.addEventListener('click', _this.handleOutsideClick, false);\n } else {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n }\n\n if (showDropdown) _this.props.onFocus();else _this.props.onBlur();\n\n return !showDropdown ? _extends({ showDropdown: showDropdown }, _this.resetSearchState()) : { showDropdown: showDropdown };\n }, callback);\n };\n\n _this.handleOutsideClick = function (e) {\n if (_this.props.showDropdown === 'always' || !isOutsideClick(e, _this.node)) {\n return;\n }\n\n _this.handleClick();\n };\n\n _this.onInputChange = function (value) {\n var _this$treeManager$fil = _this.treeManager.filterTree(value, _this.props.keepTreeOnSearch, _this.props.keepChildrenOnSearch),\n allNodesHidden = _this$treeManager$fil.allNodesHidden,\n tree = _this$treeManager$fil.tree;\n\n var searchModeOn = value.length > 0;\n\n _this.setState({\n tree: tree,\n searchModeOn: searchModeOn,\n allNodesHidden: allNodesHidden\n });\n };\n\n _this.onTagRemove = function (id, isKeyboardEvent) {\n var prevTags = _this.state.tags;\n\n _this.onCheckboxChange(id, false, function (tags) {\n if (!isKeyboardEvent) return;\n\n keyboardNavigation.getNextFocusAfterTagDelete(id, prevTags, tags, _this.searchInput).focus();\n });\n };\n\n _this.onNodeToggle = function (id) {\n _this.treeManager.toggleNodeExpandState(id);\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n _this.setState({ tree: tree });\n typeof _this.props.onNodeToggle === 'function' && _this.props.onNodeToggle(_this.treeManager.getNodeById(id));\n };\n\n _this.onCheckboxChange = function (id, checked, callback) {\n var _this$props = _this.props,\n mode = _this$props.mode,\n keepOpenOnSelect = _this$props.keepOpenOnSelect;\n\n _this.treeManager.setNodeCheckedState(id, checked);\n var tags = _this.treeManager.tags;\n var isSingleSelect = ['simpleSelect', 'radioSelect'].indexOf(mode) > -1;\n var showDropdown = isSingleSelect && !keepOpenOnSelect ? false : _this.state.showDropdown;\n\n if (!tags.length) {\n _this.treeManager.restoreDefaultValues();\n tags = _this.treeManager.tags;\n }\n\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n var nextState = {\n tree: tree,\n tags: tags,\n showDropdown: showDropdown\n };\n\n if (isSingleSelect && !showDropdown || _this.props.clearSearchOnChange) {\n Object.assign(nextState, _this.resetSearchState());\n }\n\n if (isSingleSelect && !showDropdown) {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n\n _this.setState(nextState, function () {\n callback && callback(tags);\n });\n _this.props.onChange(_this.treeManager.getNodeById(id), tags);\n };\n\n _this.onAction = function (nodeId, action) {\n _this.props.onAction(_this.treeManager.getNodeById(nodeId), action);\n };\n\n _this.onInputFocus = function () {\n _this.keepDropdownActive = true;\n };\n\n _this.onInputBlur = function () {\n _this.keepDropdownActive = false;\n };\n\n _this.onTrigger = function (e) {\n _this.handleClick(e, function () {\n // If the dropdown is shown after key press, focus the input\n if (_this.state.showDropdown) {\n _this.searchInput.focus();\n }\n });\n };\n\n _this.onKeyboardKeyDown = function (e) {\n var _this$props2 = _this.props,\n readOnly = _this$props2.readOnly,\n mode = _this$props2.mode;\n var _this$state = _this.state,\n showDropdown = _this$state.showDropdown,\n tags = _this$state.tags,\n searchModeOn = _this$state.searchModeOn,\n currentFocus = _this$state.currentFocus;\n\n var tm = _this.treeManager;\n var tree = searchModeOn ? tm.matchTree : tm.tree;\n\n if (!showDropdown && (keyboardNavigation.isValidKey(e.key, false) || /^\\w$/i.test(e.key))) {\n // Triggers open of dropdown and retriggers event\n e.persist();\n _this.handleClick(null, function () {\n return _this.onKeyboardKeyDown(e);\n });\n if (/\\w/i.test(e.key)) return;\n } else if (showDropdown && keyboardNavigation.isValidKey(e.key, true)) {\n var newFocus = tm.handleNavigationKey(currentFocus, tree, e.key, readOnly, !searchModeOn, _this.onCheckboxChange, _this.onNodeToggle);\n if (newFocus !== currentFocus) {\n _this.setState({ currentFocus: newFocus });\n }\n } else if (showDropdown && ['Escape', 'Tab'].indexOf(e.key) > -1) {\n if (mode === 'simpleSelect' && tree.has(currentFocus)) {\n _this.onCheckboxChange(currentFocus, true);\n } else {\n // Triggers close\n _this.keepDropdownActive = false;\n _this.handleClick();\n }\n return;\n } else if (e.key === 'Backspace' && tags.length && _this.searchInput.value.length === 0) {\n var lastTag = tags.pop();\n _this.onCheckboxChange(lastTag._id, false);\n } else {\n return;\n }\n e.preventDefault();\n };\n\n _this.onReorderList = function (newList) {\n _this.setState({ tags: newList }, function () {\n if (_this.props.onReorderList) {\n _this.props.onReorderList(newList);\n } else {\n _this.props.onChange(newList);\n }\n });\n };\n\n _this.getAriaAttributes = function () {\n var _this$props3 = _this.props,\n mode = _this$props3.mode,\n texts = _this$props3.texts;\n\n\n if (mode !== 'radioSelect') return {};\n\n return _extends({\n role: 'radiogroup'\n }, getAriaLabel(texts.label));\n };\n\n _this.state = {\n searchModeOn: false,\n currentFocus: undefined\n };\n _this.clientId = props.id || clientIdGenerator.get(_this);\n return _this;\n }\n\n _createClass(DropdownTreeSelect, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.initNewProps(this.props);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('click', this.handleOutsideClick, false);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.initNewProps(nextProps);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n mode = _props.mode,\n texts = _props.texts,\n inlineSearchInput = _props.inlineSearchInput,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable;\n var _state = this.state,\n showDropdown = _state.showDropdown,\n currentFocus = _state.currentFocus,\n tags = _state.tags;\n\n\n var activeDescendant = currentFocus ? currentFocus + '_li' : undefined;\n\n var commonProps = { disabled: disabled, readOnly: readOnly, activeDescendant: activeDescendant, texts: texts, mode: mode, clientId: this.clientId };\n\n var searchInput = React.createElement(Input, _extends({\n inputRef: function inputRef(el) {\n _this2.searchInput = el;\n },\n onInputChange: this.onInputChange,\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onKeyboardKeyDown\n }, commonProps));\n return React.createElement(\n 'div',\n {\n id: this.clientId,\n className: [this.props.className && this.props.className, 'react-dropdown-tree-select'].filter(Boolean).join(' '),\n ref: function ref(node) {\n _this2.node = node;\n }\n },\n React.createElement(\n 'div',\n {\n className: ['dropdown', mode === 'simpleSelect' && 'simple-select', mode === 'radioSelect' && 'radio-select'].filter(Boolean).join(' ')\n },\n React.createElement(\n Trigger,\n _extends({ onTrigger: this.onTrigger, showDropdown: showDropdown }, commonProps, { tags: tags }),\n React.createElement(\n Tags,\n _extends({\n tags: tags,\n onTagRemove: this.onTagRemove,\n onReorderList: this.onReorderList,\n sortable: sortable\n }, commonProps),\n !inlineSearchInput && searchInput\n )\n ),\n showDropdown && React.createElement(\n 'div',\n _extends({ className: 'dropdown-content' }, this.getAriaAttributes()),\n inlineSearchInput && searchInput,\n this.state.allNodesHidden ? React.createElement(\n 'span',\n { className: 'no-matches' },\n texts.noMatches || 'No matches found'\n ) : React.createElement(Tree, _extends({\n data: this.state.tree,\n keepTreeOnSearch: this.props.keepTreeOnSearch,\n keepChildrenOnSearch: this.props.keepChildrenOnSearch,\n searchModeOn: this.state.searchModeOn,\n onAction: this.onAction,\n onCheckboxChange: this.onCheckboxChange,\n onNodeToggle: this.onNodeToggle,\n mode: mode,\n showPartiallySelected: this.props.showPartiallySelected\n }, commonProps))\n )\n )\n );\n }\n }]);\n\n return DropdownTreeSelect;\n}(Component);\n\nDropdownTreeSelect.propTypes = {\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n clearSearchOnChange: PropTypes.bool,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n keepOpenOnSelect: PropTypes.bool,\n texts: PropTypes.shape({\n placeholder: PropTypes.string,\n noMatches: PropTypes.string,\n label: PropTypes.string,\n labelRemove: PropTypes.string\n }),\n showDropdown: PropTypes.oneOf(['default', 'initial', 'always']),\n className: PropTypes.string,\n onChange: PropTypes.func,\n onAction: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n onReorderList: PropTypes.func,\n sortable: PropTypes.bool,\n searchPredicate: PropTypes.func,\n inlineSearchInput: PropTypes.bool\n};\nDropdownTreeSelect.defaultProps = {\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onChange: function onChange() {},\n texts: {},\n showDropdown: 'default',\n inlineSearchInput: false\n};\n\n\nexport default DropdownTreeSelect;" + "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\n/*!\n * React Dropdown Tree Select\n * A lightweight, fast and highly customizable tree select component.\n * Hrusikesh Panda \n * Copyright (c) 2017 Dow Jones, Inc. (http://dowjones.com)\n * license MIT\n * see https://github.com/dowjones/react-dropdown-tree-select\n */\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport { isOutsideClick, clientIdGenerator } from './utils';\nimport Input from './input';\nimport Tags from './tags';\nimport Trigger from './trigger';\nimport Tree from './tree';\nimport TreeManager from './tree-manager';\nimport keyboardNavigation from './tree-manager/keyboardNavigation';\n\nimport './index.css';\nimport { getAriaLabel } from './a11y';\n\nvar DropdownTreeSelect = function (_Component) {\n _inherits(DropdownTreeSelect, _Component);\n\n function DropdownTreeSelect(props) {\n _classCallCheck(this, DropdownTreeSelect);\n\n var _this = _possibleConstructorReturn(this, (DropdownTreeSelect.__proto__ || Object.getPrototypeOf(DropdownTreeSelect)).call(this, props));\n\n _this.initNewProps = function (_ref) {\n var data = _ref.data,\n mode = _ref.mode,\n showDropdown = _ref.showDropdown,\n showPartiallySelected = _ref.showPartiallySelected,\n searchPredicate = _ref.searchPredicate;\n\n _this.treeManager = new TreeManager({\n data: data,\n mode: mode,\n showPartiallySelected: showPartiallySelected,\n rootPrefixId: _this.clientId,\n searchPredicate: searchPredicate\n });\n // Restore focus-state\n var currentFocusNode = _this.state.currentFocus && _this.treeManager.getNodeById(_this.state.currentFocus);\n if (currentFocusNode) {\n currentFocusNode._focused = true;\n }\n _this.setState(function (prevState) {\n return _extends({\n showDropdown: /initial|always/.test(showDropdown) || prevState.showDropdown === true\n }, _this.treeManager.getTreeAndTags());\n });\n };\n\n _this.resetSearchState = function () {\n // clear the search criteria and avoid react controlled/uncontrolled warning\n // !this.props.inlineSearchInput is gated as inline search is not rendered until dropdown is shown\n if (!_this.props.inlineSearchInput) {\n _this.searchInput.value = '';\n }\n\n return {\n tree: _this.treeManager.restoreNodes(), // restore the tree to its pre-search state\n searchModeOn: false,\n allNodesHidden: false\n };\n };\n\n _this.handleClick = function (e, callback) {\n _this.setState(function (prevState) {\n // keep dropdown active when typing in search box\n var showDropdown = _this.props.showDropdown === 'always' || _this.keepDropdownActive || !prevState.showDropdown;\n\n // register event listeners only if there is a state change\n if (showDropdown !== prevState.showDropdown) {\n if (showDropdown) {\n document.addEventListener('click', _this.handleOutsideClick, false);\n } else {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n }\n\n if (showDropdown) _this.props.onFocus();else _this.props.onBlur();\n\n return !showDropdown ? _extends({ showDropdown: showDropdown }, _this.resetSearchState()) : { showDropdown: showDropdown };\n }, callback);\n };\n\n _this.handleOutsideClick = function (e) {\n if (_this.props.showDropdown === 'always' || !isOutsideClick(e, _this.node)) {\n return;\n }\n\n _this.handleClick();\n };\n\n _this.onInputChange = function (value) {\n var _this$treeManager$fil = _this.treeManager.filterTree(value, _this.props.keepTreeOnSearch, _this.props.keepChildrenOnSearch),\n allNodesHidden = _this$treeManager$fil.allNodesHidden,\n tree = _this$treeManager$fil.tree;\n\n var searchModeOn = value.length > 0;\n\n _this.setState({\n tree: tree,\n searchModeOn: searchModeOn,\n allNodesHidden: allNodesHidden\n });\n };\n\n _this.onTagRemove = function (id, isKeyboardEvent) {\n var prevTags = _this.state.tags;\n\n _this.onCheckboxChange(id, false, function (tags) {\n if (!isKeyboardEvent) return;\n\n keyboardNavigation.getNextFocusAfterTagDelete(id, prevTags, tags, _this.searchInput).focus();\n });\n };\n\n _this.onNodeToggle = function (id) {\n _this.treeManager.toggleNodeExpandState(id);\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n _this.setState({ tree: tree });\n typeof _this.props.onNodeToggle === 'function' && _this.props.onNodeToggle(_this.treeManager.getNodeById(id));\n };\n\n _this.onCheckboxChange = function (id, checked, callback) {\n var _this$props = _this.props,\n mode = _this$props.mode,\n keepOpenOnSelect = _this$props.keepOpenOnSelect;\n\n _this.treeManager.setNodeCheckedState(id, checked);\n var tags = _this.treeManager.tags;\n var isSingleSelect = ['simpleSelect', 'radioSelect'].indexOf(mode) > -1;\n var showDropdown = isSingleSelect && !keepOpenOnSelect ? false : _this.state.showDropdown;\n\n if (!tags.length) {\n _this.treeManager.restoreDefaultValues();\n tags = _this.treeManager.tags;\n }\n\n var tree = _this.state.searchModeOn ? _this.treeManager.matchTree : _this.treeManager.tree;\n var nextState = {\n tree: tree,\n tags: tags,\n showDropdown: showDropdown\n };\n\n if (isSingleSelect && !showDropdown || _this.props.clearSearchOnChange) {\n Object.assign(nextState, _this.resetSearchState());\n }\n\n if (isSingleSelect && !showDropdown) {\n document.removeEventListener('click', _this.handleOutsideClick, false);\n }\n\n _this.setState(nextState, function () {\n callback && callback(tags);\n });\n _this.props.onChange(_this.treeManager.getNodeById(id), tags);\n };\n\n _this.onAction = function (nodeId, action) {\n _this.props.onAction(_this.treeManager.getNodeById(nodeId), action);\n };\n\n _this.onInputFocus = function () {\n _this.keepDropdownActive = true;\n };\n\n _this.onInputBlur = function () {\n _this.keepDropdownActive = false;\n };\n\n _this.onTrigger = function (e) {\n _this.handleClick(e, function () {\n // If the dropdown is shown after key press, focus the input\n if (_this.state.showDropdown) {\n _this.searchInput.focus();\n }\n });\n };\n\n _this.onKeyboardKeyDown = function (e) {\n var _this$props2 = _this.props,\n readOnly = _this$props2.readOnly,\n mode = _this$props2.mode;\n var _this$state = _this.state,\n showDropdown = _this$state.showDropdown,\n tags = _this$state.tags,\n searchModeOn = _this$state.searchModeOn,\n currentFocus = _this$state.currentFocus;\n\n var tm = _this.treeManager;\n var tree = searchModeOn ? tm.matchTree : tm.tree;\n\n if (!showDropdown && (keyboardNavigation.isValidKey(e.key, false) || /^\\w$/i.test(e.key))) {\n // Triggers open of dropdown and retriggers event\n e.persist();\n _this.handleClick(null, function () {\n return _this.onKeyboardKeyDown(e);\n });\n if (/\\w/i.test(e.key)) return;\n } else if (showDropdown && keyboardNavigation.isValidKey(e.key, true)) {\n var newFocus = tm.handleNavigationKey(currentFocus, tree, e.key, readOnly, !searchModeOn, _this.onCheckboxChange, _this.onNodeToggle);\n if (newFocus !== currentFocus) {\n _this.setState({ currentFocus: newFocus });\n }\n } else if (showDropdown && ['Escape', 'Tab'].indexOf(e.key) > -1) {\n if (mode === 'simpleSelect' && tree.has(currentFocus)) {\n _this.onCheckboxChange(currentFocus, true);\n } else {\n // Triggers close\n _this.keepDropdownActive = false;\n _this.handleClick();\n }\n return;\n } else if (e.key === 'Backspace' && tags.length && _this.searchInput.value.length === 0) {\n var lastTag = tags.pop();\n _this.onCheckboxChange(lastTag._id, false);\n } else {\n return;\n }\n e.preventDefault();\n };\n\n _this.onReorderList = function (newList) {\n _this.setState({ tags: newList }, function () {\n if (_this.props.onReorderList) {\n _this.props.onReorderList(newList);\n } else {\n _this.props.onChange(newList);\n }\n });\n };\n\n _this.getAriaAttributes = function () {\n var _this$props3 = _this.props,\n mode = _this$props3.mode,\n texts = _this$props3.texts;\n\n\n if (mode !== 'radioSelect') return {};\n\n return _extends({\n role: 'radiogroup'\n }, getAriaLabel(texts.label));\n };\n\n _this.state = {\n searchModeOn: false,\n currentFocus: undefined\n };\n _this.clientId = props.id || clientIdGenerator.get(_this);\n return _this;\n }\n\n _createClass(DropdownTreeSelect, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.initNewProps(this.props);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('click', this.handleOutsideClick, false);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.initNewProps(nextProps);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n mode = _props.mode,\n texts = _props.texts,\n inlineSearchInput = _props.inlineSearchInput,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable;\n var _state = this.state,\n showDropdown = _state.showDropdown,\n currentFocus = _state.currentFocus,\n tags = _state.tags;\n\n\n var activeDescendant = currentFocus ? currentFocus + '_li' : undefined;\n\n var commonProps = { disabled: disabled, readOnly: readOnly, activeDescendant: activeDescendant, texts: texts, mode: mode, clientId: this.clientId };\n\n var searchInput = React.createElement(Input, _extends({\n inputRef: function inputRef(el) {\n _this2.searchInput = el;\n },\n onInputChange: this.onInputChange,\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onKeyboardKeyDown\n }, commonProps));\n return React.createElement(\n 'div',\n {\n id: this.clientId,\n className: [this.props.className && this.props.className, 'react-dropdown-tree-select'].filter(Boolean).join(' '),\n ref: function ref(node) {\n _this2.node = node;\n }\n },\n React.createElement(\n 'div',\n {\n className: ['dropdown', mode === 'simpleSelect' && 'simple-select', mode === 'radioSelect' && 'radio-select'].filter(Boolean).join(' ')\n },\n React.createElement(\n Trigger,\n _extends({ onTrigger: this.onTrigger, showDropdown: showDropdown }, commonProps, { tags: tags }),\n React.createElement(\n Tags,\n _extends({\n tags: tags,\n onTagRemove: this.onTagRemove,\n onReorderList: this.onReorderList,\n newType: this.props.newType,\n sortable: true\n }, commonProps),\n !inlineSearchInput && searchInput\n )\n ),\n showDropdown && React.createElement(\n 'div',\n _extends({ className: 'dropdown-content' }, this.getAriaAttributes()),\n inlineSearchInput && searchInput,\n this.state.allNodesHidden ? React.createElement(\n 'span',\n { className: 'no-matches' },\n texts.noMatches || 'No matches found'\n ) : React.createElement(Tree, _extends({\n data: this.state.tree,\n keepTreeOnSearch: this.props.keepTreeOnSearch,\n keepChildrenOnSearch: this.props.keepChildrenOnSearch,\n searchModeOn: this.state.searchModeOn,\n onAction: this.onAction,\n onCheckboxChange: this.onCheckboxChange,\n onNodeToggle: this.onNodeToggle,\n mode: mode,\n showPartiallySelected: this.props.showPartiallySelected\n }, commonProps))\n )\n )\n );\n }\n }]);\n\n return DropdownTreeSelect;\n}(Component);\n\nDropdownTreeSelect.propTypes = {\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n clearSearchOnChange: PropTypes.bool,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n keepOpenOnSelect: PropTypes.bool,\n texts: PropTypes.shape({\n placeholder: PropTypes.string,\n noMatches: PropTypes.string,\n label: PropTypes.string,\n labelRemove: PropTypes.string\n }),\n showDropdown: PropTypes.oneOf(['default', 'initial', 'always']),\n className: PropTypes.string,\n onChange: PropTypes.func,\n onAction: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n id: PropTypes.string,\n onReorderList: PropTypes.func,\n sortable: PropTypes.bool,\n searchPredicate: PropTypes.func,\n inlineSearchInput: PropTypes.bool\n};\nDropdownTreeSelect.defaultProps = {\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onChange: function onChange() {},\n texts: {},\n showDropdown: 'default',\n inlineSearchInput: false\n};\n\n\nexport default DropdownTreeSelect;" }, { "id": null, @@ -7857,8 +7462,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -7872,8 +7476,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8047,13 +7650,7 @@ "loc": "289:11-18" } ], - "usedExports": [ - "isOutsideClick", - "clientIdGenerator", - "isEmpty", - "getDataset", - "debounce" - ], + "usedExports": ["isOutsideClick", "clientIdGenerator", "isEmpty", "getDataset", "debounce"], "providedExports": [ "getDataset", "mapToObject", @@ -8062,8 +7659,7 @@ "debounce", "clientIdGenerator" ], - "optimizationBailout": [ - ], + "optimizationBailout": [], "depth": 1, "source": "export { default as getDataset } from './dataset';\nexport { default as mapToObject } from './mapToObject';\nexport { default as isEmpty } from './isEmpty';\nexport { default as isOutsideClick } from './isOutsideClick';\nexport { default as debounce } from './debounce';\nexport { default as clientIdGenerator } from './generateUID';" }, @@ -8078,8 +7674,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -8093,23 +7688,22 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, - "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/input/index.js", - "module": "./src/input/index.js", - "moduleName": "./src/input/index.js", + "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/trigger/index.js", + "module": "./src/trigger/index.js", + "moduleName": "./src/trigger/index.js", "type": "harmony side effect evaluation", "userRequest": "../a11y", "loc": "14:0-39" }, { "moduleId": null, - "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/trigger/index.js", - "module": "./src/trigger/index.js", - "moduleName": "./src/trigger/index.js", + "moduleIdentifier": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/input/index.js", + "module": "./src/input/index.js", + "moduleName": "./src/input/index.js", "type": "harmony side effect evaluation", "userRequest": "../a11y", "loc": "14:0-39" @@ -8160,14 +7754,9 @@ "loc": "260:9-21" } ], - "usedExports": [ - "getAriaLabel" - ], - "providedExports": [ - "getAriaLabel" - ], - "optimizationBailout": [ - ], + "usedExports": ["getAriaLabel"], + "providedExports": ["getAriaLabel"], + "optimizationBailout": [], "depth": 1, "source": "export function getAriaLabel(label, additionalLabelledBy) {\n var attributes = getAriaAttributeForLabel(label);\n\n if (additionalLabelledBy) {\n attributes['aria-labelledby'] = ((attributes['aria-labelledby'] || '') + ' ' + additionalLabelledBy).trim();\n }\n\n return attributes;\n}\n\nfunction getAriaAttributeForLabel(label) {\n if (!label) return {};\n\n /* See readme for label. When label starts with # it references ids of dom nodes instead.\n When used on aria-labelledby, they should be referenced without a starting hash/# */\n if (label[0] === '#') {\n return { 'aria-labelledby': label.substring(1).replace(/ #/g, ' ') };\n }\n return { 'aria-label': label };\n}" }, @@ -8182,8 +7771,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -8197,8 +7785,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8219,14 +7806,9 @@ "loc": "309:44-49" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { debounce } from '../utils';\nimport { getAriaLabel } from '../a11y';\n\nvar Input = function (_PureComponent) {\n _inherits(Input, _PureComponent);\n\n function Input(props) {\n _classCallCheck(this, Input);\n\n var _this = _possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).call(this, props));\n\n _this.handleInputChange = function (e) {\n e.persist();\n _this.delayedCallback(e);\n };\n\n _this.delayedCallback = debounce(function (e) {\n return _this.props.onInputChange(e.target.value);\n }, 300);\n return _this;\n }\n\n _createClass(Input, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n inputRef = _props.inputRef,\n _props$texts = _props.texts,\n texts = _props$texts === undefined ? {} : _props$texts,\n onFocus = _props.onFocus,\n onBlur = _props.onBlur,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n onKeyDown = _props.onKeyDown,\n activeDescendant = _props.activeDescendant;\n\n\n return React.createElement('input', _extends({\n type: 'text',\n disabled: disabled,\n ref: inputRef,\n className: 'search',\n placeholder: texts.placeholder || 'Choose...',\n onKeyDown: onKeyDown,\n onChange: this.handleInputChange,\n onFocus: onFocus,\n onBlur: onBlur,\n readOnly: readOnly,\n 'aria-activedescendant': activeDescendant,\n 'aria-autocomplete': onKeyDown ? 'list' : undefined\n }, getAriaLabel(texts.label)));\n }\n }]);\n\n return Input;\n}(PureComponent);\n\nInput.propTypes = {\n tags: PropTypes.array,\n texts: PropTypes.object,\n onInputChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTagRemove: PropTypes.func,\n onKeyDown: PropTypes.func,\n inputRef: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n activeDescendant: PropTypes.string,\n inlineSearchInput: PropTypes.bool\n};\n\n\nexport default Input;" }, @@ -8236,13 +7818,12 @@ "name": "./src/tags/index.js", "index": 14, "index2": 22, - "size": 4601, + "size": 4744, "cacheable": true, "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -8256,8 +7837,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8278,16 +7858,11 @@ "loc": "336:14-18" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, - "source": "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; }; }();\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Tag from '../tag';\nimport { getDataset } from '../utils';\nimport { ReactSortable } from 'react-sortablejs';\n\nimport './index.css';\n\nvar getTags = function getTags() {\n var tags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var onDelete = arguments[1];\n var readOnly = arguments[2];\n var disabled = arguments[3];\n var labelRemove = arguments[4];\n return tags.map(function (tag) {\n var _id = tag._id,\n label = tag.label,\n tagClassName = tag.tagClassName,\n dataset = tag.dataset;\n\n return React.createElement(\n 'li',\n _extends({\n className: ['tag-item', tagClassName].filter(Boolean).join(' '),\n key: 'tag-item-' + _id\n }, getDataset(dataset)),\n React.createElement(Tag, {\n label: label,\n id: _id,\n onDelete: onDelete,\n readOnly: readOnly,\n disabled: disabled,\n labelRemove: labelRemove\n })\n );\n });\n};\n\nvar Tags = function (_PureComponent) {\n _inherits(Tags, _PureComponent);\n\n function Tags() {\n _classCallCheck(this, Tags);\n\n return _possibleConstructorReturn(this, (Tags.__proto__ || Object.getPrototypeOf(Tags)).apply(this, arguments));\n }\n\n _createClass(Tags, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tags = _props.tags,\n onTagRemove = _props.onTagRemove,\n _props$texts = _props.texts,\n texts = _props$texts === undefined ? {} : _props$texts,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable,\n onReorderList = _props.onReorderList,\n children = _props.children;\n\n var lastItem = children || React.createElement(\n 'span',\n { className: 'placeholder' },\n texts.placeholder || 'Choose...'\n );\n\n return React.createElement(\n 'ul',\n { className: 'tag-list' },\n !sortable ? getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove) : React.createElement(\n ReactSortable,\n { list: tags, setList: function setList(newList) {\n return onReorderList(newList);\n } },\n getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)\n ),\n React.createElement(\n 'li',\n { className: 'tag-item' },\n lastItem\n )\n );\n }\n }]);\n\n return Tags;\n}(PureComponent);\n\nTags.propTypes = {\n tags: PropTypes.array,\n onTagRemove: PropTypes.func,\n readOnly: PropTypes.bool,\n sortable: PropTypes.bool,\n onReorderList: PropTypes.func,\n disabled: PropTypes.bool,\n texts: PropTypes.object,\n children: PropTypes.node\n};\n\n\nexport default Tags;" + "source": "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; }; }();\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Tag from '../tag';\nimport { getDataset } from '../utils';\nimport { ReactSortable } from 'react-sortablejs';\n\nimport './index.css';\n\nvar getTags = function getTags() {\n var tags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var onDelete = arguments[1];\n var readOnly = arguments[2];\n var disabled = arguments[3];\n var labelRemove = arguments[4];\n return tags.map(function (tag) {\n var _id = tag._id,\n label = tag.label,\n tagClassName = tag.tagClassName,\n dataset = tag.dataset;\n\n return React.createElement(\n 'li',\n _extends({\n className: ['tag-item', tagClassName].filter(Boolean).join(' '),\n key: 'tag-item-' + _id\n }, getDataset(dataset)),\n React.createElement(Tag, {\n label: label,\n id: _id,\n onDelete: onDelete,\n readOnly: readOnly,\n disabled: disabled,\n labelRemove: labelRemove\n })\n );\n });\n};\n\nvar Tags = function (_PureComponent) {\n _inherits(Tags, _PureComponent);\n\n function Tags() {\n _classCallCheck(this, Tags);\n\n return _possibleConstructorReturn(this, (Tags.__proto__ || Object.getPrototypeOf(Tags)).apply(this, arguments));\n }\n\n _createClass(Tags, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tags = _props.tags,\n onTagRemove = _props.onTagRemove,\n _props$texts = _props.texts,\n texts = _props$texts === undefined ? {} : _props$texts,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n _props$sortable = _props.sortable,\n sortable = _props$sortable === undefined ? false : _props$sortable,\n onReorderList = _props.onReorderList,\n newType = _props.newType,\n children = _props.children;\n\n var lastItem = children || React.createElement(\n 'span',\n { className: 'placeholder' },\n texts.placeholder || 'Choose...'\n );\n\n return React.createElement(\n 'ul',\n { className: 'tag-list' },\n !sortable ? getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove) : React.createElement(\n ReactSortable,\n {\n list: !newType || newType.length === 0 ? tags : newType,\n setList: function setList(newList) {\n return onReorderList(newList);\n }\n },\n getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)\n ),\n React.createElement(\n 'li',\n { className: 'tag-item' },\n lastItem\n )\n );\n }\n }]);\n\n return Tags;\n}(PureComponent);\n\nTags.propTypes = {\n tags: PropTypes.array,\n onTagRemove: PropTypes.func,\n readOnly: PropTypes.bool,\n sortable: PropTypes.bool,\n onReorderList: PropTypes.func,\n newType: PropTypes.array,\n disabled: PropTypes.bool,\n texts: PropTypes.object,\n children: PropTypes.node\n};\n\n\nexport default Tags;" }, { "id": null, @@ -8300,8 +7875,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -8315,8 +7889,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8337,14 +7910,9 @@ "loc": "333:12-19" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getAriaLabel } from '../a11y';\nimport { getTagId } from '../tag';\n\nvar Trigger = function (_PureComponent) {\n _inherits(Trigger, _PureComponent);\n\n function Trigger() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Trigger);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Trigger.__proto__ || Object.getPrototypeOf(Trigger)).call.apply(_ref, [this].concat(args))), _this), _this.getAriaAttributes = function () {\n var _this$props = _this.props,\n mode = _this$props.mode,\n _this$props$texts = _this$props.texts,\n texts = _this$props$texts === undefined ? {} : _this$props$texts,\n showDropdown = _this$props.showDropdown,\n clientId = _this$props.clientId,\n tags = _this$props.tags;\n\n\n var triggerId = clientId + '_trigger';\n var labelledBy = [];\n var labelAttributes = getAriaLabel(texts.label);\n if (tags && tags.length) {\n if (labelAttributes['aria-label']) {\n // Adds reference to self when having aria-label\n labelledBy.push(triggerId);\n }\n tags.forEach(function (t) {\n labelledBy.push(getTagId(t._id));\n });\n labelAttributes = getAriaLabel(texts.label, labelledBy.join(' '));\n }\n\n var attributes = _extends({\n id: triggerId,\n role: 'button',\n tabIndex: 0,\n 'aria-haspopup': mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-expanded': showDropdown ? 'true' : 'false'\n }, labelAttributes);\n\n return attributes;\n }, _this.handleTrigger = function (e) {\n // Just return if triggered from keyDown and the key isn't enter, space or arrow down\n if (e.key && e.keyCode !== 13 && e.keyCode !== 32 && e.keyCode !== 40) {\n return;\n } else if (e.key && _this.triggerNode && _this.triggerNode !== document.activeElement) {\n // Do not trigger if not activeElement\n return;\n } else if (!_this.props.showDropdown && e.keyCode === 32) {\n // Avoid adding space to input on open\n e.preventDefault();\n }\n\n // Else this is a key press that should trigger the dropdown\n _this.props.onTrigger(e);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Trigger, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n showDropdown = _props.showDropdown;\n\n\n var dropdownTriggerClassname = ['dropdown-trigger', 'arrow', disabled && 'disabled', readOnly && 'readOnly', showDropdown && 'top', !showDropdown && 'bottom'].filter(Boolean).join(' ');\n\n return React.createElement(\n 'a',\n _extends({\n ref: function ref(node) {\n _this2.triggerNode = node;\n },\n className: dropdownTriggerClassname,\n onClick: !disabled ? this.handleTrigger : undefined,\n onKeyDown: !disabled ? this.handleTrigger : undefined\n }, this.getAriaAttributes()),\n this.props.children\n );\n }\n }]);\n\n return Trigger;\n}(PureComponent);\n\nTrigger.propTypes = {\n onTrigger: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n showDropdown: PropTypes.bool,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n texts: PropTypes.object,\n clientId: PropTypes.string,\n tags: PropTypes.array\n};\n\n\nexport default Trigger;" }, @@ -8359,8 +7927,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -8374,8 +7941,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8393,17 +7959,12 @@ "moduleName": "./src/index.js", "type": "harmony import specifier", "userRequest": "./tree", - "loc": "354:36-40" + "loc": "355:36-40" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport TreeNode from '../tree-node';\n\nvar shouldRenderNode = function shouldRenderNode(node, searchModeOn, data) {\n if (searchModeOn || node.expanded) return true;\n\n var parent = node._parent && data.get(node._parent);\n // if it has a parent, then check parent's state.\n // otherwise root nodes are always rendered\n return !parent || parent.expanded;\n};\n\nvar Tree = function (_Component) {\n _inherits(Tree, _Component);\n\n function Tree(props) {\n _classCallCheck(this, Tree);\n\n var _this = _possibleConstructorReturn(this, (Tree.__proto__ || Object.getPrototypeOf(Tree)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.currentPage = 1;\n _this.computeInstanceProps(props, true);\n\n _this.state = {\n items: _this.allVisibleNodes.slice(0, _this.props.pageSize)\n };\n return _this;\n }\n\n _createClass(Tree, [{\n key: 'render',\n value: function render() {\n var searchModeOn = this.props.searchModeOn;\n\n\n return React.createElement(\n 'ul',\n _extends({ className: 'root ' + (searchModeOn ? 'searchModeOn' : ''), ref: this.setNodeRef }, this.getAriaAttributes()),\n this.state.scrollableTarget && React.createElement(\n InfiniteScroll,\n {\n dataLength: this.state.items.length,\n next: this.loadMore,\n hasMore: this.hasMore(),\n loader: React.createElement(\n 'span',\n { className: 'searchLoader' },\n 'Loading...'\n ),\n scrollableTarget: this.state.scrollableTarget\n },\n this.state.items\n )\n );\n }\n }]);\n\n return Tree;\n}(Component);\n\nTree.propTypes = {\n data: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onChange: PropTypes.func,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n pageSize: PropTypes.number,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string,\n activeDescendant: PropTypes.string\n};\nTree.defaultProps = {\n pageSize: 100\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.componentWillReceiveProps = function (nextProps) {\n var activeDescendant = nextProps.activeDescendant;\n\n var hasSameActiveDescendant = activeDescendant === _this2.props.activeDescendant;\n _this2.computeInstanceProps(nextProps, !hasSameActiveDescendant);\n _this2.setState({ items: _this2.allVisibleNodes.slice(0, _this2.currentPage * _this2.props.pageSize) }, function () {\n if (hasSameActiveDescendant) return;\n var scrollableTarget = _this2.state.scrollableTarget;\n\n var activeLi = activeDescendant && document && document.getElementById(activeDescendant);\n if (activeLi && scrollableTarget) {\n scrollableTarget.scrollTop = activeLi.offsetTop - (scrollableTarget.clientHeight - activeLi.clientHeight) / 2;\n }\n });\n };\n\n this.componentDidMount = function () {\n _this2.setState({ scrollableTarget: _this2.node.parentNode });\n };\n\n this.computeInstanceProps = function (props, checkActiveDescendant) {\n _this2.allVisibleNodes = _this2.getNodes(props);\n _this2.totalPages = Math.ceil(_this2.allVisibleNodes.length / _this2.props.pageSize);\n if (checkActiveDescendant && props.activeDescendant) {\n var currentId = props.activeDescendant.replace(/_li$/, '');\n var focusIndex = _this2.allVisibleNodes.findIndex(function (n) {\n return n.key === currentId;\n }) + 1;\n _this2.currentPage = focusIndex > 0 ? Math.ceil(focusIndex / _this2.props.pageSize) : 1;\n }\n };\n\n this.getNodes = function (props) {\n var data = props.data,\n keepTreeOnSearch = props.keepTreeOnSearch,\n keepChildrenOnSearch = props.keepChildrenOnSearch,\n searchModeOn = props.searchModeOn,\n mode = props.mode,\n showPartiallySelected = props.showPartiallySelected,\n readOnly = props.readOnly,\n onAction = props.onAction,\n onChange = props.onChange,\n onCheckboxChange = props.onCheckboxChange,\n onNodeToggle = props.onNodeToggle,\n activeDescendant = props.activeDescendant,\n clientId = props.clientId;\n\n var items = [];\n data.forEach(function (node) {\n if (shouldRenderNode(node, searchModeOn, data)) {\n items.push(React.createElement(TreeNode, _extends({\n keepTreeOnSearch: keepTreeOnSearch,\n keepChildrenOnSearch: keepChildrenOnSearch,\n key: node._id\n }, node, {\n searchModeOn: searchModeOn,\n onChange: onChange,\n onCheckboxChange: onCheckboxChange,\n onNodeToggle: onNodeToggle,\n onAction: onAction,\n mode: mode,\n showPartiallySelected: showPartiallySelected,\n readOnly: readOnly,\n clientId: clientId,\n activeDescendant: activeDescendant\n })));\n }\n });\n return items;\n };\n\n this.hasMore = function () {\n return _this2.currentPage < _this2.totalPages;\n };\n\n this.loadMore = function () {\n _this2.currentPage = _this2.currentPage + 1;\n var nextItems = _this2.allVisibleNodes.slice(0, _this2.currentPage * _this2.props.pageSize);\n _this2.setState({ items: nextItems });\n };\n\n this.setNodeRef = function (node) {\n _this2.node = node;\n };\n\n this.getAriaAttributes = function () {\n var mode = _this2.props.mode;\n\n\n var attributes = {\n /* https://www.w3.org/TR/wai-aria-1.1/#select\n * https://www.w3.org/TR/wai-aria-1.1/#tree */\n role: mode === 'simpleSelect' ? 'listbox' : 'tree',\n 'aria-multiselectable': /multiSelect|hierarchical/.test(mode)\n };\n\n return attributes;\n };\n};\n\nexport default Tree;" }, @@ -8418,8 +7979,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -8433,8 +7993,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8518,17 +8077,9 @@ "loc": "321:13-31" } ], - "usedExports": [ - "default", - "FocusActionNames" - ], - "providedExports": [ - "NavActions", - "FocusActionNames", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default", "FocusActionNames"], + "providedExports": ["NavActions", "FocusActionNames", "default"], + "optimizationBailout": [], "depth": 1, "source": "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\"); } }; }();\n\nimport nodeVisitor from './nodeVisitor';\nimport { getTagId } from '../tag';\n\nvar Keys = {\n Up: 'ArrowUp',\n Down: 'ArrowDown',\n Left: 'ArrowLeft',\n Right: 'ArrowRight',\n Enter: 'Enter',\n Home: 'Home',\n PageUp: 'PageUp',\n End: 'End',\n PageDown: 'PageDown'\n};\n\nexport var NavActions = {\n None: 'None',\n FocusPrevious: 'FocusPrevious',\n FocusNext: 'FocusNext',\n FocusParent: 'FocusParent',\n FocusFirst: 'FocusFirst',\n FocusLast: 'FocusLast',\n ToggleExpanded: 'ToggleExpanded',\n ToggleChecked: 'ToggleChecked'\n};\n\nexport var FocusActionNames = new Set([NavActions.FocusPrevious, NavActions.FocusNext, NavActions.FocusParent, NavActions.FocusFirst, NavActions.FocusLast]);\n\nvar validTriggerOpenKeys = [Keys.Up, Keys.Down, Keys.Home, Keys.PageUp, Keys.End, Keys.PageDown];\nvar validKeys = validTriggerOpenKeys.concat([Keys.Left, Keys.Right, Keys.Enter]);\n\nvar isValidKey = function isValidKey(key, isOpen) {\n var keysToCheck = isOpen ? validKeys : validTriggerOpenKeys;\n return keysToCheck.indexOf(key) > -1;\n};\n\nvar isMatchingEvent = function isMatchingEvent(key, keys, currentFocus, nonFocusKey) {\n return keys.indexOf(key) > -1 || !currentFocus && key === nonFocusKey;\n};\n\nvar isFocusFirstEvent = function isFocusFirstEvent(key, currentFocus) {\n return isMatchingEvent(key, [Keys.Home, Keys.PageUp], currentFocus, Keys.Down);\n};\n\nvar isFocusLastEvent = function isFocusLastEvent(key, currentFocus) {\n return isMatchingEvent(key, [Keys.End, Keys.PageDown], currentFocus, Keys.Up);\n};\n\nvar isReverseTraverseAction = function isReverseTraverseAction(action) {\n return isMatchingEvent(action, [NavActions.FocusPrevious, NavActions.FocusLast], true);\n};\n\nvar isEdgeTraverseAction = function isEdgeTraverseAction(action) {\n return isMatchingEvent(action, [NavActions.FocusFirst, NavActions.FocusLast], true);\n};\n\nvar getLeftNavAction = function getLeftNavAction(currentFocus, key) {\n if (!currentFocus || key !== Keys.Left) return NavActions.None;\n\n if (currentFocus.expanded === true) {\n return NavActions.ToggleExpanded;\n }\n if (currentFocus._parent) {\n return NavActions.FocusParent;\n }\n\n return NavActions.None;\n};\n\nvar getRightNavAction = function getRightNavAction(currentFocus, key) {\n if (!currentFocus || !currentFocus._children || key !== Keys.Right) {\n return NavActions.None;\n }\n\n return currentFocus.expanded !== true ? NavActions.ToggleExpanded : NavActions.FocusNext;\n};\n\nvar getRelativeAction = function getRelativeAction(currentFocus, key) {\n if (!currentFocus) return NavActions.None;\n switch (key) {\n case Keys.Up:\n return NavActions.FocusPrevious;\n case Keys.Down:\n return NavActions.FocusNext;\n case Keys.Enter:\n return NavActions.ToggleChecked;\n default:\n return NavActions.None;\n }\n};\n\nvar getAction = function getAction(currentFocus, key) {\n var action = void 0;\n if (key === Keys.Left) {\n action = getLeftNavAction(currentFocus, key);\n } else if (key === Keys.Right) {\n action = getRightNavAction(currentFocus, key);\n } else if (isFocusFirstEvent(key, currentFocus)) {\n action = NavActions.FocusFirst;\n } else if (isFocusLastEvent(key, currentFocus)) {\n action = NavActions.FocusLast;\n } else {\n action = getRelativeAction(currentFocus, key);\n }\n return action;\n};\n\nvar getParentFocus = function getParentFocus(prevFocus, getNodeById) {\n return prevFocus && prevFocus._parent ? getNodeById(prevFocus._parent) : prevFocus;\n};\n\nvar getRelativeNeighborsFocus = function getRelativeNeighborsFocus(sortedNodes, prevFocus) {\n var nextIndex = sortedNodes.indexOf(prevFocus) + 1;\n if (nextIndex % sortedNodes.length === 0) {\n return sortedNodes[0];\n }\n return sortedNodes[nextIndex];\n};\n\nvar getRelativeFocus = function getRelativeFocus(sortedNodes, prevFocus, action) {\n if (!sortedNodes || sortedNodes.length === 0) {\n return prevFocus;\n }\n\n var focus = prevFocus;\n if (isEdgeTraverseAction(action)) {\n ;\n var _sortedNodes = _slicedToArray(sortedNodes, 1);\n\n focus = _sortedNodes[0];\n } else if ([NavActions.FocusPrevious, NavActions.FocusNext].indexOf(action) > -1) {\n focus = getRelativeNeighborsFocus(sortedNodes, prevFocus);\n }\n return focus;\n};\n\nvar getNextFocus = function getNextFocus(tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded) {\n if (action === NavActions.FocusParent) {\n return getParentFocus(prevFocus, getNodeById);\n }\n if (!FocusActionNames.has(action)) {\n return prevFocus;\n }\n\n var nodes = nodeVisitor.getVisibleNodes(tree, getNodeById, markSubTreeOnNonExpanded);\n if (isReverseTraverseAction(action)) {\n nodes = nodes.reverse();\n }\n\n return getRelativeFocus(nodes, prevFocus, action);\n};\n\nvar getNextFocusAfterTagDelete = function getNextFocusAfterTagDelete(deletedId, prevTags, tags, fallback) {\n // Sets new focus to next tag or returns fallback\n var index = prevTags && prevTags.findIndex(function (t) {\n return t._id === deletedId;\n });\n if (index < 0 || !tags.length) return fallback;\n\n index = tags.length > index ? index : tags.length - 1;\n var newFocusId = tags[index]._id;\n var focusNode = document.getElementById(getTagId(newFocusId));\n if (focusNode) {\n return focusNode.firstElementChild || fallback;\n }\n return fallback;\n};\n\nvar handleFocusNavigationkey = function handleFocusNavigationkey(tree, action, prevFocus, getNodeById, markSubTreeOnNonExpanded) {\n var newFocus = keyboardNavigation.getNextFocus(tree, prevFocus, action, getNodeById, markSubTreeOnNonExpanded);\n if (prevFocus && newFocus && prevFocus._id !== newFocus._id) {\n prevFocus._focused = false;\n }\n if (newFocus) {\n newFocus._focused = true;\n return newFocus._id;\n }\n return prevFocus && prevFocus._id;\n};\n\nvar handleToggleNavigationkey = function handleToggleNavigationkey(action, prevFocus, readOnly, onToggleChecked, onToggleExpanded) {\n if (action === NavActions.ToggleChecked && !readOnly && !(prevFocus.readOnly || prevFocus.disabled)) {\n onToggleChecked(prevFocus._id, prevFocus.checked !== true);\n } else if (action === NavActions.ToggleExpanded) {\n onToggleExpanded(prevFocus._id);\n }\n return prevFocus && prevFocus._id;\n};\n\nvar keyboardNavigation = {\n isValidKey: isValidKey,\n getAction: getAction,\n getNextFocus: getNextFocus,\n getNextFocusAfterTagDelete: getNextFocusAfterTagDelete,\n handleFocusNavigationkey: handleFocusNavigationkey,\n handleToggleNavigationkey: handleToggleNavigationkey\n};\n\nexport default keyboardNavigation;" }, @@ -8543,8 +8094,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.js", "issuerId": null, "issuerName": "./src/index.js", @@ -8558,8 +8108,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8580,14 +8129,9 @@ "loc": "48:30-41" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 1, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport getPartialState from './getPartialState';\nimport { isEmpty } from '../utils';\nimport flattenTree from './flatten-tree';\nimport nodeVisitor from './nodeVisitor';\nimport keyboardNavigation, { FocusActionNames } from './keyboardNavigation';\n\nvar TreeManager = function () {\n function TreeManager(_ref) {\n var data = _ref.data,\n mode = _ref.mode,\n showPartiallySelected = _ref.showPartiallySelected,\n rootPrefixId = _ref.rootPrefixId,\n searchPredicate = _ref.searchPredicate;\n\n _classCallCheck(this, TreeManager);\n\n this._src = data;\n this.simpleSelect = mode === 'simpleSelect';\n this.radioSelect = mode === 'radioSelect';\n this.hierarchical = mode === 'hierarchical';\n this.searchPredicate = searchPredicate;\n\n var _flattenTree = flattenTree({\n tree: JSON.parse(JSON.stringify(data)),\n simple: this.simpleSelect,\n radio: this.radioSelect,\n showPartialState: showPartiallySelected,\n hierarchical: this.hierarchical,\n rootPrefixId: rootPrefixId\n }),\n list = _flattenTree.list,\n defaultValues = _flattenTree.defaultValues,\n singleSelectedNode = _flattenTree.singleSelectedNode;\n\n this.tree = list;\n this.defaultValues = defaultValues;\n this.showPartialState = !this.hierarchical && showPartiallySelected;\n this.searchMaps = new Map();\n\n if ((this.simpleSelect || this.radioSelect) && singleSelectedNode) {\n // Remembers initial check on single select dropdowns\n this.currentChecked = singleSelectedNode._id;\n }\n }\n\n _createClass(TreeManager, [{\n key: 'getNodeById',\n value: function getNodeById(id) {\n return this.tree.get(id);\n }\n }, {\n key: 'getMatches',\n value: function getMatches(searchTerm) {\n var _this = this;\n\n if (this.searchMaps.has(searchTerm)) {\n return this.searchMaps.get(searchTerm);\n }\n\n var proximity = -1;\n var closestMatch = searchTerm;\n this.searchMaps.forEach(function (m, key) {\n if (searchTerm.startsWith(key) && key.length > proximity) {\n proximity = key.length;\n closestMatch = key;\n }\n });\n\n var matches = [];\n\n var addOnMatch = this._getAddOnMatch(matches, searchTerm);\n\n if (closestMatch !== searchTerm) {\n var superMatches = this.searchMaps.get(closestMatch);\n superMatches.forEach(function (key) {\n return addOnMatch(_this.getNodeById(key));\n });\n } else {\n this.tree.forEach(addOnMatch);\n }\n\n this.searchMaps.set(searchTerm, matches);\n return matches;\n }\n }, {\n key: 'addParentsToTree',\n value: function addParentsToTree(id, tree) {\n if (id !== undefined) {\n var node = this.getNodeById(id);\n this.addParentsToTree(node._parent, tree);\n node.hide = node._isMatch ? node.hide : true;\n node.matchInChildren = true;\n tree.set(id, node);\n }\n }\n }, {\n key: 'addChildrenToTree',\n value: function addChildrenToTree(ids, tree, matches) {\n var _this2 = this;\n\n if (ids !== undefined) {\n ids.forEach(function (id) {\n if (matches && matches.includes(id)) {\n // if a child is found by search anyways, don't display it as a child here\n return;\n }\n var node = _this2.getNodeById(id);\n node.matchInParent = true;\n tree.set(id, node);\n _this2.addChildrenToTree(node._children, tree);\n });\n }\n }\n }, {\n key: 'filterTree',\n value: function filterTree(searchTerm, keepTreeOnSearch, keepChildrenOnSearch) {\n var _this3 = this;\n\n var matches = this.getMatches(searchTerm.toLowerCase());\n\n var matchTree = new Map();\n\n matches.forEach(function (m) {\n var node = _this3.getNodeById(m);\n node.hide = false;\n\n // add a marker to tell `addParentsToTree` to not hide this node; even if it's an ancestor node\n node._isMatch = true;\n\n if (keepTreeOnSearch) {\n // add parent nodes first or else the tree won't be rendered in correct hierarchy\n _this3.addParentsToTree(node._parent, matchTree);\n }\n matchTree.set(m, node);\n if (keepTreeOnSearch && keepChildrenOnSearch) {\n // add children nodes after a found match\n _this3.addChildrenToTree(node._children, matchTree, matches);\n }\n });\n\n var allNodesHidden = matches.length === 0;\n\n // we store a local reference so that components can use it in subsequent renders\n // this is the least intrusive way of fixing #190\n this.matchTree = matchTree;\n\n return { allNodesHidden: allNodesHidden, tree: matchTree };\n }\n }, {\n key: 'restoreNodes',\n value: function restoreNodes() {\n this.tree.forEach(function (node) {\n node.hide = false;\n });\n\n return this.tree;\n }\n }, {\n key: 'restoreDefaultValues',\n value: function restoreDefaultValues() {\n var _this4 = this;\n\n this.defaultValues.forEach(function (id) {\n _this4.setNodeCheckedState(id, true);\n });\n\n return this.tree;\n }\n }, {\n key: 'togglePreviousChecked',\n value: function togglePreviousChecked(id, checked) {\n var prevChecked = this.currentChecked;\n\n // if id is same as previously selected node, then do nothing (since it's state is already set correctly by setNodeCheckedState)\n // but if they ar not same, then toggle the previous one\n if (prevChecked && prevChecked !== id) this.getNodeById(prevChecked).checked = false;\n\n this.currentChecked = checked ? id : null;\n }\n }, {\n key: 'setNodeCheckedState',\n value: function setNodeCheckedState(id, checked) {\n var node = this.getNodeById(id);\n node.checked = checked;\n\n // TODO: this can probably be combined with the same check in the else block. investigate in a separate release.\n if (this.showPartialState) {\n node.partial = false;\n }\n\n if (this.simpleSelect) {\n this.togglePreviousChecked(id, checked);\n } else if (this.radioSelect) {\n this.togglePreviousChecked(id, checked);\n if (this.showPartialState) {\n this.partialCheckParents(node);\n }\n if (!checked) {\n this.unCheckParents(node);\n }\n } else {\n if (!this.hierarchical) this.toggleChildren(id, checked);\n\n if (this.showPartialState) {\n this.partialCheckParents(node);\n }\n\n if (!this.hierarchical && !checked) {\n this.unCheckParents(node);\n }\n }\n }\n\n /**\n * Walks up the tree unchecking parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n\n }, {\n key: 'unCheckParents',\n value: function unCheckParents(node) {\n var parent = node._parent;\n while (parent) {\n var next = this.getNodeById(parent);\n next.checked = false;\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this));\n parent = next._parent;\n }\n }\n\n /**\n * Walks up the tree setting partial state on parent nodes\n * @param {[type]} node [description]\n * @return {[type]} [description]\n */\n\n }, {\n key: 'partialCheckParents',\n value: function partialCheckParents(node) {\n var _this5 = this;\n\n var parent = node._parent;\n while (parent) {\n var next = this.getNodeById(parent);\n next.checked = next._children.every(function (c) {\n return _this5.getNodeById(c).checked;\n });\n next.partial = getPartialState(next, '_children', this.getNodeById.bind(this));\n parent = next._parent;\n }\n }\n }, {\n key: 'toggleChildren',\n value: function toggleChildren(id, state) {\n var _this6 = this;\n\n var node = this.getNodeById(id);\n node.checked = state;\n\n if (this.showPartialState) {\n node.partial = false;\n }\n\n if (!isEmpty(node._children)) {\n node._children.forEach(function (id) {\n return _this6.toggleChildren(id, state);\n });\n }\n }\n }, {\n key: 'toggleNodeExpandState',\n value: function toggleNodeExpandState(id) {\n var node = this.getNodeById(id);\n node.expanded = !node.expanded;\n if (!node.expanded) this.collapseChildren(node);\n return this.tree;\n }\n }, {\n key: 'collapseChildren',\n value: function collapseChildren(node) {\n var _this7 = this;\n\n node.expanded = false;\n if (!isEmpty(node._children)) {\n node._children.forEach(function (c) {\n return _this7.collapseChildren(_this7.getNodeById(c));\n });\n }\n }\n }, {\n key: 'getTreeAndTags',\n value: function getTreeAndTags() {\n return { tree: this.tree, tags: this.tags };\n }\n }, {\n key: 'handleNavigationKey',\n value: function handleNavigationKey(currentFocus, tree, key, readOnly, markSubTreeOnNonExpanded, onToggleChecked, onToggleExpanded) {\n var _this8 = this;\n\n var prevFocus = currentFocus && this.getNodeById(currentFocus);\n var getNodeById = function getNodeById(id) {\n return _this8.getNodeById(id);\n };\n var action = keyboardNavigation.getAction(prevFocus, key);\n\n if (FocusActionNames.has(action)) {\n var newFocus = keyboardNavigation.handleFocusNavigationkey(tree, action, prevFocus, getNodeById, markSubTreeOnNonExpanded);\n return newFocus;\n }\n\n if (!prevFocus || !tree.has(prevFocus._id)) {\n // No current focus or not visible\n return currentFocus;\n }\n\n return keyboardNavigation.handleToggleNavigationkey(action, prevFocus, readOnly, onToggleChecked, onToggleExpanded);\n }\n }, {\n key: '_getAddOnMatch',\n value: function _getAddOnMatch(matches, searchTerm) {\n var isMatch = function isMatch(node, term) {\n return node.label.toLowerCase().indexOf(term) >= 0;\n };\n if (typeof this.searchPredicate === 'function') {\n isMatch = this.searchPredicate;\n }\n\n return function (node) {\n if (isMatch(node, searchTerm)) {\n matches.push(node._id);\n }\n };\n }\n }, {\n key: 'tags',\n get: function get() {\n var _this9 = this;\n\n if (this.radioSelect || this.simpleSelect) {\n if (this.currentChecked) {\n return [this.getNodeById(this.currentChecked)];\n }\n return [];\n }\n\n return nodeVisitor.getNodesMatching(this.tree, function (node, key, visited) {\n if (node.checked && !_this9.hierarchical) {\n // Parent node, so no need to walk children\n nodeVisitor.markSubTreeVisited(node, visited, function (id) {\n return _this9.getNodeById(id);\n });\n }\n return node.checked;\n });\n }\n }]);\n\n return TreeManager;\n}();\n\nexport default TreeManager;" }, @@ -8602,8 +8146,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -8622,8 +8165,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8644,14 +8186,9 @@ "loc": "1:0-50" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "var toKebabCase = function toKebabCase(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n};\n\nvar getDataset = function getDataset() {\n var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(o).reduce(function (acc, cur) {\n acc['data-' + toKebabCase(cur)] = o[cur];\n return acc;\n }, {});\n};\n\nexport default getDataset;" }, @@ -8666,8 +8203,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -8686,8 +8222,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8709,11 +8244,8 @@ } ], "usedExports": false, - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "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\"); } }; }();\n\nvar mapToObject = function mapToObject(map) {\n var obj = Object.create(null);\n // eslint-disable-next-line no-restricted-syntax\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = map[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _step$value = _slicedToArray(_step.value, 2),\n k = _step$value[0],\n v = _step$value[1];\n\n // We don’t escape the key '__proto__'\n // which can cause problems on older engines\n obj[k] = v;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return obj;\n};\n\nexport default mapToObject;" }, @@ -8728,8 +8260,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -8748,8 +8279,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8770,14 +8300,9 @@ "loc": "3:0-47" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "/**\n * Simplified implmentation of isEmpty.\n * Note: This is not complete and will return false positives for empty objects and likes.\n * However, it suffices for the limited use-case of this project.\n */\nvar isEmpty = function isEmpty(o) {\n return !o || Array.isArray(o) && !o.length;\n};\n\nexport default isEmpty;" }, @@ -8792,8 +8317,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -8812,8 +8336,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8834,14 +8357,9 @@ "loc": "4:0-61" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "var getPath = function getPath(e) {\n if (e.path) return e.path;\n\n var elem = e.target;\n var path = [elem];\n\n while (elem.parentElement) {\n elem = elem.parentElement;\n path.unshift(elem);\n }\n\n return path;\n};\n\nexport default (function (e, node) {\n if (!(e instanceof Event)) return false;\n return !getPath(e).some(function (eventNode) {\n return eventNode === node;\n });\n});" }, @@ -8856,8 +8374,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -8876,8 +8393,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8898,14 +8414,9 @@ "loc": "5:0-49" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "/**\n * Modified debounce that always invokes on leading edge\n * See unmodified: https://gist.github.com/mrchief/a7e8938ee96774f05644905b37f09536\n */\nexport default (function (func, wait) {\n var timeout = void 0;\n\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var later = function later() {\n timeout = null;\n func.apply(undefined, args);\n };\n\n // timeout will be undefined the first time (leading edge)\n // so the callback will get executed once on leading edge\n var callNow = !timeout;\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) func.apply(undefined, args);\n };\n});" }, @@ -8920,8 +8431,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/utils/index.js", "issuerId": null, "issuerName": "./src/utils/index.js", @@ -8940,8 +8450,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -8962,14 +8471,9 @@ "loc": "6:0-61" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "var generateUID = function generateUID(prefix) {\n var counter = 1;\n\n var map = new WeakMap();\n\n var get = function get(item) {\n if (!map.has(item)) {\n map.set(item, counter++);\n }\n return '' + prefix + map.get(item);\n };\n\n var reset = function reset() {\n map = new WeakMap();\n counter = 1;\n };\n\n return { get: get, reset: reset };\n};\n\nvar clientIdGenerator = generateUID('rdts');\nexport default clientIdGenerator;" }, @@ -8984,8 +8488,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/keyboardNavigation.js", "issuerId": null, "issuerName": "./src/tree-manager/keyboardNavigation.js", @@ -9004,8 +8507,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9062,16 +8564,9 @@ "loc": "164:42-50" } ], - "usedExports": [ - "default", - "getTagId" - ], - "providedExports": [ - "getTagId", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default", "getTagId"], + "providedExports": ["getTagId", "default"], + "optimizationBailout": [], "depth": 2, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport './index.css';\n\nexport var getTagId = function getTagId(id) {\n return id + '_tag';\n};\n\nvar Tag = function (_PureComponent) {\n _inherits(Tag, _PureComponent);\n\n function Tag() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Tag);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Tag.__proto__ || Object.getPrototypeOf(Tag)).call.apply(_ref, [this].concat(args))), _this), _this.handleClick = function (e) {\n var _this$props = _this.props,\n id = _this$props.id,\n onDelete = _this$props.onDelete;\n\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n onDelete(id, (e.key || e.keyCode) !== undefined);\n }, _this.onKeyDown = function (e) {\n if (e.key === 'Backspace') {\n _this.handleClick(e);\n e.preventDefault();\n }\n }, _this.onKeyUp = function (e) {\n if (e.keyCode === 32 || ['Delete', 'Enter'].indexOf(e.key) > -1) {\n _this.handleClick(e);\n e.preventDefault();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Tag, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n id = _props.id,\n label = _props.label,\n _props$labelRemove = _props.labelRemove,\n labelRemove = _props$labelRemove === undefined ? 'Remove' : _props$labelRemove,\n readOnly = _props.readOnly,\n disabled = _props.disabled;\n\n\n var tagId = getTagId(id);\n var buttonId = id + '_button';\n var className = ['tag-remove', readOnly && 'readOnly', disabled && 'disabled'].filter(Boolean).join(' ');\n var isDisabled = readOnly || disabled;\n\n return React.createElement(\n 'span',\n { className: 'tag', id: tagId, 'aria-label': label },\n label,\n React.createElement(\n 'button',\n {\n id: buttonId,\n onClick: !isDisabled ? this.handleClick : undefined,\n onKeyDown: !isDisabled ? this.onKeyDown : undefined,\n onKeyUp: !isDisabled ? this.onKeyUp : undefined,\n className: className,\n type: 'button',\n 'aria-label': labelRemove,\n 'aria-labelledby': buttonId + ' ' + tagId,\n 'aria-disabled': isDisabled\n },\n 'x'\n )\n );\n }\n }]);\n\n return Tag;\n}(PureComponent);\n\nTag.propTypes = {\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onDelete: PropTypes.func,\n readOnly: PropTypes.bool,\n disabled: PropTypes.bool,\n labelRemove: PropTypes.string\n};\n\n\nexport default Tag;" }, @@ -9086,8 +8581,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.js", "issuerId": null, "issuerName": "./src/tags/index.js", @@ -9106,8 +8600,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9125,20 +8618,12 @@ "moduleName": "./src/tags/index.js", "type": "harmony import specifier", "userRequest": "react-sortablejs", - "loc": "83:10-23" + "loc": "84:10-23" } ], - "usedExports": [ - "ReactSortable" - ], - "providedExports": [ - "MultiDrag", - "Sortable", - "Swap", - "ReactSortable" - ], - "optimizationBailout": [ - ], + "usedExports": ["ReactSortable"], + "providedExports": ["MultiDrag", "Sortable", "Swap", "ReactSortable"], + "optimizationBailout": [], "depth": 2, "source": "import Sortable from 'sortablejs';\nexport { MultiDrag, default as Sortable, Swap } from 'sortablejs';\nimport classNames from 'classnames';\nimport { createElement, Children, cloneElement, createRef, Component } from 'react';\nimport invariant from 'tiny-invariant';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\n/**\r\n * Removes the `node` from the DOM\r\n * @param node\r\n */\r\nfunction removeNode(node) {\r\n if (node.parentElement !== null)\r\n node.parentElement.removeChild(node);\r\n}\r\n/**\r\n * Inserts the `newChild` node at the given index in a parent\r\n * @param parent The parent HTML Element.\r\n * @param newChild A HTML eement to add as a child of the parent.\r\n * @param index index of the parent to place the new child in.\r\n */\r\nfunction insertNodeAt(parent, newChild, index) {\r\n var refChild = parent.children[index] || null;\r\n parent.insertBefore(newChild, refChild);\r\n}\r\nfunction removeNodes(customs) {\r\n customs.forEach(function (curr) { return removeNode(curr.element); });\r\n}\r\nfunction insertNodes(customs) {\r\n customs.forEach(function (curr) {\r\n insertNodeAt(curr.parentElement, curr.element, curr.oldIndex);\r\n });\r\n}\r\nfunction createCustoms(evt, list) {\r\n var mode = getMode(evt);\r\n var parentElement = { parentElement: evt.from };\r\n var custom = [];\r\n switch (mode) {\r\n case \"normal\":\r\n var item = {\r\n element: evt.item,\r\n newIndex: evt.newIndex,\r\n oldIndex: evt.oldIndex,\r\n parentElement: evt.from\r\n };\r\n custom = [item];\r\n break;\r\n case \"swap\":\r\n var drag = __assign({ element: evt.item, oldIndex: evt.oldIndex, newIndex: evt.newIndex }, parentElement);\r\n var swap = __assign({ element: evt.swapItem, oldIndex: evt.newIndex, newIndex: evt.oldIndex }, parentElement);\r\n custom = [drag, swap];\r\n break;\r\n case \"multidrag\":\r\n custom = evt.oldIndicies.map(function (curr, index) { return (__assign({ element: curr.multiDragElement, oldIndex: curr.index, newIndex: evt.newIndicies[index].index }, parentElement)); });\r\n break;\r\n }\r\n var customs = createNormalized(custom, list);\r\n return customs;\r\n}\r\n/** moves items form old index to new index without breaking anything ideally. */\r\nfunction handleStateChanges(normalized, list) {\r\n var a = handleStateRemove(normalized, list);\r\n var b = handleStateAdd(normalized, a);\r\n return b;\r\n}\r\nfunction handleStateRemove(normalized, list) {\r\n var newList = __spread(list);\r\n normalized\r\n .concat()\r\n .reverse()\r\n .forEach(function (curr) { return newList.splice(curr.oldIndex, 1); });\r\n return newList;\r\n}\r\nfunction handleStateAdd(normalized, list) {\r\n var newList = __spread(list);\r\n normalized.forEach(function (curr) { return newList.splice(curr.newIndex, 0, curr.item); });\r\n return newList;\r\n}\r\nfunction getMode(evt) {\r\n if (evt.oldIndicies && evt.oldIndicies.length > 0)\r\n return \"multidrag\";\r\n if (evt.swapItem)\r\n return \"swap\";\r\n return \"normal\";\r\n}\r\nfunction createNormalized(inputs, list) {\r\n var normalized = inputs\r\n .map(function (curr) { return (__assign(__assign({}, curr), { item: list[curr.oldIndex] })); })\r\n .sort(function (a, b) { return a.oldIndex - b.oldIndex; });\r\n return normalized;\r\n}\r\n/**\r\n * Removes the following group of properties from `props`,\r\n * leaving only `Sortable.Options` without any `on` methods.\r\n * @param props `ReactSortable.Props`\r\n */\r\nfunction destructurePropsForOptions(props) {\r\n var \r\n // react sortable props\r\n list = props.list, setList = props.setList, children = props.children, tag = props.tag, style = props.style, className = props.className, clone = props.clone, \r\n // sortable options that have methods we want to overwrite\r\n onAdd = props.onAdd, onChange = props.onChange, onChoose = props.onChoose, onClone = props.onClone, onEnd = props.onEnd, onFilter = props.onFilter, onRemove = props.onRemove, onSort = props.onSort, onStart = props.onStart, onUnchoose = props.onUnchoose, onUpdate = props.onUpdate, onMove = props.onMove, onSpill = props.onSpill, onSelect = props.onSelect, onDeselect = props.onDeselect, options = __rest(props, [\"list\", \"setList\", \"children\", \"tag\", \"style\", \"className\", \"clone\", \"onAdd\", \"onChange\", \"onChoose\", \"onClone\", \"onEnd\", \"onFilter\", \"onRemove\", \"onSort\", \"onStart\", \"onUnchoose\", \"onUpdate\", \"onMove\", \"onSpill\", \"onSelect\", \"onDeselect\"]);\r\n return options;\r\n}\n\n/** Holds a global reference for which react element is being dragged */\r\n// @todo - use context to manage this. How does one use 2 different providers?\r\nvar store = { dragging: null };\r\nvar ReactSortable = /** @class */ (function (_super) {\r\n __extends(ReactSortable, _super);\r\n function ReactSortable(props) {\r\n var _this = _super.call(this, props) || this;\r\n // @todo forward ref this component\r\n _this.ref = createRef();\r\n // make all state false because we can't change sortable unless a mouse gesture is made.\r\n var newList = __spread(props.list).map(function (item) { return (__assign(__assign({}, item), { chosen: false, selected: false })); });\r\n props.setList(newList, _this.sortable, store);\r\n invariant(\r\n //@ts-ignore\r\n !props.plugins, \"\\nPlugins prop is no longer supported.\\nInstead, mount it with \\\"Sortable.mount(new MultiDrag())\\\"\\nPlease read the updated README.md at https://github.com/SortableJS/react-sortablejs.\\n \");\r\n return _this;\r\n }\r\n ReactSortable.prototype.componentDidMount = function () {\r\n if (this.ref.current === null)\r\n return;\r\n var newOptions = this.makeOptions();\r\n Sortable.create(this.ref.current, newOptions);\r\n };\r\n ReactSortable.prototype.render = function () {\r\n var _a = this.props, tag = _a.tag, style = _a.style, className = _a.className, id = _a.id;\r\n var classicProps = { style: style, className: className, id: id };\r\n // if no tag, default to a `div` element.\r\n var newTag = !tag || tag === null ? \"div\" : tag;\r\n return createElement(newTag, __assign({ \r\n // @todo - find a way (perhaps with the callback) to allow AntD components to work\r\n ref: this.ref }, classicProps), this.getChildren());\r\n };\r\n ReactSortable.prototype.getChildren = function () {\r\n var _a = this.props, children = _a.children, dataIdAttr = _a.dataIdAttr, _b = _a.selectedClass, selectedClass = _b === void 0 ? \"sortable-selected\" : _b, _c = _a.chosenClass, chosenClass = _c === void 0 ? \"sortable-chosen\" : _c, _d = _a.dragClass, _e = _a.fallbackClass, _f = _a.ghostClass, _g = _a.swapClass, _h = _a.filter, filter = _h === void 0 ? \"sortable-filter\" : _h, list = _a.list;\r\n // if no children, don't do anything.\r\n if (!children || children == null)\r\n return null;\r\n var dataid = dataIdAttr || \"data-id\";\r\n return Children.map(children, function (child, index) {\r\n var _a, _b, _c;\r\n var item = list[index];\r\n var prevClassName = child.props.className;\r\n // @todo - handle the function if avalable. I don't think anyone will be doing this soon.\r\n var filtered = typeof filter === \"string\" && (_a = {},\r\n _a[filter.replace(\".\", \"\")] = !!item.filtered,\r\n _a);\r\n var className = classNames(prevClassName, __assign((_b = {}, _b[selectedClass] = item.selected, _b[chosenClass] = item.chosen, _b), filtered\r\n // [dragClass]: true,\r\n // [fallbackClass]: true,\r\n // [ghostClass]: true,\r\n // [swapClass]: true\r\n ));\r\n return cloneElement(child, (_c = {},\r\n _c[dataid] = child.key,\r\n _c.className = className,\r\n _c));\r\n });\r\n };\r\n Object.defineProperty(ReactSortable.prototype, \"sortable\", {\r\n /** Appends the `sortable` property to this component */\r\n get: function () {\r\n var el = this.ref.current;\r\n if (el === null)\r\n return null;\r\n var key = Object.keys(el).find(function (k) { return k.includes(\"Sortable\"); });\r\n if (!key)\r\n return null;\r\n //@ts-ignore - I know what I'm doing.\r\n return el[key];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Converts all the props from `ReactSortable` into the `options` object that `Sortable.create(el, [options])` can use. */\r\n ReactSortable.prototype.makeOptions = function () {\r\n var _this = this;\r\n var DOMHandlers = [\r\n \"onAdd\",\r\n \"onChoose\",\r\n \"onDeselect\",\r\n \"onEnd\",\r\n \"onRemove\",\r\n \"onSelect\",\r\n \"onSpill\",\r\n \"onStart\",\r\n \"onUnchoose\",\r\n \"onUpdate\"\r\n ];\r\n var NonDOMHandlers = [\r\n \"onChange\",\r\n \"onClone\",\r\n \"onFilter\",\r\n \"onSort\"\r\n ];\r\n var newOptions = destructurePropsForOptions(this.props);\r\n DOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerPropAndDOM(name)); });\r\n NonDOMHandlers.forEach(function (name) { return (newOptions[name] = _this.prepareOnHandlerProp(name)); });\r\n /** onMove has 2 arguments and needs to be handled seperately. */\r\n var onMove = function (evt, originalEvt) {\r\n var onMove = _this.props.onMove;\r\n var defaultValue = evt.willInsertAfter || -1;\r\n if (!onMove)\r\n return defaultValue;\r\n var result = onMove(evt, originalEvt, _this.sortable, store);\r\n if (typeof result === 'undefined')\r\n return false;\r\n return result;\r\n };\r\n return __assign(__assign({}, newOptions), { onMove: onMove });\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop & an `on[Handler]` ReactSortable method. */\r\n ReactSortable.prototype.prepareOnHandlerPropAndDOM = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n // calls state change\r\n //@ts-ignore - until @types multidrag item is in\r\n _this[evtName](evt);\r\n };\r\n };\r\n /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop */\r\n ReactSortable.prototype.prepareOnHandlerProp = function (evtName) {\r\n var _this = this;\r\n return function (evt) {\r\n // call the component prop\r\n _this.callOnHandlerProp(evt, evtName);\r\n };\r\n };\r\n /** Calls the `props.on[Handler]` function */\r\n ReactSortable.prototype.callOnHandlerProp = function (evt, evtName) {\r\n var propEvent = this.props[evtName];\r\n if (propEvent)\r\n propEvent(evt, this.sortable, store);\r\n };\r\n // SORTABLE DOM HANDLING\r\n ReactSortable.prototype.onAdd = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var otherList = __spread(store.dragging.props.list);\r\n var customs = createCustoms(evt, otherList);\r\n removeNodes(customs);\r\n var newList = handleStateAdd(customs, list);\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onRemove = function (evt) {\r\n var _this = this;\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var mode = getMode(evt);\r\n var customs = createCustoms(evt, list);\r\n insertNodes(customs);\r\n var newList = __spread(list);\r\n // remove state if not in clone mode. otherwise, keep.\r\n if (evt.pullMode !== \"clone\")\r\n newList = handleStateRemove(customs, newList);\r\n // if clone, it doesn't really remove. instead it clones in place.\r\n // @todo -\r\n else {\r\n // switch used to get the clone\r\n var customClones = customs;\r\n switch (mode) {\r\n case \"multidrag\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clones[index] })); });\r\n break;\r\n case \"normal\":\r\n customClones = customs.map(function (item, index) { return (__assign(__assign({}, item), { element: evt.clone })); });\r\n break;\r\n case \"swap\":\r\n default: {\r\n invariant(true, \"mode \\\"\" + mode + \"\\\" cannot clone. Please remove \\\"props.clone\\\" from when using the \\\"\" + mode + \"\\\" plugin\");\r\n }\r\n }\r\n removeNodes(customClones);\r\n // replace selected items with cloned items\r\n customs.forEach(function (curr) {\r\n var index = curr.oldIndex;\r\n var newItem = _this.props.clone(curr.item, evt);\r\n newList.splice(index, 1, newItem);\r\n });\r\n }\r\n // remove item.selected from list\r\n newList = newList.map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUpdate = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var customs = createCustoms(evt, list);\r\n removeNodes(customs);\r\n insertNodes(customs);\r\n var newList = handleStateChanges(customs, list);\r\n return setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onStart = function (evt) {\r\n store.dragging = this;\r\n };\r\n ReactSortable.prototype.onEnd = function (evt) {\r\n store.dragging = null;\r\n };\r\n ReactSortable.prototype.onChoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = true;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onUnchoose = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list);\r\n newList[evt.oldIndex].chosen = false;\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onSpill = function (evt) {\r\n var _a = this.props, removeOnSpill = _a.removeOnSpill, revertOnSpill = _a.revertOnSpill;\r\n if (removeOnSpill && !revertOnSpill)\r\n removeNode(evt.item);\r\n };\r\n ReactSortable.prototype.onSelect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1) {\r\n console.log(\"\\\"\" + evt.type + \"\\\" had indice of \\\"\" + curr.index + \"\\\", which is probably -1 and doesn't usually happen here.\");\r\n console.log(evt);\r\n return;\r\n }\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.prototype.onDeselect = function (evt) {\r\n var _a = this.props, list = _a.list, setList = _a.setList;\r\n var newList = __spread(list).map(function (item) { return (__assign(__assign({}, item), { selected: false })); });\r\n evt.newIndicies.forEach(function (curr) {\r\n var index = curr.index;\r\n if (index === -1)\r\n return;\r\n newList[index].selected = true;\r\n });\r\n setList(newList, this.sortable, store);\r\n };\r\n ReactSortable.defaultProps = {\r\n clone: function (item) { return item; }\r\n };\r\n return ReactSortable;\r\n}(Component));\n\nexport { ReactSortable };\n" }, @@ -9153,8 +8638,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree/index.js", "issuerId": null, "issuerName": "./src/tree/index.js", @@ -9173,8 +8657,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9195,14 +8678,9 @@ "loc": "149:39-47" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport { getDataset, isEmpty } from '../utils';\nimport Actions from './actions';\nimport NodeLabel from './node-label';\nimport Toggle from './toggle';\n\nimport './index.css';\n\nvar isLeaf = function isLeaf(children) {\n return isEmpty(children);\n};\n\nvar getNodeCx = function getNodeCx(props) {\n var keepTreeOnSearch = props.keepTreeOnSearch,\n keepChildrenOnSearch = props.keepChildrenOnSearch,\n _children = props._children,\n matchInChildren = props.matchInChildren,\n matchInParent = props.matchInParent,\n disabled = props.disabled,\n partial = props.partial,\n hide = props.hide,\n className = props.className,\n showPartiallySelected = props.showPartiallySelected,\n readOnly = props.readOnly,\n checked = props.checked,\n focused = props._focused;\n\n\n return ['node', isLeaf(_children) && 'leaf', !isLeaf(_children) && 'tree', disabled && 'disabled', hide && 'hide', keepTreeOnSearch && matchInChildren && 'match-in-children', keepTreeOnSearch && keepChildrenOnSearch && matchInParent && 'match-in-parent', showPartiallySelected && partial && 'partial', readOnly && 'readOnly', checked && 'checked', focused && 'focused', className].filter(Boolean).join(' ');\n};\n\nvar TreeNode = function (_PureComponent) {\n _inherits(TreeNode, _PureComponent);\n\n function TreeNode() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, TreeNode);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = TreeNode.__proto__ || Object.getPrototypeOf(TreeNode)).call.apply(_ref, [this].concat(args))), _this), _this.getAriaAttributes = function () {\n var _this$props = _this.props,\n _children = _this$props._children,\n _depth = _this$props._depth,\n checked = _this$props.checked,\n disabled = _this$props.disabled,\n expanded = _this$props.expanded,\n readOnly = _this$props.readOnly,\n mode = _this$props.mode,\n partial = _this$props.partial;\n\n var attributes = {};\n\n attributes.role = mode === 'simpleSelect' ? 'option' : 'treeitem';\n attributes['aria-disabled'] = disabled || readOnly;\n attributes['aria-selected'] = checked;\n if (mode !== 'simpleSelect') {\n attributes['aria-checked'] = partial ? 'mixed' : checked;\n attributes['aria-level'] = (_depth || 0) + 1;\n attributes['aria-expanded'] = _children && (expanded ? 'true' : 'false');\n }\n return attributes;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(TreeNode, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n mode = _props.mode,\n keepTreeOnSearch = _props.keepTreeOnSearch,\n _id = _props._id,\n _children = _props._children,\n dataset = _props.dataset,\n _depth = _props._depth,\n expanded = _props.expanded,\n title = _props.title,\n label = _props.label,\n partial = _props.partial,\n checked = _props.checked,\n value = _props.value,\n disabled = _props.disabled,\n actions = _props.actions,\n onAction = _props.onAction,\n searchModeOn = _props.searchModeOn,\n onNodeToggle = _props.onNodeToggle,\n onCheckboxChange = _props.onCheckboxChange,\n showPartiallySelected = _props.showPartiallySelected,\n readOnly = _props.readOnly,\n clientId = _props.clientId;\n\n var liCx = getNodeCx(this.props);\n var style = keepTreeOnSearch || !searchModeOn ? { paddingLeft: (_depth || 0) * 20 + 'px' } : {};\n\n var liId = _id + '_li';\n\n return React.createElement(\n 'li',\n _extends({ className: liCx, style: style, id: liId }, getDataset(dataset), this.getAriaAttributes()),\n React.createElement(Toggle, { isLeaf: isLeaf(_children), expanded: expanded, id: _id, onNodeToggle: onNodeToggle }),\n React.createElement(NodeLabel, {\n title: title,\n label: label,\n id: _id,\n partial: partial,\n checked: checked,\n value: value,\n disabled: disabled,\n mode: mode,\n onCheckboxChange: onCheckboxChange,\n showPartiallySelected: showPartiallySelected,\n readOnly: readOnly,\n clientId: clientId\n }),\n React.createElement(Actions, { actions: actions, onAction: onAction, id: _id, readOnly: readOnly })\n );\n }\n }]);\n\n return TreeNode;\n}(PureComponent);\n\nTreeNode.propTypes = {\n _id: PropTypes.string.isRequired,\n _depth: PropTypes.number,\n _children: PropTypes.array,\n actions: PropTypes.array,\n className: PropTypes.string,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n expanded: PropTypes.bool,\n disabled: PropTypes.bool,\n partial: PropTypes.bool,\n dataset: PropTypes.object,\n keepTreeOnSearch: PropTypes.bool,\n keepChildrenOnSearch: PropTypes.bool,\n searchModeOn: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n onAction: PropTypes.func,\n onCheckboxChange: PropTypes.func,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string\n};\n\n\nexport default TreeNode;" }, @@ -9217,8 +8695,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/index.js", "issuerId": null, "issuerName": "./src/tree-manager/index.js", @@ -9237,8 +8714,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9286,14 +8762,9 @@ "loc": "280:23-38" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "import partial from 'array.partial';\n\nvar identity = function identity(c) {\n return c;\n};\n\nexport default (function (node) {\n var childProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'children';\n var childSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return partial(node[childProp], function (c) {\n return childSelector(c).checked;\n }) || node[childProp].some(function (c) {\n return childSelector(c).partial;\n });\n});" }, @@ -9308,8 +8779,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/index.js", "issuerId": null, "issuerName": "./src/tree-manager/index.js", @@ -9328,8 +8798,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9350,14 +8819,9 @@ "loc": "27:23-34" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "import getPartialState from './getPartialState';\n\nimport { isEmpty } from '../utils';\n\n/**\n * Converts a nested node into an associative array with pointers to child and parent nodes\n * Given:\n```\nconst tree = [\n {\n label: 'item1',\n value: 'value1',\n children: [\n {\n label: 'item1-1',\n value: 'value1-1',\n children: [\n {\n label: 'item1-1-1',\n value: 'value1-1-1'\n },\n {\n label: 'item1-1-2',\n value: 'value1-1-2'\n }\n ]\n },\n {\n label: 'item1-2',\n value: 'value1-2'\n }\n ]\n },\n {\n label: 'item2',\n value: 'value2',\n children: [\n {\n label: 'item2-1',\n value: 'value2-1',\n children: [\n {\n label: 'item2-1-1',\n value: 'value2-1-1'\n },\n {\n label: 'item2-1-2',\n value: 'value2-1-2'\n },\n {\n label: 'item2-1-3',\n value: 'item2-1-3',\n children: [\n {\n label: 'item2-1-3-1',\n value: 'value2-1-3-1'\n }\n ]\n }\n ]\n },\n {\n label: 'item2-2',\n value: 'value2-2'\n }\n ]\n }\n]\n```\n * results in\n```\n{\n \"0\": {\n _id: \"0\",\n _parent: null,\n _children: [\n \"0-0\",\n \"0-1\"\n ],\n label: \"item1\",\n value: \"value1\"\n },\n \"1\": {\n _id: \"1\",\n _parent: null,\n _children: [\n \"1-0\",\n \"1-1\"\n ],\n label: \"item2\",\n value: \"value2\"\n },\n \"0-0\": {\n _id: \"0-0\",\n _parent: \"0\",\n _children: [\n \"0-0-0\",\n \"0-0-1\"\n ],\n label: \"item1-1\",\n value: \"value1-1\"\n },\n \"0-1\": {\n _id: \"0-1\",\n _parent: \"0\",\n label: \"item1-2\",\n value: \"value1-2\"\n },\n \"0-0-0\": {\n _id: \"0-0-0\",\n _parent: \"0-0\",\n label: \"item1-1-1\",\n value: \"value1-1-1\"\n },\n \"0-0-1\": {\n _id: \"0-0-1\",\n _parent: \"0-0\",\n label: \"item1-1-2\",\n value: \"value1-1-2\"\n },\n \"1-0\": {\n _id: \"1-0\",\n _parent: \"1\",\n _children: [\n \"1-0-0\",\n \"1-0-1\",\n \"1-0-2\"\n ],\n label: \"item2-1\",\n value: \"value2-1\"\n },\n \"1-1\": {\n _id: \"1-1\",\n _parent: \"1\",\n label: \"item2-2\",\n value: \"value2-2\"\n },\n \"1-0-0\": {\n _id: \"1-0-0\",\n _parent: \"1-0\",\n label: \"item2-1-1\",\n value: \"value2-1-1\"\n },\n \"1-0-1\": {\n _id: \"1-0-1\",\n _parent: \"1-0\",\n label: \"item2-1-2\",\n value: \"value2-1-2\"\n },\n \"1-0-2\": {\n _id: \"1-0-2\",\n _parent: \"1-0\",\n _children: [\n \"1-0-2-0\"\n ],\n label: \"item2-1-3\",\n value: \"value2-1-3\"\n },\n \"1-0-2-0\": {\n _id: \"1-0-2-0\",\n _parent: \"1-0-2\",\n label: \"item2-1-3-1\",\n value: \"value2-1-3-1\"\n }\n}\n```\n * @param {[type]} tree The incoming tree object\n * @param {[bool]} simple Whether its in Single select mode (simple dropdown)\n * @param {[bool]} radio Whether its in Radio select mode (radio dropdown)\n * @param {[bool]} showPartialState Whether to show partially checked state\n * @param {[string]} rootPrefixId The prefix to use when setting root node ids\n * @return {object} The flattened list\n */\nfunction flattenTree(_ref) {\n var tree = _ref.tree,\n simple = _ref.simple,\n radio = _ref.radio,\n showPartialState = _ref.showPartialState,\n hierarchical = _ref.hierarchical,\n rootPrefixId = _ref.rootPrefixId;\n\n var forest = Array.isArray(tree) ? tree : [tree];\n\n // eslint-disable-next-line no-use-before-define\n return walkNodes({\n nodes: forest,\n simple: simple,\n radio: radio,\n showPartialState: showPartialState,\n hierarchical: hierarchical,\n rootPrefixId: rootPrefixId\n });\n}\n\n/**\n * If the node didn't specify anything on its own\n * figure out the initial state based on parent\n * @param {object} node [current node]\n * @param {object} parent [node's immediate parent]\n * @param {bool} inheritChecked [if checked should be inherited]\n */\nfunction setInitialStateProps(node) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var inheritChecked = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var stateProps = inheritChecked ? ['checked', 'disabled'] : ['disabled'];\n for (var index = 0; index < stateProps.length; index++) {\n var prop = stateProps[index];\n\n // if and only if, node doesn't explicitly define a prop, grab it from parent\n if (node[prop] === undefined && parent[prop] !== undefined) {\n node[prop] = parent[prop];\n }\n }\n}\n\nfunction walkNodes(_ref2) {\n var nodes = _ref2.nodes,\n parent = _ref2.parent,\n _ref2$depth = _ref2.depth,\n depth = _ref2$depth === undefined ? 0 : _ref2$depth,\n simple = _ref2.simple,\n radio = _ref2.radio,\n showPartialState = _ref2.showPartialState,\n hierarchical = _ref2.hierarchical,\n rootPrefixId = _ref2.rootPrefixId,\n _ref2$_rv = _ref2._rv,\n _rv = _ref2$_rv === undefined ? { list: new Map(), defaultValues: [], singleSelectedNode: null } : _ref2$_rv;\n\n var single = simple || radio;\n nodes.forEach(function (node, i) {\n node._depth = depth;\n\n if (parent) {\n node._id = node.id || parent._id + '-' + i;\n node._parent = parent._id;\n parent._children.push(node._id);\n } else {\n node._id = node.id || '' + (rootPrefixId ? rootPrefixId + '-' + i : i);\n }\n\n if (single && node.checked) {\n if (_rv.singleSelectedNode) {\n node.checked = false;\n } else {\n _rv.singleSelectedNode = node;\n }\n }\n\n if (single && node.isDefaultValue && _rv.singleSelectedNode && !_rv.singleSelectedNode.isDefaultValue) {\n // Default value has precedence, uncheck previous value\n _rv.singleSelectedNode.checked = false;\n _rv.singleSelectedNode = null;\n }\n\n if (node.isDefaultValue && (!single || _rv.defaultValues.length === 0)) {\n _rv.defaultValues.push(node._id);\n node.checked = true;\n if (single) {\n _rv.singleSelectedNode = node;\n }\n }\n\n if (!hierarchical || radio) setInitialStateProps(node, parent, !radio);\n\n _rv.list.set(node._id, node);\n if (!simple && node.children) {\n node._children = [];\n walkNodes({\n nodes: node.children,\n parent: node,\n depth: depth + 1,\n radio: radio,\n showPartialState: showPartialState,\n hierarchical: hierarchical,\n _rv: _rv\n });\n\n if (showPartialState && !node.checked) {\n node.partial = getPartialState(node);\n\n // re-check if all children are checked. if so, check thyself\n if (!single && !isEmpty(node.children) && node.children.every(function (c) {\n return c.checked;\n })) {\n node.checked = true;\n }\n }\n\n node.children = undefined;\n }\n });\n\n return _rv;\n}\n\nexport default flattenTree;" }, @@ -9372,8 +8836,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-manager/keyboardNavigation.js", "issuerId": null, "issuerName": "./src/tree-manager/keyboardNavigation.js", @@ -9392,8 +8855,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9441,14 +8903,9 @@ "loc": "354:10-21" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 2, "source": "import { isEmpty } from '../utils';\n\nvar markSubTreeVisited = function markSubTreeVisited(node, visited, getItemById) {\n visited[node._id] = true;\n if (!isEmpty(node._children)) {\n node._children.forEach(function (c) {\n return markSubTreeVisited(getItemById(c), visited, getItemById);\n });\n }\n};\n\nvar getNodesMatching = function getNodesMatching(tree, nodePredicate) {\n var nodes = [];\n var visited = {};\n\n tree.forEach(function (node, key) {\n if (visited[key]) return;\n\n if (nodePredicate(node, key, visited)) {\n nodes.push(node);\n }\n\n visited[key] = true;\n });\n\n return nodes;\n};\n\nvar getVisibleNodes = function getVisibleNodes(tree, getItemById, markSubTreeOnNonExpanded) {\n return getNodesMatching(tree, function (node, key, visited) {\n if (markSubTreeOnNonExpanded && node._children && node._children.length && node.expanded !== true) {\n markSubTreeVisited(node, visited, getItemById);\n }\n return !node.hide;\n });\n};\n\nvar nodeVisitor = {\n getNodesMatching: getNodesMatching,\n getVisibleNodes: getVisibleNodes,\n markSubTreeVisited: markSubTreeVisited\n};\nexport default nodeVisitor;" }, @@ -9463,8 +8920,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/react-sortablejs/dist/index.es.js", "issuerId": null, "issuerName": "./node_modules/react-sortablejs/dist/index.es.js", @@ -9488,8 +8944,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9546,17 +9001,9 @@ "loc": "201:8-16" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default", - "MultiDrag", - "Sortable", - "Swap" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default", "MultiDrag", "Sortable", "Swap"], + "optimizationBailout": [], "depth": 3, "source": "/**!\n * Sortable 1.10.1\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.1\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n if (IE11OrLess) {\n return document.documentElement;\n } else {\n return document.scrollingElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\n * Selects the provided multi-drag item\n * @param {HTMLElement} el The element to be selected\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\n * Deselects the provided multi-drag item\n * @param {HTMLElement} el The element to be deselected\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\n * Insert multi-drag clones\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\n * @param {HTMLElement} rootEl\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n" }, @@ -9571,8 +9018,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/react-sortablejs/dist/index.es.js", "issuerId": null, "issuerName": "./node_modules/react-sortablejs/dist/index.es.js", @@ -9596,8 +9042,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9627,14 +9072,9 @@ "loc": "348:20-29" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n" }, @@ -9649,8 +9089,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.js", "issuerId": null, "issuerName": "./src/tree-node/index.js", @@ -9674,8 +9113,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9696,14 +9134,9 @@ "loc": "132:28-35" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "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; };\n\nvar _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; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport Action from './action';\nimport { isEmpty } from '../utils';\n\nvar Actions = function (_PureComponent) {\n _inherits(Actions, _PureComponent);\n\n function Actions() {\n _classCallCheck(this, Actions);\n\n return _possibleConstructorReturn(this, (Actions.__proto__ || Object.getPrototypeOf(Actions)).apply(this, arguments));\n }\n\n _createClass(Actions, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n actions = _props.actions,\n id = _props.id,\n rest = _objectWithoutProperties(_props, ['actions', 'id']);\n\n if (isEmpty(actions)) return null;\n\n return actions.map(function (a, idx) {\n var actionId = a.id || 'action-' + idx;\n return React.createElement(Action, _extends({ key: actionId }, rest, a, { actionData: { action: _extends({}, a, { id: actionId }), nodeId: id } }));\n });\n }\n }]);\n\n return Actions;\n}(PureComponent);\n\nActions.propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array\n};\n\n\nexport default Actions;" }, @@ -9718,8 +9151,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.js", "issuerId": null, "issuerName": "./src/tree-node/index.js", @@ -9743,8 +9175,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9765,14 +9196,9 @@ "loc": "118:28-37" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "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; };\n\nvar _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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport Checkbox from '../checkbox';\nimport RadioButton from '../radio';\n\nvar NodeLabel = function (_PureComponent) {\n _inherits(NodeLabel, _PureComponent);\n\n function NodeLabel() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, NodeLabel);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = NodeLabel.__proto__ || Object.getPrototypeOf(NodeLabel)).call.apply(_ref, [this].concat(args))), _this), _this.handleCheckboxChange = function (e) {\n var _this$props = _this.props,\n mode = _this$props.mode,\n id = _this$props.id,\n onCheckboxChange = _this$props.onCheckboxChange;\n\n\n if (mode === 'simpleSelect' || mode === 'radioSelect') {\n onCheckboxChange(id, true);\n } else {\n var checked = e.target.checked;\n\n onCheckboxChange(id, checked);\n }\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(NodeLabel, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n mode = _props.mode,\n title = _props.title,\n label = _props.label,\n id = _props.id,\n partial = _props.partial,\n checked = _props.checked;\n var _props2 = this.props,\n value = _props2.value,\n disabled = _props2.disabled,\n showPartiallySelected = _props2.showPartiallySelected,\n readOnly = _props2.readOnly,\n clientId = _props2.clientId;\n\n var nodeLabelProps = { className: 'node-label'\n\n // in case of simple select mode, there is no checkbox, so we need to handle the click via the node label\n // but not if the control is in readOnly or disabled state\n };var shouldRegisterClickHandler = mode === 'simpleSelect' && !readOnly && !disabled;\n\n if (shouldRegisterClickHandler) {\n nodeLabelProps.onClick = this.handleCheckboxChange;\n }\n\n var sharedProps = { id: id, value: value, checked: checked, disabled: disabled, readOnly: readOnly, tabIndex: -1 };\n var className = ['checkbox-item', mode === 'simpleSelect' && 'simple-select'].filter(Boolean).join(' ');\n\n return React.createElement(\n 'label',\n { title: title || label, htmlFor: id },\n mode === 'radioSelect' ? React.createElement(RadioButton, _extends({ name: clientId, className: 'radio-item', onChange: this.handleCheckboxChange }, sharedProps)) : React.createElement(Checkbox, _extends({\n name: id,\n className: className,\n indeterminate: showPartiallySelected && partial,\n onChange: this.handleCheckboxChange\n }, sharedProps)),\n React.createElement(\n 'span',\n nodeLabelProps,\n label\n )\n );\n }\n }]);\n\n return NodeLabel;\n}(PureComponent);\n\nNodeLabel.propTypes = {\n id: PropTypes.string.isRequired,\n actions: PropTypes.array,\n title: PropTypes.string,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n partial: PropTypes.bool,\n disabled: PropTypes.bool,\n dataset: PropTypes.object,\n mode: PropTypes.oneOf(['multiSelect', 'simpleSelect', 'radioSelect', 'hierarchical']),\n showPartiallySelected: PropTypes.bool,\n onCheckboxChange: PropTypes.func,\n readOnly: PropTypes.bool,\n clientId: PropTypes.string\n};\n\n\nexport default NodeLabel;" }, @@ -9787,8 +9213,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.js", "issuerId": null, "issuerName": "./src/tree-node/index.js", @@ -9812,8 +9237,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9834,14 +9258,9 @@ "loc": "117:28-34" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 3, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nvar Toggle = function (_PureComponent) {\n _inherits(Toggle, _PureComponent);\n\n function Toggle() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Toggle);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Toggle.__proto__ || Object.getPrototypeOf(Toggle)).call.apply(_ref, [this].concat(args))), _this), _this.onToggle = function (e) {\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n _this.props.onNodeToggle(_this.props.id);\n }, _this.onKeyDown = function (e) {\n if (e.key === 'Enter' || e.keyCode === 32) {\n _this.props.onNodeToggle(_this.props.id);\n e.preventDefault();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Toggle, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n expanded = _props.expanded,\n isLeaf = _props.isLeaf;\n\n if (isLeaf) return null;\n\n var toggleCx = ['toggle', expanded && 'expanded', !expanded && 'collapsed'].filter(Boolean).join(' ');\n return React.createElement('i', {\n role: 'button',\n tabIndex: -1,\n className: toggleCx,\n onClick: this.onToggle,\n onKeyDown: this.onKeyDown,\n 'aria-hidden': true\n });\n }\n }]);\n\n return Toggle;\n}(PureComponent);\n\nToggle.propTypes = {\n expanded: PropTypes.bool,\n isLeaf: PropTypes.bool,\n onNodeToggle: PropTypes.func,\n id: PropTypes.string\n};\n\n\nexport default Toggle;" }, @@ -9856,8 +9275,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/actions.js", "issuerId": null, "issuerName": "./src/tree-node/actions.js", @@ -9886,8 +9304,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9908,14 +9325,9 @@ "loc": "40:35-41" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["default"], + "optimizationBailout": [], "depth": 4, "source": "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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nvar Action = function (_PureComponent) {\n _inherits(Action, _PureComponent);\n\n function Action() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Action);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Action.__proto__ || Object.getPrototypeOf(Action)).call.apply(_ref, [this].concat(args))), _this), _this.handleClick = function () {\n var _this$props = _this.props,\n onAction = _this$props.onAction,\n actionData = _this$props.actionData;\n\n if (onAction) {\n onAction(actionData.nodeId, actionData.action);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Action, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n title = _props.title,\n className = _props.className,\n text = _props.text,\n readOnly = _props.readOnly;\n\n\n return React.createElement(\n 'i',\n { title: title, className: className, onClick: !readOnly ? this.handleClick : undefined },\n text\n );\n }\n }]);\n\n return Action;\n}(PureComponent);\n\nAction.propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n className: PropTypes.string,\n actionData: PropTypes.object,\n onAction: PropTypes.func,\n readOnly: PropTypes.bool\n};\nAction.defaultProps = {\n onAction: function onAction() {}\n};\n\n\nexport default Action;" }, @@ -9930,8 +9342,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/node-label.js", "issuerId": null, "issuerName": "./src/tree-node/node-label.js", @@ -9960,8 +9371,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -9982,15 +9392,9 @@ "loc": "82:193-201" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "refUpdater", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["refUpdater", "default"], + "optimizationBailout": [], "depth": 4, "source": "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; };\n\nvar _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; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nexport var refUpdater = function refUpdater(_ref) {\n var checked = _ref.checked,\n indeterminate = _ref.indeterminate;\n return function (input) {\n if (input) {\n input.checked = checked;\n input.indeterminate = indeterminate;\n }\n };\n};\n\nvar Checkbox = function (_PureComponent) {\n _inherits(Checkbox, _PureComponent);\n\n function Checkbox() {\n _classCallCheck(this, Checkbox);\n\n return _possibleConstructorReturn(this, (Checkbox.__proto__ || Object.getPrototypeOf(Checkbox)).apply(this, arguments));\n }\n\n _createClass(Checkbox, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n checked = _props.checked,\n _props$indeterminate = _props.indeterminate,\n indeterminate = _props$indeterminate === undefined ? false : _props$indeterminate,\n onChange = _props.onChange,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n rest = _objectWithoutProperties(_props, ['checked', 'indeterminate', 'onChange', 'disabled', 'readOnly']);\n\n var isDisabled = disabled || readOnly;\n\n return React.createElement('input', _extends({\n type: 'checkbox',\n ref: refUpdater({ checked: checked, indeterminate: indeterminate }),\n onChange: onChange,\n disabled: isDisabled\n }, rest));\n }\n }]);\n\n return Checkbox;\n}(PureComponent);\n\nCheckbox.propTypes = {\n checked: PropTypes.bool,\n indeterminate: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\n\nexport default Checkbox;" }, @@ -10005,8 +9409,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - ], + "chunks": [], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/babel-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/node-label.js", "issuerId": null, "issuerName": "./src/tree-node/node-label.js", @@ -10035,8 +9438,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -10057,15 +9459,9 @@ "loc": "82:53-64" } ], - "usedExports": [ - "default" - ], - "providedExports": [ - "refUpdater", - "default" - ], - "optimizationBailout": [ - ], + "usedExports": ["default"], + "providedExports": ["refUpdater", "default"], + "optimizationBailout": [], "depth": 4, "source": "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; };\n\nvar _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; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nexport var refUpdater = function refUpdater(_ref) {\n var checked = _ref.checked;\n return function (input) {\n if (input) {\n input.checked = checked;\n }\n };\n};\n\nvar RadioButton = function (_PureComponent) {\n _inherits(RadioButton, _PureComponent);\n\n function RadioButton() {\n _classCallCheck(this, RadioButton);\n\n return _possibleConstructorReturn(this, (RadioButton.__proto__ || Object.getPrototypeOf(RadioButton)).apply(this, arguments));\n }\n\n _createClass(RadioButton, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n name = _props.name,\n checked = _props.checked,\n onChange = _props.onChange,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n rest = _objectWithoutProperties(_props, ['name', 'checked', 'onChange', 'disabled', 'readOnly']);\n\n var isDisabled = disabled || readOnly;\n\n return React.createElement('input', _extends({\n type: 'radio',\n name: name,\n ref: refUpdater({ checked: checked }),\n onChange: onChange,\n disabled: isDisabled\n }, rest));\n }\n }]);\n\n return RadioButton;\n}(PureComponent);\n\nRadioButton.propTypes = {\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\n\nexport default RadioButton;" } @@ -10082,9 +9478,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.css", "issuerId": 10, "issuerName": "./src/index.css", @@ -10103,8 +9497,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 10, @@ -10115,9 +9508,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 2 }, { @@ -10130,9 +9521,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.css", "issuerId": 8, "issuerName": "./src/tags/index.css", @@ -10156,8 +9545,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 8, @@ -10168,9 +9556,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 3 }, { @@ -10183,9 +9569,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tag/index.css", "issuerId": 7, "issuerName": "./src/tag/index.css", @@ -10214,8 +9598,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 7, @@ -10226,9 +9609,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 4 }, { @@ -10241,9 +9622,7 @@ "built": false, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.css", "issuerId": 9, "issuerName": "./src/tree-node/index.css", @@ -10272,8 +9651,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 9, @@ -10284,52 +9662,34 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 4 } ], "filteredModules": 0, "children": [ { - "errors": [ - ], - "warnings": [ - ], + "errors": [], + "warnings": [], "publicPath": "", "outputPath": "/Users/ice/Work/upwork/react-dropdown-tree-select/dist", - "assetsByChunkName": { - }, - "assets": [ - ], + "assetsByChunkName": {}, + "assets": [], "filteredAssets": 0, "entrypoints": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "namedChunkGroups": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "chunks": [ @@ -10339,21 +9699,13 @@ "initial": true, "entry": true, "size": 3688, - "names": [ - "mini-css-extract-plugin" - ], - "files": [ - "*" - ], + "names": ["mini-css-extract-plugin"], + "files": ["*"], "hash": "ae28f8e835c0c11edb0b", - "siblings": [ - ], - "parents": [ - ], - "children": [ - ], - "childrenByOrder": { - }, + "siblings": [], + "parents": [], + "children": [], + "childrenByOrder": {}, "modules": [ { "id": 0, @@ -10366,9 +9718,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -10376,8 +9726,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -10391,9 +9740,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".hide:not(.match-in-children){display:none}.react-dropdown-tree-select .dropdown{position:relative;display:table}.react-dropdown-tree-select .dropdown .dropdown-trigger{padding:4px;line-height:20px;max-height:200px;display:inline-block;overflow:auto;border:1px solid #b9b9b9}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow{cursor:pointer}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.bottom:after{content:\\\"\\\\25BC\\\";vertical-align:middle;color:#3c3c3c;margin-right:2px}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.top:after{content:\\\"\\\\25B2\\\";vertical-align:middle;color:#3c3c3c;margin-right:2px}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.disabled{cursor:not-allowed}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.disabled.bottom:after{color:#b9b9b9}.react-dropdown-tree-select .dropdown .dropdown-content{position:absolute;padding:4px;z-index:1;background:#fff;border-top:1px solid rgba(0,0,0,.05);-webkit-box-shadow:0 5px 8px rgba(0,0,0,.15);box-shadow:0 5px 8px rgba(0,0,0,.15)}.react-dropdown-tree-select .dropdown .dropdown-content .search{width:100%;border:none;border-bottom:1px solid #ccc;outline:none}.react-dropdown-tree-select .dropdown .dropdown-content ul{margin:0;padding:0}\", \"\"]);\n\n// exports\n" }, @@ -10408,9 +9755,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/index.css", @@ -10424,8 +9769,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -10439,9 +9783,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } @@ -10454,8 +9796,7 @@ "moduleName": "", "loc": "mini-css-extract-plugin", "request": "!!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.css", - "reasons": [ - ] + "reasons": [] } ] } @@ -10472,9 +9813,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -10482,8 +9821,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -10497,9 +9835,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".hide:not(.match-in-children){display:none}.react-dropdown-tree-select .dropdown{position:relative;display:table}.react-dropdown-tree-select .dropdown .dropdown-trigger{padding:4px;line-height:20px;max-height:200px;display:inline-block;overflow:auto;border:1px solid #b9b9b9}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow{cursor:pointer}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.bottom:after{content:\\\"\\\\25BC\\\";vertical-align:middle;color:#3c3c3c;margin-right:2px}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.top:after{content:\\\"\\\\25B2\\\";vertical-align:middle;color:#3c3c3c;margin-right:2px}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.disabled{cursor:not-allowed}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.disabled.bottom:after{color:#b9b9b9}.react-dropdown-tree-select .dropdown .dropdown-content{position:absolute;padding:4px;z-index:1;background:#fff;border-top:1px solid rgba(0,0,0,.05);-webkit-box-shadow:0 5px 8px rgba(0,0,0,.15);box-shadow:0 5px 8px rgba(0,0,0,.15)}.react-dropdown-tree-select .dropdown .dropdown-content .search{width:100%;border:none;border-bottom:1px solid #ccc;outline:none}.react-dropdown-tree-select .dropdown .dropdown-content ul{margin:0;padding:0}\", \"\"]);\n\n// exports\n" }, @@ -10514,9 +9850,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/index.css", @@ -10530,8 +9864,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -10545,56 +9878,37 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } ], "filteredModules": 0, - "children": [ - ], + "children": [], "name": "mini-css-extract-plugin node_modules/css-loader/index.js??ref--5-1!node_modules/postcss-loader/lib/index.js!src/index.css" }, { - "errors": [ - ], - "warnings": [ - ], + "errors": [], + "warnings": [], "publicPath": "", "outputPath": "/Users/ice/Work/upwork/react-dropdown-tree-select/dist", - "assetsByChunkName": { - }, - "assets": [ - ], + "assetsByChunkName": {}, + "assets": [], "filteredAssets": 0, "entrypoints": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "namedChunkGroups": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "chunks": [ @@ -10604,21 +9918,13 @@ "initial": true, "entry": true, "size": 2821, - "names": [ - "mini-css-extract-plugin" - ], - "files": [ - "*" - ], + "names": ["mini-css-extract-plugin"], + "files": ["*"], "hash": "e6ebe245cb09367c365f", - "siblings": [ - ], - "parents": [ - ], - "children": [ - ], - "childrenByOrder": { - }, + "siblings": [], + "parents": [], + "children": [], + "childrenByOrder": {}, "modules": [ { "id": 0, @@ -10631,9 +9937,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -10641,8 +9945,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -10656,9 +9959,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tag{background-color:#f4f4f4;border:1px solid #e9e9e9;padding:2px 0 2px 2px;border-radius:2px;display:inline-block}.tag:focus-within{background-color:#e9e9e9;border-color:#a0a0a0}.tag-remove{color:#a0a0a0;font-size:75%;line-height:100%;cursor:pointer;background-color:transparent;border:none;outline:none}.tag-remove.disabled,.tag-remove.readOnly{cursor:not-allowed}.tag-remove:focus{color:#3c3c3c}\", \"\"]);\n\n// exports\n" }, @@ -10673,9 +9974,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tag/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/tag/index.css", @@ -10689,8 +9988,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -10704,9 +10002,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } @@ -10719,8 +10015,7 @@ "moduleName": "", "loc": "mini-css-extract-plugin", "request": "!!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tag/index.css", - "reasons": [ - ] + "reasons": [] } ] } @@ -10737,9 +10032,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -10747,8 +10040,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -10762,9 +10054,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tag{background-color:#f4f4f4;border:1px solid #e9e9e9;padding:2px 0 2px 2px;border-radius:2px;display:inline-block}.tag:focus-within{background-color:#e9e9e9;border-color:#a0a0a0}.tag-remove{color:#a0a0a0;font-size:75%;line-height:100%;cursor:pointer;background-color:transparent;border:none;outline:none}.tag-remove.disabled,.tag-remove.readOnly{cursor:not-allowed}.tag-remove:focus{color:#3c3c3c}\", \"\"]);\n\n// exports\n" }, @@ -10779,9 +10069,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tag/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/tag/index.css", @@ -10795,8 +10083,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -10810,56 +10097,37 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } ], "filteredModules": 0, - "children": [ - ], + "children": [], "name": "mini-css-extract-plugin node_modules/css-loader/index.js??ref--5-1!node_modules/postcss-loader/lib/index.js!src/tag/index.css" }, { - "errors": [ - ], - "warnings": [ - ], + "errors": [], + "warnings": [], "publicPath": "", "outputPath": "/Users/ice/Work/upwork/react-dropdown-tree-select/dist", - "assetsByChunkName": { - }, - "assets": [ - ], + "assetsByChunkName": {}, + "assets": [], "filteredAssets": 0, "entrypoints": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "namedChunkGroups": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "chunks": [ @@ -10869,21 +10137,13 @@ "initial": true, "entry": true, "size": 2661, - "names": [ - "mini-css-extract-plugin" - ], - "files": [ - "*" - ], + "names": ["mini-css-extract-plugin"], + "files": ["*"], "hash": "635a111e5ffba00d8df0", - "siblings": [ - ], - "parents": [ - ], - "children": [ - ], - "childrenByOrder": { - }, + "siblings": [], + "parents": [], + "children": [], + "childrenByOrder": {}, "modules": [ { "id": 0, @@ -10896,9 +10156,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -10906,8 +10164,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -10921,9 +10178,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".node>label{cursor:pointer;margin-left:2px}.tag-list{display:inline;padding:0;margin:0}.tag-item{display:inline-block;margin:4px}.tag-item .search{border:none;border-bottom:1px solid #ccc;outline:none}.tag-item:last-child{margin-right:4px}\", \"\"]);\n\n// exports\n" }, @@ -10938,9 +10193,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/tags/index.css", @@ -10954,8 +10207,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -10969,9 +10221,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } @@ -10984,8 +10234,7 @@ "moduleName": "", "loc": "mini-css-extract-plugin", "request": "!!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.css", - "reasons": [ - ] + "reasons": [] } ] } @@ -11002,9 +10251,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -11012,8 +10259,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -11027,9 +10273,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".node>label{cursor:pointer;margin-left:2px}.tag-list{display:inline;padding:0;margin:0}.tag-item{display:inline-block;margin:4px}.tag-item .search{border:none;border-bottom:1px solid #ccc;outline:none}.tag-item:last-child{margin-right:4px}\", \"\"]);\n\n// exports\n" }, @@ -11044,9 +10288,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tags/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/tags/index.css", @@ -11060,8 +10302,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -11075,56 +10316,37 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } ], "filteredModules": 0, - "children": [ - ], + "children": [], "name": "mini-css-extract-plugin node_modules/css-loader/index.js??ref--5-1!node_modules/postcss-loader/lib/index.js!src/tags/index.css" }, { - "errors": [ - ], - "warnings": [ - ], + "errors": [], + "warnings": [], "publicPath": "", "outputPath": "/Users/ice/Work/upwork/react-dropdown-tree-select/dist", - "assetsByChunkName": { - }, - "assets": [ - ], + "assetsByChunkName": {}, + "assets": [], "filteredAssets": 0, "entrypoints": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "namedChunkGroups": { "mini-css-extract-plugin": { - "chunks": [ - 0 - ], - "assets": [ - "*" - ], - "children": { - }, - "childAssets": { - } + "chunks": [0], + "assets": ["*"], + "children": {}, + "childAssets": {} } }, "chunks": [ @@ -11134,21 +10356,13 @@ "initial": true, "entry": true, "size": 2975, - "names": [ - "mini-css-extract-plugin" - ], - "files": [ - "*" - ], + "names": ["mini-css-extract-plugin"], + "files": ["*"], "hash": "1d481e5e120c49a159f5", - "siblings": [ - ], - "parents": [ - ], - "children": [ - ], - "childrenByOrder": { - }, + "siblings": [], + "parents": [], + "children": [], + "childrenByOrder": {}, "modules": [ { "id": 0, @@ -11161,9 +10375,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -11171,8 +10383,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -11186,9 +10397,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".node{list-style:none;white-space:nowrap;padding:4px}.node.leaf.collapsed{display:none}.node.disabled>*{color:gray;cursor:not-allowed}.node.match-in-children.hide .node-label{opacity:.5}.node.focused{background-color:#f4f4f4}.toggle{white-space:pre;margin-right:4px;cursor:pointer}.toggle:after{content:\\\" \\\"}.toggle.collapsed:after{content:\\\"+\\\"}.toggle.expanded:after{content:\\\"-\\\"}.searchModeOn .toggle{display:none}.checkbox-item,.radio-item{vertical-align:middle;margin:0 4px 0 0}.checkbox-item.simple-select,.radio-item.simple-select{display:none}\", \"\"]);\n\n// exports\n" }, @@ -11203,9 +10412,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/tree-node/index.css", @@ -11219,8 +10426,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -11234,9 +10440,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } @@ -11249,8 +10453,7 @@ "moduleName": "", "loc": "mini-css-extract-plugin", "request": "!!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.css", - "reasons": [ - ] + "reasons": [] } ] } @@ -11267,9 +10470,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": null, "issuerId": null, "issuerName": null, @@ -11277,8 +10478,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": null, @@ -11292,9 +10492,7 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 0, "source": "exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".node{list-style:none;white-space:nowrap;padding:4px}.node.leaf.collapsed{display:none}.node.disabled>*{color:gray;cursor:not-allowed}.node.match-in-children.hide .node-label{opacity:.5}.node.focused{background-color:#f4f4f4}.toggle{white-space:pre;margin-right:4px;cursor:pointer}.toggle:after{content:\\\" \\\"}.toggle.collapsed:after{content:\\\"+\\\"}.toggle.expanded:after{content:\\\"-\\\"}.searchModeOn .toggle{display:none}.checkbox-item,.radio-item{vertical-align:middle;margin:0 4px 0 0}.checkbox-item.simple-select,.radio-item.simple-select{display:none}\", \"\"]);\n\n// exports\n" }, @@ -11309,9 +10507,7 @@ "built": true, "optional": false, "prefetched": false, - "chunks": [ - 0 - ], + "chunks": [0], "issuer": "/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/css-loader/index.js??ref--5-1!/Users/ice/Work/upwork/react-dropdown-tree-select/node_modules/postcss-loader/lib/index.js!/Users/ice/Work/upwork/react-dropdown-tree-select/src/tree-node/index.css", "issuerId": 0, "issuerName": "./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/lib!./src/tree-node/index.css", @@ -11325,8 +10521,7 @@ "failed": false, "errors": 0, "warnings": 0, - "assets": [ - ], + "assets": [], "reasons": [ { "moduleId": 0, @@ -11340,17 +10535,14 @@ ], "usedExports": true, "providedExports": null, - "optimizationBailout": [ - "ModuleConcatenation bailout: Module is not an ECMAScript module" - ], + "optimizationBailout": ["ModuleConcatenation bailout: Module is not an ECMAScript module"], "depth": 1, "source": "/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n" } ], "filteredModules": 0, - "children": [ - ], + "children": [], "name": "mini-css-extract-plugin node_modules/css-loader/index.js??ref--5-1!node_modules/postcss-loader/lib/index.js!src/tree-node/index.css" } ] -} \ No newline at end of file +} diff --git a/src/index.js b/src/index.js index 10a0d3d5..86949c79 100644 --- a/src/index.js +++ b/src/index.js @@ -332,7 +332,8 @@ class DropdownTreeSelect extends Component { tags={tags} onTagRemove={this.onTagRemove} onReorderList={this.onReorderList} - sortable={sortable} + newType={this.props.newType} + sortable {...commonProps} > {!inlineSearchInput && searchInput} diff --git a/src/tags/index.js b/src/tags/index.js index 4e9b93eb..904a31d5 100644 --- a/src/tags/index.js +++ b/src/tags/index.js @@ -34,13 +34,24 @@ class Tags extends PureComponent { readOnly: PropTypes.bool, sortable: PropTypes.bool, onReorderList: PropTypes.func, + newType: PropTypes.array, disabled: PropTypes.bool, texts: PropTypes.object, children: PropTypes.node, } render() { - const { tags, onTagRemove, texts = {}, disabled, readOnly, sortable = false, onReorderList, children } = this.props + const { + tags, + onTagRemove, + texts = {}, + disabled, + readOnly, + sortable = false, + onReorderList, + newType, + children, + } = this.props const lastItem = children || {texts.placeholder || 'Choose...'} return ( @@ -48,7 +59,10 @@ class Tags extends PureComponent { {!sortable ? ( getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove) ) : ( - onReorderList(newList)}> + onReorderList(newList)} + > {getTags(tags, onTagRemove, readOnly, disabled, texts.labelRemove)} )}