Socket
Socket
Sign inDemoInstall

@limble/limble-tree

Package Overview
Dependencies
Maintainers
2
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@limble/limble-tree - npm Package Compare versions

Comparing version 0.11.7 to 0.11.8

2

bundles/limble-limble-tree.umd.min.js

@@ -15,3 +15,3 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common")):"function"==typeof define&&define.amd?define("@limble/limble-tree",["exports","@angular/core","rxjs","rxjs/operators","@angular/common"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).limble=e.limble||{},e.limble["limble-tree"]={}),e.ng.core,e.rxjs,e.rxjs.operators,e.ng.common)}(this,(function(e,t,n,r,o){"use strict";

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */Object.create;function i(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function a(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function s(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(a(arguments[t]));return e}Object.create;function l(e,t){var n,r;if(e.length!==t.length)return!1;try{for(var o=i(e.entries()),s=o.next();!s.done;s=o.next()){var d=a(s.value,2),c=d[0],h=d[1],p=t[c];if(h instanceof Array&&p instanceof Array){if(!l(h,p))return!1}else if(h!==p)return!1}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return!0}function d(e,t){return void 0!==e&&(!0===e.allowNesting||"function"==typeof e.allowNesting&&void 0!==t&&!0===e.allowNesting(t))}var c=function(){function e(e,t){this.parentCoordinates=e,this.insertIndex=t}return e.prototype.getFullInsertCoordinates=function(){return s(this.parentCoordinates,[this.insertIndex])},e.prototype.setParentCoordinates=function(e){this.parentCoordinates=e},e.prototype.setInsertIndex=function(e){this.insertIndex=e},e}(),h=function(){function e(e,t){this.location=new c(e,t),this.rendered=!1,this.visible=!1,this.active=!1,this.commChannel=new n.Subject}return e.dropZoneLocationsAreEqual=function(e,t){return l(e.getFullInsertCoordinates(),t.getFullInsertCoordinates())},e.prototype.isRendered=function(e){return void 0===e&&(e=void 0),void 0!==e&&(this.rendered=e,void 0!==this.commChannel&&this.commChannel.next("checkRendered"),!1===this.rendered&&this.isVisible(!1)),this.rendered},e.prototype.isVisible=function(e){return void 0===e&&(e=void 0),void 0!==e&&(this.visible=e,void 0!==this.commChannel&&this.commChannel.next("checkVisible"),!1===this.visible&&this.isActive(!1)),this.visible},e.prototype.isActive=function(e){return void 0===e&&(e=void 0),void 0!==e&&(this.active=e,void 0!==this.commChannel&&this.commChannel.next("checkActive")),this.active},e.prototype.getLocation=function(){return this.location},e.prototype.getFamily=function(){return this.family},e.prototype.setFamily=function(e){this.family=e},e.prototype.getCommChannel=function(){return this.commChannel},e.prototype.getFullInsertCoordinates=function(){return this.location.getFullInsertCoordinates()},e.prototype.setHost=function(e){return this.host=e,this.host},e.prototype.getHost=function(){return this.host},e}(),p=function(){function e(){this.state="idle",this.state$=new n.BehaviorSubject(this.state)}return e.prototype.dragging=function(e,t){this._tempData={branch:e,parentContainer:t},this.state="dragging",this.state$.next(this.state)},e.prototype.droppable=function(){if("dragging"!==this.state)throw new Error("Can only call `droppable` when state is `dragging`");this.state="droppable",this.state$.next(this.state)},e.prototype.notDroppable=function(){if("droppable"!==this.state)throw new Error("Can only call `notDroppable` when state is `droppable`");this.state="dragging",this.state$.next(this.state)},e.prototype.capture=function(){var e;if("droppable"!==this.state)throw new Error("Can only move to `captured` state from `droppable` state");return this.state="captured",this.state$.next(this.state),null===(e=this._tempData)||void 0===e?void 0:e.branch},e.prototype.release=function(){this._tempData=void 0,this.state="idle",this.state$.next(this.state)},e.prototype.getData=function(){return this._tempData},e.prototype.getState=function(){return this.state},e}();p.ɵfac=function(e){return new(e||p)},p.ɵprov=t.ɵɵdefineInjectable({token:p,factory:p.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(p,[{type:t.Injectable}],(function(){return[]}),null);var u=function(){function e(){this.beingBuilt=0,this.isReady=!1,this.stable$=new n.BehaviorSubject(this.treeIsStable())}return e.prototype.constructing=function(){this.beingBuilt++,this.emit()},e.prototype.doneConstructing=function(){this.beingBuilt--,this.emit()},e.prototype.treeIsStable=function(){return!0===this.isReady&&0===this.beingBuilt},e.prototype.ready=function(e){this.isReady=e},e.prototype.emit=function(){this.stable$.next(this.treeIsStable())},e}();function v(e,t){var n=e.getFullInsertCoordinates(),r=t.getFullInsertCoordinates();return n.length>r.length?-1:n.length<r.length?1:0}u.ɵfac=function(e){return new(e||u)},u.ɵprov=t.ɵɵdefineInjectable({token:u,factory:u.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(u,[{type:t.Injectable}],(function(){return[]}),null);var f=function(){function e(e,t){var o=this;this.dragStateService=e,this.dropZoneArchive=new Set,this.dropZoneInventory=[],this.dropZoneFamilies=[],this.visibleFamily=null,this.activeDropZone=null,this.tempFamilies=[],this.setActiveDropZone(null);var i=!1,a=t.stable$.pipe(r.tap((function(e){i=e})),r.filter((function(e){return!0===e})));this.update$=new n.Subject,this.update$.pipe(r.debounce((function(){return!0===i?n.EMPTY:a}))).subscribe((function(){setTimeout((function(){o.updateDropZones()}))}))}return e.prototype.addDropZone=function(e){this.dropZoneArchive.add(e)},e.prototype.clearVisibleZones=function(){var e,t;if(null!==this.visibleFamily){try{for(var n=i(this.visibleFamily.members),r=n.next();!r.done;r=n.next()){r.value.isVisible(!1)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.visibleFamily=null}this.setActiveDropZone(null)},e.prototype.getActiveDropZone=function(){return this.activeDropZone},e.prototype.getDropZone=function(e){var t=s(e);t.pop();var n=e[e.length-1],r=new c(t,n);return this.dropZoneInventory.find((function(e){return h.dropZoneLocationsAreEqual(e,r)}))},e.prototype.init=function(e,t){this.tree=e,this.treeOptions=t,this.update()},e.prototype.removeDropZone=function(e){this.dropZoneArchive.delete(e)},e.prototype.reset=function(){this.clearVisibleZones(),this.dropZoneFamilies.length=0,this.dropZoneInventory.length=0},e.prototype.restart=function(){this.reset(),this.dropZoneArchive.clear()},e.prototype.restoreFamilies=function(){var e,t,n,r;if(2===this.tempFamilies.length){this.dropZoneFamilies.pop(),this.dropZoneFamilies.push(this.tempFamilies[0]);try{for(var o=i(this.tempFamilies[0].members),a=o.next();!a.done;a=o.next()){a.value.setFamily(this.tempFamilies[0])}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}if(null!==this.tempFamilies[1]){this.dropZoneFamilies.push(this.tempFamilies[1]);try{for(var s=i(this.tempFamilies[1].members),l=s.next();!l.done;l=s.next()){l.value.setFamily(this.tempFamilies[1])}}catch(e){n={error:e}}finally{try{l&&!l.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}}this.tempFamilies=[]}},e.prototype.showDropZoneFamily=function(e,t){var n,r,o,a,l,d;if(void 0===t&&(t={joinFamilies:!1,activateLowestInsteadOfFounder:!1}),null===this.activeDropZone||!h.dropZoneLocationsAreEqual(this.activeDropZone,e)){null===this.visibleFamily&&null===this.activeDropZone||this.clearVisibleZones();var p=this.dropZoneInventory.find((function(t){return h.dropZoneLocationsAreEqual(t,e)}));if(void 0===p)throw new Error("Could not find drop zone to show. location: "+JSON.stringify(e.getLocation()));var u=p.getFamily();if(!0===t.joinFamilies){var f=e.getLocation(),g=new c(s(f.parentCoordinates),f.insertIndex+1),y=this.dropZoneInventory.find((function(e){return h.dropZoneLocationsAreEqual(e,g)}));if(void 0===y)throw new Error("Could not find drop zone to show");var m=y.getFamily();if(void 0===u||void 0===m)throw new Error("No family");var b={founder:u.founder,members:s(u.members)};this.showDropZone(u.founder,!0);try{for(var w=i(u.members.sort(v)),Z=w.next();!Z.done;Z=w.next()){(M=Z.value).setFamily(b),M!==u.founder&&(null===this.activeDropZone?this.showDropZone(M,!0):this.showDropZone(M))}}catch(e){n={error:e}}finally{try{Z&&!Z.done&&(r=w.return)&&r.call(w)}finally{if(n)throw n.error}}try{for(var C=i(m.members),D=C.next();!D.done;D=C.next()){(M=D.value).setFamily(b),M.getLocation().parentCoordinates.length<y.getLocation().parentCoordinates.length&&(b.members.push(M),this.showDropZone(M))}}catch(e){o={error:e}}finally{try{D&&!D.done&&(a=C.return)&&a.call(C)}finally{if(o)throw o.error}}this.tempFamilies=[u,m];var S=this.dropZoneFamilies.indexOf(u);this.dropZoneFamilies.splice(S,1);var I=this.dropZoneFamilies.indexOf(m);this.dropZoneFamilies.splice(I,1),this.dropZoneFamilies.push(b),this.visibleFamily=b}else{if(void 0===u)throw new Error("No family");if(this.visibleFamily=u,this.showDropZone(u.founder,!0),u.members.length>1)try{for(var x=i(u.members.sort(v)),E=x.next();!E.done;E=x.next()){var M;(M=E.value)!==u.founder&&(null===this.activeDropZone?this.showDropZone(M,!0):this.showDropZone(M))}}catch(e){l={error:e}}finally{try{E&&!E.done&&(d=x.return)&&d.call(x)}finally{if(l)throw l.error}}}if(!0===t.activateLowestInsteadOfFounder&&this.visibleFamily.members.length>1){var F=s(this.visibleFamily.members).sort(v).pop();if(void 0===F)throw new Error("Could not get lowest member");this.swapActiveDropZone(F)}}},e.prototype.swapActiveDropZone=function(e){if(null===this.visibleFamily)throw new Error("No visible family available for swapping");if(-1===this.visibleFamily.members.findIndex((function(t){return t===e})))throw new Error("failed to swap active drop zone");this.setActiveDropZone(e)},e.prototype.update=function(){this.update$.next(null)},e.prototype.assignFamilies=function(){var e,t,n,r,o,a,d=s(this.dropZoneInventory),c=d.filter((function(e){var t=e.getLocation();return 0===t.insertIndex&&t.parentCoordinates.length>0})).sort((function(e,t){for(var n,r,o,i,a=e.getFullInsertCoordinates(),s=t.getFullInsertCoordinates(),l=Math.max(a.length,s.length),d=0;d<l;d++){if((null!==(n=a[d])&&void 0!==n?n:-1)>(null!==(r=s[d])&&void 0!==r?r:-1))return-1;if((null!==(o=a[d])&&void 0!==o?o:-1)<(null!==(i=s[d])&&void 0!==i?i:-1))return 1}return 0})),h=function(e){if(!d.includes(e))return"continue";var t={founder:e,members:[]};e.setFamily(t);for(var n=s(e.getFullInsertCoordinates());n.length>0;){var r=d.findIndex((function(e){return l(e.getFullInsertCoordinates(),n)}));if(-1!==r){var o=d.splice(r,1)[0];t.members.push(o),o.setFamily(t)}n.pop(),n[n.length-1]++}p.dropZoneFamilies.push(t)},p=this;try{for(var u=i(c),v=u.next();!v.done;v=u.next()){h(y=v.value)}}catch(t){e={error:t}}finally{try{v&&!v.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}try{for(var f=i(d.filter((function(e){return 1===e.getFullInsertCoordinates().length}))),g=f.next();!g.done;g=f.next()){var y,m={founder:y=g.value,members:[y]};y.setFamily(m),this.dropZoneFamilies.push(m),d.splice(d.indexOf(y),1)}}catch(e){n={error:e}}finally{try{g&&!g.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}if(0!==d.length){var b="";try{for(var w=i(d),Z=w.next();!Z.done;Z=w.next()){var C=Z.value;b+=JSON.stringify(C.getLocation())+", "}}catch(e){o={error:e}}finally{try{Z&&!Z.done&&(a=w.return)&&a.call(w)}finally{if(o)throw o.error}}throw b=b.slice(0,b.length-2),new Error("Some zones were not assigned to a family. The orphan zones have the following locations: "+b)}},e.prototype.buildInventory=function(){var e,t,n=[];try{for(var r=i(this.dropZoneArchive),o=r.next();!o.done;o=r.next()){var a=o.value,s=a.getFullInsertCoordinates().join(",");n.includes(s)?a.isRendered(!1):(this.dropZoneInventory.push(a),n.push(s),a.isRendered(!0))}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},e.prototype.setActiveDropZone=function(e){null!==this.activeDropZone&&this.activeDropZone.isActive(!1),this.activeDropZone=e,null!==this.activeDropZone&&"droppable"!==this.dragStateService.getState()?this.dragStateService.droppable():null===this.activeDropZone&&"droppable"===this.dragStateService.getState()&&this.dragStateService.notDroppable(),null!==this.activeDropZone&&this.activeDropZone.isActive(!0)},e.prototype.showDropZone=function(e,t){if(void 0===t&&(t=!1),void 0===this.tree)throw new Error("DropZoneService not initialized");if(!this.zoneIsAllowed(e))return!1;if(void 0===this.tree.findByCoordinates(e.getLocation().parentCoordinates))throw new Error("Bad family member");return e.isVisible(!0),!0===t&&this.setActiveDropZone(e),!0},e.prototype.updateDropZones=function(){this.reset(),this.buildInventory(),this.assignFamilies()},e.prototype.zoneIsAllowed=function(e){if(void 0===this.treeOptions||void 0===this.tree)throw new Error("dropZoneService not initialized");var t=this.dragStateService.getData();if(void 0===t)throw new Error("Can't get dragged node");var n=this.tree.findByCoordinates(e.getLocation().parentCoordinates);if(void 0===n)throw new Error("Could not get drop zone parent");var r=e.getLocation().insertIndex;if(void 0===r)throw new Error("Could not get drop zone index");var o=t.branch;return!!this.treeOptions.allowDrop(o.data,n.data,r)},e}();f.ɵfac=function(e){return new(e||f)(t.ɵɵinject(p),t.ɵɵinject(u))},f.ɵprov=t.ɵɵdefineInjectable({token:f,factory:f.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(f,[{type:t.Injectable}],(function(){return[{type:p},{type:u}]}),null);var g=function(){function e(e){this.data=e,this.children=[],this.parent=null}return e.prototype.isRoot=function(){return null===this.parent},e.prototype.getParent=function(){return this.parent},e.prototype.setParent=function(e){this.parent=e},e.prototype.findByCoordinates=function(e){var t,n,r=this;try{for(var o=i(e.values()),a=o.next();!a.done;a=o.next()){var s=a.value;if(void 0===(r=r.getChild(s)))return}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e.prototype.getCoordinates=function(){for(var e=[],t=this;null!==t.parent;){var n=t.getIndex();if(null==n)throw new Error("Could not get cursor index");e.unshift(n),t=t.parent}return e},e.prototype.getChild=function(e){return this.children[e]},e.prototype.getChildren=function(){return this.children},e.prototype.clearChildren=function(){var e,t;try{for(var n=i(this.children),r=n.next();!r.done;r=n.next()){r.value.setParent(null)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.children.length=0},e.prototype.getIndex=function(){var e=this;if(null===this.parent)return null;var t=this.parent.children.findIndex((function(t){return t===e}));return-1!==t?t:void 0},e.prototype.getDescendant=function(e){var t,n,r=this;try{for(var o=i(e),a=o.next();!a.done;a=o.next()){var s=a.value;if(void 0===(r=r.children[s]))return}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e.prototype.findDescendant=function(e){var t,n;if(!0===e(this.data))return this;if(this.children.length>0)try{for(var r=i(this.children),o=r.next();!o.done;o=r.next()){var a=o.value.findDescendant(e);if(void 0!==a)return a}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}},e.prototype.getAncestors=function(){for(var e=[],t=this;null!==t.parent;)e.push(t.parent),t=t.parent;return e},e.prototype.appendChild=function(e){return null!==e.getParent()&&e.remove(),e.setParent(this),this.children.push(e),e},e.prototype.insertChild=function(e,t){var n=this.children.indexOf(e);return-1===n?(null!==e.getParent()&&e.remove(),e.setParent(this),this.children.splice(t,0,e)):t>n?(this.children.splice(t,0,e),this.removeChild(n),e.setParent(this)):(e.remove(),this.children.splice(t,0,e),e.setParent(this)),e},e.prototype.removeChild=function(e){var t=this.children.splice(e,1)[0];return t.setParent(null),t},e.prototype.remove=function(){var e=this.getIndex();if(null===this.parent||null==e)throw new Error("can't remove root");return this.parent.removeChild(e)},e.prototype.copy=function(){var e=this.copyHelper();return e.setParent(null),e},e.prototype.copyHelper=function(){var t,n,r=new e(this.data);try{for(var o=i(this.children),a=o.next();!a.done;a=o.next()){var s=a.value;r.appendChild(s.copyHelper()).parent=r}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e}(),y=["children"];function m(e,n){if(1&e&&t.ɵɵelement(0,"drop-zone",3),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("dropZone",r.dropZoneInside)}}function b(e,t){}var w=function(){function e(e,t,n,r,o){var i;this.treeService=e,this.changeDetectorRef=t,this.dropZoneService=n,this.treeConstructionStatus=r,this.ngZone=o,this.treeConstructionStatus.constructing(),this.indent=null===(i=this.treeService.treeOptions)||void 0===i?void 0:i.indent,this.renderDropZoneInside=!1}return e.prototype.ngOnInit=function(){var e=this;this.addDropZoneInside(),this.ngZone.runOutsideAngular((function(){if(void 0===e.dropZoneInside)throw new Error("drop zone inside is not defined");e.dropZoneInside.getCommChannel().pipe(r.filter((function(e){return"checkRendered"===e}))).subscribe((function(){if(void 0===e.dropZoneInside||void 0===e.branch)throw new Error("Zones not registered");d(e.treeService.treeOptions,e.branch.data)&&(e.renderDropZoneInside=e.dropZoneInside.isRendered())}))}))},e.prototype.ngAfterViewInit=function(){this.reRender(),this.setDropZoneHost(),this.treeConstructionStatus.doneConstructing(),this.changeDetectorRef.detectChanges()},e.prototype.ngOnDestroy=function(){void 0!==this.dropZoneInside&&this.dropZoneService.removeDropZone(this.dropZoneInside),this.treeService.cleanupSignal$.next(!0)},e.prototype.addDropZoneInside=function(){if(void 0===this.branch)throw new Error("failed to register drop zone inside");this.dropZoneInside=new h(s(this.branch.getCoordinates()),0),this.dropZoneService.addDropZone(this.dropZoneInside)},e.prototype.reRender=function(){if(void 0===this.children||void 0===this.branch)throw new Error("Failed to render limble tree branch");this.treeService.renderBranch(this.children,this.branch)},e.prototype.setDropZoneHost=function(){if(void 0===this.children||void 0===this.dropZoneInside)throw new Error("Failed to add drop zone host");this.dropZoneInside.setHost(this.children)},e}();w.ɵfac=function(e){return new(e||w)(t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(t.ChangeDetectorRef),t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(u),t.ɵɵdirectiveInject(t.NgZone))},w.ɵcmp=t.ɵɵdefineComponent({type:w,selectors:[["limble-tree-branch"]],viewQuery:function(e,n){if(1&e&&t.ɵɵviewQuery(y,1,t.ViewContainerRef),2&e){var r;t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.children=r.first)}},inputs:{branch:"branch"},decls:5,vars:4,consts:[[3,"dropZone",4,"ngIf"],[1,"limble-child-nodes",3,"hidden"],["children",""],[3,"dropZone"]],template:function(e,n){1&e&&(t.ɵɵelementStart(0,"div"),t.ɵɵtemplate(1,m,1,1,"drop-zone",0),t.ɵɵelementStart(2,"span",1),t.ɵɵtemplate(3,b,0,0,"ng-template",null,2,t.ɵɵtemplateRefExtractor),t.ɵɵelementEnd(),t.ɵɵelementEnd()),2&e&&(t.ɵɵstyleProp("margin-left",n.indent,"px"),t.ɵɵadvance(1),t.ɵɵproperty("ngIf",n.renderDropZoneInside),t.ɵɵadvance(1),t.ɵɵproperty("hidden",n.branch&&n.branch.data.collapsed))},styles:["./limble-tree-branch.component.scss"]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(w,[{type:t.Component,args:[{selector:"limble-tree-branch",templateUrl:"./limble-tree-branch.component.html",styles:["./limble-tree-branch.component.scss"]}]}],(function(){return[{type:R},{type:t.ChangeDetectorRef},{type:f},{type:u},{type:t.NgZone}]}),{branch:[{type:t.Input}],children:[{type:t.ViewChild,args:["children",{read:t.ViewContainerRef}]}]});var Z=function(){function e(e){this.factoryResolver=e,this.factoryResolver=e}return e.prototype.appendComponent=function(e,t,n){void 0===n&&(n=void 0);var r=this.factoryResolver.resolveComponentFactory(e);return t.createComponent(r,n)},e}();function C(e){var t,n,r,o=/(auto|scroll)/,a=function(e,t){return null===e||null===e.parentNode?t:a(e.parentElement,t.concat([e]))},s=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},l=function(e){return o.test(function(e){return s(e,"overflow")+s(e,"overflow-y")+s(e,"overflow-x")}(e))},d=a(e.parentElement,[]);try{for(var c=i(d),h=c.next();!h.done;h=c.next()){var p=h.value;if(l(p))return p}}catch(e){t={error:e}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(t)throw t.error}}return null!==(r=document.scrollingElement)&&void 0!==r?r:document.documentElement}Z.ɵfac=function(e){return new(e||Z)(t.ɵɵinject(t.ComponentFactoryResolver))},Z.ɵprov=t.ɵɵdefineInjectable({token:Z,factory:Z.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(Z,[{type:t.Injectable}],(function(){return[{type:t.ComponentFactoryResolver}]}),null);var D=function(){function e(e){var t=this;this.ngZone=e,this.ngZone.runOutsideAngular((function(){t.globalDrag$=n.fromEvent(document,"drag")})),this.scrolling=!1}return e.prototype.addScrolling=function(){var e=this;this.ngZone.runOutsideAngular((function(){if(void 0===e.globalDragSubscription){if(void 0===e.globalDrag$)throw new Error("Could not get observable");var t,n,o,i,a,s,l,d,c;e.globalDragSubscription=e.globalDrag$.pipe(r.throttleTime(25),r.filter((function(e){if(!e.target)return!1;d=C(e.target),t=d.clientHeight;var r,l=d.clientWidth;if("fixed"===window.getComputedStyle(d).getPropertyValue("position").toLowerCase())r=e.clientX,c=e.clientY;else{var h=d.getBoundingClientRect(),p=C(d);r=e.clientX-(h.left+p.scrollLeft),c=e.clientY-(h.top+p.scrollTop)}return!(r<0||r>l||c<0||c>t)&&(n=Math.max(.1*t,100),s=c>(i=t-n),(a=c<(o=n))||s)}))).subscribe((function(){if(null!==d){var r,h=d.scrollHeight-t,p=d.scrollTop;if(a&&p>0){r=p-75*((o-c)/n)}else{if(!s||!(p<h))return;r=p+75*((c-i)/n)}(r=Math.max(0,Math.min(h,r)))!==p&&(d.scrollTo({top:r}),e.scrolling=!0,clearTimeout(l),l=setTimeout((function(){e.scrolling=!1}),100))}}))}}))},e.prototype.removeScrolling=function(){void 0!==this.globalDragSubscription&&this.globalDragSubscription.unsubscribe()},e}();D.ɵfac=function(e){return new(e||D)(t.ɵɵinject(t.NgZone))},D.ɵprov=t.ɵɵdefineInjectable({token:D,factory:D.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(D,[{type:t.Injectable}],(function(){return[{type:t.NgZone}]}),null);var S=["nodeHost"],I=["draggableDiv"],x=["nodeHostContainer"],E=["innerBranch"];function M(e,n){if(1&e&&t.ɵɵelement(0,"drop-zone",7),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("dropZone",r.dropZoneAbove)}}function F(e,t){}function A(e,n){if(1&e&&t.ɵɵelement(0,"limble-tree-branch",8,9),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("branch",r.branch)}}function O(e,n){if(1&e&&t.ɵɵelement(0,"drop-zone",7),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("dropZone",r.dropZoneBelow)}}var j=function(){function e(e,t,n,o,i,a,s,l){var d=this;this.componentCreatorService=e,this.changeDetectorRef=t,this.dragStateService=n,this.dropZoneService=o,this.treeService=i,this.globalEventsService=a,this.ngZone=s,this.treeConstructionStatus=l,this.treeConstructionStatus.constructing(),void 0!==this.treeService.treeOptions&&!0!==this.treeService.treeOptions.listMode?this.renderInnerBranch=!0:this.renderInnerBranch=!1,this.renderDropZoneBelow=!1,this.renderDropZoneAbove=!1,this.treeChangeSubscription=this.treeService.changes$.pipe(r.skip(1)).subscribe((function(){d.treeChangeHandler()}))}return e.prototype.treeChangeHandler=function(){void 0===this.branch||void 0===this.currentBranchCoordinates||l(this.branch.getCoordinates(),this.currentBranchCoordinates)||this.updateDropZones()},e.prototype.ngOnInit=function(){var e,t,o,i=this;if(!1!==(null===(e=this.treeService.treeOptions)||void 0===e?void 0:e.allowDragging)){var a=null===(t=this.branch)||void 0===t?void 0:t.getParent();if(null!==(null==a?void 0:a.data)){var s=null==a?void 0:a.data;if(!d(this.treeService.treeOptions,s))return void(this.renderInnerBranch=!1)}this.registerDropZones(),this.currentBranchCoordinates=null===(o=this.branch)||void 0===o?void 0:o.getCoordinates(),this.ngZone.runOutsideAngular((function(){if(void 0===i.dropZoneAbove||void 0===i.dropZoneBelow)throw new Error("Zones not registered");n.merge(i.dropZoneAbove.getCommChannel(),i.dropZoneBelow.getCommChannel()).pipe(r.filter((function(e){return"checkRendered"===e}))).subscribe((function(){if(void 0===i.dropZoneAbove||void 0===i.dropZoneBelow||void 0===i.branch)throw new Error("Zones not registered");i.renderDropZoneAbove=i.dropZoneAbove.isRendered(),i.renderDropZoneBelow=i.dropZoneBelow.isRendered()}))}))}},e.prototype.ngAfterViewInit=function(){this.renderNode(),this.setDropZoneHosts(),this.checkForHandle(),this.treeConstructionStatus.doneConstructing(),this.changeDetectorRef.detectChanges()},e.prototype.ngOnDestroy=function(){this.treeChangeSubscription.unsubscribe(),void 0!==this.dropZoneAbove&&this.dropZoneService.removeDropZone(this.dropZoneAbove),void 0!==this.dropZoneBelow&&this.dropZoneService.removeDropZone(this.dropZoneBelow),this.treeService.cleanupSignal$.next(!0)},e.prototype.dragstartHandler=function(e){var t,o=this;if(e.stopPropagation(),null===e.dataTransfer||void 0===this.branch||void 0===this.parentHost)throw new Error("failed to run dragstartHandler");var i=e.target;if("LIMBLE-TREE-NODE"===(null===(t=i.parentElement)||void 0===t?void 0:t.tagName)){e.dataTransfer.effectAllowed="move",this.dragStateService.dragging(this.branch,this.parentHost);var a=i.closest("limble-tree-root");if(null===a)throw new Error("could not get root of tree");this.ngZone.runOutsideAngular((function(){setTimeout((function(){var e,t;i.classList.add("dragging"),1===(null===(e=o.treeService.treeData)||void 0===e?void 0:e.length)&&1===(null===(t=o.branch)||void 0===t?void 0:t.getCoordinates().length)&&o.treeService.placeholder$.next(!0)}));var e=n.fromEvent(a,"dragover").pipe(r.first()).subscribe((function(e){if(e.stopPropagation(),void 0===o.branch)throw new Error("Could not show surrounding drop zones");var t,n=o.branch.getParent(),r=!0;null!==(null==n?void 0:n.data)&&(t=null==n?void 0:n.data,r=d(o.treeService.treeOptions,t)),void 0!==o.dropZoneAbove&&r&&o.dropZoneService.showDropZoneFamily(o.dropZoneAbove,{joinFamilies:!0})}));setTimeout((function(){e.closed||e.unsubscribe()}),500)}))}else e.preventDefault()},e.prototype.dragendHandler=function(e){var t,n;if(null==e||e.stopPropagation(),void 0===this.draggableDiv)throw new Error("could not get draggable div");if(this.draggableDiv.nativeElement.classList.remove("dragging"),"captured"===this.dragStateService.getState()){if(!1===this.treeService.captured){if(void 0===this.branch)throw new Error("could not get branch in dragendHandler");this.treeService.cleanupSignal$.next(!0),this.treeService.captured=!1}this.dragStateService.release()}else this.dragStateService.release(),this.dropZoneService.clearVisibleZones(),this.dropZoneService.restoreFamilies(),1===(null===(t=this.treeService.treeData)||void 0===t?void 0:t.length)&&1===(null===(n=this.branch)||void 0===n?void 0:n.getCoordinates().length)&&this.treeService.placeholder$.next(!1)},e.prototype.dragoverHandler=function(e){var t,n;if(!0!==this.globalEventsService.scrolling){if(void 0===this.branch)throw new Error("Can't get current branch during dragover event");var r=this.dragStateService.getData();if(void 0!==r){var o=r.branch;if(o!==this.branch&&!this.branch.getAncestors().includes(o)){var i,a,s=e.currentTarget;a=void 0===(null===(t=this.innerBranch)||void 0===t?void 0:t.dropZoneInside)?i=s.offsetHeight/2-6:2*(i=s.offsetHeight/3-3);var l,c=this.branch.getParent(),p=!0;null!==(null==c?void 0:c.data)&&(l=null==c?void 0:c.data,p=d(this.treeService.treeOptions,l));var u=this.dropZoneService.getActiveDropZone();if(e.offsetY<i&&void 0!==this.dropZoneAbove&&(null===u||!h.dropZoneLocationsAreEqual(u,this.dropZoneAbove))&&p){if(null==this.branch.getIndex())throw new Error("can't get branch index");this.dropZoneService.showDropZoneFamily(this.dropZoneAbove,{activateLowestInsteadOfFounder:!0})}else if(e.offsetY<a&&void 0!==(null===(n=this.innerBranch)||void 0===n?void 0:n.dropZoneInside)&&(null===u||!h.dropZoneLocationsAreEqual(u,this.innerBranch.dropZoneInside)))this.dropZoneService.showDropZoneFamily(this.innerBranch.dropZoneInside);else if(e.offsetY>=a&&void 0!==this.dropZoneBelow&&(null===u||!h.dropZoneLocationsAreEqual(u,this.dropZoneBelow))&&0===this.branch.getChildren().length&&p){if(null==this.branch.getIndex())throw new Error("can't get branch index");this.dropZoneService.showDropZoneFamily(this.dropZoneBelow)}}}}},e.prototype.renderNode=function(){var e;if(void 0===this.nodeHost||void 0===this.branch)throw new Error("Failed to render tree node");var t=this.branch.data.component;if(void 0===t&&(t=null===(e=this.treeService.treeOptions)||void 0===e?void 0:e.defaultComponent),void 0===t)throw new Error("limbleTree requires a component to render");var n=this.componentCreatorService.appendComponent(t.class,this.nodeHost);for(var r in n.instance.nodeData=this.branch.data,t.bindings)n.instance[r]=t.bindings[r]},e.prototype.registerDropZones=function(){this.addDropZoneAbove(),this.addDropZoneBelow()},e.prototype.addDropZoneAbove=function(){var e;if(void 0===this.branch)throw new Error("failed to register drop zone above");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1];this.dropZoneAbove=new h(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[]),r),this.dropZoneService.addDropZone(this.dropZoneAbove)},e.prototype.addDropZoneBelow=function(){var e;if(void 0===this.branch)throw new Error("failed to register drop zone below");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1];this.dropZoneBelow=new h(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[]),r+1),this.dropZoneService.addDropZone(this.dropZoneBelow)},e.prototype.updateDropZones=function(){var e;this.currentBranchCoordinates=null===(e=this.branch)||void 0===e?void 0:e.getCoordinates(),this.updateDropZoneAbove(),this.updateDropZoneBelow(),this.updateDropZoneInside(),this.setDropZoneHosts()},e.prototype.updateDropZoneAbove=function(){var e;if(void 0===this.branch||void 0===this.dropZoneAbove)throw new Error("failed to update drop zone above");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1],o=this.dropZoneAbove.getLocation();o.setParentCoordinates(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[])),o.setInsertIndex(r)},e.prototype.updateDropZoneBelow=function(){var e;if(void 0===this.branch||void 0===this.dropZoneBelow)throw new Error("failed to update drop zone below");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1],o=this.dropZoneBelow.getLocation();o.setParentCoordinates(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[])),o.setInsertIndex(r+1)},e.prototype.updateDropZoneInside=function(){var e;if(void 0!==(null===(e=this.innerBranch)||void 0===e?void 0:e.dropZoneInside)){if(void 0===this.branch)throw new Error("failed to update drop zone inside");this.innerBranch.dropZoneInside.getLocation().setParentCoordinates(s(this.branch.getCoordinates()))}},e.prototype.setDropZoneHosts=function(){void 0!==this.dropZoneAbove&&void 0!==this.dropZoneBelow&&(this.dropZoneAbove.setHost(this.parentHost),this.dropZoneBelow.setHost(this.parentHost))},e.prototype.checkForHandle=function(){var e,t=this;if(void 0!==this.nodeHostContainer&&void 0!==this.draggableDiv){var n,o,i=this.nodeHostContainer.nativeElement.querySelector(".limble-tree-handle"),a=this.draggableDiv.nativeElement;n=this.treeService.treeOptions,o=null===(e=this.branch)||void 0===e?void 0:e.data,void 0===n||!0!==n.allowDragging&&("function"!=typeof n.allowDragging||void 0===o||!0!==n.allowDragging(o))?a.setAttribute("draggable","false"):null===i?a.setAttribute("draggable","true"):i.addEventListener("mousedown",(function(){a.setAttribute("draggable","true");var e=t.dragStateService.state$.pipe(r.filter((function(e){return"dragging"===e})),r.first());t.dragStateService.state$.pipe(r.skipUntil(e),r.filter((function(e){return"idle"===e})),r.first()).subscribe((function(){a.setAttribute("draggable","false")}))}))}},e}();j.ɵfac=function(e){return new(e||j)(t.ɵɵdirectiveInject(Z),t.ɵɵdirectiveInject(t.ChangeDetectorRef),t.ɵɵdirectiveInject(p),t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(D),t.ɵɵdirectiveInject(t.NgZone),t.ɵɵdirectiveInject(u))},j.ɵcmp=t.ɵɵdefineComponent({type:j,selectors:[["limble-tree-node"]],viewQuery:function(e,n){if(1&e&&(t.ɵɵviewQuery(S,1,t.ViewContainerRef),t.ɵɵviewQuery(I,1,t.ElementRef),t.ɵɵviewQuery(x,1,t.ElementRef),t.ɵɵviewQuery(E,1,w)),2&e){var r=void 0;t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.nodeHost=r.first),t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.draggableDiv=r.first),t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.nodeHostContainer=r.first),t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.innerBranch=r.first)}},inputs:{branch:"branch",parentHost:"parentHost"},decls:9,vars:4,consts:[[3,"dropZone",4,"ngIf"],[1,"limble-parent-container",3,"dragstart","dragend"],["draggableDiv",""],[3,"dragoverEventThrottle","dragoverNoChangeDetect"],["nodeHostContainer",""],["nodeHost",""],[3,"branch",4,"ngIf"],[3,"dropZone"],[3,"branch"],["innerBranch",""]],template:function(e,n){1&e&&(t.ɵɵtemplate(0,M,1,1,"drop-zone",0),t.ɵɵelementStart(1,"div",1,2),t.ɵɵlistener("dragstart",(function(e){return n.dragstartHandler(e)}))("dragend",(function(e){return n.dragendHandler(e)})),t.ɵɵelementStart(3,"div",3,4),t.ɵɵlistener("dragoverNoChangeDetect",(function(e){return n.dragoverHandler(e)})),t.ɵɵtemplate(5,F,0,0,"ng-template",null,5,t.ɵɵtemplateRefExtractor),t.ɵɵelementEnd(),t.ɵɵtemplate(7,A,2,1,"limble-tree-branch",6),t.ɵɵelementEnd(),t.ɵɵtemplate(8,O,1,1,"drop-zone",0)),2&e&&(t.ɵɵproperty("ngIf",!0===n.renderDropZoneAbove),t.ɵɵadvance(3),t.ɵɵproperty("dragoverEventThrottle",10),t.ɵɵadvance(4),t.ɵɵproperty("ngIf",void 0!==n.branch&&!0===n.renderInnerBranch),t.ɵɵadvance(1),t.ɵɵproperty("ngIf",!0===n.renderDropZoneBelow))},styles:[".dragging[_ngcontent-%COMP%]{position:absolute;transition:transform .01s;transform:translateX(-9999px)}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(j,[{type:t.Component,args:[{selector:"limble-tree-node",templateUrl:"./limble-tree-node.component.html",styleUrls:["./limble-tree-node.component.scss"]}]}],(function(){return[{type:Z},{type:t.ChangeDetectorRef},{type:p},{type:f},{type:R},{type:D},{type:t.NgZone},{type:u}]}),{branch:[{type:t.Input}],nodeHost:[{type:t.ViewChild,args:["nodeHost",{read:t.ViewContainerRef}]}],draggableDiv:[{type:t.ViewChild,args:["draggableDiv",{read:t.ElementRef}]}],nodeHostContainer:[{type:t.ViewChild,args:["nodeHostContainer",{read:t.ElementRef}]}],parentHost:[{type:t.Input}],innerBranch:[{type:t.ViewChild,args:["innerBranch",{read:w}]}]});var R=function(){function e(e,t,o,i){var a=this;this.componentCreatorService=e,this.dropZoneService=t,this.dragStateService=o,this.treeConstructionStatus=i,this.changes$=new n.Subject,this.drops$=new n.Subject,this.treeModel=new g(null),this.placeholder=!1,this.captured=!1,this.cleanupSignal$=new n.Subject;var s=!1,l=!1,d=this.treeConstructionStatus.stable$.pipe(r.tap((function(e){l=e})),r.filter((function(e){return!0===e})));this.cleanupSignal$.pipe(r.tap((function(e){s=e})),r.debounce((function(){return!0===l?n.EMPTY:d})),r.debounceTime(5)).subscribe((function(){a.cleanup(s),s=!1})),this.placeholder$=new n.BehaviorSubject(!1),this.placeholder$.subscribe((function(e){a.placeholder=e}))}return e.prototype.drop=function(e,t){var n,r=e.getParent();if(null===r)throw new Error("can't drop root of tree");var o,i,a=e.getIndex();if(null==a)throw new Error("Cannot move the hidden root node");if(!0===this.placeholder?(o=[],i=0):i=(o=s(t)).pop(),void 0===i)throw new Error("target coordinates are empty");var d=this.treeModel.getDescendant(o);if(void 0===d)throw new Error("could not get to target");var c=this.dropZoneService.getDropZone(t),h=null==c?void 0:c.getLocation().insertIndex,p=null==c?void 0:c.getHost(),u=null===(n=this.dragStateService.getData())||void 0===n?void 0:n.parentContainer;if(!0===this.placeholder&&this.placeholder$.next(!1),d.insertChild(e,i),void 0===p||void 0===u||void 0===h)return console.warn("Could not perform a precise update. Re-rendering the entire tree instead"),this.render(),void this.changes$.next(null);var v=u.length,f=this.componentCreatorService.appendComponent(j,p,i);f.instance.branch=e,f.instance.parentHost=p,h<a&&u.length>v&&l(r.getCoordinates(),o)?u.remove(a+1):u.remove(a),this.rebuildTreeData(),this.drops$.next({target:e.data,oldParent:r.data,oldIndex:a,newParent:d.data,newIndex:i}),this.cleanupSignal$.next(!1)},e.prototype.init=function(e,t,n,r,o){if(this.host=e,this.originalData=t,this.treeOptions=this.processOptions(n,r,o),!0===this.treeOptions.listMode){var i=this.treeOptions.itemsPerPage*(this.treeOptions.page-1);isNaN(i)&&(i=0);var a=i+this.treeOptions.itemsPerPage;this.treeData=this.originalData.slice(i,a)}else this.treeData=s(this.originalData);this.render()},e.prototype.cleanup=function(e){var t;void 0===e&&(e=!1),e&&this.rebuildTreeData(),0===(null===(t=this.treeData)||void 0===t?void 0:t.length)?this.render():(this.changes$.next(null),this.dropZoneService.update())},e.prototype.render=function(){var e,t,n,r;if(void 0===this.host||void 0===this.treeData||void 0===this.treeOptions)throw new Error("TreeModel not initialized");if(this.treeConstructionStatus.ready(!1),this.host.clear(),this.dropZoneService.restart(),this.placeholder$.next(!1),this.treeModel=new g(null),0===this.treeData.length)this.placeholder$.next(!0);else{try{for(var o=i(this.treeData),a=o.next();!a.done;a=o.next()){var s=a.value,l=new g(s);this.treeModel.appendChild(l)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}try{for(var d=i(this.treeModel.getChildren()),c=d.next();!c.done;c=d.next()){l=c.value;var h=this.componentCreatorService.appendComponent(j,this.host);h.instance.branch=l,h.instance.parentHost=this.host}}catch(e){n={error:e}}finally{try{c&&!c.done&&(r=d.return)&&r.call(d)}finally{if(n)throw n.error}}}this.treeConstructionStatus.ready(!0),this.changes$.next(null),this.dropZoneService.init(this.treeModel,this.treeOptions)},e.prototype.renderBranch=function(e,t){var n,r,o,a;if(void 0===this.treeModel)throw new Error("TreeModel not initialized");e.clear(),t.clearChildren();try{for(var s=i(null!==(a=null===(o=t.data)||void 0===o?void 0:o.nodes)&&void 0!==a?a:[]),l=s.next();!l.done;l=s.next()){var d=l.value,c=new g(d);t.appendChild(c);var h=this.componentCreatorService.appendComponent(j,e);h.instance.branch=c,h.instance.parentHost=e}}catch(e){n={error:e}}finally{try{l&&!l.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}},e.prototype.processOptions=function(e,t,n){var r,o,i,a,s;return void 0===e&&(e={}),void 0===t&&(t=1/0),void 0===n&&(n=1),!0===e.listMode&&void 0!==e.allowNesting&&!1!==e.allowNesting&&console.warn("The value of `allowNesting` will be ignored; it must be false when `listMode` is true"),{defaultComponent:e.defaultComponent,indent:null!==(r=e.indent)&&void 0!==r?r:45,allowNesting:!0!==e.listMode&&(null===(o=e.allowNesting)||void 0===o||o),allowDragging:null===(i=e.allowDragging)||void 0===i||i,allowDrop:null!==(a=e.allowDrop)&&void 0!==a?a:function(){return!0},listMode:null!==(s=e.listMode)&&void 0!==s&&s,itemsPerPage:e.listMode?t:void 0,page:e.listMode?n:void 0}},e.prototype.rebuildTreeData=function(){var e,t,n,r;if(void 0===this.originalData||void 0===this.treeData||void 0===this.treeOptions||void 0===this.host)throw new Error("Tree data not initialized");this.treeData=[];try{for(var o=i(this.treeModel.getChildren()),a=o.next();!a.done;a=o.next()){var l=a.value;this.treeData.push(this.rebuildBranch(l))}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}if(!0===this.treeOptions.listMode&&this.treeOptions.itemsPerPage<1/0){var d=this.treeOptions.itemsPerPage,c=d*(this.treeOptions.page-1);if((n=this.originalData).splice.apply(n,s([c,d],this.treeData)),this.treeData.length!==d){var h=!1;if(this.treeData.length<d&&c+d<=this.originalData.length){for(var p=d-this.treeData.length,u=d-1;u<d+p-1;u++){l=new g(this.originalData[c+u]);this.treeModel.appendChild(l);var v=this.componentCreatorService.appendComponent(j,this.host);v.instance.branch=l,v.instance.parentHost=this.host}h=!0}else if(this.treeData.length>d){for(u=d+(p=this.treeData.length-d)-1;u>=d;u--)this.treeModel.removeChild(u),this.host.remove(u);h=!0}if(!0===h){var f=c+d;this.treeData=this.originalData.slice(c,f)}}}else this.originalData.length=0,(r=this.originalData).push.apply(r,s(this.treeData))},e.prototype.rebuildBranch=function(e){var t,n,r=e.data;r.nodes=[];try{for(var o=i(e.getChildren()),a=o.next();!a.done;a=o.next()){var s=a.value;r.nodes.push(this.rebuildBranch(s))}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e}();R.ɵfac=function(e){return new(e||R)(t.ɵɵinject(Z),t.ɵɵinject(f),t.ɵɵinject(p),t.ɵɵinject(u))},R.ɵprov=t.ɵɵdefineInjectable({token:R,factory:R.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(R,[{type:t.Injectable}],(function(){return[{type:Z},{type:f},{type:p},{type:u}]}),null);var H=function(){function e(e,n){this.ngZone=e,this.el=n,this.dragoverNoChangeDetect=new t.EventEmitter,this.dragoverEventThrottle=0}return e.prototype.ngOnInit=function(){var e=this;this.ngZone.runOutsideAngular((function(){e.eventSubscription=n.fromEvent(e.el.nativeElement,"dragover").pipe(r.throttleTime(e.dragoverEventThrottle)).subscribe((function(t){e.dragoverNoChangeDetect.emit(t)}))}))},e.prototype.ngOnDestroy=function(){void 0!==this.eventSubscription&&this.eventSubscription.unsubscribe()},e}();H.ɵfac=function(e){return new(e||H)(t.ɵɵdirectiveInject(t.NgZone),t.ɵɵdirectiveInject(t.ElementRef))},H.ɵdir=t.ɵɵdefineDirective({type:H,selectors:[["","dragoverNoChangeDetect",""]],inputs:{dragoverEventThrottle:"dragoverEventThrottle"},outputs:{dragoverNoChangeDetect:"dragoverNoChangeDetect"}}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(H,[{type:t.Directive,args:[{selector:"[dragoverNoChangeDetect]"}]}],(function(){return[{type:t.NgZone},{type:t.ElementRef}]}),{dragoverEventThrottle:[{type:t.Input}],dragoverNoChangeDetect:[{type:t.Output}]});var P=function(){function e(e,n){this.ngZone=e,this.el=n,this.dragleaveNoChangeDetect=new t.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;this.ngZone.runOutsideAngular((function(){e.eventSubscription=n.fromEvent(e.el.nativeElement,"dragleave").subscribe((function(t){e.dragleaveNoChangeDetect.emit(t)}))}))},e.prototype.ngOnDestroy=function(){void 0!==this.eventSubscription&&this.eventSubscription.unsubscribe()},e}();P.ɵfac=function(e){return new(e||P)(t.ɵɵdirectiveInject(t.NgZone),t.ɵɵdirectiveInject(t.ElementRef))},P.ɵdir=t.ɵɵdefineDirective({type:P,selectors:[["","dragleaveNoChangeDetect",""]],outputs:{dragleaveNoChangeDetect:"dragleaveNoChangeDetect"}}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(P,[{type:t.Directive,args:[{selector:"[dragleaveNoChangeDetect]"}]}],(function(){return[{type:t.NgZone},{type:t.ElementRef}]}),{dragleaveNoChangeDetect:[{type:t.Output}]});var N=function(e,t){return{active:e,related:t}};function B(e,n){if(1&e){var r=t.ɵɵgetCurrentView();t.ɵɵelementStart(0,"div",1),t.ɵɵlistener("dragenter",(function(){return t.ɵɵrestoreView(r),t.ɵɵnextContext().dragenterHandler()})),t.ɵɵelement(1,"div",2),t.ɵɵelementEnd()}if(2&e){var o=t.ɵɵnextContext();t.ɵɵadvance(1),t.ɵɵproperty("ngClass",t.ɵɵpureFunction2(1,N,o.active,!o.active))}}var T=function(){function e(e,t){this.dropZoneService=e,this.changeDetectorRef=t,this.visible=!1,this.active=!1}return e.prototype.dragenterHandler=function(){void 0!==this.dropZone&&!0!==this.active&&this.dropZoneService.swapActiveDropZone(this.dropZone)},e.prototype.ngOnInit=function(){var e=this;if(void 0===this.dropZone)throw new Error("No drop zone object at component initialization");this.commSubscription=this.dropZone.getCommChannel().subscribe((function(t){var n,r,o,i;switch(t){case"checkVisible":e.visible=null!==(r=null===(n=e.dropZone)||void 0===n?void 0:n.isVisible())&&void 0!==r&&r;break;case"checkActive":e.active=null!==(i=null===(o=e.dropZone)||void 0===o?void 0:o.isActive())&&void 0!==i&&i;break;case"checkRendered":break;default:throw new Error("unhandled comm message")}e.changeDetectorRef.detectChanges()}))},e.prototype.ngOnDestroy=function(){void 0!==this.commSubscription&&this.commSubscription.unsubscribe()},e}();T.ɵfac=function(e){return new(e||T)(t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(t.ChangeDetectorRef))},T.ɵcmp=t.ɵɵdefineComponent({type:T,selectors:[["drop-zone"]],inputs:{dropZone:"dropZone"},decls:1,vars:1,consts:[["class","dropZoneContainer",3,"dragenter",4,"ngIf"],[1,"dropZoneContainer",3,"dragenter"],[3,"ngClass"]],template:function(e,n){1&e&&t.ɵɵtemplate(0,B,2,4,"div",0),2&e&&t.ɵɵproperty("ngIf",n.visible)},directives:[o.NgIf,o.NgClass],styles:[".active[_ngcontent-%COMP%]{height:105px;border-radius:5px;background:#f0f9ff;border:2px dashed #bed2db}.active[_ngcontent-%COMP%], .related[_ngcontent-%COMP%]{margin:10px 0;width:calc(100% - 20px);box-sizing:border-box}.related[_ngcontent-%COMP%]{height:30px;border-radius:5px;background:#fff6f0;border:1px dashed #dbccbe;opacity:.8}.dropZoneContainer[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(T,[{type:t.Component,args:[{selector:"drop-zone",templateUrl:"./drop-zone.component.html",styleUrls:["./drop-zone.component.scss"],changeDetection:t.ChangeDetectionStrategy.OnPush}]}],(function(){return[{type:f},{type:t.ChangeDetectorRef}]}),{dropZone:[{type:t.Input}]});var $=function(){function e(e,t,n,r){var o=this;this.dropZoneService=e,this.changeDetectorRef=t,this.treeService=n,this.treeConstructionStatus=r,this.treeConstructionStatus.constructing(),this.placeholderSubscription=this.treeService.placeholder$.subscribe((function(e){void 0!==o.dropZone&&(o.dropZoneService.removeDropZone(o.dropZone),!0===e&&(o.dropZoneService.addDropZone(o.dropZone),o.dropZone.setHost(o.treeService.host)))}))}return e.prototype.ngOnInit=function(){this.dropZone=new h([],0),this.dropZoneService.addDropZone(this.dropZone)},e.prototype.ngAfterViewInit=function(){if(void 0===this.dropZone)throw new Error("placeholder drop zone is not defined");this.dropZone.setHost(this.treeService.host),this.treeConstructionStatus.doneConstructing(),this.changeDetectorRef.detectChanges()},e.prototype.dragoverHandler=function(){void 0!==this.dropZone&&this.dropZoneService.showDropZoneFamily(this.dropZone)},e.prototype.ngOnDestroy=function(){if(this.placeholderSubscription.unsubscribe(),void 0===this.dropZone)throw new Error("could not remove placeholder drop zone");this.dropZoneService.removeDropZone(this.dropZone)},e}();$.ɵfac=function(e){return new(e||$)(t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(t.ChangeDetectorRef),t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(u))},$.ɵcmp=t.ɵɵdefineComponent({type:$,selectors:[["limble-tree-placeholder"]],decls:2,vars:1,consts:[[3,"dropZone"],[1,"placeholder",3,"dragoverNoChangeDetect"]],template:function(e,n){1&e&&(t.ɵɵelement(0,"drop-zone",0),t.ɵɵelementStart(1,"div",1),t.ɵɵlistener("dragoverNoChangeDetect",(function(){return n.dragoverHandler()})),t.ɵɵelementEnd()),2&e&&t.ɵɵproperty("dropZone",n.dropZone)},directives:[T,H],styles:[".placeholder[_ngcontent-%COMP%]{width:100%;height:20px}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata($,[{type:t.Component,args:[{selector:"limble-tree-placeholder",templateUrl:"./limble-tree-placeholder.component.html",styleUrls:["./limble-tree-placeholder.component.scss"],changeDetection:t.ChangeDetectionStrategy.OnPush}]}],(function(){return[{type:f},{type:t.ChangeDetectorRef},{type:R},{type:u}]}),null);var z=["host"];function L(e,n){1&e&&t.ɵɵelement(0,"limble-tree-placeholder")}function V(e,t){}var k=function(){function e(e,n,r,o,i){var a=this;this.treeService=e,this.dropZoneService=n,this.dragStateService=r,this.globalEventsService=o,this.changeDetectorRef=i,this.treeChange=new t.EventEmitter,this.treeDrop=new t.EventEmitter,this.changesSubscription=this.treeService.changes$.subscribe((function(){setTimeout((function(){a.treeChange.emit()}))})),this.dropSubscription=this.treeService.drops$.subscribe((function(e){setTimeout((function(){a.treeDrop.emit(e)}))})),this.placeholder=!1,this.treeService.placeholder$.subscribe((function(e){a.placeholder=e,t.NgZone.isInAngularZone()||a.changeDetectorRef.detectChanges()}))}return e.prototype.ngAfterViewInit=function(){var e;!0===(null===(e=this.options)||void 0===e?void 0:e.listMode)||void 0===this.itemsPerPage&&void 0===this.page||console.warn("pagination is only allowed in listMode; `itemsPerPage` and `page` inputs will be ignored"),this.update(),this.changeDetectorRef.detectChanges()},e.prototype.ngOnChanges=function(){void 0!==this.host&&void 0!==this.data&&this.update()},e.prototype.update=function(){if(void 0===this.host)throw new Error("Failed to render limble tree. Failure occurred at root.");if(void 0===this.data)throw new Error("limbleTree requires a data object");this.treeService.init(this.host,this.data,this.options,this.itemsPerPage,this.page),this.globalEventsService.addScrolling()},e.prototype.dragoverHandler=function(e){null!==e.dataTransfer&&(e.stopPropagation(),e.preventDefault(),e.dataTransfer.dropEffect="move")},e.prototype.dragleaveHandler=function(e){var t=e.currentTarget,n=e.relatedTarget;t instanceof Node&&n instanceof Node&&!1===function(e,t){if(e===t)return!0;for(var n=t.parentNode;n!==document;){if(null===n)return;if(n===e)return!0;n=n.parentNode}return!1}(t,n)&&(this.dropZoneService.clearVisibleZones(),this.changeDetectorRef.detectChanges())},e.prototype.dropHandler=function(e){var t=this;if(e.stopPropagation(),"droppable"===this.dragStateService.getState()){var n=this.dragStateService.capture();if(void 0===n)throw new Error("failed to get current branch in dragendHandler");var o=this.dropZoneService.getActiveDropZone();if(null===o)throw new Error("failed to get active drop zone at drop handler");this.treeService.captured=!0,this.dragStateService.state$.pipe(r.first((function(e){return"idle"===e}))).subscribe((function(){t.treeService.captured=!1})),this.dropZoneService.clearVisibleZones(),this.treeService.drop(n,o.getFullInsertCoordinates())}},e.prototype.ngOnDestroy=function(){this.changesSubscription.unsubscribe(),this.dropSubscription.unsubscribe()},e}();k.ɵfac=function(e){return new(e||k)(t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(p),t.ɵɵdirectiveInject(D),t.ɵɵdirectiveInject(t.ChangeDetectorRef))},k.ɵcmp=t.ɵɵdefineComponent({type:k,selectors:[["limble-tree-root"]],viewQuery:function(e,n){if(1&e&&t.ɵɵviewQuery(z,1,t.ViewContainerRef),2&e){var r;t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.host=r.first)}},inputs:{data:"data",options:"options",itemsPerPage:"itemsPerPage",page:"page"},outputs:{treeChange:"treeChange",treeDrop:"treeDrop"},features:[t.ɵɵProvidersFeature([R,f,u]),t.ɵɵNgOnChangesFeature],decls:4,vars:1,consts:[[3,"dragoverNoChangeDetect","dragleaveNoChangeDetect","drop"],[4,"ngIf"],["host",""]],template:function(e,n){1&e&&(t.ɵɵelementStart(0,"div",0),t.ɵɵlistener("dragoverNoChangeDetect",(function(e){return n.dragoverHandler(e)}))("dragleaveNoChangeDetect",(function(e){return n.dragleaveHandler(e)}))("drop",(function(e){return n.dropHandler(e)})),t.ɵɵtemplate(1,L,1,0,"limble-tree-placeholder",1),t.ɵɵtemplate(2,V,0,0,"ng-template",null,2,t.ɵɵtemplateRefExtractor),t.ɵɵelementEnd()),2&e&&(t.ɵɵadvance(1),t.ɵɵproperty("ngIf",!0===n.placeholder))},directives:[H,P,o.NgIf,$],styles:[""]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(k,[{type:t.Component,args:[{selector:"limble-tree-root",templateUrl:"./limble-tree-root.component.html",styleUrls:["./limble-tree-root.component.scss"],providers:[R,f,u]}]}],(function(){return[{type:R},{type:f},{type:p},{type:D},{type:t.ChangeDetectorRef}]}),{data:[{type:t.Input}],options:[{type:t.Input}],itemsPerPage:[{type:t.Input}],page:[{type:t.Input}],host:[{type:t.ViewChild,args:["host",{read:t.ViewContainerRef}]}],treeChange:[{type:t.Output}],treeDrop:[{type:t.Output}]});var q=function(){};q.ɵfac=function(e){return new(e||q)},q.ɵmod=t.ɵɵdefineNgModule({type:q}),q.ɵinj=t.ɵɵdefineInjector({providers:[Z,p,D],imports:[[o.CommonModule]]}),("undefined"==typeof ngJitMode||ngJitMode)&&t.ɵɵsetNgModuleScope(q,{declarations:[w,T,j,k,$,H,P],imports:[o.CommonModule],exports:[k]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(q,[{type:t.NgModule,args:[{declarations:[w,T,j,k,$,H,P],imports:[o.CommonModule],exports:[k],providers:[Z,p,D]}]}],null,null),t.ɵɵsetComponentScope(w,[o.NgIf,T],[]),t.ɵɵsetComponentScope(j,[o.NgIf,T,H,w],[]),e.LimbleTreeModule=q,e.LimbleTreeRootComponent=k,Object.defineProperty(e,"__esModule",{value:!0})}));
***************************************************************************** */Object.create;function i(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function a(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function s(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(a(arguments[t]));return e}Object.create;function l(e,t){var n,r;if(e.length!==t.length)return!1;try{for(var o=i(e.entries()),s=o.next();!s.done;s=o.next()){var d=a(s.value,2),c=d[0],h=d[1],p=t[c];if(h instanceof Array&&p instanceof Array){if(!l(h,p))return!1}else if(h!==p)return!1}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return!0}function d(e,t){return void 0!==e&&(!0===e.allowNesting||"function"==typeof e.allowNesting&&void 0!==t&&!0===e.allowNesting(t))}var c=function(){function e(e,t){this.parentCoordinates=e,this.insertIndex=t}return e.prototype.getFullInsertCoordinates=function(){return s(this.parentCoordinates,[this.insertIndex])},e.prototype.setParentCoordinates=function(e){this.parentCoordinates=e},e.prototype.setInsertIndex=function(e){this.insertIndex=e},e}(),h=function(){function e(e,t){this.location=new c(e,t),this.rendered=!1,this.visible=!1,this.active=!1,this.commChannel=new n.Subject}return e.dropZoneLocationsAreEqual=function(e,t){return l(e.getFullInsertCoordinates(),t.getFullInsertCoordinates())},e.prototype.isRendered=function(e){return void 0===e&&(e=void 0),void 0!==e&&(this.rendered=e,void 0!==this.commChannel&&this.commChannel.next("checkRendered"),!1===this.rendered&&this.isVisible(!1)),this.rendered},e.prototype.isVisible=function(e){return void 0===e&&(e=void 0),void 0!==e&&(this.visible=e,void 0!==this.commChannel&&this.commChannel.next("checkVisible"),!1===this.visible&&this.isActive(!1)),this.visible},e.prototype.isActive=function(e){return void 0===e&&(e=void 0),void 0!==e&&(this.active=e,void 0!==this.commChannel&&this.commChannel.next("checkActive")),this.active},e.prototype.getLocation=function(){return this.location},e.prototype.getFamily=function(){return this.family},e.prototype.setFamily=function(e){this.family=e},e.prototype.getCommChannel=function(){return this.commChannel},e.prototype.getFullInsertCoordinates=function(){return this.location.getFullInsertCoordinates()},e.prototype.setHost=function(e){return this.host=e,this.host},e.prototype.getHost=function(){return this.host},e}(),p=function(){function e(){this.state="idle",this.state$=new n.BehaviorSubject(this.state)}return e.prototype.dragging=function(e,t){this._tempData={branch:e,parentContainer:t},this.state="dragging",this.state$.next(this.state)},e.prototype.droppable=function(){if("dragging"!==this.state)throw new Error("Can only call `droppable` when state is `dragging`");this.state="droppable",this.state$.next(this.state)},e.prototype.notDroppable=function(){if("droppable"!==this.state)throw new Error("Can only call `notDroppable` when state is `droppable`");this.state="dragging",this.state$.next(this.state)},e.prototype.capture=function(){var e;if("droppable"!==this.state)throw new Error("Can only move to `captured` state from `droppable` state");return this.state="captured",this.state$.next(this.state),null===(e=this._tempData)||void 0===e?void 0:e.branch},e.prototype.release=function(){this._tempData=void 0,this.state="idle",this.state$.next(this.state)},e.prototype.getData=function(){return this._tempData},e.prototype.getState=function(){return this.state},e}();p.ɵfac=function(e){return new(e||p)},p.ɵprov=t.ɵɵdefineInjectable({token:p,factory:p.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(p,[{type:t.Injectable}],(function(){return[]}),null);var u=function(){function e(){this.beingBuilt=0,this.isReady=!1,this.stable$=new n.BehaviorSubject(this.treeIsStable())}return e.prototype.constructing=function(){this.beingBuilt++,this.emit()},e.prototype.doneConstructing=function(){this.beingBuilt--,this.emit()},e.prototype.treeIsStable=function(){return!0===this.isReady&&0===this.beingBuilt},e.prototype.ready=function(e){this.isReady=e},e.prototype.emit=function(){this.stable$.next(this.treeIsStable())},e}();function v(e,t){var n=e.getFullInsertCoordinates(),r=t.getFullInsertCoordinates();return n.length>r.length?-1:n.length<r.length?1:0}u.ɵfac=function(e){return new(e||u)},u.ɵprov=t.ɵɵdefineInjectable({token:u,factory:u.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(u,[{type:t.Injectable}],(function(){return[]}),null);var f=function(){function e(e,t){var o=this;this.dragStateService=e,this.dropZoneArchive=new Set,this.dropZoneInventory=[],this.dropZoneFamilies=[],this.visibleFamily=null,this.activeDropZone=null,this.tempFamilies=[],this.setActiveDropZone(null);var i=!1,a=t.stable$.pipe(r.tap((function(e){i=e})),r.filter((function(e){return!0===e})));this.update$=new n.Subject,this.update$.pipe(r.debounce((function(){return!0===i?n.EMPTY:a}))).subscribe((function(){setTimeout((function(){o.updateDropZones()}))}))}return e.prototype.addDropZone=function(e){this.dropZoneArchive.add(e)},e.prototype.clearVisibleZones=function(){var e,t;if(null!==this.visibleFamily){try{for(var n=i(this.visibleFamily.members),r=n.next();!r.done;r=n.next()){r.value.isVisible(!1)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.visibleFamily=null}this.setActiveDropZone(null)},e.prototype.getActiveDropZone=function(){return this.activeDropZone},e.prototype.getDropZone=function(e){var t=s(e);t.pop();var n=e[e.length-1],r=new c(t,n);return this.dropZoneInventory.find((function(e){return h.dropZoneLocationsAreEqual(e,r)}))},e.prototype.init=function(e,t){this.tree=e,this.treeOptions=t,this.update()},e.prototype.removeDropZone=function(e){this.dropZoneArchive.delete(e)},e.prototype.reset=function(){this.clearVisibleZones(),this.dropZoneFamilies.length=0,this.dropZoneInventory.length=0},e.prototype.restart=function(){this.reset(),this.dropZoneArchive.clear()},e.prototype.restoreFamilies=function(){var e,t,n,r;if(2===this.tempFamilies.length){this.dropZoneFamilies.pop(),this.dropZoneFamilies.push(this.tempFamilies[0]);try{for(var o=i(this.tempFamilies[0].members),a=o.next();!a.done;a=o.next()){a.value.setFamily(this.tempFamilies[0])}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}if(null!==this.tempFamilies[1]){this.dropZoneFamilies.push(this.tempFamilies[1]);try{for(var s=i(this.tempFamilies[1].members),l=s.next();!l.done;l=s.next()){l.value.setFamily(this.tempFamilies[1])}}catch(e){n={error:e}}finally{try{l&&!l.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}}this.tempFamilies=[]}},e.prototype.showDropZoneFamily=function(e,t){var n,r,o,a,l,d;if(void 0===t&&(t={joinFamilies:!1,activateLowestInsteadOfFounder:!1}),null===this.activeDropZone||!h.dropZoneLocationsAreEqual(this.activeDropZone,e)){null===this.visibleFamily&&null===this.activeDropZone||this.clearVisibleZones();var p=this.dropZoneInventory.find((function(t){return h.dropZoneLocationsAreEqual(t,e)}));if(void 0===p)throw new Error("Could not find drop zone to show. location: "+JSON.stringify(e.getLocation()));var u=p.getFamily();if(!0===t.joinFamilies){var f=e.getLocation(),g=new c(s(f.parentCoordinates),f.insertIndex+1),y=this.dropZoneInventory.find((function(e){return h.dropZoneLocationsAreEqual(e,g)}));if(void 0===y)throw new Error("Could not find drop zone to show");var m=y.getFamily();if(void 0===u||void 0===m)throw new Error("No family");var b={founder:u.founder,members:s(u.members)};this.showDropZone(u.founder,!0);try{for(var w=i(u.members.sort(v)),Z=w.next();!Z.done;Z=w.next()){(M=Z.value).setFamily(b),M!==u.founder&&(null===this.activeDropZone?this.showDropZone(M,!0):this.showDropZone(M))}}catch(e){n={error:e}}finally{try{Z&&!Z.done&&(r=w.return)&&r.call(w)}finally{if(n)throw n.error}}try{for(var C=i(m.members),D=C.next();!D.done;D=C.next()){(M=D.value).setFamily(b),M.getLocation().parentCoordinates.length<y.getLocation().parentCoordinates.length&&(b.members.push(M),this.showDropZone(M))}}catch(e){o={error:e}}finally{try{D&&!D.done&&(a=C.return)&&a.call(C)}finally{if(o)throw o.error}}this.tempFamilies=[u,m];var S=this.dropZoneFamilies.indexOf(u);this.dropZoneFamilies.splice(S,1);var I=this.dropZoneFamilies.indexOf(m);this.dropZoneFamilies.splice(I,1),this.dropZoneFamilies.push(b),this.visibleFamily=b}else{if(void 0===u)throw new Error("No family");if(this.visibleFamily=u,this.showDropZone(u.founder,!0),u.members.length>1)try{for(var x=i(u.members.sort(v)),E=x.next();!E.done;E=x.next()){var M;(M=E.value)!==u.founder&&(null===this.activeDropZone?this.showDropZone(M,!0):this.showDropZone(M))}}catch(e){l={error:e}}finally{try{E&&!E.done&&(d=x.return)&&d.call(x)}finally{if(l)throw l.error}}}if(!0===t.activateLowestInsteadOfFounder&&this.visibleFamily.members.length>1){var F=s(this.visibleFamily.members).sort(v).pop();if(void 0===F)throw new Error("Could not get lowest member");this.swapActiveDropZone(F)}}},e.prototype.swapActiveDropZone=function(e){if(null===this.visibleFamily)throw new Error("No visible family available for swapping");if(-1===this.visibleFamily.members.findIndex((function(t){return t===e})))throw new Error("failed to swap active drop zone");this.setActiveDropZone(e)},e.prototype.update=function(){this.update$.next(null)},e.prototype.assignFamilies=function(){var e,t,n,r,o,a,d=s(this.dropZoneInventory),c=d.filter((function(e){var t=e.getLocation();return 0===t.insertIndex&&t.parentCoordinates.length>0})).sort((function(e,t){for(var n,r,o,i,a=e.getFullInsertCoordinates(),s=t.getFullInsertCoordinates(),l=Math.max(a.length,s.length),d=0;d<l;d++){if((null!==(n=a[d])&&void 0!==n?n:-1)>(null!==(r=s[d])&&void 0!==r?r:-1))return-1;if((null!==(o=a[d])&&void 0!==o?o:-1)<(null!==(i=s[d])&&void 0!==i?i:-1))return 1}return 0})),h=function(e){if(!d.includes(e))return"continue";var t={founder:e,members:[]};e.setFamily(t);for(var n=s(e.getFullInsertCoordinates());n.length>0;){var r=d.findIndex((function(e){return l(e.getFullInsertCoordinates(),n)}));if(-1!==r){var o=d.splice(r,1)[0];t.members.push(o),o.setFamily(t)}n.pop(),n[n.length-1]++}p.dropZoneFamilies.push(t)},p=this;try{for(var u=i(c),v=u.next();!v.done;v=u.next()){h(y=v.value)}}catch(t){e={error:t}}finally{try{v&&!v.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}try{for(var f=i(d.filter((function(e){return 1===e.getFullInsertCoordinates().length}))),g=f.next();!g.done;g=f.next()){var y,m={founder:y=g.value,members:[y]};y.setFamily(m),this.dropZoneFamilies.push(m),d.splice(d.indexOf(y),1)}}catch(e){n={error:e}}finally{try{g&&!g.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}if(0!==d.length){var b="";try{for(var w=i(d),Z=w.next();!Z.done;Z=w.next()){var C=Z.value;b+=JSON.stringify(C.getLocation())+", "}}catch(e){o={error:e}}finally{try{Z&&!Z.done&&(a=w.return)&&a.call(w)}finally{if(o)throw o.error}}throw b=b.slice(0,b.length-2),new Error("Some zones were not assigned to a family. The orphan zones have the following locations: "+b)}},e.prototype.buildInventory=function(){var e,t,n=[];try{for(var r=i(this.dropZoneArchive),o=r.next();!o.done;o=r.next()){var a=o.value,s=a.getFullInsertCoordinates().join(",");n.includes(s)?a.isRendered(!1):(this.dropZoneInventory.push(a),n.push(s),a.isRendered(!0))}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},e.prototype.setActiveDropZone=function(e){null!==this.activeDropZone&&this.activeDropZone.isActive(!1),this.activeDropZone=e,null!==this.activeDropZone&&"droppable"!==this.dragStateService.getState()?this.dragStateService.droppable():null===this.activeDropZone&&"droppable"===this.dragStateService.getState()&&this.dragStateService.notDroppable(),null!==this.activeDropZone&&this.activeDropZone.isActive(!0)},e.prototype.showDropZone=function(e,t){if(void 0===t&&(t=!1),void 0===this.tree)throw new Error("DropZoneService not initialized");if(!this.zoneIsAllowed(e))return!1;if(void 0===this.tree.findByCoordinates(e.getLocation().parentCoordinates))throw new Error("Bad family member");return e.isVisible(!0),!0===t&&this.setActiveDropZone(e),!0},e.prototype.updateDropZones=function(){this.reset(),this.buildInventory(),this.assignFamilies()},e.prototype.zoneIsAllowed=function(e){if(void 0===this.treeOptions||void 0===this.tree)throw new Error("dropZoneService not initialized");var t=this.dragStateService.getData();if(void 0===t)throw new Error("Can't get dragged node");var n=this.tree.findByCoordinates(e.getLocation().parentCoordinates);if(void 0===n)throw new Error("Could not get drop zone parent");var r=e.getLocation().insertIndex;if(void 0===r)throw new Error("Could not get drop zone index");var o=t.branch;return!!this.treeOptions.allowDrop(o.data,n.data,r)},e}();f.ɵfac=function(e){return new(e||f)(t.ɵɵinject(p),t.ɵɵinject(u))},f.ɵprov=t.ɵɵdefineInjectable({token:f,factory:f.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(f,[{type:t.Injectable}],(function(){return[{type:p},{type:u}]}),null);var g=function(){function e(e){this.data=e,this.children=[],this.parent=null}return e.prototype.isRoot=function(){return null===this.parent},e.prototype.getParent=function(){return this.parent},e.prototype.setParent=function(e){this.parent=e},e.prototype.findByCoordinates=function(e){var t,n,r=this;try{for(var o=i(e.values()),a=o.next();!a.done;a=o.next()){var s=a.value;if(void 0===(r=r.getChild(s)))return}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e.prototype.getCoordinates=function(){for(var e=[],t=this;null!==t.parent;){var n=t.getIndex();if(null==n)throw new Error("Could not get cursor index");e.unshift(n),t=t.parent}return e},e.prototype.getChild=function(e){return this.children[e]},e.prototype.getChildren=function(){return this.children},e.prototype.clearChildren=function(){var e,t;try{for(var n=i(this.children),r=n.next();!r.done;r=n.next()){r.value.setParent(null)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.children.length=0},e.prototype.getIndex=function(){var e=this;if(null===this.parent)return null;var t=this.parent.children.findIndex((function(t){return t===e}));return-1!==t?t:void 0},e.prototype.getDescendant=function(e){var t,n,r=this;try{for(var o=i(e),a=o.next();!a.done;a=o.next()){var s=a.value;if(void 0===(r=r.children[s]))return}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e.prototype.findDescendant=function(e){var t,n;if(!0===e(this.data))return this;if(this.children.length>0)try{for(var r=i(this.children),o=r.next();!o.done;o=r.next()){var a=o.value.findDescendant(e);if(void 0!==a)return a}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}},e.prototype.getAncestors=function(){for(var e=[],t=this;null!==t.parent;)e.push(t.parent),t=t.parent;return e},e.prototype.appendChild=function(e){return null!==e.getParent()&&e.remove(),e.setParent(this),this.children.push(e),e},e.prototype.insertChild=function(e,t){var n=this.children.indexOf(e);return-1===n?(null!==e.getParent()&&e.remove(),e.setParent(this),this.children.splice(t,0,e)):t>n?(this.children.splice(t,0,e),this.removeChild(n),e.setParent(this)):(e.remove(),this.children.splice(t,0,e),e.setParent(this)),e},e.prototype.removeChild=function(e){var t=this.children.splice(e,1)[0];return t.setParent(null),t},e.prototype.remove=function(){var e=this.getIndex();if(null===this.parent||null==e)throw new Error("can't remove root");return this.parent.removeChild(e)},e.prototype.copy=function(){var e=this.copyHelper();return e.setParent(null),e},e.prototype.copyHelper=function(){var t,n,r=new e(this.data);try{for(var o=i(this.children),a=o.next();!a.done;a=o.next()){var s=a.value;r.appendChild(s.copyHelper()).parent=r}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e}(),y=["children"];function m(e,n){if(1&e&&t.ɵɵelement(0,"drop-zone",3),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("dropZone",r.dropZoneInside)}}function b(e,t){}var w=function(){function e(e,t,n,r,o){var i;this.treeService=e,this.changeDetectorRef=t,this.dropZoneService=n,this.treeConstructionStatus=r,this.ngZone=o,this.treeConstructionStatus.constructing(),this.indent=null===(i=this.treeService.treeOptions)||void 0===i?void 0:i.indent,this.renderDropZoneInside=!1}return e.prototype.ngOnInit=function(){var e=this;this.addDropZoneInside(),this.ngZone.runOutsideAngular((function(){if(void 0===e.dropZoneInside)throw new Error("drop zone inside is not defined");e.dropZoneInside.getCommChannel().pipe(r.filter((function(e){return"checkRendered"===e}))).subscribe((function(){if(void 0===e.dropZoneInside||void 0===e.branch)throw new Error("Zones not registered");d(e.treeService.treeOptions,e.branch.data)&&(e.renderDropZoneInside=e.dropZoneInside.isRendered())}))}))},e.prototype.ngAfterViewInit=function(){this.reRender(),this.setDropZoneHost(),this.treeConstructionStatus.doneConstructing(),this.changeDetectorRef.detectChanges()},e.prototype.ngOnDestroy=function(){void 0!==this.dropZoneInside&&this.dropZoneService.removeDropZone(this.dropZoneInside),this.treeService.cleanupSignal$.next(!0)},e.prototype.addDropZoneInside=function(){if(void 0===this.branch)throw new Error("failed to register drop zone inside");this.dropZoneInside=new h(s(this.branch.getCoordinates()),0),this.dropZoneService.addDropZone(this.dropZoneInside)},e.prototype.reRender=function(){if(void 0===this.children||void 0===this.branch)throw new Error("Failed to render limble tree branch");this.treeService.renderBranch(this.children,this.branch)},e.prototype.setDropZoneHost=function(){if(void 0===this.children||void 0===this.dropZoneInside)throw new Error("Failed to add drop zone host");this.dropZoneInside.setHost(this.children)},e}();w.ɵfac=function(e){return new(e||w)(t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(t.ChangeDetectorRef),t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(u),t.ɵɵdirectiveInject(t.NgZone))},w.ɵcmp=t.ɵɵdefineComponent({type:w,selectors:[["limble-tree-branch"]],viewQuery:function(e,n){if(1&e&&t.ɵɵviewQuery(y,1,t.ViewContainerRef),2&e){var r;t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.children=r.first)}},inputs:{branch:"branch"},decls:5,vars:4,consts:[[3,"dropZone",4,"ngIf"],[1,"limble-child-nodes",3,"hidden"],["children",""],[3,"dropZone"]],template:function(e,n){1&e&&(t.ɵɵelementStart(0,"div"),t.ɵɵtemplate(1,m,1,1,"drop-zone",0),t.ɵɵelementStart(2,"span",1),t.ɵɵtemplate(3,b,0,0,"ng-template",null,2,t.ɵɵtemplateRefExtractor),t.ɵɵelementEnd(),t.ɵɵelementEnd()),2&e&&(t.ɵɵstyleProp("margin-left",n.indent,"px"),t.ɵɵadvance(1),t.ɵɵproperty("ngIf",n.renderDropZoneInside),t.ɵɵadvance(1),t.ɵɵproperty("hidden",n.branch&&n.branch.data.collapsed))},styles:["./limble-tree-branch.component.scss"]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(w,[{type:t.Component,args:[{selector:"limble-tree-branch",templateUrl:"./limble-tree-branch.component.html",styles:["./limble-tree-branch.component.scss"]}]}],(function(){return[{type:R},{type:t.ChangeDetectorRef},{type:f},{type:u},{type:t.NgZone}]}),{branch:[{type:t.Input}],children:[{type:t.ViewChild,args:["children",{read:t.ViewContainerRef}]}]});var Z=function(){function e(e){this.factoryResolver=e,this.factoryResolver=e}return e.prototype.appendComponent=function(e,t,n){void 0===n&&(n=void 0);var r=this.factoryResolver.resolveComponentFactory(e);return t.createComponent(r,n)},e}();function C(e){var t,n,r,o=/(auto|scroll)/,a=function(e,t){return null===e||null===e.parentNode?t:a(e.parentElement,t.concat([e]))},s=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},l=function(e){return o.test(function(e){return s(e,"overflow")+s(e,"overflow-y")+s(e,"overflow-x")}(e))},d=a(e.parentElement,[]);try{for(var c=i(d),h=c.next();!h.done;h=c.next()){var p=h.value;if(l(p))return p}}catch(e){t={error:e}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(t)throw t.error}}return null!==(r=document.scrollingElement)&&void 0!==r?r:document.documentElement}Z.ɵfac=function(e){return new(e||Z)(t.ɵɵinject(t.ComponentFactoryResolver))},Z.ɵprov=t.ɵɵdefineInjectable({token:Z,factory:Z.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(Z,[{type:t.Injectable}],(function(){return[{type:t.ComponentFactoryResolver}]}),null);var D=function(){function e(e){var t=this;this.ngZone=e,this.ngZone.runOutsideAngular((function(){t.globalDrag$=n.fromEvent(document,"drag")})),this.scrolling=!1}return e.prototype.addScrolling=function(){var e=this;this.ngZone.runOutsideAngular((function(){if(void 0===e.globalDragSubscription){if(void 0===e.globalDrag$)throw new Error("Could not get observable");var t,n,o,i,a,s,l,d,c;e.globalDragSubscription=e.globalDrag$.pipe(r.throttleTime(25),r.filter((function(e){if(!e.target)return!1;d=C(e.target),t=d.clientHeight;var r,l=d.clientWidth;if("fixed"===window.getComputedStyle(d).getPropertyValue("position").toLowerCase())r=e.clientX,c=e.clientY;else{var h=d.getBoundingClientRect(),p=C(d);r=e.clientX-(h.left+p.scrollLeft),c=e.clientY-(h.top+p.scrollTop)}return!(r<0||r>l||c<0||c>t)&&(n=Math.max(.1*t,100),s=c>(i=t-n),(a=c<(o=n))||s)}))).subscribe((function(){if(null!==d){var r,h=d.scrollHeight-t,p=d.scrollTop;if(a&&p>0){r=p-75*((o-c)/n)}else{if(!s||!(p<h))return;r=p+75*((c-i)/n)}(r=Math.max(0,Math.min(h,r)))!==p&&(d.scrollTo({top:r}),e.scrolling=!0,clearTimeout(l),l=setTimeout((function(){e.scrolling=!1}),100))}}))}}))},e.prototype.removeScrolling=function(){void 0!==this.globalDragSubscription&&this.globalDragSubscription.unsubscribe()},e}();D.ɵfac=function(e){return new(e||D)(t.ɵɵinject(t.NgZone))},D.ɵprov=t.ɵɵdefineInjectable({token:D,factory:D.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(D,[{type:t.Injectable}],(function(){return[{type:t.NgZone}]}),null);var S=["nodeHost"],I=["draggableDiv"],x=["nodeHostContainer"],E=["innerBranch"];function M(e,n){if(1&e&&t.ɵɵelement(0,"drop-zone",7),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("dropZone",r.dropZoneAbove)}}function F(e,t){}function A(e,n){if(1&e&&t.ɵɵelement(0,"limble-tree-branch",8,9),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("branch",r.branch)}}function j(e,n){if(1&e&&t.ɵɵelement(0,"drop-zone",7),2&e){var r=t.ɵɵnextContext();t.ɵɵproperty("dropZone",r.dropZoneBelow)}}var O=function(){function e(e,t,n,o,i,a,s,l){var d=this;this.componentCreatorService=e,this.changeDetectorRef=t,this.dragStateService=n,this.dropZoneService=o,this.treeService=i,this.globalEventsService=a,this.ngZone=s,this.treeConstructionStatus=l,this.treeConstructionStatus.constructing(),void 0!==this.treeService.treeOptions&&!0!==this.treeService.treeOptions.listMode?this.renderInnerBranch=!0:this.renderInnerBranch=!1,this.renderDropZoneBelow=!1,this.renderDropZoneAbove=!1,this.treeChangeSubscription=this.treeService.changes$.pipe(r.skip(1)).subscribe((function(){d.treeChangeHandler()}))}return e.prototype.treeChangeHandler=function(){void 0===this.branch||void 0===this.currentBranchCoordinates||l(this.branch.getCoordinates(),this.currentBranchCoordinates)||this.updateDropZones()},e.prototype.ngOnInit=function(){var e,t,o,i=this;if(!1!==(null===(e=this.treeService.treeOptions)||void 0===e?void 0:e.allowDragging)){var a=null===(t=this.branch)||void 0===t?void 0:t.getParent();if(null!==(null==a?void 0:a.data)){var s=null==a?void 0:a.data;if(!d(this.treeService.treeOptions,s))return void(this.renderInnerBranch=!1)}this.registerDropZones(),this.currentBranchCoordinates=null===(o=this.branch)||void 0===o?void 0:o.getCoordinates(),this.ngZone.runOutsideAngular((function(){if(void 0===i.dropZoneAbove||void 0===i.dropZoneBelow)throw new Error("Zones not registered");n.merge(i.dropZoneAbove.getCommChannel(),i.dropZoneBelow.getCommChannel()).pipe(r.filter((function(e){return"checkRendered"===e}))).subscribe((function(){if(void 0===i.dropZoneAbove||void 0===i.dropZoneBelow||void 0===i.branch)throw new Error("Zones not registered");i.renderDropZoneAbove=i.dropZoneAbove.isRendered(),i.renderDropZoneBelow=i.dropZoneBelow.isRendered()}))}))}},e.prototype.ngAfterViewInit=function(){this.renderNode(),this.setDropZoneHosts(),this.checkForHandle(),this.treeConstructionStatus.doneConstructing(),this.changeDetectorRef.detectChanges()},e.prototype.ngOnDestroy=function(){this.treeChangeSubscription.unsubscribe(),void 0!==this.dropZoneAbove&&this.dropZoneService.removeDropZone(this.dropZoneAbove),void 0!==this.dropZoneBelow&&this.dropZoneService.removeDropZone(this.dropZoneBelow),this.treeService.cleanupSignal$.next(!0)},e.prototype.dragstartHandler=function(e){var t,o=this;if(e.stopPropagation(),null===e.dataTransfer||void 0===this.branch||void 0===this.parentHost)throw new Error("failed to run dragstartHandler");var i=e.target;if("LIMBLE-TREE-NODE"===(null===(t=i.parentElement)||void 0===t?void 0:t.tagName)){e.dataTransfer.effectAllowed="move",this.dragStateService.dragging(this.branch,this.parentHost);var a=i.closest("limble-tree-root");if(null===a)throw new Error("could not get root of tree");this.ngZone.runOutsideAngular((function(){setTimeout((function(){var e,t;i.classList.add("dragging"),1===(null===(e=o.treeService.treeData)||void 0===e?void 0:e.length)&&1===(null===(t=o.branch)||void 0===t?void 0:t.getCoordinates().length)&&o.treeService.placeholder$.next(!0)}));var e=n.fromEvent(a,"dragover").pipe(r.first()).subscribe((function(e){if(e.stopPropagation(),void 0===o.branch)throw new Error("Could not show surrounding drop zones");var t,n=o.branch.getParent(),r=!0;null!==(null==n?void 0:n.data)&&(t=null==n?void 0:n.data,r=d(o.treeService.treeOptions,t)),void 0!==o.dropZoneAbove&&r&&o.dropZoneService.showDropZoneFamily(o.dropZoneAbove,{joinFamilies:!0})}));setTimeout((function(){e.closed||e.unsubscribe()}),500)}))}else e.preventDefault()},e.prototype.dragendHandler=function(e){var t,n;if(null==e||e.stopPropagation(),void 0===this.draggableDiv)throw new Error("could not get draggable div");if(this.draggableDiv.nativeElement.classList.remove("dragging"),"captured"===this.dragStateService.getState()){if(!1===this.treeService.captured){if(void 0===this.branch)throw new Error("could not get branch in dragendHandler");this.treeService.cleanupSignal$.next(!0),this.treeService.captured=!1}this.dragStateService.release()}else this.dragStateService.release(),this.dropZoneService.clearVisibleZones(),this.dropZoneService.restoreFamilies(),1===(null===(t=this.treeService.treeData)||void 0===t?void 0:t.length)&&1===(null===(n=this.branch)||void 0===n?void 0:n.getCoordinates().length)&&this.treeService.placeholder$.next(!1)},e.prototype.dragoverHandler=function(e){var t,n;if(!0!==this.globalEventsService.scrolling){if(void 0===this.branch)throw new Error("Can't get current branch during dragover event");var r=this.dragStateService.getData();if(void 0!==r){var o=r.branch;if(o!==this.branch&&!this.branch.getAncestors().includes(o)){var i,a,s=e.currentTarget;a=void 0===(null===(t=this.innerBranch)||void 0===t?void 0:t.dropZoneInside)?i=s.offsetHeight/2-6:2*(i=s.offsetHeight/3-3);var l,c=this.branch.getParent(),p=!0;null!==(null==c?void 0:c.data)&&(l=null==c?void 0:c.data,p=d(this.treeService.treeOptions,l));var u=this.dropZoneService.getActiveDropZone();if(e.offsetY<i&&void 0!==this.dropZoneAbove&&(null===u||!h.dropZoneLocationsAreEqual(u,this.dropZoneAbove))&&p){if(null==this.branch.getIndex())throw new Error("can't get branch index");this.dropZoneService.showDropZoneFamily(this.dropZoneAbove,{activateLowestInsteadOfFounder:!0})}else if(e.offsetY<a&&void 0!==(null===(n=this.innerBranch)||void 0===n?void 0:n.dropZoneInside)&&(null===u||!h.dropZoneLocationsAreEqual(u,this.innerBranch.dropZoneInside)))this.dropZoneService.showDropZoneFamily(this.innerBranch.dropZoneInside);else if(e.offsetY>=a&&void 0!==this.dropZoneBelow&&(null===u||!h.dropZoneLocationsAreEqual(u,this.dropZoneBelow))&&0===this.branch.getChildren().length&&p){if(null==this.branch.getIndex())throw new Error("can't get branch index");this.dropZoneService.showDropZoneFamily(this.dropZoneBelow)}}}}},e.prototype.renderNode=function(){var e;if(void 0===this.nodeHost||void 0===this.branch)throw new Error("Failed to render tree node");var t=this.branch.data.component;if(void 0===t&&(t=null===(e=this.treeService.treeOptions)||void 0===e?void 0:e.defaultComponent),void 0===t)throw new Error("limbleTree requires a component to render");var n=this.componentCreatorService.appendComponent(t.class,this.nodeHost);for(var r in n.instance.nodeData=this.branch.data,t.bindings)n.instance[r]=t.bindings[r]},e.prototype.registerDropZones=function(){this.addDropZoneAbove(),this.addDropZoneBelow()},e.prototype.addDropZoneAbove=function(){var e;if(void 0===this.branch)throw new Error("failed to register drop zone above");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1];this.dropZoneAbove=new h(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[]),r),this.dropZoneService.addDropZone(this.dropZoneAbove)},e.prototype.addDropZoneBelow=function(){var e;if(void 0===this.branch)throw new Error("failed to register drop zone below");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1];this.dropZoneBelow=new h(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[]),r+1),this.dropZoneService.addDropZone(this.dropZoneBelow)},e.prototype.updateDropZones=function(){var e;this.currentBranchCoordinates=null===(e=this.branch)||void 0===e?void 0:e.getCoordinates(),this.updateDropZoneAbove(),this.updateDropZoneBelow(),this.updateDropZoneInside(),this.setDropZoneHosts()},e.prototype.updateDropZoneAbove=function(){var e;if(void 0===this.branch||void 0===this.dropZoneAbove)throw new Error("failed to update drop zone above");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1],o=this.dropZoneAbove.getLocation();o.setParentCoordinates(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[])),o.setInsertIndex(r)},e.prototype.updateDropZoneBelow=function(){var e;if(void 0===this.branch||void 0===this.dropZoneBelow)throw new Error("failed to update drop zone below");var t=this.branch.getParent(),n=this.branch.getCoordinates(),r=n[n.length-1],o=this.dropZoneBelow.getLocation();o.setParentCoordinates(s(null!==(e=null==t?void 0:t.getCoordinates())&&void 0!==e?e:[])),o.setInsertIndex(r+1)},e.prototype.updateDropZoneInside=function(){var e;if(void 0!==(null===(e=this.innerBranch)||void 0===e?void 0:e.dropZoneInside)){if(void 0===this.branch)throw new Error("failed to update drop zone inside");this.innerBranch.dropZoneInside.getLocation().setParentCoordinates(s(this.branch.getCoordinates()))}},e.prototype.setDropZoneHosts=function(){void 0!==this.dropZoneAbove&&void 0!==this.dropZoneBelow&&(this.dropZoneAbove.setHost(this.parentHost),this.dropZoneBelow.setHost(this.parentHost))},e.prototype.checkForHandle=function(){var e,t=this;if(void 0!==this.nodeHostContainer&&void 0!==this.draggableDiv){var n,o,i=this.nodeHostContainer.nativeElement.querySelector(".limble-tree-handle"),a=this.draggableDiv.nativeElement;n=this.treeService.treeOptions,o=null===(e=this.branch)||void 0===e?void 0:e.data,void 0===n||!0!==n.allowDragging&&("function"!=typeof n.allowDragging||void 0===o||!0!==n.allowDragging(o))?a.setAttribute("draggable","false"):null===i?a.setAttribute("draggable","true"):i.addEventListener("mousedown",(function(){a.setAttribute("draggable","true");var e=t.dragStateService.state$.pipe(r.filter((function(e){return"dragging"===e})),r.first());t.dragStateService.state$.pipe(r.skipUntil(e),r.filter((function(e){return"idle"===e})),r.first()).subscribe((function(){a.setAttribute("draggable","false")}))}))}},e}();O.ɵfac=function(e){return new(e||O)(t.ɵɵdirectiveInject(Z),t.ɵɵdirectiveInject(t.ChangeDetectorRef),t.ɵɵdirectiveInject(p),t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(D),t.ɵɵdirectiveInject(t.NgZone),t.ɵɵdirectiveInject(u))},O.ɵcmp=t.ɵɵdefineComponent({type:O,selectors:[["limble-tree-node"]],viewQuery:function(e,n){if(1&e&&(t.ɵɵviewQuery(S,1,t.ViewContainerRef),t.ɵɵviewQuery(I,1,t.ElementRef),t.ɵɵviewQuery(x,1,t.ElementRef),t.ɵɵviewQuery(E,1,w)),2&e){var r=void 0;t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.nodeHost=r.first),t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.draggableDiv=r.first),t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.nodeHostContainer=r.first),t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.innerBranch=r.first)}},inputs:{branch:"branch",parentHost:"parentHost"},decls:9,vars:4,consts:[[3,"dropZone",4,"ngIf"],[1,"limble-parent-container",3,"dragstart","dragend"],["draggableDiv",""],[3,"dragoverEventThrottle","dragoverNoChangeDetect"],["nodeHostContainer",""],["nodeHost",""],[3,"branch",4,"ngIf"],[3,"dropZone"],[3,"branch"],["innerBranch",""]],template:function(e,n){1&e&&(t.ɵɵtemplate(0,M,1,1,"drop-zone",0),t.ɵɵelementStart(1,"div",1,2),t.ɵɵlistener("dragstart",(function(e){return n.dragstartHandler(e)}))("dragend",(function(e){return n.dragendHandler(e)})),t.ɵɵelementStart(3,"div",3,4),t.ɵɵlistener("dragoverNoChangeDetect",(function(e){return n.dragoverHandler(e)})),t.ɵɵtemplate(5,F,0,0,"ng-template",null,5,t.ɵɵtemplateRefExtractor),t.ɵɵelementEnd(),t.ɵɵtemplate(7,A,2,1,"limble-tree-branch",6),t.ɵɵelementEnd(),t.ɵɵtemplate(8,j,1,1,"drop-zone",0)),2&e&&(t.ɵɵproperty("ngIf",!0===n.renderDropZoneAbove),t.ɵɵadvance(3),t.ɵɵproperty("dragoverEventThrottle",10),t.ɵɵadvance(4),t.ɵɵproperty("ngIf",void 0!==n.branch&&!0===n.renderInnerBranch),t.ɵɵadvance(1),t.ɵɵproperty("ngIf",!0===n.renderDropZoneBelow))},styles:[".dragging[_ngcontent-%COMP%]{position:absolute;transition:transform .01s;transform:translateX(-9999px)}"]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(O,[{type:t.Component,args:[{selector:"limble-tree-node",templateUrl:"./limble-tree-node.component.html",styleUrls:["./limble-tree-node.component.scss"]}]}],(function(){return[{type:Z},{type:t.ChangeDetectorRef},{type:p},{type:f},{type:R},{type:D},{type:t.NgZone},{type:u}]}),{branch:[{type:t.Input}],nodeHost:[{type:t.ViewChild,args:["nodeHost",{read:t.ViewContainerRef}]}],draggableDiv:[{type:t.ViewChild,args:["draggableDiv",{read:t.ElementRef}]}],nodeHostContainer:[{type:t.ViewChild,args:["nodeHostContainer",{read:t.ElementRef}]}],parentHost:[{type:t.Input}],innerBranch:[{type:t.ViewChild,args:["innerBranch",{read:w}]}]});var R=function(){function e(e,t,o,i){var a=this;this.componentCreatorService=e,this.dropZoneService=t,this.dragStateService=o,this.treeConstructionStatus=i,this.changes$=new n.Subject,this.drops$=new n.Subject,this.treeModel=new g(null),this.placeholder=!1,this.captured=!1,this.cleanupSignal$=new n.Subject;var s=!1,l=!1,d=this.treeConstructionStatus.stable$.pipe(r.tap((function(e){l=e})),r.filter((function(e){return!0===e})));this.cleanupSignal$.pipe(r.tap((function(e){s=e})),r.debounce((function(){return!0===l?n.EMPTY:d})),r.debounceTime(5)).subscribe((function(){a.cleanup(s),s=!1})),this.placeholder$=new n.BehaviorSubject(!1),this.placeholder$.subscribe((function(e){a.placeholder=e}))}return e.prototype.drop=function(e,t){var n,r=e.getParent();if(null===r)throw new Error("can't drop root of tree");var o,i,a=e.getIndex();if(null==a)throw new Error("Cannot move the hidden root node");if(!0===this.placeholder?(o=[],i=0):i=(o=s(t)).pop(),void 0===i)throw new Error("target coordinates are empty");var d=this.treeModel.getDescendant(o);if(void 0===d)throw new Error("could not get to target");var c=this.dropZoneService.getDropZone(t),h=null==c?void 0:c.getLocation().insertIndex,p=null==c?void 0:c.getHost(),u=null===(n=this.dragStateService.getData())||void 0===n?void 0:n.parentContainer;if(!0===this.placeholder&&this.placeholder$.next(!1),d.insertChild(e,i),void 0===p||void 0===u||void 0===h)return console.warn("Could not perform a precise update. Re-rendering the entire tree instead"),this.render(),void this.changes$.next(null);var v=u.length,f=this.componentCreatorService.appendComponent(O,p,i);f.instance.branch=e,f.instance.parentHost=p,h<a&&u.length>v&&l(r.getCoordinates(),o)?u.remove(a+1):u.remove(a),this.rebuildTreeData(),this.drops$.next({target:e.data,oldParent:r.data,oldIndex:a,newParent:d.data,newIndex:i}),this.cleanupSignal$.next(!1)},e.prototype.init=function(e,t,n,r,o){if(this.host=e,this.originalData=t,this.treeOptions=this.processOptions(n,r,o),!0===this.treeOptions.listMode){var i=this.treeOptions.itemsPerPage*(this.treeOptions.page-1);isNaN(i)&&(i=0);var a=i+this.treeOptions.itemsPerPage;this.treeData=this.originalData.slice(i,a)}else this.treeData=s(this.originalData);this.render()},e.prototype.cleanup=function(e){var t;void 0===e&&(e=!1),e&&this.rebuildTreeData(),0===(null===(t=this.treeData)||void 0===t?void 0:t.length)?this.render():(this.changes$.next(null),this.dropZoneService.update())},e.prototype.render=function(){var e,t,n,r;if(void 0===this.host||void 0===this.treeData||void 0===this.treeOptions)throw new Error("TreeModel not initialized");if(this.treeConstructionStatus.ready(!1),this.host.clear(),this.dropZoneService.restart(),this.placeholder$.next(!1),this.treeModel=new g(null),0===this.treeData.length)this.placeholder$.next(!0);else{try{for(var o=i(this.treeData),a=o.next();!a.done;a=o.next()){var s=a.value,l=new g(s);this.treeModel.appendChild(l)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}try{for(var d=i(this.treeModel.getChildren()),c=d.next();!c.done;c=d.next()){l=c.value;var h=this.componentCreatorService.appendComponent(O,this.host);h.instance.branch=l,h.instance.parentHost=this.host}}catch(e){n={error:e}}finally{try{c&&!c.done&&(r=d.return)&&r.call(d)}finally{if(n)throw n.error}}}this.treeConstructionStatus.ready(!0),this.changes$.next(null),this.dropZoneService.init(this.treeModel,this.treeOptions)},e.prototype.renderBranch=function(e,t){var n,r,o,a;if(void 0===this.treeModel)throw new Error("TreeModel not initialized");e.clear(),t.clearChildren();try{for(var s=i(null!==(a=null===(o=t.data)||void 0===o?void 0:o.nodes)&&void 0!==a?a:[]),l=s.next();!l.done;l=s.next()){var d=l.value,c=new g(d);t.appendChild(c);var h=this.componentCreatorService.appendComponent(O,e);h.instance.branch=c,h.instance.parentHost=e}}catch(e){n={error:e}}finally{try{l&&!l.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}},e.prototype.processOptions=function(e,t,n){var r,o,i,a,s;return void 0===e&&(e={}),void 0===t&&(t=1/0),void 0===n&&(n=1),!0===e.listMode&&void 0!==e.allowNesting&&!1!==e.allowNesting&&console.warn("The value of `allowNesting` will be ignored; it must be false when `listMode` is true"),{defaultComponent:e.defaultComponent,indent:null!==(r=e.indent)&&void 0!==r?r:45,allowNesting:!0!==e.listMode&&(null===(o=e.allowNesting)||void 0===o||o),allowDragging:null===(i=e.allowDragging)||void 0===i||i,allowDrop:null!==(a=e.allowDrop)&&void 0!==a?a:function(){return!0},listMode:null!==(s=e.listMode)&&void 0!==s&&s,itemsPerPage:e.listMode?t:void 0,page:e.listMode?n:void 0}},e.prototype.rebuildTreeData=function(){var e,t,n,r;if(void 0===this.originalData||void 0===this.treeData||void 0===this.treeOptions||void 0===this.host)throw new Error("Tree data not initialized");this.treeData=[];try{for(var o=i(this.treeModel.getChildren()),a=o.next();!a.done;a=o.next()){var l=a.value;this.treeData.push(this.rebuildBranch(l))}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}if(!0===this.treeOptions.listMode&&this.treeOptions.itemsPerPage<1/0){var d=this.treeOptions.itemsPerPage,c=d*(this.treeOptions.page-1);if((n=this.originalData).splice.apply(n,s([c,d],this.treeData)),this.treeData.length!==d){var h=!1;if(this.treeData.length<d&&c+d<=this.originalData.length){for(var p=d-this.treeData.length,u=d-1;u<d+p-1;u++){l=new g(this.originalData[c+u]);this.treeModel.appendChild(l);var v=this.componentCreatorService.appendComponent(O,this.host);v.instance.branch=l,v.instance.parentHost=this.host}h=!0}else if(this.treeData.length>d){for(u=d+(p=this.treeData.length-d)-1;u>=d;u--)this.treeModel.removeChild(u),this.host.remove(u);h=!0}if(!0===h){var f=c+d;this.treeData=this.originalData.slice(c,f)}}}else this.originalData.length=0,(r=this.originalData).push.apply(r,s(this.treeData))},e.prototype.rebuildBranch=function(e){var t,n,r=e.data;r.nodes=[];try{for(var o=i(e.getChildren()),a=o.next();!a.done;a=o.next()){var s=a.value;r.nodes.push(this.rebuildBranch(s))}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return r},e}();R.ɵfac=function(e){return new(e||R)(t.ɵɵinject(Z),t.ɵɵinject(f),t.ɵɵinject(p),t.ɵɵinject(u))},R.ɵprov=t.ɵɵdefineInjectable({token:R,factory:R.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(R,[{type:t.Injectable}],(function(){return[{type:Z},{type:f},{type:p},{type:u}]}),null);var N=function(){function e(e,n){this.ngZone=e,this.el=n,this.dragoverNoChangeDetect=new t.EventEmitter,this.dragoverEventThrottle=25}return e.prototype.ngOnInit=function(){var e=this;this.ngZone.runOutsideAngular((function(){e.eventSubscription=n.fromEvent(e.el.nativeElement,"dragover").pipe(r.throttleTime(e.dragoverEventThrottle)).subscribe((function(t){e.dragoverNoChangeDetect.emit(t)}))}))},e.prototype.ngOnDestroy=function(){void 0!==this.eventSubscription&&this.eventSubscription.unsubscribe()},e}();N.ɵfac=function(e){return new(e||N)(t.ɵɵdirectiveInject(t.NgZone),t.ɵɵdirectiveInject(t.ElementRef))},N.ɵdir=t.ɵɵdefineDirective({type:N,selectors:[["","dragoverNoChangeDetect",""]],inputs:{dragoverEventThrottle:"dragoverEventThrottle"},outputs:{dragoverNoChangeDetect:"dragoverNoChangeDetect"}}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(N,[{type:t.Directive,args:[{selector:"[dragoverNoChangeDetect]"}]}],(function(){return[{type:t.NgZone},{type:t.ElementRef}]}),{dragoverEventThrottle:[{type:t.Input}],dragoverNoChangeDetect:[{type:t.Output}]});var H=function(){function e(e,n){this.ngZone=e,this.el=n,this.dragleaveNoChangeDetect=new t.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;this.ngZone.runOutsideAngular((function(){e.eventSubscription=n.fromEvent(e.el.nativeElement,"dragleave").subscribe((function(t){e.dragleaveNoChangeDetect.emit(t)}))}))},e.prototype.ngOnDestroy=function(){void 0!==this.eventSubscription&&this.eventSubscription.unsubscribe()},e}();H.ɵfac=function(e){return new(e||H)(t.ɵɵdirectiveInject(t.NgZone),t.ɵɵdirectiveInject(t.ElementRef))},H.ɵdir=t.ɵɵdefineDirective({type:H,selectors:[["","dragleaveNoChangeDetect",""]],outputs:{dragleaveNoChangeDetect:"dragleaveNoChangeDetect"}}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(H,[{type:t.Directive,args:[{selector:"[dragleaveNoChangeDetect]"}]}],(function(){return[{type:t.NgZone},{type:t.ElementRef}]}),{dragleaveNoChangeDetect:[{type:t.Output}]});var P=function(e,t){return{active:e,related:t}};function B(e,n){if(1&e){var r=t.ɵɵgetCurrentView();t.ɵɵelementStart(0,"div",1),t.ɵɵlistener("dragenter",(function(){return t.ɵɵrestoreView(r),t.ɵɵnextContext().dragenterHandler()})),t.ɵɵelement(1,"div",2),t.ɵɵelementEnd()}if(2&e){var o=t.ɵɵnextContext();t.ɵɵadvance(1),t.ɵɵproperty("ngClass",t.ɵɵpureFunction2(1,P,o.active,!o.active))}}var T=function(){function e(e,t){this.dropZoneService=e,this.changeDetectorRef=t,this.visible=!1,this.active=!1}return e.prototype.dragenterHandler=function(){void 0!==this.dropZone&&!0!==this.active&&this.dropZoneService.swapActiveDropZone(this.dropZone)},e.prototype.ngOnInit=function(){var e=this;if(void 0===this.dropZone)throw new Error("No drop zone object at component initialization");this.commSubscription=this.dropZone.getCommChannel().subscribe((function(t){var n,r,o,i;switch(t){case"checkVisible":e.visible=null!==(r=null===(n=e.dropZone)||void 0===n?void 0:n.isVisible())&&void 0!==r&&r;break;case"checkActive":e.active=null!==(i=null===(o=e.dropZone)||void 0===o?void 0:o.isActive())&&void 0!==i&&i;break;case"checkRendered":break;default:throw new Error("unhandled comm message")}e.changeDetectorRef.detectChanges()}))},e.prototype.ngOnDestroy=function(){void 0!==this.commSubscription&&this.commSubscription.unsubscribe()},e}();T.ɵfac=function(e){return new(e||T)(t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(t.ChangeDetectorRef))},T.ɵcmp=t.ɵɵdefineComponent({type:T,selectors:[["drop-zone"]],inputs:{dropZone:"dropZone"},decls:1,vars:1,consts:[["class","dropZoneContainer",3,"dragenter",4,"ngIf"],[1,"dropZoneContainer",3,"dragenter"],[3,"ngClass"]],template:function(e,n){1&e&&t.ɵɵtemplate(0,B,2,4,"div",0),2&e&&t.ɵɵproperty("ngIf",n.visible)},directives:[o.NgIf,o.NgClass],styles:[".active[_ngcontent-%COMP%]{height:105px;border-radius:5px;background:#f0f9ff;border:2px dashed #bed2db}.active[_ngcontent-%COMP%], .related[_ngcontent-%COMP%]{margin:10px 0;width:calc(100% - 20px);box-sizing:border-box}.related[_ngcontent-%COMP%]{height:30px;border-radius:5px;background:#fff6f0;border:1px dashed #dbccbe;opacity:.8}.dropZoneContainer[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(T,[{type:t.Component,args:[{selector:"drop-zone",templateUrl:"./drop-zone.component.html",styleUrls:["./drop-zone.component.scss"],changeDetection:t.ChangeDetectionStrategy.OnPush}]}],(function(){return[{type:f},{type:t.ChangeDetectorRef}]}),{dropZone:[{type:t.Input}]});var $=function(){function e(e,t,n,r){var o=this;this.dropZoneService=e,this.changeDetectorRef=t,this.treeService=n,this.treeConstructionStatus=r,this.treeConstructionStatus.constructing(),this.placeholderSubscription=this.treeService.placeholder$.subscribe((function(e){void 0!==o.dropZone&&(o.dropZoneService.removeDropZone(o.dropZone),!0===e&&(o.dropZoneService.addDropZone(o.dropZone),o.dropZone.setHost(o.treeService.host)))}))}return e.prototype.ngOnInit=function(){this.dropZone=new h([],0),this.dropZoneService.addDropZone(this.dropZone)},e.prototype.ngAfterViewInit=function(){if(void 0===this.dropZone)throw new Error("placeholder drop zone is not defined");this.dropZone.setHost(this.treeService.host),this.treeConstructionStatus.doneConstructing(),this.changeDetectorRef.detectChanges()},e.prototype.dragoverHandler=function(){void 0!==this.dropZone&&this.dropZoneService.showDropZoneFamily(this.dropZone)},e.prototype.ngOnDestroy=function(){if(this.placeholderSubscription.unsubscribe(),void 0===this.dropZone)throw new Error("could not remove placeholder drop zone");this.dropZoneService.removeDropZone(this.dropZone)},e}();$.ɵfac=function(e){return new(e||$)(t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(t.ChangeDetectorRef),t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(u))},$.ɵcmp=t.ɵɵdefineComponent({type:$,selectors:[["limble-tree-placeholder"]],decls:2,vars:1,consts:[[3,"dropZone"],[1,"placeholder",3,"dragoverNoChangeDetect"]],template:function(e,n){1&e&&(t.ɵɵelement(0,"drop-zone",0),t.ɵɵelementStart(1,"div",1),t.ɵɵlistener("dragoverNoChangeDetect",(function(){return n.dragoverHandler()})),t.ɵɵelementEnd()),2&e&&t.ɵɵproperty("dropZone",n.dropZone)},directives:[T,N],styles:[".placeholder[_ngcontent-%COMP%]{width:100%;height:20px}"],changeDetection:0}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata($,[{type:t.Component,args:[{selector:"limble-tree-placeholder",templateUrl:"./limble-tree-placeholder.component.html",styleUrls:["./limble-tree-placeholder.component.scss"],changeDetection:t.ChangeDetectionStrategy.OnPush}]}],(function(){return[{type:f},{type:t.ChangeDetectorRef},{type:R},{type:u}]}),null);var z=["host"];function L(e,n){1&e&&t.ɵɵelement(0,"limble-tree-placeholder")}function V(e,t){}var k=function(){function e(e,n,r,o,i,a,s){var l=this;this.treeService=e,this.dropZoneService=n,this.dragStateService=r,this.globalEventsService=o,this.ngZone=i,this.changeDetectorRef=a,this.el=s,this.treeChange=new t.EventEmitter,this.treeDrop=new t.EventEmitter,this.changesSubscription=this.treeService.changes$.subscribe((function(){setTimeout((function(){l.treeChange.emit()}))})),this.dropSubscription=this.treeService.drops$.subscribe((function(e){setTimeout((function(){l.treeDrop.emit(e)}))})),this.placeholder=!1,this.treeService.placeholder$.subscribe((function(e){l.placeholder=e,t.NgZone.isInAngularZone()||l.changeDetectorRef.detectChanges()}))}return e.prototype.ngAfterViewInit=function(){var e,t=this;!0===(null===(e=this.options)||void 0===e?void 0:e.listMode)||void 0===this.itemsPerPage&&void 0===this.page||console.warn("pagination is only allowed in listMode; `itemsPerPage` and `page` inputs will be ignored"),this.update(),this.changeDetectorRef.detectChanges(),this.ngZone.runOutsideAngular((function(){t.el.nativeElement.addEventListener("dragover",(function(e){e.preventDefault()}))}))},e.prototype.ngOnChanges=function(){void 0!==this.host&&void 0!==this.data&&this.update()},e.prototype.update=function(){if(void 0===this.host)throw new Error("Failed to render limble tree. Failure occurred at root.");if(void 0===this.data)throw new Error("limbleTree requires a data object");this.treeService.init(this.host,this.data,this.options,this.itemsPerPage,this.page),this.globalEventsService.addScrolling()},e.prototype.dragoverHandler=function(e){null!==e.dataTransfer&&(e.stopPropagation(),e.preventDefault(),e.dataTransfer.dropEffect="move")},e.prototype.dragleaveHandler=function(e){var t=e.currentTarget,n=e.relatedTarget;t instanceof Node&&n instanceof Node&&!1===function(e,t){if(e===t)return!0;for(var n=t.parentNode;n!==document;){if(null===n)return;if(n===e)return!0;n=n.parentNode}return!1}(t,n)&&(this.dropZoneService.clearVisibleZones(),this.changeDetectorRef.detectChanges())},e.prototype.dropHandler=function(e){var t=this;if(e.stopPropagation(),"droppable"===this.dragStateService.getState()){var n=this.dragStateService.capture();if(void 0===n)throw new Error("failed to get current branch in dragendHandler");var o=this.dropZoneService.getActiveDropZone();if(null===o)throw new Error("failed to get active drop zone at drop handler");this.treeService.captured=!0,this.dragStateService.state$.pipe(r.first((function(e){return"idle"===e}))).subscribe((function(){t.treeService.captured=!1})),this.dropZoneService.clearVisibleZones(),this.treeService.drop(n,o.getFullInsertCoordinates())}},e.prototype.ngOnDestroy=function(){this.changesSubscription.unsubscribe(),this.dropSubscription.unsubscribe()},e}();k.ɵfac=function(e){return new(e||k)(t.ɵɵdirectiveInject(R),t.ɵɵdirectiveInject(f),t.ɵɵdirectiveInject(p),t.ɵɵdirectiveInject(D),t.ɵɵdirectiveInject(t.NgZone),t.ɵɵdirectiveInject(t.ChangeDetectorRef),t.ɵɵdirectiveInject(t.ElementRef))},k.ɵcmp=t.ɵɵdefineComponent({type:k,selectors:[["limble-tree-root"]],viewQuery:function(e,n){if(1&e&&t.ɵɵviewQuery(z,1,t.ViewContainerRef),2&e){var r;t.ɵɵqueryRefresh(r=t.ɵɵloadQuery())&&(n.host=r.first)}},inputs:{data:"data",options:"options",itemsPerPage:"itemsPerPage",page:"page"},outputs:{treeChange:"treeChange",treeDrop:"treeDrop"},features:[t.ɵɵProvidersFeature([R,f,u]),t.ɵɵNgOnChangesFeature],decls:4,vars:1,consts:[[3,"dragoverNoChangeDetect","dragleaveNoChangeDetect","drop"],[4,"ngIf"],["host",""]],template:function(e,n){1&e&&(t.ɵɵelementStart(0,"div",0),t.ɵɵlistener("dragoverNoChangeDetect",(function(e){return n.dragoverHandler(e)}))("dragleaveNoChangeDetect",(function(e){return n.dragleaveHandler(e)}))("drop",(function(e){return n.dropHandler(e)})),t.ɵɵtemplate(1,L,1,0,"limble-tree-placeholder",1),t.ɵɵtemplate(2,V,0,0,"ng-template",null,2,t.ɵɵtemplateRefExtractor),t.ɵɵelementEnd()),2&e&&(t.ɵɵadvance(1),t.ɵɵproperty("ngIf",!0===n.placeholder))},directives:[N,H,o.NgIf,$],styles:[""]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(k,[{type:t.Component,args:[{selector:"limble-tree-root",templateUrl:"./limble-tree-root.component.html",styleUrls:["./limble-tree-root.component.scss"],providers:[R,f,u]}]}],(function(){return[{type:R},{type:f},{type:p},{type:D},{type:t.NgZone},{type:t.ChangeDetectorRef},{type:t.ElementRef}]}),{data:[{type:t.Input}],options:[{type:t.Input}],itemsPerPage:[{type:t.Input}],page:[{type:t.Input}],host:[{type:t.ViewChild,args:["host",{read:t.ViewContainerRef}]}],treeChange:[{type:t.Output}],treeDrop:[{type:t.Output}]});var q=function(){};q.ɵfac=function(e){return new(e||q)},q.ɵmod=t.ɵɵdefineNgModule({type:q}),q.ɵinj=t.ɵɵdefineInjector({providers:[Z,p,D],imports:[[o.CommonModule]]}),("undefined"==typeof ngJitMode||ngJitMode)&&t.ɵɵsetNgModuleScope(q,{declarations:[w,T,O,k,$,N,H],imports:[o.CommonModule],exports:[k]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(q,[{type:t.NgModule,args:[{declarations:[w,T,O,k,$,N,H],imports:[o.CommonModule],exports:[k],providers:[Z,p,D]}]}],null,null),t.ɵɵsetComponentScope(w,[o.NgIf,T],[]),t.ɵɵsetComponentScope(O,[o.NgIf,T,N,w],[]),e.LimbleTreeModule=q,e.LimbleTreeRootComponent=k,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=limble-limble-tree.umd.min.js.map

@@ -10,3 +10,3 @@ import { Directive, EventEmitter, Input, Output } from "@angular/core";

this.dragoverNoChangeDetect = new EventEmitter();
this.dragoverEventThrottle = 0;
this.dragoverEventThrottle = 25;
}

@@ -40,2 +40,2 @@ ngOnInit() {

}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ292ZXItbm8tY2hhbmdlLWRldGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLOUMsTUFBTSxPQUFPLCtCQUErQjtJQUt6QyxZQUNvQixNQUFjLEVBQ2QsRUFBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRXhDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQzVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsVUFBVSxDQUNaO2lCQUNHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7aUJBQzlDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSixDQUFDOzs4R0E5QlMsK0JBQStCO29FQUEvQiwrQkFBK0I7dUZBQS9CLCtCQUErQjtjQUgzQyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLDBCQUEwQjthQUN0QztrRkFFVyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDYSxzQkFBc0I7a0JBQXhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgRGlyZWN0aXZlLFxuICAgRWxlbWVudFJlZixcbiAgIEV2ZW50RW1pdHRlcixcbiAgIElucHV0LFxuICAgTmdab25lLFxuICAgT25EZXN0cm95LFxuICAgT25Jbml0LFxuICAgT3V0cHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogXCJbZHJhZ292ZXJOb0NoYW5nZURldGVjdF1cIlxufSlcbmV4cG9ydCBjbGFzcyBEcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgQElucHV0KCkgZHJhZ292ZXJFdmVudFRocm90dGxlOiBudW1iZXI7XG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJhZ292ZXJOb0NoYW5nZURldGVjdDogRXZlbnRFbWl0dGVyPERyYWdFdmVudD47XG4gICBwcml2YXRlIGV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8RWxlbWVudD5cbiAgICkge1xuICAgICAgdGhpcy5kcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG4gICAgICB0aGlzLmRyYWdvdmVyRXZlbnRUaHJvdHRsZSA9IDA7XG4gICB9XG5cbiAgIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxEcmFnRXZlbnQ+KFxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgXCJkcmFnb3ZlclwiXG4gICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0aHJvdHRsZVRpbWUodGhpcy5kcmFnb3ZlckV2ZW50VGhyb3R0bGUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QuZW1pdCgkZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgIH1cblxuICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aGlzLmV2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ292ZXItbm8tY2hhbmdlLWRldGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLOUMsTUFBTSxPQUFPLCtCQUErQjtJQUt6QyxZQUNvQixNQUFjLEVBQ2QsRUFBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRXhDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQzVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsVUFBVSxDQUNaO2lCQUNHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7aUJBQzlDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSixDQUFDOzs4R0E5QlMsK0JBQStCO29FQUEvQiwrQkFBK0I7dUZBQS9CLCtCQUErQjtjQUgzQyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLDBCQUEwQjthQUN0QztrRkFFVyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDYSxzQkFBc0I7a0JBQXhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBEaXJlY3RpdmUsXHJcbiAgIEVsZW1lbnRSZWYsXHJcbiAgIEV2ZW50RW1pdHRlcixcclxuICAgSW5wdXQsXHJcbiAgIE5nWm9uZSxcclxuICAgT25EZXN0cm95LFxyXG4gICBPbkluaXQsXHJcbiAgIE91dHB1dFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGhyb3R0bGVUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgc2VsZWN0b3I6IFwiW2RyYWdvdmVyTm9DaGFuZ2VEZXRlY3RdXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGRyYWdvdmVyRXZlbnRUaHJvdHRsZTogbnVtYmVyO1xyXG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJhZ292ZXJOb0NoYW5nZURldGVjdDogRXZlbnRFbWl0dGVyPERyYWdFdmVudD47XHJcbiAgIHByaXZhdGUgZXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XHJcbiAgICkge1xyXG4gICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcclxuICAgICAgdGhpcy5kcmFnb3ZlckV2ZW50VGhyb3R0bGUgPSAyNTtcclxuICAgfVxyXG5cclxuICAgbmdPbkluaXQoKSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxEcmFnRXZlbnQ+KFxyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIFwiZHJhZ292ZXJcIlxyXG4gICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKHRocm90dGxlVGltZSh0aGlzLmRyYWdvdmVyRXZlbnRUaHJvdHRsZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QuZW1pdCgkZXZlbnQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRoaXMuZXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICB9XHJcbn1cclxuIl19

@@ -75,2 +75,2 @@ import { ChangeDetectionStrategy, Component } from "@angular/core";

}], function () { return [{ type: i1.DropZoneService }, { type: i0.ChangeDetectorRef }, { type: i2.TreeService }, { type: i3.TreeConstructionStatus }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSix1QkFBdUIsRUFFdkIsU0FBUyxFQUdYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVcvQyxNQUFNLE9BQU8sOEJBQThCO0lBS3hDLFlBQ29CLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QixFQUN4QixzQkFBOEM7UUFIOUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUUvRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsOEVBQThFO1FBQzlFLG1GQUFtRjtRQUNuRixvRkFBb0Y7UUFDcEYsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQ25FLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO2dCQUM5QixPQUFPO2FBQ1Q7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0M7UUFDSixDQUFDLENBQ0gsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLGVBQWU7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUM5QixPQUFPO1NBQ1Q7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sV0FBVztRQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs0R0F6RFMsOEJBQThCO21FQUE5Qiw4QkFBOEI7UUNwQjNDLCtCQUE2QztRQUM3Qyw4QkFBc0U7UUFBN0MsMElBQTBCLHFCQUFpQixJQUFDO1FBQUMsaUJBQU07O1FBRGpFLHVDQUFxQjs7dUZEb0JuQiw4QkFBOEI7Y0FOMUMsU0FBUztlQUFDO2dCQUNSLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSwwQ0FBMEM7Z0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO2dCQUN2RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICBBZnRlclZpZXdJbml0LFxuICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgIENvbXBvbmVudCxcbiAgIE9uRGVzdHJveSxcbiAgIE9uSW5pdFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IERyb3Bab25lIH0gZnJvbSBcIi4uL2NsYXNzZXMvRHJvcFpvbmVcIjtcbmltcG9ydCB7IERyb3Bab25lU2VydmljZSB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L2Ryb3Atem9uZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUcmVlQ29uc3RydWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2VcIjtcbmltcG9ydCB7IFRyZWVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvdHJlZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6IFwibGltYmxlLXRyZWUtcGxhY2Vob2xkZXJcIixcbiAgIHRlbXBsYXRlVXJsOiBcIi4vbGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgIHN0eWxlVXJsczogW1wiLi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQuc2Nzc1wiXSxcbiAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVQbGFjZWhvbGRlckNvbXBvbmVudFxuICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICBwdWJsaWMgZHJvcFpvbmU6IERyb3Bab25lIHwgdW5kZWZpbmVkO1xuICAgcHJpdmF0ZSByZWFkb25seSBwbGFjZWhvbGRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bab25lU2VydmljZTogRHJvcFpvbmVTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTZXJ2aWNlOiBUcmVlU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZUNvbnN0cnVjdGlvblN0YXR1czogVHJlZUNvbnN0cnVjdGlvblN0YXR1c1xuICAgKSB7XG4gICAgICB0aGlzLnRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMuY29uc3RydWN0aW5nKCk7XG4gICAgICAvL1RoaXMgbG9naWMgaXMgdmVyeSBzaW1pbGFyIHRvIHdoYXQgdGhlIGxpZmVjeWNsZSBob29rcyBvZiB0aGlzIGNvbXBvbmVudCBkby5cbiAgICAgIC8vV2UgdXNlIHRoaXMgc3Vic2NyaXB0aW9uIGJlY2F1c2Ugc29tZXRpbWVzIHdlIGNhbid0IHdhaXQgZm9yIHRoZSBsaWZlY3ljbGUgaG9va3M6XG4gICAgICAvL1NwZWNpZmljYWxseSwgdGhlIGRyb3Agem9uZSByZWdpc3RyYXRpb24gYW5kIGRlcmVnaXN0cmF0aW9uIHNvbWV0aW1lcyBjYW4ndCBoYXBwZW5cbiAgICAgIC8vYXN5bmNocm9ub3VzbHkgd2l0aG91dCBjYXVzaW5nIGJ1Z3MuIFNvIHdlIGhhbmRsZSBpdCBzeW5jaHJvbm91c2x5IGhlcmUgYXMgd2VsbC5cbiAgICAgIHRoaXMucGxhY2Vob2xkZXJTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLnBsYWNlaG9sZGVyJC5zdWJzY3JpYmUoXG4gICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnJlbW92ZURyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5hZGREcm9wWm9uZSh0aGlzLmRyb3Bab25lKTtcbiAgICAgICAgICAgICAgIHRoaXMuZHJvcFpvbmUuc2V0SG9zdCh0aGlzLnRyZWVTZXJ2aWNlLmhvc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICAgKTtcbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5kcm9wWm9uZSA9IG5ldyBEcm9wWm9uZShbXSwgMCk7XG4gICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5hZGREcm9wWm9uZSh0aGlzLmRyb3Bab25lKTtcbiAgIH1cblxuICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInBsYWNlaG9sZGVyIGRyb3Agem9uZSBpcyBub3QgZGVmaW5lZFwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZHJvcFpvbmUuc2V0SG9zdCh0aGlzLnRyZWVTZXJ2aWNlLmhvc3QpO1xuICAgICAgdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLmRvbmVDb25zdHJ1Y3RpbmcoKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgfVxuXG4gICBwdWJsaWMgZHJhZ292ZXJIYW5kbGVyKCkge1xuICAgICAgaWYgKHRoaXMuZHJvcFpvbmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2Uuc2hvd0Ryb3Bab25lRmFtaWx5KHRoaXMuZHJvcFpvbmUpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjb3VsZCBub3QgcmVtb3ZlIHBsYWNlaG9sZGVyIGRyb3Agem9uZVwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnJlbW92ZURyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xuICAgfVxufVxuIiwiPGRyb3Atem9uZSBbZHJvcFpvbmVdPVwiZHJvcFpvbmVcIj48L2Ryb3Atem9uZT5cbjxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlclwiIChkcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0KT1cImRyYWdvdmVySGFuZGxlcigpXCI+PC9kaXY+XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSix1QkFBdUIsRUFFdkIsU0FBUyxFQUdYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVcvQyxNQUFNLE9BQU8sOEJBQThCO0lBS3hDLFlBQ29CLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QixFQUN4QixzQkFBOEM7UUFIOUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUUvRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsOEVBQThFO1FBQzlFLG1GQUFtRjtRQUNuRixvRkFBb0Y7UUFDcEYsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQ25FLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO2dCQUM5QixPQUFPO2FBQ1Q7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0M7UUFDSixDQUFDLENBQ0gsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLGVBQWU7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUM5QixPQUFPO1NBQ1Q7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sV0FBVztRQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs0R0F6RFMsOEJBQThCO21FQUE5Qiw4QkFBOEI7UUNwQjNDLCtCQUE2QztRQUM3Qyw4QkFBc0U7UUFBN0MsMElBQTBCLHFCQUFpQixJQUFDO1FBQUMsaUJBQU07O1FBRGpFLHVDQUFxQjs7dUZEb0JuQiw4QkFBOEI7Y0FOMUMsU0FBUztlQUFDO2dCQUNSLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSwwQ0FBMEM7Z0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO2dCQUN2RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgIEFmdGVyVmlld0luaXQsXHJcbiAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgQ29tcG9uZW50LFxyXG4gICBPbkRlc3Ryb3ksXHJcbiAgIE9uSW5pdFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERyb3Bab25lIH0gZnJvbSBcIi4uL2NsYXNzZXMvRHJvcFpvbmVcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvZHJvcC16b25lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUtY29uc3RydWN0aW9uLXN0YXR1cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyZWVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvdHJlZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgc2VsZWN0b3I6IFwibGltYmxlLXRyZWUtcGxhY2Vob2xkZXJcIixcclxuICAgdGVtcGxhdGVVcmw6IFwiLi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vbGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW1ibGVUcmVlUGxhY2Vob2xkZXJDb21wb25lbnRcclxuICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgIHB1YmxpYyBkcm9wWm9uZTogRHJvcFpvbmUgfCB1bmRlZmluZWQ7XHJcbiAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVNlcnZpY2U6IFRyZWVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVDb25zdHJ1Y3Rpb25TdGF0dXM6IFRyZWVDb25zdHJ1Y3Rpb25TdGF0dXNcclxuICAgKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnN0cnVjdGlvblN0YXR1cy5jb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgLy9UaGlzIGxvZ2ljIGlzIHZlcnkgc2ltaWxhciB0byB3aGF0IHRoZSBsaWZlY3ljbGUgaG9va3Mgb2YgdGhpcyBjb21wb25lbnQgZG8uXHJcbiAgICAgIC8vV2UgdXNlIHRoaXMgc3Vic2NyaXB0aW9uIGJlY2F1c2Ugc29tZXRpbWVzIHdlIGNhbid0IHdhaXQgZm9yIHRoZSBsaWZlY3ljbGUgaG9va3M6XHJcbiAgICAgIC8vU3BlY2lmaWNhbGx5LCB0aGUgZHJvcCB6b25lIHJlZ2lzdHJhdGlvbiBhbmQgZGVyZWdpc3RyYXRpb24gc29tZXRpbWVzIGNhbid0IGhhcHBlblxyXG4gICAgICAvL2FzeW5jaHJvbm91c2x5IHdpdGhvdXQgY2F1c2luZyBidWdzLiBTbyB3ZSBoYW5kbGUgaXQgc3luY2hyb25vdXNseSBoZXJlIGFzIHdlbGwuXHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLnBsYWNlaG9sZGVyJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5yZW1vdmVEcm9wWm9uZSh0aGlzLmRyb3Bab25lKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmFkZERyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xyXG4gICAgICAgICAgICAgICB0aGlzLmRyb3Bab25lLnNldEhvc3QodGhpcy50cmVlU2VydmljZS5ob3N0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgdGhpcy5kcm9wWm9uZSA9IG5ldyBEcm9wWm9uZShbXSwgMCk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmFkZERyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInBsYWNlaG9sZGVyIGRyb3Agem9uZSBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRyb3Bab25lLnNldEhvc3QodGhpcy50cmVlU2VydmljZS5ob3N0KTtcclxuICAgICAgdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLmRvbmVDb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcmFnb3ZlckhhbmRsZXIoKSB7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnNob3dEcm9wWm9uZUZhbWlseSh0aGlzLmRyb3Bab25lKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlbW92ZSBwbGFjZWhvbGRlciBkcm9wIHpvbmVcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UucmVtb3ZlRHJvcFpvbmUodGhpcy5kcm9wWm9uZSk7XHJcbiAgIH1cclxufVxyXG4iLCI8ZHJvcC16b25lIFtkcm9wWm9uZV09XCJkcm9wWm9uZVwiPjwvZHJvcC16b25lPlxuPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKClcIj48L2Rpdj5cbiJdfQ==

@@ -22,3 +22,3 @@ import { Component, EventEmitter, Input, NgZone, Output, ViewChild, ViewContainerRef } from "@angular/core";

export class LimbleTreeRootComponent {
constructor(treeService, dropZoneService, dragStateService, globalEventsService, changeDetectorRef) {
constructor(treeService, dropZoneService, dragStateService, globalEventsService, ngZone, changeDetectorRef, el) {
this.treeService = treeService;

@@ -28,3 +28,5 @@ this.dropZoneService = dropZoneService;

this.globalEventsService = globalEventsService;
this.ngZone = ngZone;
this.changeDetectorRef = changeDetectorRef;
this.el = el;
this.treeChange = new EventEmitter();

@@ -63,2 +65,8 @@ this.treeDrop = new EventEmitter();

this.changeDetectorRef.detectChanges();
this.ngZone.runOutsideAngular(() => {
//this is for mac os - without this dragover handler drop events aren't firing correctly
this.el.nativeElement.addEventListener("dragover", (event) => {
event.preventDefault();
});
});
}

@@ -129,3 +137,3 @@ ngOnChanges() {

}
LimbleTreeRootComponent.ɵfac = function LimbleTreeRootComponent_Factory(t) { return new (t || LimbleTreeRootComponent)(i0.ɵɵdirectiveInject(i1.TreeService), i0.ɵɵdirectiveInject(i2.DropZoneService), i0.ɵɵdirectiveInject(i3.DragStateService), i0.ɵɵdirectiveInject(i4.GlobalEventsService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
LimbleTreeRootComponent.ɵfac = function LimbleTreeRootComponent_Factory(t) { return new (t || LimbleTreeRootComponent)(i0.ɵɵdirectiveInject(i1.TreeService), i0.ɵɵdirectiveInject(i2.DropZoneService), i0.ɵɵdirectiveInject(i3.DragStateService), i0.ɵɵdirectiveInject(i4.GlobalEventsService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
LimbleTreeRootComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LimbleTreeRootComponent, selectors: [["limble-tree-root"]], viewQuery: function LimbleTreeRootComponent_Query(rf, ctx) { if (rf & 1) {

@@ -154,3 +162,3 @@ i0.ɵɵviewQuery(_c0, 1, ViewContainerRef);

}]
}], function () { return [{ type: i1.TreeService }, { type: i2.DropZoneService }, { type: i3.DragStateService }, { type: i4.GlobalEventsService }, { type: i0.ChangeDetectorRef }]; }, { data: [{
}], function () { return [{ type: i1.TreeService }, { type: i2.DropZoneService }, { type: i3.DragStateService }, { type: i4.GlobalEventsService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, { data: [{
type: Input

@@ -171,2 +179,2 @@ }], options: [{

}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0osU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU10RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0lDcEJ6RSwwQ0FFMkI7OztBRDBCOUIsTUFBTSxPQUFPLHVCQUF1QjtJQW1CakMsWUFDb0IsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxpQkFBb0M7UUFKcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBYnJDLGVBQVUsR0FBRyxJ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a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBBZnRlclZpZXdJbml0LFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgQ29tcG9uZW50LFxyXG4gICBFdmVudEVtaXR0ZXIsXHJcbiAgIElucHV0LFxyXG4gICBOZ1pvbmUsXHJcbiAgIE9uQ2hhbmdlcyxcclxuICAgT25EZXN0cm95LFxyXG4gICBPdXRwdXQsXHJcbiAgIFZpZXdDaGlsZCxcclxuICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERyb3Bab25lU2VydmljZSB9IGZyb20gXCIuL2Ryb3Atem9uZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgIExpbWJsZVRyZWVEYXRhLFxyXG4gICBMaW1ibGVUcmVlT3B0aW9ucyxcclxuICAgVHJlZURyb3BcclxufSBmcm9tIFwiLi4vbGltYmxlLXRyZWUtcm9vdC90cmVlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tIFwiLi90cmVlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgaXNFbGVtZW50RGVzY2VuZGFudCB9IGZyb20gXCIuLi91dGlsXCI7XHJcbmltcG9ydCB7IERyYWdTdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2luZ2xldG9ucy9kcmFnLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsRXZlbnRzU2VydmljZSB9IGZyb20gXCIuLi9zaW5nbGV0b25zL2dsb2JhbC1ldmVudHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmVlQ29uc3RydWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4vdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICBzZWxlY3RvcjogXCJsaW1ibGUtdHJlZS1yb290XCIsXHJcbiAgIHRlbXBsYXRlVXJsOiBcIi4vbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgcHJvdmlkZXJzOiBbVHJlZVNlcnZpY2UsIERyb3Bab25lU2VydmljZSwgVHJlZUNvbnN0cnVjdGlvblN0YXR1c11cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVSb290Q29tcG9uZW50XHJcbiAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICBASW5wdXQoKSBkYXRhOiBMaW1ibGVUcmVlRGF0YSB8IHVuZGVmaW5lZDtcclxuICAgQElucHV0KCkgb3B0aW9uczogTGltYmxlVHJlZU9wdGlvbnMgfCB1bmRlZmluZWQ7XHJcbiAgIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICBASW5wdXQoKSBwYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAVmlld0NoaWxkKFwiaG9zdFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHJpdmF0ZSBob3N0OlxyXG4gICAgICB8IFZpZXdDb250YWluZXJSZWZcclxuICAgICAgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgdHJlZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuXHJcbiAgIEBPdXRwdXQoKSByZWFkb25seSB0cmVlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZURyb3A+KCk7XHJcblxyXG4gICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgcHJpdmF0ZSByZWFkb25seSBkcm9wU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgIHB1YmxpYyBwbGFjZWhvbGRlcjogYm9vbGVhbjtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTZXJ2aWNlOiBUcmVlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcmFnU3RhdGVTZXJ2aWNlOiBEcmFnU3RhdGVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEV2ZW50c1NlcnZpY2U6IEdsb2JhbEV2ZW50c1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICkge1xyXG4gICAgICB0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLmNoYW5nZXMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgIC8vXCJJbiBkZXYgbW9kZSwgQW5ndWxhciBwZXJmb3JtcyBhbiBhZGRpdGlvbmFsIGNoZWNrIGFmdGVyIGVhY2ggY2hhbmdlXHJcbiAgICAgICAgIC8vZGV0ZWN0aW9uIHJ1biwgdG8gZW5zdXJlIHRoZSBiaW5kaW5ncyBoYXZlbuKAmXQgY2hhbmdlZC5cIiBXZSB1c2UgYSB0aW1lb3V0IGhlcmVcclxuICAgICAgICAgLy90byBwcmVjbHVkZSB0aGUgcG9zc2liaWxpdHkgb2YgY2F1c2luZyBhIGJpbmRpbmcgdG8gdXBkYXRlIGluIHRoZSBwYXJlbnRcclxuICAgICAgICAgLy9jb21wb25lbnQgYWZ0ZXIgY2hhbmdlIGRldGVjdGlvbiBydW5zIGJ1dCBiZWZvcmUgdGhlIGFkZGl0aW9uYWwgY2hlY2suXHJcbiAgICAgICAgIC8vU2VlIGh0dHBzOi8vYW5ndWxhci5pby9lcnJvcnMvTkcwMTAwIGZvciBkZXRhaWxzLlxyXG4gICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ2hhbmdlLmVtaXQoKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRyb3BTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLmRyb3BzJC5zdWJzY3JpYmUoKGRyb3ApID0+IHtcclxuICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZURyb3AuZW1pdChkcm9wKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UucGxhY2Vob2xkZXIkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgICAgICBpZiAoIU5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRoaXMub3B0aW9ucz8ubGlzdE1vZGUgIT09IHRydWUgJiZcclxuICAgICAgICAgKHRoaXMuaXRlbXNQZXJQYWdlICE9PSB1bmRlZmluZWQgfHwgdGhpcy5wYWdlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICkge1xyXG4gICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAgIFwicGFnaW5hdGlvbiBpcyBvbmx5IGFsbG93ZWQgaW4gbGlzdE1vZGU7IGBpdGVtc1BlclBhZ2VgIGFuZCBgcGFnZWAgaW5wdXRzIHdpbGwgYmUgaWdub3JlZFwiXHJcbiAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgICBpZiAodGhpcy5ob3N0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5kYXRhICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgfVxyXG4gICB9XHJcblxyXG4gICAvKiogUmVidWlsZCB0aGUgdHJlZSAqL1xyXG4gICBwdWJsaWMgdXBkYXRlKCkge1xyXG4gICAgICBpZiAodGhpcy5ob3N0ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICBcIkZhaWxlZCB0byByZW5kZXIgbGltYmxlIHRyZWUuIEZhaWx1cmUgb2NjdXJyZWQgYXQgcm9vdC5cIlxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRhdGEgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGxpbWJsZVRyZWUgcmVxdWlyZXMgYSBkYXRhIG9iamVjdGApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuaW5pdChcclxuICAgICAgICAgdGhpcy5ob3N0LFxyXG4gICAgICAgICB0aGlzLmRhdGEsXHJcbiAgICAgICAgIHRoaXMub3B0aW9ucyxcclxuICAgICAgICAgdGhpcy5pdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgIHRoaXMucGFnZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmdsb2JhbEV2ZW50c1NlcnZpY2UuYWRkU2Nyb2xsaW5nKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcmFnb3ZlckhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyID09PSBudWxsKSB7XHJcbiAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSBcIm1vdmVcIjtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGRyYWdsZWF2ZUhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldDtcclxuICAgICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQ7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgIShjdXJyZW50VGFyZ2V0IGluc3RhbmNlb2YgTm9kZSkgfHxcclxuICAgICAgICAgIShyZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgTm9kZSkgfHxcclxuICAgICAgICAgaXNFbGVtZW50RGVzY2VuZGFudChjdXJyZW50VGFyZ2V0LCByZWxhdGVkVGFyZ2V0KSAhPT0gZmFsc2VcclxuICAgICAgKSB7XHJcbiAgICAgICAgIC8vZXZlbnQgY2FtZSBmcm9tIGRlZXBlciBpbiB0aGUgdHJlZS4gSWdub3JlIGl0LlxyXG4gICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy9Nb3VzZSBoYXMgbGVmdCB0aGUgdHJlZSwgc28gY2xlYXIgdGhlIGRyb3Agem9uZXNcclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UuY2xlYXJWaXNpYmxlWm9uZXMoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcm9wSGFuZGxlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBpZiAodGhpcy5kcmFnU3RhdGVTZXJ2aWNlLmdldFN0YXRlKCkgIT09IFwiZHJvcHBhYmxlXCIpIHtcclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNvdXJjZUJyYW5jaCA9IHRoaXMuZHJhZ1N0YXRlU2VydmljZS5jYXB0dXJlKCk7XHJcbiAgICAgIGlmIChzb3VyY2VCcmFuY2ggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gZ2V0IGN1cnJlbnQgYnJhbmNoIGluIGRyYWdlbmRIYW5kbGVyXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRyb3Bab25lID0gdGhpcy5kcm9wWm9uZVNlcnZpY2UuZ2V0QWN0aXZlRHJvcFpvbmUoKTtcclxuICAgICAgaWYgKGRyb3Bab25lID09PSBudWxsKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImZhaWxlZCB0byBnZXQgYWN0aXZlIGRyb3Agem9uZSBhdCBkcm9wIGhhbmRsZXJcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmVlU2VydmljZS5jYXB0dXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZHJhZ1N0YXRlU2VydmljZS5zdGF0ZSRcclxuICAgICAgICAgLnBpcGUoZmlyc3QoKG1lc3NhZ2UpID0+IG1lc3NhZ2UgPT09IFwiaWRsZVwiKSlcclxuICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UuY2FwdHVyZWQgPSBmYWxzZTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmNsZWFyVmlzaWJsZVpvbmVzKCk7XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuZHJvcChzb3VyY2VCcmFuY2gsIGRyb3Bab25lLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpKTtcclxuICAgfVxyXG5cclxuICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmRyb3BTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKCRldmVudClcIlxyXG4gICAoZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ2xlYXZlSGFuZGxlcigkZXZlbnQpXCJcclxuICAgKGRyb3ApPVwiZHJvcEhhbmRsZXIoJGV2ZW50KVwiXHJcbj5cclxuICAgPGxpbWJsZS10cmVlLXBsYWNlaG9sZGVyXHJcbiAgICAgICpuZ0lmPVwicGxhY2Vob2xkZXIgPT09IHRydWVcIlxyXG4gICA+PC9saW1ibGUtdHJlZS1wbGFjZWhvbGRlcj5cclxuICAgPG5nLXRlbXBsYXRlICNob3N0PjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU10RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0lDckJ6RSwwQ0FFMkI7OztBRDJCOUIsTUFBTSxPQUFPLHVCQUF1QjtJQW1CakMsWUFDb0IsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxNQUFjLEVBQ2QsaUJBQW9DLEVBQ3BDLEVBQXVCO1FBTnZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtR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Q0FBbUM7Z0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2dCQUNoRCxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDO2FBQ25FOzJPQUdXLElBQUk7a0JBQVosS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFFaUQsSUFBSTtrQkFBMUQsU0FBUzttQkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFJMUIsVUFBVTtrQkFBNUIsTUFBTTtZQUVZLFFBQVE7a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBBZnRlclZpZXdJbml0LFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgQ29tcG9uZW50LFxyXG4gICBFbGVtZW50UmVmLFxyXG4gICBFdmVudEVtaXR0ZXIsXHJcbiAgIElucHV0LFxyXG4gICBOZ1pvbmUsXHJcbiAgIE9uQ2hhbmdlcyxcclxuICAgT25EZXN0cm95LFxyXG4gICBPdXRwdXQsXHJcbiAgIFZpZXdDaGlsZCxcclxuICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERyb3Bab25lU2VydmljZSB9IGZyb20gXCIuL2Ryb3Atem9uZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgIExpbWJsZVRyZWVEYXRhLFxyXG4gICBMaW1ibGVUcmVlT3B0aW9ucyxcclxuICAgVHJlZURyb3BcclxufSBmcm9tIFwiLi4vbGltYmxlLXRyZWUtcm9vdC90cmVlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tIFwiLi90cmVlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgaXNFbGVtZW50RGVzY2VuZGFudCB9IGZyb20gXCIuLi91dGlsXCI7XHJcbmltcG9ydCB7IERyYWdTdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2luZ2xldG9ucy9kcmFnLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsRXZlbnRzU2VydmljZSB9IGZyb20gXCIuLi9zaW5nbGV0b25zL2dsb2JhbC1ldmVudHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmVlQ29uc3RydWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4vdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICBzZWxlY3RvcjogXCJsaW1ibGUtdHJlZS1yb290XCIsXHJcbiAgIHRlbXBsYXRlVXJsOiBcIi4vbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgcHJvdmlkZXJzOiBbVHJlZVNlcnZpY2UsIERyb3Bab25lU2VydmljZSwgVHJlZUNvbnN0cnVjdGlvblN0YXR1c11cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVSb290Q29tcG9uZW50XHJcbiAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICBASW5wdXQoKSBkYXRhOiBMaW1ibGVUcmVlRGF0YSB8IHVuZGVmaW5lZDtcclxuICAgQElucHV0KCkgb3B0aW9uczogTGltYmxlVHJlZU9wdGlvbnMgfCB1bmRlZmluZWQ7XHJcbiAgIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICBASW5wdXQoKSBwYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAVmlld0NoaWxkKFwiaG9zdFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHJpdmF0ZSBob3N0OlxyXG4gICAgICB8IFZpZXdDb250YWluZXJSZWZcclxuICAgICAgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgdHJlZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuXHJcbiAgIEBPdXRwdXQoKSByZWFkb25seSB0cmVlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZURyb3A+KCk7XHJcblxyXG4gICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgcHJpdmF0ZSByZWFkb25seSBkcm9wU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgIHB1YmxpYyBwbGFjZWhvbGRlcjogYm9vbGVhbjtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTZXJ2aWNlOiBUcmVlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcmFnU3RhdGVTZXJ2aWNlOiBEcmFnU3RhdGVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEV2ZW50c1NlcnZpY2U6IEdsb2JhbEV2ZW50c1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XHJcbiAgICkge1xyXG4gICAgICB0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLmNoYW5nZXMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgIC8vXCJJbiBkZXYgbW9kZSwgQW5ndWxhciBwZXJmb3JtcyBhbiBhZGRpdGlvbmFsIGNoZWNrIGFmdGVyIGVhY2ggY2hhbmdlXHJcbiAgICAgICAgIC8vZGV0ZWN0aW9uIHJ1biwgdG8gZW5zdXJlIHRoZSBiaW5kaW5ncyBoYXZlbuKAmXQgY2hhbmdlZC5cIiBXZSB1c2UgYSB0aW1lb3V0IGhlcmVcclxuICAgICAgICAgLy90byBwcmVjbHVkZSB0aGUgcG9zc2liaWxpdHkgb2YgY2F1c2luZyBhIGJpbmRpbmcgdG8gdXBkYXRlIGluIHRoZSBwYXJlbnRcclxuICAgICAgICAgLy9jb21wb25lbnQgYWZ0ZXIgY2hhbmdlIGRldGVjdGlvbiBydW5zIGJ1dCBiZWZvcmUgdGhlIGFkZGl0aW9uYWwgY2hlY2suXHJcbiAgICAgICAgIC8vU2VlIGh0dHBzOi8vYW5ndWxhci5pby9lcnJvcnMvTkcwMTAwIGZvciBkZXRhaWxzLlxyXG4gICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ2hhbmdlLmVtaXQoKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRyb3BTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLmRyb3BzJC5zdWJzY3JpYmUoKGRyb3ApID0+IHtcclxuICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZURyb3AuZW1pdChkcm9wKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UucGxhY2Vob2xkZXIkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgICAgICBpZiAoIU5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRoaXMub3B0aW9ucz8ubGlzdE1vZGUgIT09IHRydWUgJiZcclxuICAgICAgICAgKHRoaXMuaXRlbXNQZXJQYWdlICE9PSB1bmRlZmluZWQgfHwgdGhpcy5wYWdlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICkge1xyXG4gICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAgIFwicGFnaW5hdGlvbiBpcyBvbmx5IGFsbG93ZWQgaW4gbGlzdE1vZGU7IGBpdGVtc1BlclBhZ2VgIGFuZCBgcGFnZWAgaW5wdXRzIHdpbGwgYmUgaWdub3JlZFwiXHJcbiAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgIC8vdGhpcyBpcyBmb3IgbWFjIG9zIC0gd2l0aG91dCB0aGlzIGRyYWdvdmVyIGhhbmRsZXIgZHJvcCBldmVudHMgYXJlbid0IGZpcmluZyBjb3JyZWN0bHlcclxuICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJkcmFnb3ZlclwiLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICB9XHJcblxyXG4gICBuZ09uQ2hhbmdlcygpIHtcclxuICAgICAgaWYgKHRoaXMuaG9zdCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgLyoqIFJlYnVpbGQgdGhlIHRyZWUgKi9cclxuICAgcHVibGljIHVwZGF0ZSgpIHtcclxuICAgICAgaWYgKHRoaXMuaG9zdCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgXCJGYWlsZWQgdG8gcmVuZGVyIGxpbWJsZSB0cmVlLiBGYWlsdXJlIG9jY3VycmVkIGF0IHJvb3QuXCJcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kYXRhID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBsaW1ibGVUcmVlIHJlcXVpcmVzIGEgZGF0YSBvYmplY3RgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmluaXQoXHJcbiAgICAgICAgIHRoaXMuaG9zdCxcclxuICAgICAgICAgdGhpcy5kYXRhLFxyXG4gICAgICAgICB0aGlzLm9wdGlvbnMsXHJcbiAgICAgICAgIHRoaXMuaXRlbXNQZXJQYWdlLFxyXG4gICAgICAgICB0aGlzLnBhZ2VcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5nbG9iYWxFdmVudHNTZXJ2aWNlLmFkZFNjcm9sbGluZygpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgZHJhZ292ZXJIYW5kbGVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgICAgaWYgKGV2ZW50LmRhdGFUcmFuc2ZlciA9PT0gbnVsbCkge1xyXG4gICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gXCJtb3ZlXCI7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcmFnbGVhdmVIYW5kbGVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgICAgY29uc3QgY3VycmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XHJcbiAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0O1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgICEoY3VycmVudFRhcmdldCBpbnN0YW5jZW9mIE5vZGUpIHx8XHJcbiAgICAgICAgICEocmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIE5vZGUpIHx8XHJcbiAgICAgICAgIGlzRWxlbWVudERlc2NlbmRhbnQoY3VycmVudFRhcmdldCwgcmVsYXRlZFRhcmdldCkgIT09IGZhbHNlXHJcbiAgICAgICkge1xyXG4gICAgICAgICAvL2V2ZW50IGNhbWUgZnJvbSBkZWVwZXIgaW4gdGhlIHRyZWUuIElnbm9yZSBpdC5cclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vTW91c2UgaGFzIGxlZnQgdGhlIHRyZWUsIHNvIGNsZWFyIHRoZSBkcm9wIHpvbmVzXHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmNsZWFyVmlzaWJsZVpvbmVzKCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgZHJvcEhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgaWYgKHRoaXMuZHJhZ1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpICE9PSBcImRyb3BwYWJsZVwiKSB7XHJcbiAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzb3VyY2VCcmFuY2ggPSB0aGlzLmRyYWdTdGF0ZVNlcnZpY2UuY2FwdHVyZSgpO1xyXG4gICAgICBpZiAoc291cmNlQnJhbmNoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZmFpbGVkIHRvIGdldCBjdXJyZW50IGJyYW5jaCBpbiBkcmFnZW5kSGFuZGxlclwiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkcm9wWm9uZSA9IHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmdldEFjdGl2ZURyb3Bab25lKCk7XHJcbiAgICAgIGlmIChkcm9wWm9uZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gZ2V0IGFjdGl2ZSBkcm9wIHpvbmUgYXQgZHJvcCBoYW5kbGVyXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuY2FwdHVyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRyYWdTdGF0ZVNlcnZpY2Uuc3RhdGUkXHJcbiAgICAgICAgIC5waXBlKGZpcnN0KChtZXNzYWdlKSA9PiBtZXNzYWdlID09PSBcImlkbGVcIikpXHJcbiAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNhcHR1cmVkID0gZmFsc2U7XHJcbiAgICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5jbGVhclZpc2libGVab25lcygpO1xyXG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmRyb3Aoc291cmNlQnJhbmNoLCBkcm9wWm9uZS5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKSk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICB0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5kcm9wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgIChkcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0KT1cImRyYWdvdmVySGFuZGxlcigkZXZlbnQpXCJcclxuICAgKGRyYWdsZWF2ZU5vQ2hhbmdlRGV0ZWN0KT1cImRyYWdsZWF2ZUhhbmRsZXIoJGV2ZW50KVwiXHJcbiAgIChkcm9wKT1cImRyb3BIYW5kbGVyKCRldmVudClcIlxyXG4+XHJcbiAgIDxsaW1ibGUtdHJlZS1wbGFjZWhvbGRlclxyXG4gICAgICAqbmdJZj1cInBsYWNlaG9sZGVyID09PSB0cnVlXCJcclxuICAgPjwvbGltYmxlLXRyZWUtcGxhY2Vob2xkZXI+XHJcbiAgIDxuZy10ZW1wbGF0ZSAjaG9zdD48L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19

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

import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy } from "@angular/core";
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy } from "@angular/core";
import { DropZoneService } from "./drop-zone.service";

@@ -13,3 +13,5 @@ import { LimbleTreeData, LimbleTreeOptions, TreeDrop } from "../limble-tree-root/tree.service";

private readonly globalEventsService;
private readonly ngZone;
private readonly changeDetectorRef;
private readonly el;
data: LimbleTreeData | undefined;

@@ -25,3 +27,3 @@ options: LimbleTreeOptions | undefined;

placeholder: boolean;
constructor(treeService: TreeService, dropZoneService: DropZoneService, dragStateService: DragStateService, globalEventsService: GlobalEventsService, changeDetectorRef: ChangeDetectorRef);
constructor(treeService: TreeService, dropZoneService: DropZoneService, dragStateService: DragStateService, globalEventsService: GlobalEventsService, ngZone: NgZone, changeDetectorRef: ChangeDetectorRef, el: ElementRef<Element>);
ngAfterViewInit(): void;

@@ -28,0 +30,0 @@ ngOnChanges(): void;

{
"name": "@limble/limble-tree",
"version": "0.11.7",
"version": "0.11.8",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^11.2.5",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc