Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ngx-drag-drop

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-drag-drop - npm Package Compare versions

Comparing version 2.0.0-rc.5 to 2.0.0-rc.6

22

bundles/ngx-drag-drop.umd.js

@@ -348,2 +348,12 @@ (function (global, factory) {

});
Object.defineProperty(DndDraggableDirective.prototype, "dndDisableDragIf", {
set: /**
* @param {?} value
* @return {?}
*/ function (value) {
this.dndDisableIf = value;
},
enumerable: true,
configurable: true
});
/**

@@ -536,2 +546,3 @@ * @return {?}

dndDisableIf: [{ type: core.Input }],
dndDisableDragIf: [{ type: core.Input }],
onDragStart: [{ type: core.HostListener, args: ["dragstart", ["$event"],] }],

@@ -607,2 +618,12 @@ onDragEnd: [{ type: core.HostListener, args: ["dragend", ["$event"],] }]

});
Object.defineProperty(DndDropzoneDirective.prototype, "dndDisableDropIf", {
set: /**
* @param {?} value
* @return {?}
*/ function (value) {
this.dndDisableIf = value;
},
enumerable: true,
configurable: true
});
/**

@@ -936,2 +957,3 @@ * @return {?}

dndDisableIf: [{ type: core.Input }],
dndDisableDropIf: [{ type: core.Input }],
onDrop: [{ type: core.HostListener, args: ["drop", ["$event"],] }]

@@ -938,0 +960,0 @@ };

2

bundles/ngx-drag-drop.umd.min.js

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-drag-drop",["exports","@angular/core","@angular/common"],t):t(e["ngx-drag-drop"]={},e.ng.core,e.ng.common)}(this,function(e,d,t){"use strict";var s=["move","copy","link"],l="application/x-dnd",f="application/json",p="Text";function i(e){return e.substr(0,l.length)===l}function o(e){if(e.dataTransfer){var t=e.dataTransfer.types;if(!t)return p;for(var n=0;n<t.length;n++)if(t[n]===p||t[n]===f||i(t[n]))return t[n]}return null}function g(e,t){return"all"===t||"uninitialized"===t?e:e.filter(function(e){return-1!==t.toLowerCase().indexOf(e)})}function a(e,t){var n=window.getComputedStyle(t),r=parseFloat(n.paddingTop)||0,d=parseFloat(n.paddingLeft)||0,a=parseFloat(n.borderTopWidth)||0,i=parseFloat(n.borderLeftWidth)||0;return{x:e.offsetX+d+i,y:e.offsetY+r+a}}var u={isDragging:!1,dropEffect:"none",effectAllowed:"all",type:undefined};function c(e,t){!0===u.isDragging&&(u.dropEffect=t),e.dataTransfer.dropEffect=t}function h(e,t){var n=e.dataTransfer?e.dataTransfer.effectAllowed:"uninitialized",r=g(s,n);return!0===u.isDragging&&(r=g(r,u.effectAllowed)),t&&(r=g(r,t)),0===r.length?"none":e.ctrlKey&&-1!==r.indexOf("copy")?"copy":e.altKey&&-1!==r.indexOf("link")?"link":r[0]}function v(e){if(!0===u.isDragging)return u.type;var t=o(e);return null===t?undefined:t===p||t===f?undefined:t.substr(l.length+1)||undefined}function m(){return!1===u.isDragging}var D=u,n=function(){function e(e,t){e.registerDragImage(t)}return e.decorators=[{type:d.Directive,args:[{selector:"[dndDragImageRef]"}]}],e.ctorParameters=function(){return[{type:r},{type:d.ElementRef}]},e}(),r=function(){function e(e,t,n){var r=this;this.elementRef=e,this.renderer=t,this.ngZone=n,this.dndEffectAllowed="copy",this.dndDraggingClass="dndDragging",this.dndDraggingSourceClass="dndDraggingSource",this.dndDraggableDisabledClass="dndDraggableDisabled",this.dndDragImageOffsetFunction=a,this.dndStart=new d.EventEmitter,this.dndDrag=new d.EventEmitter,this.dndEnd=new d.EventEmitter,this.dndMoved=new d.EventEmitter,this.dndCopied=new d.EventEmitter,this.dndLinked=new d.EventEmitter,this.dndCanceled=new d.EventEmitter,this.draggable=!0,this.dragEventHandler=function(e){return r.onDrag(e)}}return Object.defineProperty(e.prototype,"dndDisableIf",{set:function(e){this.draggable=!e,this.draggable?this.renderer.removeClass(this.elementRef.nativeElement,this.dndDraggableDisabledClass):this.renderer.addClass(this.elementRef.nativeElement,this.dndDraggableDisabledClass)},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this.ngZone.runOutsideAngular(function(){e.elementRef.nativeElement.addEventListener("drag",e.dragEventHandler)})},e.prototype.ngOnDestroy=function(){this.elementRef.nativeElement.removeEventListener("drag",this.dragEventHandler)},e.prototype.onDragStart=function(e){var t=this;if(!1===this.draggable)return!1;if("undefined"!=typeof this.dndHandle&&"undefined"==typeof e._dndUsingHandle)return!1;!function r(e,t,n){u.isDragging=!0,u.dropEffect="none",u.effectAllowed=t,u.type=n,e.dataTransfer.effectAllowed=t}(e,this.dndEffectAllowed,this.dndType),function o(e,t,n){var r=l+(t.type?"-"+t.type:""),d=JSON.stringify(t);try{e.dataTransfer.setData(r,d)}catch(i){try{e.dataTransfer.setData(f,d)}catch(i){var a=g(s,n);e.dataTransfer.effectAllowed=a[0],e.dataTransfer.setData(p,d)}}}(e,{data:this.dndDraggable,type:this.dndType},D.effectAllowed),this.dragImage=this.determineDragImage(),this.renderer.addClass(this.dragImage,this.dndDraggingClass),"undefined"==typeof this.dndDragImageElementRef&&"undefined"==typeof e._dndUsingHandle||function d(e,t,n){var r=n(e,t)||{x:0,y:0};e.dataTransfer.setDragImage(t,r.x,r.y)}(e,this.dragImage,this.dndDragImageOffsetFunction);var n=this.renderer.listen(this.elementRef.nativeElement,"drag",function(){t.renderer.addClass(t.elementRef.nativeElement,t.dndDraggingSourceClass),n()});this.dndStart.emit(e),e.stopPropagation()},e.prototype.onDrag=function(e){this.dndDrag.emit(e)},e.prototype.onDragEnd=function(e){var t,n=this;switch(D.dropEffect){case"copy":t=this.dndCopied;break;case"link":t=this.dndLinked;break;case"move":t=this.dndMoved;break;default:t=this.dndCanceled}t.emit(e),this.dndEnd.emit(e),function r(){u.isDragging=!1,u.dropEffect=undefined,u.effectAllowed=undefined,u.type=undefined}(),this.renderer.removeClass(this.dragImage,this.dndDraggingClass),window.setTimeout(function(){n.renderer.removeClass(n.elementRef.nativeElement,n.dndDraggingSourceClass)},0),e.stopPropagation()},e.prototype.registerDragHandle=function(e){this.dndHandle=e},e.prototype.registerDragImage=function(e){this.dndDragImageElementRef=e},e.prototype.determineDragImage=function(){return"undefined"!=typeof this.dndDragImageElementRef?this.dndDragImageElementRef.nativeElement:this.elementRef.nativeElement},e.decorators=[{type:d.Directive,args:[{selector:"[dndDraggable]"}]}],e.ctorParameters=function(){return[{type:d.ElementRef},{type:d.Renderer2},{type:d.NgZone}]},e.propDecorators={dndDraggable:[{type:d.Input}],dndEffectAllowed:[{type:d.Input}],dndType:[{type:d.Input}],dndDraggingClass:[{type:d.Input}],dndDraggingSourceClass:[{type:d.Input}],dndDraggableDisabledClass:[{type:d.Input}],dndDragImageOffsetFunction:[{type:d.Input}],dndStart:[{type:d.Output}],dndDrag:[{type:d.Output}],dndEnd:[{type:d.Output}],dndMoved:[{type:d.Output}],dndCopied:[{type:d.Output}],dndLinked:[{type:d.Output}],dndCanceled:[{type:d.Output}],draggable:[{type:d.HostBinding,args:["attr.draggable"]}],dndDisableIf:[{type:d.Input}],onDragStart:[{type:d.HostListener,args:["dragstart",["$event"]]}],onDragEnd:[{type:d.HostListener,args:["dragend",["$event"]]}]},e}(),y=function(){function e(e){this.elementRef=e}return e.decorators=[{type:d.Directive,args:[{selector:"[dndPlaceholderRef]"}]}],e.ctorParameters=function(){return[{type:d.ElementRef}]},e}(),E=function(){function e(e,t,n){var r=this;this.ngZone=e,this.elementRef=t,this.renderer=n,this.dndAllowExternal=!1,this.dndHorizontal=!1,this.dndDragoverClass="dndDragover",this.dndDropzoneDisabledClass="dndDropzoneDisabled",this.dndDragover=new d.EventEmitter,this.dndDrop=new d.EventEmitter,this.placeholder=null,this.disabled=!1,this.dragEnterEventHandler=function(e){return r.onDragEnter(e)},this.dragOverEventHandler=function(e){return r.onDragOver(e)},this.dragLeaveEventHandler=function(e){return r.onDragLeave(e)}}return Object.defineProperty(e.prototype,"dndDisableIf",{set:function(e){this.disabled=!!e,this.disabled?this.renderer.addClass(this.elementRef.nativeElement,this.dndDropzoneDisabledClass):this.renderer.removeClass(this.elementRef.nativeElement,this.dndDropzoneDisabledClass)},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this.placeholder=this.tryGetPlaceholder(),this.removePlaceholderFromDOM(),this.ngZone.runOutsideAngular(function(){e.elementRef.nativeElement.addEventListener("dragenter",e.dragEnterEventHandler),e.elementRef.nativeElement.addEventListener("dragover",e.dragOverEventHandler),e.elementRef.nativeElement.addEventListener("dragleave",e.dragLeaveEventHandler)})},e.prototype.ngOnDestroy=function(){this.elementRef.nativeElement.removeEventListener("dragenter",this.dragEnterEventHandler),this.elementRef.nativeElement.removeEventListener("dragover",this.dragOverEventHandler),this.elementRef.nativeElement.removeEventListener("dragleave",this.dragLeaveEventHandler)},e.prototype.onDragEnter=function(e){if(!0!==e._dndDropzoneActive){if("undefined"==typeof e._dndDropzoneActive){var t=document.elementFromPoint(e.clientX,e.clientY);this.elementRef.nativeElement.contains(t)&&(e._dndDropzoneActive=!0)}var n=v(e);!1!==this.isDropAllowed(n)&&e.preventDefault()}else this.cleanupDragoverState()},e.prototype.onDragOver=function(e){if(!e.defaultPrevented){var t=v(e);if(!1!==this.isDropAllowed(t)){this.checkAndUpdatePlaceholderPosition(e);var n=h(e,this.dndEffectAllowed);"none"!==n?(e.preventDefault(),c(e,n),this.dndDragover.emit(e),this.renderer.addClass(this.elementRef.nativeElement,this.dndDragoverClass)):this.cleanupDragoverState()}}},e.prototype.onDrop=function(e){try{var t=v(e);if(!1===this.isDropAllowed(t))return;var n=function a(e,t){var n=o(e);return!0===t?null!==n&&i(n)?JSON.parse(e.dataTransfer.getData(n)):{}:JSON.parse(e.dataTransfer.getData(n))}(e,m());if(!1===this.isDropAllowed(n.type))return;e.preventDefault();var r=h(e);if(c(e,r),"none"===r)return;var d=this.getPlaceholderIndex();if(-1===d)return;this.dndDrop.emit({event:e,dropEffect:r,isExternal:m(),data:n.data,index:d,type:t}),e.stopPropagation()}finally{this.cleanupDragoverState()}},e.prototype.onDragLeave=function(e){if("undefined"==typeof e._dndDropzoneActive){var t=document.elementFromPoint(e.clientX,e.clientY);if(this.elementRef.nativeElement.contains(t))return void(e._dndDropzoneActive=!0)}this.cleanupDragoverState(),c(e,"none")},e.prototype.isDropAllowed=function(e){if(!0===this.disabled)return!1;if(!0===m()&&!1===this.dndAllowExternal)return!1;if(!this.dndDropzone)return!0;if(!e)return!0;if(!1===Array.isArray(this.dndDropzone))throw new Error("dndDropzone: bound value to [dndDropzone] must be an array!");return-1!==this.dndDropzone.indexOf(e)},e.prototype.tryGetPlaceholder=function(){return"undefined"!=typeof this.dndPlaceholderRef?this.dndPlaceholderRef.elementRef.nativeElement:this.elementRef.nativeElement.querySelector("[dndPlaceholderRef]")},e.prototype.removePlaceholderFromDOM=function(){null!==this.placeholder&&null!==this.placeholder.parentNode&&this.placeholder.parentNode.removeChild(this.placeholder)},e.prototype.checkAndUpdatePlaceholderPosition=function(e){if(null!==this.placeholder){this.placeholder.parentNode!==this.elementRef.nativeElement&&this.renderer.appendChild(this.elementRef.nativeElement,this.placeholder);var t=function r(e,t){for(var n=t;n.parentNode!==e;){if(!n.parentNode)return null;n=n.parentNode}return n}(this.elementRef.nativeElement,e.target);if(null!==t&&t!==this.placeholder)(function d(e,t,n){var r=t.getBoundingClientRect();return n?e.clientX<r.left+r.width/2:e.clientY<r.top+r.height/2})(e,t,this.dndHorizontal)?t.previousSibling!==this.placeholder&&this.renderer.insertBefore(this.elementRef.nativeElement,this.placeholder,t):t.nextSibling!==this.placeholder&&this.renderer.insertBefore(this.elementRef.nativeElement,this.placeholder,t.nextSibling)}},e.prototype.getPlaceholderIndex=function(){if(null===this.placeholder)return undefined;var e=this.elementRef.nativeElement;return Array.prototype.indexOf.call(e.children,this.placeholder)},e.prototype.cleanupDragoverState=function(){this.renderer.removeClass(this.elementRef.nativeElement,this.dndDragoverClass),this.removePlaceholderFromDOM()},e.decorators=[{type:d.Directive,args:[{selector:"[dndDropzone]"}]}],e.ctorParameters=function(){return[{type:d.NgZone},{type:d.ElementRef},{type:d.Renderer2}]},e.propDecorators={dndDropzone:[{type:d.Input}],dndEffectAllowed:[{type:d.Input}],dndAllowExternal:[{type:d.Input}],dndHorizontal:[{type:d.Input}],dndDragoverClass:[{type:d.Input}],dndDropzoneDisabledClass:[{type:d.Input}],dndDragover:[{type:d.Output}],dndDrop:[{type:d.Output}],dndPlaceholderRef:[{type:d.ContentChild,args:[y]}],dndDisableIf:[{type:d.Input}],onDrop:[{type:d.HostListener,args:["drop",["$event"]]}]},e}(),b=function(){function e(e){this.draggable=!0,e.registerDragHandle(this)}return e.prototype.onDragEvent=function(e){e._dndUsingHandle=!0},e.decorators=[{type:d.Directive,args:[{selector:"[dndHandle]"}]}],e.ctorParameters=function(){return[{type:r}]},e.propDecorators={draggable:[{type:d.HostBinding,args:["attr.draggable"]}],onDragEvent:[{type:d.HostListener,args:["dragstart",["$event"]]},{type:d.HostListener,args:["dragend",["$event"]]}]},e}(),R=function(){function e(){}return e.decorators=[{type:d.NgModule,args:[{imports:[t.CommonModule],declarations:[r,E,b,y,n],exports:[r,E,b,y,n]}]}],e}();e.DndDragImageRefDirective=n,e.DndDraggableDirective=r,e.DndPlaceholderRefDirective=y,e.DndDropzoneDirective=E,e.DndHandleDirective=b,e.DndModule=R,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-drag-drop",["exports","@angular/core","@angular/common"],t):t(e["ngx-drag-drop"]={},e.ng.core,e.ng.common)}(this,function(e,d,t){"use strict";var s=["move","copy","link"],l="application/x-dnd",f="application/json",p="Text";function i(e){return e.substr(0,l.length)===l}function o(e){if(e.dataTransfer){var t=e.dataTransfer.types;if(!t)return p;for(var n=0;n<t.length;n++)if(t[n]===p||t[n]===f||i(t[n]))return t[n]}return null}function g(e,t){return"all"===t||"uninitialized"===t?e:e.filter(function(e){return-1!==t.toLowerCase().indexOf(e)})}function a(e,t){var n=window.getComputedStyle(t),r=parseFloat(n.paddingTop)||0,d=parseFloat(n.paddingLeft)||0,a=parseFloat(n.borderTopWidth)||0,i=parseFloat(n.borderLeftWidth)||0;return{x:e.offsetX+d+i,y:e.offsetY+r+a}}var u={isDragging:!1,dropEffect:"none",effectAllowed:"all",type:undefined};function c(e,t){!0===u.isDragging&&(u.dropEffect=t),e.dataTransfer.dropEffect=t}function h(e,t){var n=e.dataTransfer?e.dataTransfer.effectAllowed:"uninitialized",r=g(s,n);return!0===u.isDragging&&(r=g(r,u.effectAllowed)),t&&(r=g(r,t)),0===r.length?"none":e.ctrlKey&&-1!==r.indexOf("copy")?"copy":e.altKey&&-1!==r.indexOf("link")?"link":r[0]}function v(e){if(!0===u.isDragging)return u.type;var t=o(e);return null===t?undefined:t===p||t===f?undefined:t.substr(l.length+1)||undefined}function D(){return!1===u.isDragging}var m=u,n=function(){function e(e,t){e.registerDragImage(t)}return e.decorators=[{type:d.Directive,args:[{selector:"[dndDragImageRef]"}]}],e.ctorParameters=function(){return[{type:r},{type:d.ElementRef}]},e}(),r=function(){function e(e,t,n){var r=this;this.elementRef=e,this.renderer=t,this.ngZone=n,this.dndEffectAllowed="copy",this.dndDraggingClass="dndDragging",this.dndDraggingSourceClass="dndDraggingSource",this.dndDraggableDisabledClass="dndDraggableDisabled",this.dndDragImageOffsetFunction=a,this.dndStart=new d.EventEmitter,this.dndDrag=new d.EventEmitter,this.dndEnd=new d.EventEmitter,this.dndMoved=new d.EventEmitter,this.dndCopied=new d.EventEmitter,this.dndLinked=new d.EventEmitter,this.dndCanceled=new d.EventEmitter,this.draggable=!0,this.dragEventHandler=function(e){return r.onDrag(e)}}return Object.defineProperty(e.prototype,"dndDisableIf",{set:function(e){this.draggable=!e,this.draggable?this.renderer.removeClass(this.elementRef.nativeElement,this.dndDraggableDisabledClass):this.renderer.addClass(this.elementRef.nativeElement,this.dndDraggableDisabledClass)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dndDisableDragIf",{set:function(e){this.dndDisableIf=e},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this.ngZone.runOutsideAngular(function(){e.elementRef.nativeElement.addEventListener("drag",e.dragEventHandler)})},e.prototype.ngOnDestroy=function(){this.elementRef.nativeElement.removeEventListener("drag",this.dragEventHandler)},e.prototype.onDragStart=function(e){var t=this;if(!1===this.draggable)return!1;if("undefined"!=typeof this.dndHandle&&"undefined"==typeof e._dndUsingHandle)return!1;!function r(e,t,n){u.isDragging=!0,u.dropEffect="none",u.effectAllowed=t,u.type=n,e.dataTransfer.effectAllowed=t}(e,this.dndEffectAllowed,this.dndType),function o(e,t,n){var r=l+(t.type?"-"+t.type:""),d=JSON.stringify(t);try{e.dataTransfer.setData(r,d)}catch(i){try{e.dataTransfer.setData(f,d)}catch(i){var a=g(s,n);e.dataTransfer.effectAllowed=a[0],e.dataTransfer.setData(p,d)}}}(e,{data:this.dndDraggable,type:this.dndType},m.effectAllowed),this.dragImage=this.determineDragImage(),this.renderer.addClass(this.dragImage,this.dndDraggingClass),"undefined"==typeof this.dndDragImageElementRef&&"undefined"==typeof e._dndUsingHandle||function d(e,t,n){var r=n(e,t)||{x:0,y:0};e.dataTransfer.setDragImage(t,r.x,r.y)}(e,this.dragImage,this.dndDragImageOffsetFunction);var n=this.renderer.listen(this.elementRef.nativeElement,"drag",function(){t.renderer.addClass(t.elementRef.nativeElement,t.dndDraggingSourceClass),n()});this.dndStart.emit(e),e.stopPropagation()},e.prototype.onDrag=function(e){this.dndDrag.emit(e)},e.prototype.onDragEnd=function(e){var t,n=this;switch(m.dropEffect){case"copy":t=this.dndCopied;break;case"link":t=this.dndLinked;break;case"move":t=this.dndMoved;break;default:t=this.dndCanceled}t.emit(e),this.dndEnd.emit(e),function r(){u.isDragging=!1,u.dropEffect=undefined,u.effectAllowed=undefined,u.type=undefined}(),this.renderer.removeClass(this.dragImage,this.dndDraggingClass),window.setTimeout(function(){n.renderer.removeClass(n.elementRef.nativeElement,n.dndDraggingSourceClass)},0),e.stopPropagation()},e.prototype.registerDragHandle=function(e){this.dndHandle=e},e.prototype.registerDragImage=function(e){this.dndDragImageElementRef=e},e.prototype.determineDragImage=function(){return"undefined"!=typeof this.dndDragImageElementRef?this.dndDragImageElementRef.nativeElement:this.elementRef.nativeElement},e.decorators=[{type:d.Directive,args:[{selector:"[dndDraggable]"}]}],e.ctorParameters=function(){return[{type:d.ElementRef},{type:d.Renderer2},{type:d.NgZone}]},e.propDecorators={dndDraggable:[{type:d.Input}],dndEffectAllowed:[{type:d.Input}],dndType:[{type:d.Input}],dndDraggingClass:[{type:d.Input}],dndDraggingSourceClass:[{type:d.Input}],dndDraggableDisabledClass:[{type:d.Input}],dndDragImageOffsetFunction:[{type:d.Input}],dndStart:[{type:d.Output}],dndDrag:[{type:d.Output}],dndEnd:[{type:d.Output}],dndMoved:[{type:d.Output}],dndCopied:[{type:d.Output}],dndLinked:[{type:d.Output}],dndCanceled:[{type:d.Output}],draggable:[{type:d.HostBinding,args:["attr.draggable"]}],dndDisableIf:[{type:d.Input}],dndDisableDragIf:[{type:d.Input}],onDragStart:[{type:d.HostListener,args:["dragstart",["$event"]]}],onDragEnd:[{type:d.HostListener,args:["dragend",["$event"]]}]},e}(),y=function(){function e(e){this.elementRef=e}return e.decorators=[{type:d.Directive,args:[{selector:"[dndPlaceholderRef]"}]}],e.ctorParameters=function(){return[{type:d.ElementRef}]},e}(),E=function(){function e(e,t,n){var r=this;this.ngZone=e,this.elementRef=t,this.renderer=n,this.dndAllowExternal=!1,this.dndHorizontal=!1,this.dndDragoverClass="dndDragover",this.dndDropzoneDisabledClass="dndDropzoneDisabled",this.dndDragover=new d.EventEmitter,this.dndDrop=new d.EventEmitter,this.placeholder=null,this.disabled=!1,this.dragEnterEventHandler=function(e){return r.onDragEnter(e)},this.dragOverEventHandler=function(e){return r.onDragOver(e)},this.dragLeaveEventHandler=function(e){return r.onDragLeave(e)}}return Object.defineProperty(e.prototype,"dndDisableIf",{set:function(e){this.disabled=!!e,this.disabled?this.renderer.addClass(this.elementRef.nativeElement,this.dndDropzoneDisabledClass):this.renderer.removeClass(this.elementRef.nativeElement,this.dndDropzoneDisabledClass)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dndDisableDropIf",{set:function(e){this.dndDisableIf=e},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this.placeholder=this.tryGetPlaceholder(),this.removePlaceholderFromDOM(),this.ngZone.runOutsideAngular(function(){e.elementRef.nativeElement.addEventListener("dragenter",e.dragEnterEventHandler),e.elementRef.nativeElement.addEventListener("dragover",e.dragOverEventHandler),e.elementRef.nativeElement.addEventListener("dragleave",e.dragLeaveEventHandler)})},e.prototype.ngOnDestroy=function(){this.elementRef.nativeElement.removeEventListener("dragenter",this.dragEnterEventHandler),this.elementRef.nativeElement.removeEventListener("dragover",this.dragOverEventHandler),this.elementRef.nativeElement.removeEventListener("dragleave",this.dragLeaveEventHandler)},e.prototype.onDragEnter=function(e){if(!0!==e._dndDropzoneActive){if("undefined"==typeof e._dndDropzoneActive){var t=document.elementFromPoint(e.clientX,e.clientY);this.elementRef.nativeElement.contains(t)&&(e._dndDropzoneActive=!0)}var n=v(e);!1!==this.isDropAllowed(n)&&e.preventDefault()}else this.cleanupDragoverState()},e.prototype.onDragOver=function(e){if(!e.defaultPrevented){var t=v(e);if(!1!==this.isDropAllowed(t)){this.checkAndUpdatePlaceholderPosition(e);var n=h(e,this.dndEffectAllowed);"none"!==n?(e.preventDefault(),c(e,n),this.dndDragover.emit(e),this.renderer.addClass(this.elementRef.nativeElement,this.dndDragoverClass)):this.cleanupDragoverState()}}},e.prototype.onDrop=function(e){try{var t=v(e);if(!1===this.isDropAllowed(t))return;var n=function a(e,t){var n=o(e);return!0===t?null!==n&&i(n)?JSON.parse(e.dataTransfer.getData(n)):{}:JSON.parse(e.dataTransfer.getData(n))}(e,D());if(!1===this.isDropAllowed(n.type))return;e.preventDefault();var r=h(e);if(c(e,r),"none"===r)return;var d=this.getPlaceholderIndex();if(-1===d)return;this.dndDrop.emit({event:e,dropEffect:r,isExternal:D(),data:n.data,index:d,type:t}),e.stopPropagation()}finally{this.cleanupDragoverState()}},e.prototype.onDragLeave=function(e){if("undefined"==typeof e._dndDropzoneActive){var t=document.elementFromPoint(e.clientX,e.clientY);if(this.elementRef.nativeElement.contains(t))return void(e._dndDropzoneActive=!0)}this.cleanupDragoverState(),c(e,"none")},e.prototype.isDropAllowed=function(e){if(!0===this.disabled)return!1;if(!0===D()&&!1===this.dndAllowExternal)return!1;if(!this.dndDropzone)return!0;if(!e)return!0;if(!1===Array.isArray(this.dndDropzone))throw new Error("dndDropzone: bound value to [dndDropzone] must be an array!");return-1!==this.dndDropzone.indexOf(e)},e.prototype.tryGetPlaceholder=function(){return"undefined"!=typeof this.dndPlaceholderRef?this.dndPlaceholderRef.elementRef.nativeElement:this.elementRef.nativeElement.querySelector("[dndPlaceholderRef]")},e.prototype.removePlaceholderFromDOM=function(){null!==this.placeholder&&null!==this.placeholder.parentNode&&this.placeholder.parentNode.removeChild(this.placeholder)},e.prototype.checkAndUpdatePlaceholderPosition=function(e){if(null!==this.placeholder){this.placeholder.parentNode!==this.elementRef.nativeElement&&this.renderer.appendChild(this.elementRef.nativeElement,this.placeholder);var t=function r(e,t){for(var n=t;n.parentNode!==e;){if(!n.parentNode)return null;n=n.parentNode}return n}(this.elementRef.nativeElement,e.target);if(null!==t&&t!==this.placeholder)(function d(e,t,n){var r=t.getBoundingClientRect();return n?e.clientX<r.left+r.width/2:e.clientY<r.top+r.height/2})(e,t,this.dndHorizontal)?t.previousSibling!==this.placeholder&&this.renderer.insertBefore(this.elementRef.nativeElement,this.placeholder,t):t.nextSibling!==this.placeholder&&this.renderer.insertBefore(this.elementRef.nativeElement,this.placeholder,t.nextSibling)}},e.prototype.getPlaceholderIndex=function(){if(null===this.placeholder)return undefined;var e=this.elementRef.nativeElement;return Array.prototype.indexOf.call(e.children,this.placeholder)},e.prototype.cleanupDragoverState=function(){this.renderer.removeClass(this.elementRef.nativeElement,this.dndDragoverClass),this.removePlaceholderFromDOM()},e.decorators=[{type:d.Directive,args:[{selector:"[dndDropzone]"}]}],e.ctorParameters=function(){return[{type:d.NgZone},{type:d.ElementRef},{type:d.Renderer2}]},e.propDecorators={dndDropzone:[{type:d.Input}],dndEffectAllowed:[{type:d.Input}],dndAllowExternal:[{type:d.Input}],dndHorizontal:[{type:d.Input}],dndDragoverClass:[{type:d.Input}],dndDropzoneDisabledClass:[{type:d.Input}],dndDragover:[{type:d.Output}],dndDrop:[{type:d.Output}],dndPlaceholderRef:[{type:d.ContentChild,args:[y]}],dndDisableIf:[{type:d.Input}],dndDisableDropIf:[{type:d.Input}],onDrop:[{type:d.HostListener,args:["drop",["$event"]]}]},e}(),b=function(){function e(e){this.draggable=!0,e.registerDragHandle(this)}return e.prototype.onDragEvent=function(e){e._dndUsingHandle=!0},e.decorators=[{type:d.Directive,args:[{selector:"[dndHandle]"}]}],e.ctorParameters=function(){return[{type:r}]},e.propDecorators={draggable:[{type:d.HostBinding,args:["attr.draggable"]}],onDragEvent:[{type:d.HostListener,args:["dragstart",["$event"]]},{type:d.HostListener,args:["dragend",["$event"]]}]},e}(),R=function(){function e(){}return e.decorators=[{type:d.NgModule,args:[{imports:[t.CommonModule],declarations:[r,E,b,y,n],exports:[r,E,b,y,n]}]}],e}();e.DndDragImageRefDirective=n,e.DndDraggableDirective=r,e.DndPlaceholderRefDirective=y,e.DndDropzoneDirective=E,e.DndHandleDirective=b,e.DndModule=R,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-drag-drop.umd.min.js.map

@@ -32,2 +32,3 @@ import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, Renderer2 } from "@angular/core";

dndDisableIf: boolean;
dndDisableDragIf: boolean;
constructor(elementRef: ElementRef, renderer: Renderer2, ngZone: NgZone);

@@ -34,0 +35,0 @@ ngAfterViewInit(): void;

@@ -35,2 +35,3 @@ import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, Renderer2 } from "@angular/core";

dndDisableIf: boolean;
dndDisableDropIf: boolean;
constructor(ngZone: NgZone, elementRef: ElementRef, renderer: Renderer2);

@@ -37,0 +38,0 @@ ngAfterViewInit(): void;

@@ -70,4 +70,11 @@ /**

/**
* @param {?} value
* @return {?}
*/
set dndDisableDragIf(value) {
this.dndDisableIf = value;
}
/**
* @return {?}
*/
ngAfterViewInit() {

@@ -226,2 +233,3 @@ this.ngZone.runOutsideAngular((/**

dndDisableIf: [{ type: Input }],
dndDisableDragIf: [{ type: Input }],
onDragStart: [{ type: HostListener, args: ["dragstart", ["$event"],] }],

@@ -297,2 +305,2 @@ onDragEnd: [{ type: HostListener, args: ["dragend", ["$event"],] }]

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZHJhZy1kcm9wLyIsInNvdXJjZXMiOlsiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFBRSxNQUFNLEVBQ2IsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQXdDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTTNELE1BQU0sT0FBTyx3QkFBd0I7Ozs7O0lBRW5DLFlBQWEsTUFBNEIsRUFDNUIsVUFBcUI7UUFFaEMsTUFBTSxDQUFDLGlCQUFpQixDQUFFLFVBQVUsQ0FBRSxDQUFDO0lBQ3pDLENBQUM7OztZQVRGLFNBQVMsU0FBRTtnQkFDVixRQUFRLEVBQUUsbUJBQW1CO2FBQzlCOzs7O1lBR3FCLHFCQUFxQjtZQWxCekMsVUFBVTs7QUE0QlosTUFBTSxPQUFPLHFCQUFxQjs7Ozs7O0lBc0VoQyxZQUFxQixVQUFxQixFQUNyQixRQUFrQixFQUNsQixNQUFhO1FBRmIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQU87UUFsRWxDLHFCQUFnQixHQUFpQixNQUFNLENBQUM7UUFNeEMscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBR2pDLDJCQUFzQixHQUFHLG1CQUFtQixDQUFDO1FBRzdDLDhCQUF5QixHQUFHLHNCQUFzQixDQUFDO1FBR25ELCtCQUEwQixHQUE4Qix3QkFBd0IsQ0FBQztRQUd4RSxhQUFRLEdBQTJCLElBQUks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UUFBUSxDQUFFOzs7O0lBdkl0Qyw2Q0FDaUI7O0lBRWpCLGlEQUN3Qzs7SUFFeEMsd0NBQ2dCOztJQUVoQixpREFDaUM7O0lBRWpDLHVEQUM2Qzs7SUFFN0MsMERBQ21EOztJQUVuRCwyREFDaUY7O0lBRWpGLHlDQUMwRTs7SUFFMUUsd0NBQ3lFOztJQUV6RSx1Q0FDd0U7O0lBRXhFLHlDQUMwRTs7SUFFMUUsMENBQzJFOztJQUUzRSwwQ0FDMkU7O0lBRTNFLDRDQUM2RTs7SUFFN0UsMENBQ2lCOzs7OztJQUVqQiwwQ0FBc0M7Ozs7O0lBRXRDLHVEQUEyQzs7Ozs7SUFFM0MsMENBQTBCOzs7OztJQUUxQixpREFBNEc7Ozs7O0lBaUIvRiwyQ0FBNkI7Ozs7O0lBQzdCLHlDQUEwQjs7Ozs7SUFDMUIsdUNBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZURyYWdJbWFnZU9mZnNldCwgRG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb24sIERuZEV2ZW50LCBzZXREcmFnRGF0YSwgc2V0RHJhZ0ltYWdlIH0gZnJvbSBcIi4vZG5kLXV0aWxzXCI7XG5pbXBvcnQgeyBEbmRIYW5kbGVEaXJlY3RpdmUgfSBmcm9tIFwiLi9kbmQtaGFuZGxlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgZG5kU3RhdGUsIGVuZERyYWcsIHN0YXJ0RHJhZyB9IGZyb20gXCIuL2RuZC1zdGF0ZVwiO1xuaW1wb3J0IHsgRWZmZWN0QWxsb3dlZCB9IGZyb20gXCIuL2RuZC10eXBlc1wiO1xuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmREcmFnSW1hZ2VSZWZdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyYWdJbWFnZVJlZkRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoIHBhcmVudDpEbmREcmFnZ2FibGVEaXJlY3RpdmUsXG4gICAgICAgICAgICAgICBlbGVtZW50UmVmOkVsZW1lbnRSZWYgKSB7XG5cbiAgICBwYXJlbnQucmVnaXN0ZXJEcmFnSW1hZ2UoIGVsZW1lbnRSZWYgKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmREcmFnZ2FibGVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyYWdnYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dhYmxlOmFueTtcblxuICBASW5wdXQoKVxuICBkbmRFZmZlY3RBbGxvd2VkOkVmZmVjdEFsbG93ZWQgPSBcImNvcHlcIjtcblxuICBASW5wdXQoKVxuICBkbmRUeXBlPzpzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dpbmdDbGFzcyA9IFwiZG5kRHJhZ2dpbmdcIjtcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2luZ1NvdXJjZUNsYXNzID0gXCJkbmREcmFnZ2luZ1NvdXJjZVwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdnYWJsZURpc2FibGVkQ2xhc3MgPSBcImRuZERyYWdnYWJsZURpc2FibGVkXCI7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb246RG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb24gPSBjYWxjdWxhdGVEcmFnSW1hZ2VPZmZzZXQ7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZFN0YXJ0OkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZERyYWc6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRW5kOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZE1vdmVkOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZENvcGllZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRMaW5rZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kQ2FuY2VsZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBASG9zdEJpbmRpbmcoIFwiYXR0ci5kcmFnZ2FibGVcIiApXG4gIGRyYWdnYWJsZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBkbmRIYW5kbGU/OkRuZEhhbmRsZURpcmVjdGl2ZTtcblxuICBwcml2YXRlIGRuZERyYWdJbWFnZUVsZW1lbnRSZWY/OkVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBkcmFnSW1hZ2U6RWxlbWVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZyggZXZlbnQgKTtcblxuICBASW5wdXQoKVxuICBzZXQgZG5kRGlzYWJsZUlmKCB2YWx1ZTpib29sZWFuICkge1xuXG4gICAgdGhpcy5kcmFnZ2FibGUgPSAhdmFsdWU7XG5cbiAgICBpZiggdGhpcy5kcmFnZ2FibGUgKSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnYWJsZURpc2FibGVkQ2xhc3MgKTtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnYWJsZURpc2FibGVkQ2xhc3MgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMixcbiAgICAgICAgICAgICAgIHByaXZhdGUgbmdab25lOk5nWm9uZSApIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWQge1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ3N0YXJ0XCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25EcmFnU3RhcnQoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGRuZCBoYW5kbGUgYW5kIGlmIHRoZSBkbmQgaGFuZGxlIHdhcyB1c2VkIHRvIHN0YXJ0IHRoZSBkcmFnXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZEhhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgJiYgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGluaXRpYWxpemUgZ2xvYmFsIHN0YXRlXG4gICAgc3RhcnREcmFnKCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkLCB0aGlzLmRuZFR5cGUgKTtcblxuICAgIHNldERyYWdEYXRhKCBldmVudCwge2RhdGE6IHRoaXMuZG5kRHJhZ2dhYmxlLCB0eXBlOiB0aGlzLmRuZFR5cGV9LCBkbmRTdGF0ZS5lZmZlY3RBbGxvd2VkICk7XG5cbiAgICB0aGlzLmRyYWdJbWFnZSA9IHRoaXMuZGV0ZXJtaW5lRHJhZ0ltYWdlKCk7XG5cbiAgICAvLyBzZXQgZHJhZ2dpbmcgY3NzIGNsYXNzIHByaW9yIHRvIHNldERyYWdJbWFnZSBzbyBzdHlsZXMgYXJlIGFwcGxpZWQgYmVmb3JlXG4gICAgLy8gVE9ETyBicmVha2luZyBjaGFuZ2U6IGFkZCBjbGFzcyB0byBlbGVtZW50UmVmIHJhdGhlciB0aGFuIGRyYWcgaW1hZ2Ugd2hpY2ggY291bGQgYmUgYW5vdGhlciBlbGVtZW50XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5kcmFnSW1hZ2UsIHRoaXMuZG5kRHJhZ2dpbmdDbGFzcyApO1xuXG4gICAgLy8gc2V0IGN1c3RvbSBkcmFnaW1hZ2UgaWYgcHJlc2VudFxuICAgIC8vIHNldCBkcmFnaW1hZ2UgaWYgZHJhZyBpcyBzdGFydGVkIGZyb20gZG5kSGFuZGxlXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgIHx8IHR5cGVvZiBldmVudC5fZG5kVXNpbmdIYW5kbGUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIHNldERyYWdJbWFnZSggZXZlbnQsIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdJbWFnZU9mZnNldEZ1bmN0aW9uICk7XG4gICAgfVxuXG4gICAgLy8gYWRkIGRyYWdnaW5nIHNvdXJjZSBjc3MgY2xhc3Mgb24gZmlyc3QgZHJhZyBldmVudFxuICAgIGNvbnN0IHVucmVnaXN0ZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZHJhZ1wiLCAoKSA9PiB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnaW5nU291cmNlQ2xhc3MgKTtcbiAgICAgIHVucmVnaXN0ZXIoKTtcbiAgICB9ICk7XG5cbiAgICB0aGlzLmRuZFN0YXJ0LmVtaXQoIGV2ZW50ICk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uRHJhZyggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgdGhpcy5kbmREcmFnLmVtaXQoIGV2ZW50ICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCBcImRyYWdlbmRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyYWdFbmQoIGV2ZW50OkRyYWdFdmVudCApIHtcblxuICAgIC8vIGdldCBkcm9wIGVmZmVjdCBmcm9tIGN1c3RvbSBzdG9yZWQgc3RhdGUgYXMgaXRzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYnJvd3NlcnNcbiAgICBjb25zdCBkcm9wRWZmZWN0ID0gZG5kU3RhdGUuZHJvcEVmZmVjdDtcblxuICAgIGxldCBkcm9wRWZmZWN0RW1pdHRlcjpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PjtcblxuICAgIHN3aXRjaCggZHJvcEVmZmVjdCApIHtcblxuICAgICAgY2FzZSBcImNvcHlcIjpcbiAgICAgICAgZHJvcEVmZmVjdEVtaXR0ZXIgPSB0aGlzLmRuZENvcGllZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRMaW5rZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwibW92ZVwiOlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kTW92ZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kQ2FuY2VsZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGRyb3BFZmZlY3RFbWl0dGVyLmVtaXQoIGV2ZW50ICk7XG4gICAgdGhpcy5kbmRFbmQuZW1pdCggZXZlbnQgKTtcblxuICAgIC8vIHJlc2V0IGdsb2JhbCBzdGF0ZVxuICAgIGVuZERyYWcoKTtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdnaW5nQ2xhc3MgKTtcblxuICAgIC8vIElFOSBzcGVjaWFsIGhhbW1lcmluZ1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCAoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2luZ1NvdXJjZUNsYXNzICk7XG4gICAgfSwgMCApO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICByZWdpc3RlckRyYWdIYW5kbGUoIGhhbmRsZTpEbmRIYW5kbGVEaXJlY3RpdmUgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZEhhbmRsZSA9IGhhbmRsZTtcbiAgfVxuXG4gIHJlZ2lzdGVyRHJhZ0ltYWdlKCBlbGVtZW50UmVmOkVsZW1lbnRSZWYgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVEcmFnSW1hZ2UoKTpFbGVtZW50IHtcblxuICAgIC8vIGV2YWx1YXRlIGN1c3RvbSBkcmFnIGltYWdlIGV4aXN0ZW5jZVxuICAgIGlmKCB0eXBlb2YgdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmICE9PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICByZXR1cm4gdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZHJhZy1kcm9wLyIsInNvdXJjZXMiOlsiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQXdDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTTNELE1BQU0sT0FBTyx3QkFBd0I7Ozs7O0lBRW5DLFlBQWEsTUFBNEIsRUFDNUIsVUFBcUI7UUFFaEMsTUFBTSxDQUFDLGlCQUFpQixDQUFFLFVBQVUsQ0FBRSxDQUFDO0lBQ3pDLENBQUM7OztZQVRGLFNBQVMsU0FBRTtnQkFDVixRQUFRLEVBQUUsbUJBQW1CO2FBQzlCOzs7O1lBR3FCLHFCQUFxQjtZQXBCekMsVUFBVTs7QUE4QlosTUFBTSxPQUFPLHFCQUFxQjs7Ozs7O0lBMkVoQyxZQUFxQixVQUFxQixFQUNyQixRQUFrQixFQUNsQixNQUFhO1FBRmIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQU87UUF2RWxDLHFCQUFnQixHQUFpQixNQUFNLENBQUM7UUFNeEMscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBR2pDLDJCQUFzQixHQUFHLG1CQUFtQixDQUFDO1FBRzdDLDhCQUF5QixHQUFHLHNCQUFzQixDQUFDO1FBR25ELCtCQUEwQixHQUE4Qix3QkFBd0IsQ0FBQztRQUd4RSxhQUFRLEdBQTJCLElBQUks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QUs7K0JBZUwsS0FBSzswQkFxQkwsWUFBWSxTQUFFLFdBQVcsRUFBRSxDQUFFLFFBQVEsQ0FBRTt3QkFtRHZDLFlBQVksU0FBRSxTQUFTLEVBQUUsQ0FBRSxRQUFRLENBQUU7Ozs7SUE1SXRDLDZDQUNpQjs7SUFFakIsaURBQ3dDOztJQUV4Qyx3Q0FDZ0I7O0lBRWhCLGlEQUNpQzs7SUFFakMsdURBQzZDOztJQUU3QywwREFDbUQ7O0lBRW5ELDJEQUNpRjs7SUFFakYseUNBQzBFOztJQUUxRSx3Q0FDeUU7O0lBRXpFLHVDQUN3RTs7SUFFeEUseUNBQzBFOztJQUUxRSwwQ0FDMkU7O0lBRTNFLDBDQUMyRTs7SUFFM0UsNENBQzZFOztJQUU3RSwwQ0FDaUI7Ozs7O0lBRWpCLDBDQUFzQzs7Ozs7SUFFdEMsdURBQTJDOzs7OztJQUUzQywwQ0FBMEI7Ozs7O0lBRTFCLGlEQUE0Rzs7Ozs7SUFzQi9GLDJDQUE2Qjs7Ozs7SUFDN0IseUNBQTBCOzs7OztJQUMxQix1Q0FBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlRHJhZ0ltYWdlT2Zmc2V0LCBEbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbiwgRG5kRXZlbnQsIHNldERyYWdEYXRhLCBzZXREcmFnSW1hZ2UgfSBmcm9tIFwiLi9kbmQtdXRpbHNcIjtcbmltcG9ydCB7IERuZEhhbmRsZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RuZC1oYW5kbGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBkbmRTdGF0ZSwgZW5kRHJhZywgc3RhcnREcmFnIH0gZnJvbSBcIi4vZG5kLXN0YXRlXCI7XG5pbXBvcnQgeyBFZmZlY3RBbGxvd2VkIH0gZnJvbSBcIi4vZG5kLXR5cGVzXCI7XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZERyYWdJbWFnZVJlZl1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kRHJhZ0ltYWdlUmVmRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvciggcGFyZW50OkRuZERyYWdnYWJsZURpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgIGVsZW1lbnRSZWY6RWxlbWVudFJlZiApIHtcblxuICAgIHBhcmVudC5yZWdpc3RlckRyYWdJbWFnZSggZWxlbWVudFJlZiApO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZERyYWdnYWJsZV1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kRHJhZ2dhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2FibGU6YW55O1xuXG4gIEBJbnB1dCgpXG4gIGRuZEVmZmVjdEFsbG93ZWQ6RWZmZWN0QWxsb3dlZCA9IFwiY29weVwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZFR5cGU/OnN0cmluZztcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2luZ0NsYXNzID0gXCJkbmREcmFnZ2luZ1wiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdnaW5nU291cmNlQ2xhc3MgPSBcImRuZERyYWdnaW5nU291cmNlXCI7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyA9IFwiZG5kRHJhZ2dhYmxlRGlzYWJsZWRcIjtcblxuICBASW5wdXQoKVxuICBkbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbjpEbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbiA9IGNhbGN1bGF0ZURyYWdJbWFnZU9mZnNldDtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kU3RhcnQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJhZzpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRFbmQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kTW92ZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kQ29waWVkOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZExpbmtlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRDYW5jZWxlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBIb3N0QmluZGluZyggXCJhdHRyLmRyYWdnYWJsZVwiIClcbiAgZHJhZ2dhYmxlID0gdHJ1ZTtcblxuICBwcml2YXRlIGRuZEhhbmRsZT86RG5kSGFuZGxlRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgZG5kRHJhZ0ltYWdlRWxlbWVudFJlZj86RWxlbWVudFJlZjtcblxuICBwcml2YXRlIGRyYWdJbWFnZTpFbGVtZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ0V2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnKCBldmVudCApO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkbmREaXNhYmxlSWYoIHZhbHVlOmJvb2xlYW4gKSB7XG5cbiAgICB0aGlzLmRyYWdnYWJsZSA9ICF2YWx1ZTtcblxuICAgIGlmKCB0aGlzLmRyYWdnYWJsZSApIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgICBlbHNlIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbmREaXNhYmxlRHJhZ0lmKCB2YWx1ZTpib29sZWFuICkge1xuICAgIHRoaXMuZG5kRGlzYWJsZUlmID0gdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMixcbiAgICAgICAgICAgICAgIHByaXZhdGUgbmdab25lOk5nWm9uZSApIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWQge1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ3N0YXJ0XCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25EcmFnU3RhcnQoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGRuZCBoYW5kbGUgYW5kIGlmIHRoZSBkbmQgaGFuZGxlIHdhcyB1c2VkIHRvIHN0YXJ0IHRoZSBkcmFnXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZEhhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgJiYgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGluaXRpYWxpemUgZ2xvYmFsIHN0YXRlXG4gICAgc3RhcnREcmFnKCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkLCB0aGlzLmRuZFR5cGUgKTtcblxuICAgIHNldERyYWdEYXRhKCBldmVudCwge2RhdGE6IHRoaXMuZG5kRHJhZ2dhYmxlLCB0eXBlOiB0aGlzLmRuZFR5cGV9LCBkbmRTdGF0ZS5lZmZlY3RBbGxvd2VkICk7XG5cbiAgICB0aGlzLmRyYWdJbWFnZSA9IHRoaXMuZGV0ZXJtaW5lRHJhZ0ltYWdlKCk7XG5cbiAgICAvLyBzZXQgZHJhZ2dpbmcgY3NzIGNsYXNzIHByaW9yIHRvIHNldERyYWdJbWFnZSBzbyBzdHlsZXMgYXJlIGFwcGxpZWQgYmVmb3JlXG4gICAgLy8gVE9ETyBicmVha2luZyBjaGFuZ2U6IGFkZCBjbGFzcyB0byBlbGVtZW50UmVmIHJhdGhlciB0aGFuIGRyYWcgaW1hZ2Ugd2hpY2ggY291bGQgYmUgYW5vdGhlciBlbGVtZW50XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5kcmFnSW1hZ2UsIHRoaXMuZG5kRHJhZ2dpbmdDbGFzcyApO1xuXG4gICAgLy8gc2V0IGN1c3RvbSBkcmFnaW1hZ2UgaWYgcHJlc2VudFxuICAgIC8vIHNldCBkcmFnaW1hZ2UgaWYgZHJhZyBpcyBzdGFydGVkIGZyb20gZG5kSGFuZGxlXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgIHx8IHR5cGVvZiBldmVudC5fZG5kVXNpbmdIYW5kbGUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIHNldERyYWdJbWFnZSggZXZlbnQsIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdJbWFnZU9mZnNldEZ1bmN0aW9uICk7XG4gICAgfVxuXG4gICAgLy8gYWRkIGRyYWdnaW5nIHNvdXJjZSBjc3MgY2xhc3Mgb24gZmlyc3QgZHJhZyBldmVudFxuICAgIGNvbnN0IHVucmVnaXN0ZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZHJhZ1wiLCAoKSA9PiB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnaW5nU291cmNlQ2xhc3MgKTtcbiAgICAgIHVucmVnaXN0ZXIoKTtcbiAgICB9ICk7XG5cbiAgICB0aGlzLmRuZFN0YXJ0LmVtaXQoIGV2ZW50ICk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uRHJhZyggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgdGhpcy5kbmREcmFnLmVtaXQoIGV2ZW50ICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCBcImRyYWdlbmRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyYWdFbmQoIGV2ZW50OkRyYWdFdmVudCApIHtcblxuICAgIC8vIGdldCBkcm9wIGVmZmVjdCBmcm9tIGN1c3RvbSBzdG9yZWQgc3RhdGUgYXMgaXRzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYnJvd3NlcnNcbiAgICBjb25zdCBkcm9wRWZmZWN0ID0gZG5kU3RhdGUuZHJvcEVmZmVjdDtcblxuICAgIGxldCBkcm9wRWZmZWN0RW1pdHRlcjpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PjtcblxuICAgIHN3aXRjaCggZHJvcEVmZmVjdCApIHtcblxuICAgICAgY2FzZSBcImNvcHlcIjpcbiAgICAgICAgZHJvcEVmZmVjdEVtaXR0ZXIgPSB0aGlzLmRuZENvcGllZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRMaW5rZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwibW92ZVwiOlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kTW92ZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kQ2FuY2VsZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGRyb3BFZmZlY3RFbWl0dGVyLmVtaXQoIGV2ZW50ICk7XG4gICAgdGhpcy5kbmRFbmQuZW1pdCggZXZlbnQgKTtcblxuICAgIC8vIHJlc2V0IGdsb2JhbCBzdGF0ZVxuICAgIGVuZERyYWcoKTtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdnaW5nQ2xhc3MgKTtcblxuICAgIC8vIElFOSBzcGVjaWFsIGhhbW1lcmluZ1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCAoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2luZ1NvdXJjZUNsYXNzICk7XG4gICAgfSwgMCApO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICByZWdpc3RlckRyYWdIYW5kbGUoIGhhbmRsZTpEbmRIYW5kbGVEaXJlY3RpdmUgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZEhhbmRsZSA9IGhhbmRsZTtcbiAgfVxuXG4gIHJlZ2lzdGVyRHJhZ0ltYWdlKCBlbGVtZW50UmVmOkVsZW1lbnRSZWYgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVEcmFnSW1hZ2UoKTpFbGVtZW50IHtcblxuICAgIC8vIGV2YWx1YXRlIGN1c3RvbSBkcmFnIGltYWdlIGV4aXN0ZW5jZVxuICAgIGlmKCB0eXBlb2YgdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmICE9PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICByZXR1cm4gdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -95,4 +95,11 @@ /**

/**
* @param {?} value
* @return {?}
*/
set dndDisableDropIf(value) {
this.dndDisableIf = value;
}
/**
* @return {?}
*/
ngAfterViewInit() {

@@ -374,2 +381,3 @@ this.placeholder = this.tryGetPlaceholder();

dndDisableIf: [{ type: Input }],
dndDisableDropIf: [{ type: Input }],
onDrop: [{ type: HostListener, args: ["drop", ["$event"],] }]

@@ -440,2 +448,2 @@ };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyb3B6b25lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcmFnLWRyb3AvIiwic291cmNlcyI6WyJkbmQtZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsc0NBQXNDLEVBQ3ZDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFHdkYsa0NBT0M7OztJQU5DLDZCQUFnQjs7SUFDaEIsa0NBQXNCOztJQUN0QixrQ0FBbUI7O0lBQ25CLDRCQUFVOztJQUNWLDZCQUFjOztJQUNkLDRCQUFVOztBQU1aLE1BQU0sT0FBTywwQkFBMEI7Ozs7SUFFckMsWUFBNkIsVUFBcUI7UUFBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztJQUNsRCxDQUFDOzs7WUFORixTQUFTLFNBQUU7Z0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjthQUNoQzs7OztZQTlCQyxVQUFVOzs7O0lBaUNHLGdEQUFxQzs7QUFPcEQsTUFBTSxPQUFPLG9CQUFvQjs7Ozs7O0lBb0QvQixZQUFxQixNQUFhLEVBQ2IsVUFBcUIsRUFDckIsUUFBa0I7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQTdDdkMscUJBQWdCLEdBQVcsS0FBSyxDQUFDO1FBR2pDLGtCQUFhLEdBQVcsS0FBSyxDQUFDO1FBRzlCLHFCQUFnQixHQUFVLGFBQWEsQ0FBQztRQUd4Qyw2QkFB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T1YsU0FBUzs7OzBCQW1DUixLQUFLOytCQUdMLEtBQUs7K0JBR0wsS0FBSzs0QkFHTCxLQUFLOytCQUdMLEtBQUs7dUNBR0wsS0FBSzswQkFHTCxNQUFNO3NCQUdOLE1BQU07Z0NBR04sWUFBWSxTQUFFLDBCQUEwQjsyQkFXeEMsS0FBSztxQkE2R0wsWUFBWSxTQUFFLE1BQU0sRUFBRSxDQUFFLFFBQVEsQ0FBRTs7OztJQWhKbkMsMkNBQ3NCOztJQUV0QixnREFDK0I7O0lBRS9CLGdEQUNpQzs7SUFFakMsNkNBQzhCOztJQUU5QixnREFDd0M7O0lBRXhDLHdEQUNpRDs7SUFFakQsMkNBQzZFOztJQUU3RSx1Q0FDK0U7Ozs7O0lBRS9FLGlEQUMrRDs7Ozs7SUFFL0QsMkNBQTBDOzs7OztJQUUxQyx3Q0FBaUM7Ozs7O0lBRWpDLHFEQUFzSDs7Ozs7SUFDdEgsb0RBQW9IOzs7OztJQUNwSCxxREFBc0g7Ozs7O0lBaUJ6RyxzQ0FBcUI7Ozs7O0lBQ3JCLDBDQUE2Qjs7Ozs7SUFDN0Isd0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBEbmRFdmVudCxcbiAgRHJhZ0Ryb3BEYXRhLFxuICBnZXREaXJlY3RDaGlsZEVsZW1lbnQsXG4gIGdldERyb3BEYXRhLFxuICBzaG91bGRQb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRWxlbWVudFxufSBmcm9tIFwiLi9kbmQtdXRpbHNcIjtcbmltcG9ydCB7IGdldERuZFR5cGUsIGdldERyb3BFZmZlY3QsIGlzRXh0ZXJuYWxEcmFnLCBzZXREcm9wRWZmZWN0IH0gZnJvbSBcIi4vZG5kLXN0YXRlXCI7XG5pbXBvcnQgeyBEcm9wRWZmZWN0LCBFZmZlY3RBbGxvd2VkIH0gZnJvbSBcIi4vZG5kLXR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG5kRHJvcEV2ZW50IHtcbiAgZXZlbnQ6RHJhZ0V2ZW50O1xuICBkcm9wRWZmZWN0OkRyb3BFZmZlY3Q7XG4gIGlzRXh0ZXJuYWw6Ym9vbGVhbjtcbiAgZGF0YT86YW55O1xuICBpbmRleD86bnVtYmVyO1xuICB0eXBlPzphbnk7XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZFBsYWNlaG9sZGVyUmVmXVwiXG59IClcbmV4cG9ydCBjbGFzcyBEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOkVsZW1lbnRSZWYgKSB7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgge1xuICBzZWxlY3RvcjogXCJbZG5kRHJvcHpvbmVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyb3B6b25lRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcm9wem9uZT86c3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgZG5kRWZmZWN0QWxsb3dlZDpFZmZlY3RBbGxvd2VkO1xuXG4gIEBJbnB1dCgpXG4gIGRuZEFsbG93RXh0ZXJuYWw6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRuZEhvcml6b250YWw6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdvdmVyQ2xhc3M6c3RyaW5nID0gXCJkbmREcmFnb3ZlclwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyb3B6b25lRGlzYWJsZWRDbGFzcyA9IFwiZG5kRHJvcHpvbmVEaXNhYmxlZFwiO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmREcmFnb3ZlcjpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmREcm9wOkV2ZW50RW1pdHRlcjxEbmREcm9wRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEbmREcm9wRXZlbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZCggRG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmUgKVxuICBwcml2YXRlIHJlYWRvbmx5IGRuZFBsYWNlaG9sZGVyUmVmPzpEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZTtcblxuICBwcml2YXRlIHBsYWNlaG9sZGVyOkVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGRpc2FibGVkOmJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdFbnRlckV2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnRW50ZXIoIGV2ZW50ICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ092ZXJFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZ092ZXIoIGV2ZW50ICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ0xlYXZlRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWdMZWF2ZSggZXZlbnQgKTtcblxuICBASW5wdXQoKVxuICBzZXQgZG5kRGlzYWJsZUlmKCB2YWx1ZTpib29sZWFuICkge1xuXG4gICAgdGhpcy5kaXNhYmxlZCA9ICEhdmFsdWU7XG5cbiAgICBpZiggdGhpcy5kaXNhYmxlZCApIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJvcHpvbmVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcm9wem9uZURpc2FibGVkQ2xhc3MgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBuZ1pvbmU6Tmdab25lLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMiApIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWQge1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMudHJ5R2V0UGxhY2Vob2xkZXIoKTtcblxuICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXJGcm9tRE9NKCk7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhciggKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJkcmFnZW50ZXJcIiwgdGhpcy5kcmFnRW50ZXJFdmVudEhhbmRsZXIgKTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ292ZXJcIiwgdGhpcy5kcmFnT3ZlckV2ZW50SGFuZGxlciApO1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJkcmFnbGVhdmVcIiwgdGhpcy5kcmFnTGVhdmVFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ2VudGVyXCIsIHRoaXMuZHJhZ0VudGVyRXZlbnRIYW5kbGVyICk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJkcmFnb3ZlclwiLCB0aGlzLmRyYWdPdmVyRXZlbnRIYW5kbGVyICk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJkcmFnbGVhdmVcIiwgdGhpcy5kcmFnTGVhdmVFdmVudEhhbmRsZXIgKTtcbiAgfVxuXG4gIG9uRHJhZ0VudGVyKCBldmVudDpEbmRFdmVudCApIHtcblxuICAgIC8vIGNoZWNrIGlmIGFub3RoZXIgZHJvcHpvbmUgaXMgYWN0aXZhdGVkXG4gICAgaWYoIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9PT0gdHJ1ZSApIHtcblxuICAgICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNldCBhcyBhY3RpdmUgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIGluc2lkZSB0aGlzIGRyb3B6b25lXG4gICAgaWYoIHR5cGVvZiBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkgKTtcblxuICAgICAgaWYoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKCBuZXdUYXJnZXQgKSApIHtcblxuICAgICAgICBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoaXMgZHJhZyBldmVudCBpcyBhbGxvd2VkIHRvIGRyb3Agb24gdGhpcyBkcm9wem9uZVxuICAgIGNvbnN0IHR5cGUgPSBnZXREbmRUeXBlKCBldmVudCApO1xuICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIHR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyB0aGUgZHJhZ2VudGVyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG9uRHJhZ092ZXIoIGV2ZW50OkRyYWdFdmVudCApIHtcbiAgICAvLyBXaXRoIG5lc3RlZCBkcm9wem9uZXMsIHdlIHdhbnQgdG8gaWdub3JlIHRoaXMgZXZlbnQgaWYgYSBjaGlsZCBkcm9wem9uZVxuICAgIC8vIGhhcyBhbHJlYWR5IGhhbmRsZWQgYSBkcmFnb3Zlci4gIEhpc3RvcmljYWxseSwgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgd2FzXG4gICAgLy8gdXNlZCB0byBwcmV2ZW50IHRoaXMgYnViYmxpbmcsIGJ1dCB0aGF0IHByZXZlbnRzIGFueSBkcmFnb3ZlcnMgb3V0c2lkZSB0aGVcbiAgICAvLyBuZ3gtZHJhZy1kcm9wIGNvbXBvbmVudCwgYW5kIHN0b3BzIG90aGVyIHVzZSBjYXNlcyBzdWNoIGFzIHNjcm9sbGluZyBvbiBkcmFnLlxuICAgIC8vIEluc3RlYWQsIHdlIGNhbiBjaGVjayBpZiB0aGUgZXZlbnQgd2FzIGFscmVhZHkgcHJldmVudGVkIGJ5IGEgY2hpbGQgYW5kIGJhaWwgZWFybHkuXG4gICAgaWYoIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiB0aGlzIGRyYWcgZXZlbnQgaXMgYWxsb3dlZCB0byBkcm9wIG9uIHRoaXMgZHJvcHpvbmVcbiAgICBjb25zdCB0eXBlID0gZ2V0RG5kVHlwZSggZXZlbnQgKTtcbiAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCB0eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZVBsYWNlaG9sZGVyUG9zaXRpb24oIGV2ZW50ICk7XG5cbiAgICBjb25zdCBkcm9wRWZmZWN0ID0gZ2V0RHJvcEVmZmVjdCggZXZlbnQsIHRoaXMuZG5kRWZmZWN0QWxsb3dlZCApO1xuXG4gICAgaWYoIGRyb3BFZmZlY3QgPT09IFwibm9uZVwiICkge1xuXG4gICAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYWxsb3cgdGhlIGRyYWdvdmVyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHNldCB0aGUgZHJvcCBlZmZlY3RcbiAgICBzZXREcm9wRWZmZWN0KCBldmVudCwgZHJvcEVmZmVjdCApO1xuXG4gICAgdGhpcy5kbmREcmFnb3Zlci5lbWl0KCBldmVudCApO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ292ZXJDbGFzcyApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lciggXCJkcm9wXCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25Ecm9wKCBldmVudDpEcmFnRXZlbnQgKSB7XG5cbiAgICB0cnkge1xuXG4gICAgICAvLyBjaGVjayBpZiB0aGlzIGRyYWcgZXZlbnQgaXMgYWxsb3dlZCB0byBkcm9wIG9uIHRoaXMgZHJvcHpvbmVcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXREbmRUeXBlKCBldmVudCApO1xuICAgICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggdHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGE6RHJhZ0Ryb3BEYXRhID0gZ2V0RHJvcERhdGEoIGV2ZW50LCBpc0V4dGVybmFsRHJhZygpICk7XG5cbiAgICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIGRhdGEudHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHNpZ25hbCBjdXN0b20gZHJvcCBoYW5kbGluZ1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgZHJvcEVmZmVjdCA9IGdldERyb3BFZmZlY3QoIGV2ZW50ICk7XG5cbiAgICAgIHNldERyb3BFZmZlY3QoIGV2ZW50LCBkcm9wRWZmZWN0ICk7XG5cbiAgICAgIGlmKCBkcm9wRWZmZWN0ID09PSBcIm5vbmVcIiApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRyb3BJbmRleCA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJJbmRleCgpO1xuXG4gICAgICAvLyBpZiBmb3Igd2hhdGV2ZXIgcmVhc29uIHRoZSBwbGFjZWhvbGRlciBpcyBub3QgcHJlc2VudCBpbiB0aGUgRE9NIGJ1dCBpdCBzaG91bGQgYmUgdGhlcmVcbiAgICAgIC8vIHdlIGRvbid0IGFsbG93L2VtaXQgdGhlIGRyb3AgZXZlbnQgc2luY2UgaXQgYnJlYWtzIHRoZSBjb250cmFjdFxuICAgICAgLy8gc2VlbXMgdG8gb25seSBoYXBwZW4gaWYgZHJhZyBhbmQgZHJvcCBpcyBleGVjdXRlZCBmYXN0ZXIgdGhhbiB0aGUgRE9NIHVwZGF0ZXNcbiAgICAgIGlmKCBkcm9wSW5kZXggPT09IC0xICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kbmREcm9wLmVtaXQoIHtcbiAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICBkcm9wRWZmZWN0OiBkcm9wRWZmZWN0LFxuICAgICAgICBpc0V4dGVybmFsOiBpc0V4dGVybmFsRHJhZygpLFxuICAgICAgICBkYXRhOiBkYXRhLmRhdGEsXG4gICAgICAgIGluZGV4OiBkcm9wSW5kZXgsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICB9ICk7XG5cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgfVxuICAgIGZpbmFsbHkge1xuXG4gICAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgb25EcmFnTGVhdmUoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgLy8gY2hlY2sgaWYgc3RpbGwgaW5zaWRlIHRoaXMgZHJvcHpvbmUgYW5kIG5vdCB5ZXQgaGFuZGxlZCBieSBhbm90aGVyIGRyb3B6b25lXG4gICAgaWYoIHR5cGVvZiBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkgKTtcblxuICAgICAgaWYoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKCBuZXdUYXJnZXQgKSApIHtcblxuICAgICAgICBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuXG4gICAgLy8gY2xlYW51cCBkcm9wIGVmZmVjdCB3aGVuIGxlYXZpbmcgZHJvcHpvbmVcbiAgICBzZXREcm9wRWZmZWN0KCBldmVudCwgXCJub25lXCIgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEcm9wQWxsb3dlZCggdHlwZT86c3RyaW5nICk6Ym9vbGVhbiB7XG5cbiAgICAvLyBkcm9wem9uZSBpcyBkaXNhYmxlZCAtPiBkZW55IGl0XG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgPT09IHRydWUgKSB7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBpZiBkcmFnIGRpZCBub3Qgc3RhcnQgZnJvbSBvdXIgZGlyZWN0aXZlXG4gICAgLy8gYW5kIGV4dGVybmFsIGRyYWcgc291cmNlcyBhcmUgbm90IGFsbG93ZWQgLT4gZGVueSBpdFxuICAgIGlmKCBpc0V4dGVybmFsRHJhZygpID09PSB0cnVlXG4gICAgICAmJiB0aGlzLmRuZEFsbG93RXh0ZXJuYWwgPT09IGZhbHNlICkge1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gbm8gZmlsdGVyaW5nIGJ5IHR5cGVzIC0+IGFsbG93IGl0XG4gICAgaWYoICF0aGlzLmRuZERyb3B6b25lICkge1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBubyB0eXBlIHNldCAtPiBhbGxvdyBpdFxuICAgIGlmKCAhdHlwZSApIHtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIHRoaXMuZG5kRHJvcHpvbmUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvciggXCJkbmREcm9wem9uZTogYm91bmQgdmFsdWUgdG8gW2RuZERyb3B6b25lXSBtdXN0IGJlIGFuIGFycmF5IVwiICk7XG4gICAgfVxuXG4gICAgLy8gaWYgZHJvcHpvbmUgY29udGFpbnMgdHlwZSAtPiBhbGxvdyBpdFxuICAgIHJldHVybiB0aGlzLmRuZERyb3B6b25lLmluZGV4T2YoIHR5cGUgKSAhPT0gLTE7XG4gIH1cblxuICBwcml2YXRlIHRyeUdldFBsYWNlaG9sZGVyKCk6RWxlbWVudCB8IG51bGwge1xuXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZFBsYWNlaG9sZGVyUmVmICE9PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICByZXR1cm4gdGhpcy5kbmRQbGFjZWhvbGRlclJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG5cbiAgICAvLyBUT0RPIG5hc3R5IHdvcmthcm91bmQgbmVlZGVkIGJlY2F1c2UgaWYgbmctY29udGFpbmVyIC8gdGVtcGxhdGUgaXMgdXNlZCBAQ29udGVudENoaWxkKCkgb3IgREkgd2lsbCBmYWlsIGJlY2F1c2VcbiAgICAvLyBvZiB3cm9uZyBjb250ZXh0IHNlZSBhbmd1bGFyIGJ1ZyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzUxN1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCBcIltkbmRQbGFjZWhvbGRlclJlZl1cIiApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVQbGFjZWhvbGRlckZyb21ET00oKSB7XG5cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlciAhPT0gbnVsbFxuICAgICAgJiYgdGhpcy5wbGFjZWhvbGRlci5wYXJlbnROb2RlICE9PSBudWxsICkge1xuICAgICAgdGhpcy5wbGFjZWhvbGRlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0aGlzLnBsYWNlaG9sZGVyICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0FuZFVwZGF0ZVBsYWNlaG9sZGVyUG9zaXRpb24oIGV2ZW50OkRyYWdFdmVudCApOnZvaWQge1xuXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIgPT09IG51bGwgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBtYWtlIHN1cmUgdGhlIHBsYWNlaG9sZGVyIGlzIGluIHRoZSBET01cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlci5wYXJlbnROb2RlICE9PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCApIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIgKTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIHBvc2l0aW9uIGlmIHRoZSBldmVudCBvcmlnaW5hdGVzIGZyb20gYSBjaGlsZCBlbGVtZW50IG9mIHRoZSBkcm9wem9uZVxuICAgIGNvbnN0IGRpcmVjdENoaWxkID0gZ2V0RGlyZWN0Q2hpbGRFbGVtZW50KCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQgKTtcblxuICAgIC8vIGVhcmx5IGV4aXQgaWYgbm8gZGlyZWN0IGNoaWxkIG9yIGRpcmVjdCBjaGlsZCBpcyBwbGFjZWhvbGRlclxuICAgIGlmKCBkaXJlY3RDaGlsZCA9PT0gbnVsbFxuICAgICAgfHwgZGlyZWN0Q2hpbGQgPT09IHRoaXMucGxhY2Vob2xkZXIgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRGlyZWN0Q2hpbGQgPSBzaG91bGRQb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRWxlbWVudCggZXZlbnQsIGRpcmVjdENoaWxkLCB0aGlzLmRuZEhvcml6b250YWwgKTtcblxuICAgIGlmKCBwb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRGlyZWN0Q2hpbGQgKSB7XG5cbiAgICAgIC8vIGRvIGluc2VydCBiZWZvcmUgb25seSBpZiBuZWNlc3NhcnlcbiAgICAgIGlmKCBkaXJlY3RDaGlsZC5wcmV2aW91c1NpYmxpbmcgIT09IHRoaXMucGxhY2Vob2xkZXIgKSB7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBsYWNlaG9sZGVyLCBkaXJlY3RDaGlsZCApO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcblxuICAgICAgLy8gZG8gaW5zZXJ0IGFmdGVyIG9ubHkgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiggZGlyZWN0Q2hpbGQubmV4dFNpYmxpbmcgIT09IHRoaXMucGxhY2Vob2xkZXIgKSB7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBsYWNlaG9sZGVyLCBkaXJlY3RDaGlsZC5uZXh0U2libGluZyApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGxhY2Vob2xkZXJJbmRleCgpOm51bWJlciB8IHVuZGVmaW5lZCB7XG5cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlciA9PT0gbnVsbCApIHtcblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCggZWxlbWVudC5jaGlsZHJlbiwgdGhpcy5wbGFjZWhvbGRlciApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwRHJhZ292ZXJTdGF0ZSgpIHtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdvdmVyQ2xhc3MgKTtcblxuICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXJGcm9tRE9NKCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyb3B6b25lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcmFnLWRyb3AvIiwic291cmNlcyI6WyJkbmQtZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsc0NBQXNDLEVBQ3ZDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFHdkYsa0NBT0M7OztJQU5DLDZCQUFnQjs7SUFDaEIsa0NBQXNCOztJQUN0QixrQ0FBbUI7O0lBQ25CLDRCQUFVOztJQUNWLDZCQUFjOztJQUNkLDRCQUFVOztBQU1aLE1BQU0sT0FBTywwQkFBMEI7Ozs7SUFFckMsWUFBNkIsVUFBcUI7UUFBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztJQUNsRCxDQUFDOzs7WUFORixTQUFTLFNBQUU7Z0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjthQUNoQzs7OztZQTlCQyxVQUFVOzs7O0lBaUNHLGdEQUFxQzs7QUFPcEQsTUFBTSxPQUFPLG9CQUFvQjs7Ozs7O0lBeUQvQixZQUFxQixNQUFhLEVBQ2IsVUFBcUIsRUFDckIsUUFBa0I7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxEdkMscUJBQWdCLEdBQVcsS0FBSyxDQUFDO1FBR2pDLGtCQUFhLEdBQVcsS0FBSyxDQUFDO1FBRzlCLHFCQUFnQixHQUFVLGFBQWEsQ0FBQztRQUd4Qyw2QkFB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QyxDQUFDOzs7WUE5VkYsU0FBUyxTQUFFO2dCQUNWLFFBQVEsRUFBRSxlQUFlO2FBQzFCOzs7O1lBbkNDLE1BQU07WUFKTixVQUFVO1lBT1YsU0FBUzs7OzBCQW1DUixLQUFLOytCQUdMLEtBQUs7K0JBR0wsS0FBSzs0QkFHTCxLQUFLOytCQUdMLEtBQUs7dUNBR0wsS0FBSzswQkFHTCxNQUFNO3NCQUdOLE1BQU07Z0NBR04sWUFBWSxTQUFFLDBCQUEwQjsyQkFXeEMsS0FBSzsrQkFlTCxLQUFLO3FCQW1HTCxZQUFZLFNBQUUsTUFBTSxFQUFFLENBQUUsUUFBUSxDQUFFOzs7O0lBckpuQywyQ0FDc0I7O0lBRXRCLGdEQUMrQjs7SUFFL0IsZ0RBQ2lDOztJQUVqQyw2Q0FDOEI7O0lBRTlCLGdEQUN3Qzs7SUFFeEMsd0RBQ2lEOztJQUVqRCwyQ0FDNkU7O0lBRTdFLHVDQUMrRTs7Ozs7SUFFL0UsaURBQytEOzs7OztJQUUvRCwyQ0FBMEM7Ozs7O0lBRTFDLHdDQUFpQzs7Ozs7SUFFakMscURBQXNIOzs7OztJQUN0SCxvREFBb0g7Ozs7O0lBQ3BILHFEQUFzSDs7Ozs7SUFzQnpHLHNDQUFxQjs7Ozs7SUFDckIsMENBQTZCOzs7OztJQUM3Qix3Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIERuZEV2ZW50LFxuICBEcmFnRHJvcERhdGEsXG4gIGdldERpcmVjdENoaWxkRWxlbWVudCxcbiAgZ2V0RHJvcERhdGEsXG4gIHNob3VsZFBvc2l0aW9uUGxhY2Vob2xkZXJCZWZvcmVFbGVtZW50XG59IGZyb20gXCIuL2RuZC11dGlsc1wiO1xuaW1wb3J0IHsgZ2V0RG5kVHlwZSwgZ2V0RHJvcEVmZmVjdCwgaXNFeHRlcm5hbERyYWcsIHNldERyb3BFZmZlY3QgfSBmcm9tIFwiLi9kbmQtc3RhdGVcIjtcbmltcG9ydCB7IERyb3BFZmZlY3QsIEVmZmVjdEFsbG93ZWQgfSBmcm9tIFwiLi9kbmQtdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEbmREcm9wRXZlbnQge1xuICBldmVudDpEcmFnRXZlbnQ7XG4gIGRyb3BFZmZlY3Q6RHJvcEVmZmVjdDtcbiAgaXNFeHRlcm5hbDpib29sZWFuO1xuICBkYXRhPzphbnk7XG4gIGluZGV4PzpudW1iZXI7XG4gIHR5cGU/OmFueTtcbn1cblxuQERpcmVjdGl2ZSgge1xuICBzZWxlY3RvcjogXCJbZG5kUGxhY2Vob2xkZXJSZWZdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZFBsYWNlaG9sZGVyUmVmRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvciggcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6RWxlbWVudFJlZiApIHtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmREcm9wem9uZV1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kRHJvcHpvbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyb3B6b25lPzpzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBkbmRFZmZlY3RBbGxvd2VkOkVmZmVjdEFsbG93ZWQ7XG5cbiAgQElucHV0KClcbiAgZG5kQWxsb3dFeHRlcm5hbDpib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZG5kSG9yaXpvbnRhbDpib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ292ZXJDbGFzczpzdHJpbmcgPSBcImRuZERyYWdvdmVyXCI7XG5cbiAgQElucHV0KClcbiAgZG5kRHJvcHpvbmVEaXNhYmxlZENsYXNzID0gXCJkbmREcm9wem9uZURpc2FibGVkXCI7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZERyYWdvdmVyOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZERyb3A6RXZlbnRFbWl0dGVyPERuZERyb3BFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERuZERyb3BFdmVudD4oKTtcblxuICBAQ29udGVudENoaWxkKCBEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZSApXG4gIHByaXZhdGUgcmVhZG9ubHkgZG5kUGxhY2Vob2xkZXJSZWY/OkRuZFBsYWNlaG9sZGVyUmVmRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgcGxhY2Vob2xkZXI6RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZGlzYWJsZWQ6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ0VudGVyRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWdFbnRlciggZXZlbnQgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnT3ZlckV2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnT3ZlciggZXZlbnQgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnTGVhdmVFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZ0xlYXZlKCBldmVudCApO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkbmREaXNhYmxlSWYoIHZhbHVlOmJvb2xlYW4gKSB7XG5cbiAgICB0aGlzLmRpc2FibGVkID0gISF2YWx1ZTtcblxuICAgIGlmKCB0aGlzLmRpc2FibGVkICkge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcm9wem9uZURpc2FibGVkQ2xhc3MgKTtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyb3B6b25lRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbmREaXNhYmxlRHJvcElmKCB2YWx1ZTpib29sZWFuICkge1xuICAgIHRoaXMuZG5kRGlzYWJsZUlmID0gdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBuZ1pvbmU6Tmdab25lLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMiApIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWQge1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMudHJ5R2V0UGxhY2Vob2xkZXIoKTtcblxuICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXJGcm9tRE9NKCk7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhciggKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJkcmFnZW50ZXJcIiwgdGhpcy5kcmFnRW50ZXJFdmVudEhhbmRsZXIgKTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ292ZXJcIiwgdGhpcy5kcmFnT3ZlckV2ZW50SGFuZGxlciApO1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJkcmFnbGVhdmVcIiwgdGhpcy5kcmFnTGVhdmVFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ2VudGVyXCIsIHRoaXMuZHJhZ0VudGVyRXZlbnRIYW5kbGVyICk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJkcmFnb3ZlclwiLCB0aGlzLmRyYWdPdmVyRXZlbnRIYW5kbGVyICk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJkcmFnbGVhdmVcIiwgdGhpcy5kcmFnTGVhdmVFdmVudEhhbmRsZXIgKTtcbiAgfVxuXG4gIG9uRHJhZ0VudGVyKCBldmVudDpEbmRFdmVudCApIHtcblxuICAgIC8vIGNoZWNrIGlmIGFub3RoZXIgZHJvcHpvbmUgaXMgYWN0aXZhdGVkXG4gICAgaWYoIGV2ZW50Ll9kbmREcm9wem9uZUFjdGl2ZSA9PT0gdHJ1ZSApIHtcblxuICAgICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNldCBhcyBhY3RpdmUgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIGluc2lkZSB0aGlzIGRyb3B6b25lXG4gICAgaWYoIHR5cGVvZiBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkgKTtcblxuICAgICAgaWYoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKCBuZXdUYXJnZXQgKSApIHtcblxuICAgICAgICBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoaXMgZHJhZyBldmVudCBpcyBhbGxvd2VkIHRvIGRyb3Agb24gdGhpcyBkcm9wem9uZVxuICAgIGNvbnN0IHR5cGUgPSBnZXREbmRUeXBlKCBldmVudCApO1xuICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIHR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyB0aGUgZHJhZ2VudGVyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG9uRHJhZ092ZXIoIGV2ZW50OkRyYWdFdmVudCApIHtcbiAgICAvLyBXaXRoIG5lc3RlZCBkcm9wem9uZXMsIHdlIHdhbnQgdG8gaWdub3JlIHRoaXMgZXZlbnQgaWYgYSBjaGlsZCBkcm9wem9uZVxuICAgIC8vIGhhcyBhbHJlYWR5IGhhbmRsZWQgYSBkcmFnb3Zlci4gIEhpc3RvcmljYWxseSwgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgd2FzXG4gICAgLy8gdXNlZCB0byBwcmV2ZW50IHRoaXMgYnViYmxpbmcsIGJ1dCB0aGF0IHByZXZlbnRzIGFueSBkcmFnb3ZlcnMgb3V0c2lkZSB0aGVcbiAgICAvLyBuZ3gtZHJhZy1kcm9wIGNvbXBvbmVudCwgYW5kIHN0b3BzIG90aGVyIHVzZSBjYXNlcyBzdWNoIGFzIHNjcm9sbGluZyBvbiBkcmFnLlxuICAgIC8vIEluc3RlYWQsIHdlIGNhbiBjaGVjayBpZiB0aGUgZXZlbnQgd2FzIGFscmVhZHkgcHJldmVudGVkIGJ5IGEgY2hpbGQgYW5kIGJhaWwgZWFybHkuXG4gICAgaWYoIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiB0aGlzIGRyYWcgZXZlbnQgaXMgYWxsb3dlZCB0byBkcm9wIG9uIHRoaXMgZHJvcHpvbmVcbiAgICBjb25zdCB0eXBlID0gZ2V0RG5kVHlwZSggZXZlbnQgKTtcbiAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCB0eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZVBsYWNlaG9sZGVyUG9zaXRpb24oIGV2ZW50ICk7XG5cbiAgICBjb25zdCBkcm9wRWZmZWN0ID0gZ2V0RHJvcEVmZmVjdCggZXZlbnQsIHRoaXMuZG5kRWZmZWN0QWxsb3dlZCApO1xuXG4gICAgaWYoIGRyb3BFZmZlY3QgPT09IFwibm9uZVwiICkge1xuXG4gICAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYWxsb3cgdGhlIGRyYWdvdmVyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHNldCB0aGUgZHJvcCBlZmZlY3RcbiAgICBzZXREcm9wRWZmZWN0KCBldmVudCwgZHJvcEVmZmVjdCApO1xuXG4gICAgdGhpcy5kbmREcmFnb3Zlci5lbWl0KCBldmVudCApO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ292ZXJDbGFzcyApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lciggXCJkcm9wXCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25Ecm9wKCBldmVudDpEcmFnRXZlbnQgKSB7XG5cbiAgICB0cnkge1xuXG4gICAgICAvLyBjaGVjayBpZiB0aGlzIGRyYWcgZXZlbnQgaXMgYWxsb3dlZCB0byBkcm9wIG9uIHRoaXMgZHJvcHpvbmVcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXREbmRUeXBlKCBldmVudCApO1xuICAgICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggdHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGE6RHJhZ0Ryb3BEYXRhID0gZ2V0RHJvcERhdGEoIGV2ZW50LCBpc0V4dGVybmFsRHJhZygpICk7XG5cbiAgICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIGRhdGEudHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHNpZ25hbCBjdXN0b20gZHJvcCBoYW5kbGluZ1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgZHJvcEVmZmVjdCA9IGdldERyb3BFZmZlY3QoIGV2ZW50ICk7XG5cbiAgICAgIHNldERyb3BFZmZlY3QoIGV2ZW50LCBkcm9wRWZmZWN0ICk7XG5cbiAgICAgIGlmKCBkcm9wRWZmZWN0ID09PSBcIm5vbmVcIiApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRyb3BJbmRleCA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJJbmRleCgpO1xuXG4gICAgICAvLyBpZiBmb3Igd2hhdGV2ZXIgcmVhc29uIHRoZSBwbGFjZWhvbGRlciBpcyBub3QgcHJlc2VudCBpbiB0aGUgRE9NIGJ1dCBpdCBzaG91bGQgYmUgdGhlcmVcbiAgICAgIC8vIHdlIGRvbid0IGFsbG93L2VtaXQgdGhlIGRyb3AgZXZlbnQgc2luY2UgaXQgYnJlYWtzIHRoZSBjb250cmFjdFxuICAgICAgLy8gc2VlbXMgdG8gb25seSBoYXBwZW4gaWYgZHJhZyBhbmQgZHJvcCBpcyBleGVjdXRlZCBmYXN0ZXIgdGhhbiB0aGUgRE9NIHVwZGF0ZXNcbiAgICAgIGlmKCBkcm9wSW5kZXggPT09IC0xICkge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kbmREcm9wLmVtaXQoIHtcbiAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICBkcm9wRWZmZWN0OiBkcm9wRWZmZWN0LFxuICAgICAgICBpc0V4dGVybmFsOiBpc0V4dGVybmFsRHJhZygpLFxuICAgICAgICBkYXRhOiBkYXRhLmRhdGEsXG4gICAgICAgIGluZGV4OiBkcm9wSW5kZXgsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICB9ICk7XG5cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgfVxuICAgIGZpbmFsbHkge1xuXG4gICAgICB0aGlzLmNsZWFudXBEcmFnb3ZlclN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgb25EcmFnTGVhdmUoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgLy8gY2hlY2sgaWYgc3RpbGwgaW5zaWRlIHRoaXMgZHJvcHpvbmUgYW5kIG5vdCB5ZXQgaGFuZGxlZCBieSBhbm90aGVyIGRyb3B6b25lXG4gICAgaWYoIHR5cGVvZiBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkgKTtcblxuICAgICAgaWYoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKCBuZXdUYXJnZXQgKSApIHtcblxuICAgICAgICBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuXG4gICAgLy8gY2xlYW51cCBkcm9wIGVmZmVjdCB3aGVuIGxlYXZpbmcgZHJvcHpvbmVcbiAgICBzZXREcm9wRWZmZWN0KCBldmVudCwgXCJub25lXCIgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEcm9wQWxsb3dlZCggdHlwZT86c3RyaW5nICk6Ym9vbGVhbiB7XG5cbiAgICAvLyBkcm9wem9uZSBpcyBkaXNhYmxlZCAtPiBkZW55IGl0XG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgPT09IHRydWUgKSB7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBpZiBkcmFnIGRpZCBub3Qgc3RhcnQgZnJvbSBvdXIgZGlyZWN0aXZlXG4gICAgLy8gYW5kIGV4dGVybmFsIGRyYWcgc291cmNlcyBhcmUgbm90IGFsbG93ZWQgLT4gZGVueSBpdFxuICAgIGlmKCBpc0V4dGVybmFsRHJhZygpID09PSB0cnVlXG4gICAgICAmJiB0aGlzLmRuZEFsbG93RXh0ZXJuYWwgPT09IGZhbHNlICkge1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gbm8gZmlsdGVyaW5nIGJ5IHR5cGVzIC0+IGFsbG93IGl0XG4gICAgaWYoICF0aGlzLmRuZERyb3B6b25lICkge1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBubyB0eXBlIHNldCAtPiBhbGxvdyBpdFxuICAgIGlmKCAhdHlwZSApIHtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIHRoaXMuZG5kRHJvcHpvbmUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvciggXCJkbmREcm9wem9uZTogYm91bmQgdmFsdWUgdG8gW2RuZERyb3B6b25lXSBtdXN0IGJlIGFuIGFycmF5IVwiICk7XG4gICAgfVxuXG4gICAgLy8gaWYgZHJvcHpvbmUgY29udGFpbnMgdHlwZSAtPiBhbGxvdyBpdFxuICAgIHJldHVybiB0aGlzLmRuZERyb3B6b25lLmluZGV4T2YoIHR5cGUgKSAhPT0gLTE7XG4gIH1cblxuICBwcml2YXRlIHRyeUdldFBsYWNlaG9sZGVyKCk6RWxlbWVudCB8IG51bGwge1xuXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZFBsYWNlaG9sZGVyUmVmICE9PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICByZXR1cm4gdGhpcy5kbmRQbGFjZWhvbGRlclJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG5cbiAgICAvLyBUT0RPIG5hc3R5IHdvcmthcm91bmQgbmVlZGVkIGJlY2F1c2UgaWYgbmctY29udGFpbmVyIC8gdGVtcGxhdGUgaXMgdXNlZCBAQ29udGVudENoaWxkKCkgb3IgREkgd2lsbCBmYWlsIGJlY2F1c2VcbiAgICAvLyBvZiB3cm9uZyBjb250ZXh0IHNlZSBhbmd1bGFyIGJ1ZyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzUxN1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCBcIltkbmRQbGFjZWhvbGRlclJlZl1cIiApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVQbGFjZWhvbGRlckZyb21ET00oKSB7XG5cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlciAhPT0gbnVsbFxuICAgICAgJiYgdGhpcy5wbGFjZWhvbGRlci5wYXJlbnROb2RlICE9PSBudWxsICkge1xuICAgICAgdGhpcy5wbGFjZWhvbGRlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0aGlzLnBsYWNlaG9sZGVyICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0FuZFVwZGF0ZVBsYWNlaG9sZGVyUG9zaXRpb24oIGV2ZW50OkRyYWdFdmVudCApOnZvaWQge1xuXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIgPT09IG51bGwgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBtYWtlIHN1cmUgdGhlIHBsYWNlaG9sZGVyIGlzIGluIHRoZSBET01cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlci5wYXJlbnROb2RlICE9PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCApIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXIgKTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIHBvc2l0aW9uIGlmIHRoZSBldmVudCBvcmlnaW5hdGVzIGZyb20gYSBjaGlsZCBlbGVtZW50IG9mIHRoZSBkcm9wem9uZVxuICAgIGNvbnN0IGRpcmVjdENoaWxkID0gZ2V0RGlyZWN0Q2hpbGRFbGVtZW50KCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQgKTtcblxuICAgIC8vIGVhcmx5IGV4aXQgaWYgbm8gZGlyZWN0IGNoaWxkIG9yIGRpcmVjdCBjaGlsZCBpcyBwbGFjZWhvbGRlclxuICAgIGlmKCBkaXJlY3RDaGlsZCA9PT0gbnVsbFxuICAgICAgfHwgZGlyZWN0Q2hpbGQgPT09IHRoaXMucGxhY2Vob2xkZXIgKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRGlyZWN0Q2hpbGQgPSBzaG91bGRQb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRWxlbWVudCggZXZlbnQsIGRpcmVjdENoaWxkLCB0aGlzLmRuZEhvcml6b250YWwgKTtcblxuICAgIGlmKCBwb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRGlyZWN0Q2hpbGQgKSB7XG5cbiAgICAgIC8vIGRvIGluc2VydCBiZWZvcmUgb25seSBpZiBuZWNlc3NhcnlcbiAgICAgIGlmKCBkaXJlY3RDaGlsZC5wcmV2aW91c1NpYmxpbmcgIT09IHRoaXMucGxhY2Vob2xkZXIgKSB7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBsYWNlaG9sZGVyLCBkaXJlY3RDaGlsZCApO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcblxuICAgICAgLy8gZG8gaW5zZXJ0IGFmdGVyIG9ubHkgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiggZGlyZWN0Q2hpbGQubmV4dFNpYmxpbmcgIT09IHRoaXMucGxhY2Vob2xkZXIgKSB7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBsYWNlaG9sZGVyLCBkaXJlY3RDaGlsZC5uZXh0U2libGluZyApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGxhY2Vob2xkZXJJbmRleCgpOm51bWJlciB8IHVuZGVmaW5lZCB7XG5cbiAgICBpZiggdGhpcy5wbGFjZWhvbGRlciA9PT0gbnVsbCApIHtcblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCggZWxlbWVudC5jaGlsZHJlbiwgdGhpcy5wbGFjZWhvbGRlciApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwRHJhZ292ZXJTdGF0ZSgpIHtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdvdmVyQ2xhc3MgKTtcblxuICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXJGcm9tRE9NKCk7XG4gIH1cbn1cbiJdfQ==

@@ -67,2 +67,13 @@ /**

});
Object.defineProperty(DndDraggableDirective.prototype, "dndDisableDragIf", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.dndDisableIf = value;
},
enumerable: true,
configurable: true
});
/**

@@ -256,2 +267,3 @@ * @return {?}

dndDisableIf: [{ type: Input }],
dndDisableDragIf: [{ type: Input }],
onDragStart: [{ type: HostListener, args: ["dragstart", ["$event"],] }],

@@ -330,2 +342,2 @@ onDragEnd: [{ type: HostListener, args: ["dragend", ["$event"],] }]

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZHJhZy1kcm9wLyIsInNvdXJjZXMiOlsiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFBRSxNQUFNLEVBQ2IsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQXdDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzNEO0lBS0Usa0NBQWEsTUFBNEIsRUFDNUIsVUFBcUI7UUFFaEMsTUFBTSxDQUFDLGlCQUFpQixDQUFFLFVBQVUsQ0FBRSxDQUFDO0lBQ3pDLENBQUM7O2dCQVRGLFNBQVMsU0FBRTtvQkFDVixRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs7OztnQkFHcUIscUJBQXFCO2dCQWxCekMsVUFBVTs7SUF1QlosK0JBQUM7Q0FBQSxBQVZELElBVUM7U0FQWSx3QkFBd0I7QUFTckM7SUF5RUUsK0JBQXFCLFVBQXFCLEVBQ3JCLFFBQWtCLEVBQ2xCLE1BQWE7UUFGbEMsaUJBR0M7UUFIb0IsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQU87UUFsRWxDLHFCQUFnQixHQUFpQixNQUFNLENBQUM7UUFNeEMscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBR2pDLDJCQUFzQixHQUFHLG1CQUFtQixDQUFDO1FBRzdDLDhCQUF5QixHQUFHLHNCQUFzQixDQUFDO1FBR25ELCtCQUEwQixHQUE4Qix3QkFBd0IsQ0FBQztRQUd4RSxhQUFR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QkFHTixNQUFNOzRCQUdOLFdBQVcsU0FBRSxnQkFBZ0I7K0JBVzdCLEtBQUs7OEJBK0JMLFlBQVksU0FBRSxXQUFXLEVBQUUsQ0FBRSxRQUFRLENBQUU7NEJBbUR2QyxZQUFZLFNBQUUsU0FBUyxFQUFFLENBQUUsUUFBUSxDQUFFOztJQWlFeEMsNEJBQUM7Q0FBQSxBQTdNRCxJQTZNQztTQTFNWSxxQkFBcUI7OztJQUVoQyw2Q0FDaUI7O0lBRWpCLGlEQUN3Qzs7SUFFeEMsd0NBQ2dCOztJQUVoQixpREFDaUM7O0lBRWpDLHVEQUM2Qzs7SUFFN0MsMERBQ21EOztJQUVuRCwyREFDaUY7O0lBRWpGLHlDQUMwRTs7SUFFMUUsd0NBQ3lFOztJQUV6RSx1Q0FDd0U7O0lBRXhFLHlDQUMwRTs7SUFFMUUsMENBQzJFOztJQUUzRSwwQ0FDMkU7O0lBRTNFLDRDQUM2RTs7SUFFN0UsMENBQ2lCOzs7OztJQUVqQiwwQ0FBc0M7Ozs7O0lBRXRDLHVEQUEyQzs7Ozs7SUFFM0MsMENBQTBCOzs7OztJQUUxQixpREFBNEc7Ozs7O0lBaUIvRiwyQ0FBNkI7Ozs7O0lBQzdCLHlDQUEwQjs7Ozs7SUFDMUIsdUNBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZURyYWdJbWFnZU9mZnNldCwgRG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb24sIERuZEV2ZW50LCBzZXREcmFnRGF0YSwgc2V0RHJhZ0ltYWdlIH0gZnJvbSBcIi4vZG5kLXV0aWxzXCI7XG5pbXBvcnQgeyBEbmRIYW5kbGVEaXJlY3RpdmUgfSBmcm9tIFwiLi9kbmQtaGFuZGxlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgZG5kU3RhdGUsIGVuZERyYWcsIHN0YXJ0RHJhZyB9IGZyb20gXCIuL2RuZC1zdGF0ZVwiO1xuaW1wb3J0IHsgRWZmZWN0QWxsb3dlZCB9IGZyb20gXCIuL2RuZC10eXBlc1wiO1xuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmREcmFnSW1hZ2VSZWZdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyYWdJbWFnZVJlZkRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoIHBhcmVudDpEbmREcmFnZ2FibGVEaXJlY3RpdmUsXG4gICAgICAgICAgICAgICBlbGVtZW50UmVmOkVsZW1lbnRSZWYgKSB7XG5cbiAgICBwYXJlbnQucmVnaXN0ZXJEcmFnSW1hZ2UoIGVsZW1lbnRSZWYgKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmREcmFnZ2FibGVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyYWdnYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dhYmxlOmFueTtcblxuICBASW5wdXQoKVxuICBkbmRFZmZlY3RBbGxvd2VkOkVmZmVjdEFsbG93ZWQgPSBcImNvcHlcIjtcblxuICBASW5wdXQoKVxuICBkbmRUeXBlPzpzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dpbmdDbGFzcyA9IFwiZG5kRHJhZ2dpbmdcIjtcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2luZ1NvdXJjZUNsYXNzID0gXCJkbmREcmFnZ2luZ1NvdXJjZVwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdnYWJsZURpc2FibGVkQ2xhc3MgPSBcImRuZERyYWdnYWJsZURpc2FibGVkXCI7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb246RG5kRHJhZ0ltYWdlT2Zmc2V0RnVuY3Rpb24gPSBjYWxjdWxhdGVEcmFnSW1hZ2VPZmZzZXQ7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZFN0YXJ0OkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZERyYWc6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRW5kOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZE1vdmVkOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZENvcGllZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRMaW5rZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kQ2FuY2VsZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBASG9zdEJpbmRpbmcoIFwiYXR0ci5kcmFnZ2FibGVcIiApXG4gIGRyYWdnYWJsZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBkbmRIYW5kbGU/OkRuZEhhbmRsZURpcmVjdGl2ZTtcblxuICBwcml2YXRlIGRuZERyYWdJbWFnZUVsZW1lbnRSZWY/OkVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBkcmFnSW1hZ2U6RWxlbWVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZyggZXZlbnQgKTtcblxuICBASW5wdXQoKVxuICBzZXQgZG5kRGlzYWJsZUlmKCB2YWx1ZTpib29sZWFuICkge1xuXG4gICAgdGhpcy5kcmFnZ2FibGUgPSAhdmFsdWU7XG5cbiAgICBpZiggdGhpcy5kcmFnZ2FibGUgKSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnYWJsZURpc2FibGVkQ2xhc3MgKTtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnYWJsZURpc2FibGVkQ2xhc3MgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMixcbiAgICAgICAgICAgICAgIHByaXZhdGUgbmdab25lOk5nWm9uZSApIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWQge1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ3N0YXJ0XCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25EcmFnU3RhcnQoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGRuZCBoYW5kbGUgYW5kIGlmIHRoZSBkbmQgaGFuZGxlIHdhcyB1c2VkIHRvIHN0YXJ0IHRoZSBkcmFnXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZEhhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgJiYgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGluaXRpYWxpemUgZ2xvYmFsIHN0YXRlXG4gICAgc3RhcnREcmFnKCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkLCB0aGlzLmRuZFR5cGUgKTtcblxuICAgIHNldERyYWdEYXRhKCBldmVudCwge2RhdGE6IHRoaXMuZG5kRHJhZ2dhYmxlLCB0eXBlOiB0aGlzLmRuZFR5cGV9LCBkbmRTdGF0ZS5lZmZlY3RBbGxvd2VkICk7XG5cbiAgICB0aGlzLmRyYWdJbWFnZSA9IHRoaXMuZGV0ZXJtaW5lRHJhZ0ltYWdlKCk7XG5cbiAgICAvLyBzZXQgZHJhZ2dpbmcgY3NzIGNsYXNzIHByaW9yIHRvIHNldERyYWdJbWFnZSBzbyBzdHlsZXMgYXJlIGFwcGxpZWQgYmVmb3JlXG4gICAgLy8gVE9ETyBicmVha2luZyBjaGFuZ2U6IGFkZCBjbGFzcyB0byBlbGVtZW50UmVmIHJhdGhlciB0aGFuIGRyYWcgaW1hZ2Ugd2hpY2ggY291bGQgYmUgYW5vdGhlciBlbGVtZW50XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5kcmFnSW1hZ2UsIHRoaXMuZG5kRHJhZ2dpbmdDbGFzcyApO1xuXG4gICAgLy8gc2V0IGN1c3RvbSBkcmFnaW1hZ2UgaWYgcHJlc2VudFxuICAgIC8vIHNldCBkcmFnaW1hZ2UgaWYgZHJhZyBpcyBzdGFydGVkIGZyb20gZG5kSGFuZGxlXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgIHx8IHR5cGVvZiBldmVudC5fZG5kVXNpbmdIYW5kbGUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIHNldERyYWdJbWFnZSggZXZlbnQsIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdJbWFnZU9mZnNldEZ1bmN0aW9uICk7XG4gICAgfVxuXG4gICAgLy8gYWRkIGRyYWdnaW5nIHNvdXJjZSBjc3MgY2xhc3Mgb24gZmlyc3QgZHJhZyBldmVudFxuICAgIGNvbnN0IHVucmVnaXN0ZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZHJhZ1wiLCAoKSA9PiB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnaW5nU291cmNlQ2xhc3MgKTtcbiAgICAgIHVucmVnaXN0ZXIoKTtcbiAgICB9ICk7XG5cbiAgICB0aGlzLmRuZFN0YXJ0LmVtaXQoIGV2ZW50ICk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uRHJhZyggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgdGhpcy5kbmREcmFnLmVtaXQoIGV2ZW50ICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCBcImRyYWdlbmRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyYWdFbmQoIGV2ZW50OkRyYWdFdmVudCApIHtcblxuICAgIC8vIGdldCBkcm9wIGVmZmVjdCBmcm9tIGN1c3RvbSBzdG9yZWQgc3RhdGUgYXMgaXRzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYnJvd3NlcnNcbiAgICBjb25zdCBkcm9wRWZmZWN0ID0gZG5kU3RhdGUuZHJvcEVmZmVjdDtcblxuICAgIGxldCBkcm9wRWZmZWN0RW1pdHRlcjpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PjtcblxuICAgIHN3aXRjaCggZHJvcEVmZmVjdCApIHtcblxuICAgICAgY2FzZSBcImNvcHlcIjpcbiAgICAgICAgZHJvcEVmZmVjdEVtaXR0ZXIgPSB0aGlzLmRuZENvcGllZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRMaW5rZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwibW92ZVwiOlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kTW92ZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kQ2FuY2VsZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGRyb3BFZmZlY3RFbWl0dGVyLmVtaXQoIGV2ZW50ICk7XG4gICAgdGhpcy5kbmRFbmQuZW1pdCggZXZlbnQgKTtcblxuICAgIC8vIHJlc2V0IGdsb2JhbCBzdGF0ZVxuICAgIGVuZERyYWcoKTtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdnaW5nQ2xhc3MgKTtcblxuICAgIC8vIElFOSBzcGVjaWFsIGhhbW1lcmluZ1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCAoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2luZ1NvdXJjZUNsYXNzICk7XG4gICAgfSwgMCApO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICByZWdpc3RlckRyYWdIYW5kbGUoIGhhbmRsZTpEbmRIYW5kbGVEaXJlY3RpdmUgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZEhhbmRsZSA9IGhhbmRsZTtcbiAgfVxuXG4gIHJlZ2lzdGVyRHJhZ0ltYWdlKCBlbGVtZW50UmVmOkVsZW1lbnRSZWYgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVEcmFnSW1hZ2UoKTpFbGVtZW50IHtcblxuICAgIC8vIGV2YWx1YXRlIGN1c3RvbSBkcmFnIGltYWdlIGV4aXN0ZW5jZVxuICAgIGlmKCB0eXBlb2YgdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmICE9PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICByZXR1cm4gdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZHJhZy1kcm9wLyIsInNvdXJjZXMiOlsiZG5kLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQXdDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzNEO0lBS0Usa0NBQWEsTUFBNEIsRUFDNUIsVUFBcUI7UUFFaEMsTUFBTSxDQUFDLGlCQUFpQixDQUFFLFVBQVUsQ0FBRSxDQUFDO0lBQ3pDLENBQUM7O2dCQVRGLFNBQVMsU0FBRTtvQkFDVixRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs7OztnQkFHcUIscUJBQXFCO2dCQXBCekMsVUFBVTs7SUF5QlosK0JBQUM7Q0FBQSxBQVZELElBVUM7U0FQWSx3QkFBd0I7QUFTckM7SUE4RUUsK0JBQXFCLFVBQXFCLEVBQ3JCLFFBQWtCLEVBQ2xCLE1BQWE7UUFGbEMsaUJBR0M7UUFIb0IsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQU87UUF2RWxDLHFCQUFnQixHQUFpQixNQUFNLENBQUM7UUFNeEMscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBR2pDLDJCQUFzQixHQUFHLG1CQUFtQixDQUFDO1FBRzdDLDhCQUF5QixHQUFHLHNCQUFzQixDQUFDO1FBR25ELCtCQUEwQixHQUE4Qix3QkFBd0IsQ0FBQztRQUd4RSxhQUFR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QUFLOzRDQUdMLEtBQUs7NkNBR0wsS0FBSzsyQkFHTCxNQUFNOzBCQUdOLE1BQU07eUJBR04sTUFBTTsyQkFHTixNQUFNOzRCQUdOLE1BQU07NEJBR04sTUFBTTs4QkFHTixNQUFNOzRCQUdOLFdBQVcsU0FBRSxnQkFBZ0I7K0JBVzdCLEtBQUs7bUNBZUwsS0FBSzs4QkFxQkwsWUFBWSxTQUFFLFdBQVcsRUFBRSxDQUFFLFFBQVEsQ0FBRTs0QkFtRHZDLFlBQVksU0FBRSxTQUFTLEVBQUUsQ0FBRSxRQUFRLENBQUU7O0lBaUV4Qyw0QkFBQztDQUFBLEFBbE5ELElBa05DO1NBL01ZLHFCQUFxQjs7O0lBRWhDLDZDQUNpQjs7SUFFakIsaURBQ3dDOztJQUV4Qyx3Q0FDZ0I7O0lBRWhCLGlEQUNpQzs7SUFFakMsdURBQzZDOztJQUU3QywwREFDbUQ7O0lBRW5ELDJEQUNpRjs7SUFFakYseUNBQzBFOztJQUUxRSx3Q0FDeUU7O0lBRXpFLHVDQUN3RTs7SUFFeEUseUNBQzBFOztJQUUxRSwwQ0FDMkU7O0lBRTNFLDBDQUMyRTs7SUFFM0UsNENBQzZFOztJQUU3RSwwQ0FDaUI7Ozs7O0lBRWpCLDBDQUFzQzs7Ozs7SUFFdEMsdURBQTJDOzs7OztJQUUzQywwQ0FBMEI7Ozs7O0lBRTFCLGlEQUE0Rzs7Ozs7SUFzQi9GLDJDQUE2Qjs7Ozs7SUFDN0IseUNBQTBCOzs7OztJQUMxQix1Q0FBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY2FsY3VsYXRlRHJhZ0ltYWdlT2Zmc2V0LCBEbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbiwgRG5kRXZlbnQsIHNldERyYWdEYXRhLCBzZXREcmFnSW1hZ2UgfSBmcm9tIFwiLi9kbmQtdXRpbHNcIjtcbmltcG9ydCB7IERuZEhhbmRsZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RuZC1oYW5kbGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBkbmRTdGF0ZSwgZW5kRHJhZywgc3RhcnREcmFnIH0gZnJvbSBcIi4vZG5kLXN0YXRlXCI7XG5pbXBvcnQgeyBFZmZlY3RBbGxvd2VkIH0gZnJvbSBcIi4vZG5kLXR5cGVzXCI7XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZERyYWdJbWFnZVJlZl1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kRHJhZ0ltYWdlUmVmRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvciggcGFyZW50OkRuZERyYWdnYWJsZURpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgIGVsZW1lbnRSZWY6RWxlbWVudFJlZiApIHtcblxuICAgIHBhcmVudC5yZWdpc3RlckRyYWdJbWFnZSggZWxlbWVudFJlZiApO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZERyYWdnYWJsZV1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kRHJhZ2dhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2FibGU6YW55O1xuXG4gIEBJbnB1dCgpXG4gIGRuZEVmZmVjdEFsbG93ZWQ6RWZmZWN0QWxsb3dlZCA9IFwiY29weVwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZFR5cGU/OnN0cmluZztcblxuICBASW5wdXQoKVxuICBkbmREcmFnZ2luZ0NsYXNzID0gXCJkbmREcmFnZ2luZ1wiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdnaW5nU291cmNlQ2xhc3MgPSBcImRuZERyYWdnaW5nU291cmNlXCI7XG5cbiAgQElucHV0KClcbiAgZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyA9IFwiZG5kRHJhZ2dhYmxlRGlzYWJsZWRcIjtcblxuICBASW5wdXQoKVxuICBkbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbjpEbmREcmFnSW1hZ2VPZmZzZXRGdW5jdGlvbiA9IGNhbGN1bGF0ZURyYWdJbWFnZU9mZnNldDtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kU3RhcnQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJhZzpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRFbmQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kTW92ZWQ6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kQ29waWVkOkV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGRuZExpbmtlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmRDYW5jZWxlZDpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBIb3N0QmluZGluZyggXCJhdHRyLmRyYWdnYWJsZVwiIClcbiAgZHJhZ2dhYmxlID0gdHJ1ZTtcblxuICBwcml2YXRlIGRuZEhhbmRsZT86RG5kSGFuZGxlRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgZG5kRHJhZ0ltYWdlRWxlbWVudFJlZj86RWxlbWVudFJlZjtcblxuICBwcml2YXRlIGRyYWdJbWFnZTpFbGVtZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ0V2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnKCBldmVudCApO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkbmREaXNhYmxlSWYoIHZhbHVlOmJvb2xlYW4gKSB7XG5cbiAgICB0aGlzLmRyYWdnYWJsZSA9ICF2YWx1ZTtcblxuICAgIGlmKCB0aGlzLmRyYWdnYWJsZSApIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgICBlbHNlIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJhZ2dhYmxlRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbmREaXNhYmxlRHJhZ0lmKCB2YWx1ZTpib29sZWFuICkge1xuICAgIHRoaXMuZG5kRGlzYWJsZUlmID0gdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMixcbiAgICAgICAgICAgICAgIHByaXZhdGUgbmdab25lOk5nWm9uZSApIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOnZvaWQge1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgICB9ICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ1wiLCB0aGlzLmRyYWdFdmVudEhhbmRsZXIgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJhZ3N0YXJ0XCIsIFsgXCIkZXZlbnRcIiBdIClcbiAgb25EcmFnU3RhcnQoIGV2ZW50OkRuZEV2ZW50ICkge1xuXG4gICAgaWYoIHRoaXMuZHJhZ2dhYmxlID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGRuZCBoYW5kbGUgYW5kIGlmIHRoZSBkbmQgaGFuZGxlIHdhcyB1c2VkIHRvIHN0YXJ0IHRoZSBkcmFnXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZEhhbmRsZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgJiYgdHlwZW9mIGV2ZW50Ll9kbmRVc2luZ0hhbmRsZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGluaXRpYWxpemUgZ2xvYmFsIHN0YXRlXG4gICAgc3RhcnREcmFnKCBldmVudCwgdGhpcy5kbmRFZmZlY3RBbGxvd2VkLCB0aGlzLmRuZFR5cGUgKTtcblxuICAgIHNldERyYWdEYXRhKCBldmVudCwge2RhdGE6IHRoaXMuZG5kRHJhZ2dhYmxlLCB0eXBlOiB0aGlzLmRuZFR5cGV9LCBkbmRTdGF0ZS5lZmZlY3RBbGxvd2VkICk7XG5cbiAgICB0aGlzLmRyYWdJbWFnZSA9IHRoaXMuZGV0ZXJtaW5lRHJhZ0ltYWdlKCk7XG5cbiAgICAvLyBzZXQgZHJhZ2dpbmcgY3NzIGNsYXNzIHByaW9yIHRvIHNldERyYWdJbWFnZSBzbyBzdHlsZXMgYXJlIGFwcGxpZWQgYmVmb3JlXG4gICAgLy8gVE9ETyBicmVha2luZyBjaGFuZ2U6IGFkZCBjbGFzcyB0byBlbGVtZW50UmVmIHJhdGhlciB0aGFuIGRyYWcgaW1hZ2Ugd2hpY2ggY291bGQgYmUgYW5vdGhlciBlbGVtZW50XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5kcmFnSW1hZ2UsIHRoaXMuZG5kRHJhZ2dpbmdDbGFzcyApO1xuXG4gICAgLy8gc2V0IGN1c3RvbSBkcmFnaW1hZ2UgaWYgcHJlc2VudFxuICAgIC8vIHNldCBkcmFnaW1hZ2UgaWYgZHJhZyBpcyBzdGFydGVkIGZyb20gZG5kSGFuZGxlXG4gICAgaWYoIHR5cGVvZiB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgIT09IFwidW5kZWZpbmVkXCJcbiAgICAgIHx8IHR5cGVvZiBldmVudC5fZG5kVXNpbmdIYW5kbGUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cbiAgICAgIHNldERyYWdJbWFnZSggZXZlbnQsIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdJbWFnZU9mZnNldEZ1bmN0aW9uICk7XG4gICAgfVxuXG4gICAgLy8gYWRkIGRyYWdnaW5nIHNvdXJjZSBjc3MgY2xhc3Mgb24gZmlyc3QgZHJhZyBldmVudFxuICAgIGNvbnN0IHVucmVnaXN0ZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbiggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZHJhZ1wiLCAoKSA9PiB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdnaW5nU291cmNlQ2xhc3MgKTtcbiAgICAgIHVucmVnaXN0ZXIoKTtcbiAgICB9ICk7XG5cbiAgICB0aGlzLmRuZFN0YXJ0LmVtaXQoIGV2ZW50ICk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uRHJhZyggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgdGhpcy5kbmREcmFnLmVtaXQoIGV2ZW50ICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCBcImRyYWdlbmRcIiwgWyBcIiRldmVudFwiIF0gKVxuICBvbkRyYWdFbmQoIGV2ZW50OkRyYWdFdmVudCApIHtcblxuICAgIC8vIGdldCBkcm9wIGVmZmVjdCBmcm9tIGN1c3RvbSBzdG9yZWQgc3RhdGUgYXMgaXRzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYnJvd3NlcnNcbiAgICBjb25zdCBkcm9wRWZmZWN0ID0gZG5kU3RhdGUuZHJvcEVmZmVjdDtcblxuICAgIGxldCBkcm9wRWZmZWN0RW1pdHRlcjpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PjtcblxuICAgIHN3aXRjaCggZHJvcEVmZmVjdCApIHtcblxuICAgICAgY2FzZSBcImNvcHlcIjpcbiAgICAgICAgZHJvcEVmZmVjdEVtaXR0ZXIgPSB0aGlzLmRuZENvcGllZDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgIGRyb3BFZmZlY3RFbWl0dGVyID0gdGhpcy5kbmRMaW5rZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwibW92ZVwiOlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kTW92ZWQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkcm9wRWZmZWN0RW1pdHRlciA9IHRoaXMuZG5kQ2FuY2VsZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGRyb3BFZmZlY3RFbWl0dGVyLmVtaXQoIGV2ZW50ICk7XG4gICAgdGhpcy5kbmRFbmQuZW1pdCggZXZlbnQgKTtcblxuICAgIC8vIHJlc2V0IGdsb2JhbCBzdGF0ZVxuICAgIGVuZERyYWcoKTtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoIHRoaXMuZHJhZ0ltYWdlLCB0aGlzLmRuZERyYWdnaW5nQ2xhc3MgKTtcblxuICAgIC8vIElFOSBzcGVjaWFsIGhhbW1lcmluZ1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCAoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnZ2luZ1NvdXJjZUNsYXNzICk7XG4gICAgfSwgMCApO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICByZWdpc3RlckRyYWdIYW5kbGUoIGhhbmRsZTpEbmRIYW5kbGVEaXJlY3RpdmUgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZEhhbmRsZSA9IGhhbmRsZTtcbiAgfVxuXG4gIHJlZ2lzdGVyRHJhZ0ltYWdlKCBlbGVtZW50UmVmOkVsZW1lbnRSZWYgfCB1bmRlZmluZWQgKSB7XG5cbiAgICB0aGlzLmRuZERyYWdJbWFnZUVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVEcmFnSW1hZ2UoKTpFbGVtZW50IHtcblxuICAgIC8vIGV2YWx1YXRlIGN1c3RvbSBkcmFnIGltYWdlIGV4aXN0ZW5jZVxuICAgIGlmKCB0eXBlb2YgdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmICE9PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICByZXR1cm4gdGhpcy5kbmREcmFnSW1hZ2VFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -93,2 +93,13 @@ /**

});
Object.defineProperty(DndDropzoneDirective.prototype, "dndDisableDropIf", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.dndDisableIf = value;
},
enumerable: true,
configurable: true
});
/**

@@ -421,2 +432,3 @@ * @return {?}

dndDisableIf: [{ type: Input }],
dndDisableDropIf: [{ type: Input }],
onDrop: [{ type: HostListener, args: ["drop", ["$event"],] }]

@@ -490,2 +502,2 @@ };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyb3B6b25lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcmFnLWRyb3AvIiwic291cmNlcyI6WyJkbmQtZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsc0NBQXNDLEVBQ3ZDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFHdkYsa0NBT0M7OztJQU5DLDZCQUFnQjs7SUFDaEIsa0NBQXNCOztJQUN0QixrQ0FBbUI7O0lBQ25CLDRCQUFVOztJQUNWLDZCQUFjOztJQUNkLDRCQUFVOztBQUdaO0lBS0Usb0NBQTZCLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7SUFDbEQsQ0FBQzs7Z0JBTkYsU0FBUyxTQUFFO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOzs7O2dCQTlCQyxVQUFVOztJQW1DWixpQ0FBQztDQUFBLEFBUEQsSUFPQztTQUpZLDBCQUEwQjs7O0lBRXhCLGdEQUFxQzs7QUFJcEQ7SUF1REUsOEJBQXFCLE1BQWEsRUFDYixVQUFxQixFQUNyQixRQUFrQjtRQUZ2QyxpQkFHQztRQUhvQixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0N2QyxxQkFBZ0IsR0FBVyxLQUFLLENBQUM7UUFHakMsa0JBQWEsR0FBVyxLQUFLLENBQUM7UUFHOUIscUJBQWdCLEdBQVUsYUFBYSxDQUFD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VSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUUsQ0FBQztRQUVsRixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDOztnQkF6VkYsU0FBUyxTQUFFO29CQUNWLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7OztnQkFuQ0MsTUFBTTtnQkFKTixVQUFVO2dCQU9WLFNBQVM7Ozs4QkFtQ1IsS0FBSzttQ0FHTCxLQUFLO21DQUdMLEtBQUs7Z0NBR0wsS0FBSzttQ0FHTCxLQUFLOzJDQUdMLEtBQUs7OEJBR0wsTUFBTTswQkFHTixNQUFNO29DQUdOLFlBQVksU0FBRSwwQkFBMEI7K0JBV3hDLEtBQUs7eUJBNkdMLFlBQVksU0FBRSxNQUFNLEVBQUUsQ0FBRSxRQUFRLENBQUU7O0lBcU1yQywyQkFBQztDQUFBLEFBMVZELElBMFZDO1NBdlZZLG9CQUFvQjs7O0lBRS9CLDJDQUNzQjs7SUFFdEIsZ0RBQytCOztJQUUvQixnREFDaUM7O0lBRWpDLDZDQUM4Qjs7SUFFOUIsZ0RBQ3dDOztJQUV4Qyx3REFDaUQ7O0lBRWpELDJDQUM2RTs7SUFFN0UsdUNBQytFOzs7OztJQUUvRSxpREFDK0Q7Ozs7O0lBRS9ELDJDQUEwQzs7Ozs7SUFFMUMsd0NBQWlDOzs7OztJQUVqQyxxREFBc0g7Ozs7O0lBQ3RILG9EQUFvSDs7Ozs7SUFDcEgscURBQXNIOzs7OztJQWlCekcsc0NBQXFCOzs7OztJQUNyQiwwQ0FBNkI7Ozs7O0lBQzdCLHdDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRG5kRXZlbnQsXG4gIERyYWdEcm9wRGF0YSxcbiAgZ2V0RGlyZWN0Q2hpbGRFbGVtZW50LFxuICBnZXREcm9wRGF0YSxcbiAgc2hvdWxkUG9zaXRpb25QbGFjZWhvbGRlckJlZm9yZUVsZW1lbnRcbn0gZnJvbSBcIi4vZG5kLXV0aWxzXCI7XG5pbXBvcnQgeyBnZXREbmRUeXBlLCBnZXREcm9wRWZmZWN0LCBpc0V4dGVybmFsRHJhZywgc2V0RHJvcEVmZmVjdCB9IGZyb20gXCIuL2RuZC1zdGF0ZVwiO1xuaW1wb3J0IHsgRHJvcEVmZmVjdCwgRWZmZWN0QWxsb3dlZCB9IGZyb20gXCIuL2RuZC10eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERuZERyb3BFdmVudCB7XG4gIGV2ZW50OkRyYWdFdmVudDtcbiAgZHJvcEVmZmVjdDpEcm9wRWZmZWN0O1xuICBpc0V4dGVybmFsOmJvb2xlYW47XG4gIGRhdGE/OmFueTtcbiAgaW5kZXg/Om51bWJlcjtcbiAgdHlwZT86YW55O1xufVxuXG5ARGlyZWN0aXZlKCB7XG4gIHNlbGVjdG9yOiBcIltkbmRQbGFjZWhvbGRlclJlZl1cIlxufSApXG5leHBvcnQgY2xhc3MgRG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKCBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudFJlZjpFbGVtZW50UmVmICkge1xuICB9XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZERyb3B6b25lXVwiXG59IClcbmV4cG9ydCBjbGFzcyBEbmREcm9wem9uZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgZG5kRHJvcHpvbmU/OnN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIGRuZEVmZmVjdEFsbG93ZWQ6RWZmZWN0QWxsb3dlZDtcblxuICBASW5wdXQoKVxuICBkbmRBbGxvd0V4dGVybmFsOmJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkbmRIb3Jpem9udGFsOmJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkbmREcmFnb3ZlckNsYXNzOnN0cmluZyA9IFwiZG5kRHJhZ292ZXJcIjtcblxuICBASW5wdXQoKVxuICBkbmREcm9wem9uZURpc2FibGVkQ2xhc3MgPSBcImRuZERyb3B6b25lRGlzYWJsZWRcIjtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJhZ292ZXI6RXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZG5kRHJvcDpFdmVudEVtaXR0ZXI8RG5kRHJvcEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RG5kRHJvcEV2ZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGQoIERuZFBsYWNlaG9sZGVyUmVmRGlyZWN0aXZlIClcbiAgcHJpdmF0ZSByZWFkb25seSBkbmRQbGFjZWhvbGRlclJlZj86RG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmU7XG5cbiAgcHJpdmF0ZSBwbGFjZWhvbGRlcjpFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBkaXNhYmxlZDpib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcmFnRW50ZXJFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZ0VudGVyKCBldmVudCApO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdPdmVyRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWdPdmVyKCBldmVudCApO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdMZWF2ZUV2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnTGVhdmUoIGV2ZW50ICk7XG5cbiAgQElucHV0KClcbiAgc2V0IGRuZERpc2FibGVJZiggdmFsdWU6Ym9vbGVhbiApIHtcblxuICAgIHRoaXMuZGlzYWJsZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYoIHRoaXMuZGlzYWJsZWQgKSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyb3B6b25lRGlzYWJsZWRDbGFzcyApO1xuICAgIH1cbiAgICBlbHNlIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJvcHpvbmVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgbmdab25lOk5nWm9uZSxcbiAgICAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjpFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjpSZW5kZXJlcjIgKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTp2b2lkIHtcblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnRyeUdldFBsYWNlaG9sZGVyKCk7XG5cbiAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyRnJvbURPTSgpO1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ2VudGVyXCIsIHRoaXMuZHJhZ0VudGVyRXZlbnRIYW5kbGVyICk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBcImRyYWdvdmVyXCIsIHRoaXMuZHJhZ092ZXJFdmVudEhhbmRsZXIgKTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ2xlYXZlXCIsIHRoaXMuZHJhZ0xlYXZlRXZlbnRIYW5kbGVyICk7XG4gICAgfSApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTp2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcImRyYWdlbnRlclwiLCB0aGlzLmRyYWdFbnRlckV2ZW50SGFuZGxlciApO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ292ZXJcIiwgdGhpcy5kcmFnT3ZlckV2ZW50SGFuZGxlciApO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ2xlYXZlXCIsIHRoaXMuZHJhZ0xlYXZlRXZlbnRIYW5kbGVyICk7XG4gIH1cblxuICBvbkRyYWdFbnRlciggZXZlbnQ6RG5kRXZlbnQgKSB7XG5cbiAgICAvLyBjaGVjayBpZiBhbm90aGVyIGRyb3B6b25lIGlzIGFjdGl2YXRlZFxuICAgIGlmKCBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPT09IHRydWUgKSB7XG5cbiAgICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzZXQgYXMgYWN0aXZlIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBpbnNpZGUgdGhpcyBkcm9wem9uZVxuICAgIGlmKCB0eXBlb2YgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID09PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICBjb25zdCBuZXdUYXJnZXQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZICk7XG5cbiAgICAgIGlmKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyggbmV3VGFyZ2V0ICkgKSB7XG5cbiAgICAgICAgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiB0aGlzIGRyYWcgZXZlbnQgaXMgYWxsb3dlZCB0byBkcm9wIG9uIHRoaXMgZHJvcHpvbmVcbiAgICBjb25zdCB0eXBlID0gZ2V0RG5kVHlwZSggZXZlbnQgKTtcbiAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCB0eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYWxsb3cgdGhlIGRyYWdlbnRlclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvbkRyYWdPdmVyKCBldmVudDpEcmFnRXZlbnQgKSB7XG4gICAgLy8gV2l0aCBuZXN0ZWQgZHJvcHpvbmVzLCB3ZSB3YW50IHRvIGlnbm9yZSB0aGlzIGV2ZW50IGlmIGEgY2hpbGQgZHJvcHpvbmVcbiAgICAvLyBoYXMgYWxyZWFkeSBoYW5kbGVkIGEgZHJhZ292ZXIuICBIaXN0b3JpY2FsbHksIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIHdhc1xuICAgIC8vIHVzZWQgdG8gcHJldmVudCB0aGlzIGJ1YmJsaW5nLCBidXQgdGhhdCBwcmV2ZW50cyBhbnkgZHJhZ292ZXJzIG91dHNpZGUgdGhlXG4gICAgLy8gbmd4LWRyYWctZHJvcCBjb21wb25lbnQsIGFuZCBzdG9wcyBvdGhlciB1c2UgY2FzZXMgc3VjaCBhcyBzY3JvbGxpbmcgb24gZHJhZy5cbiAgICAvLyBJbnN0ZWFkLCB3ZSBjYW4gY2hlY2sgaWYgdGhlIGV2ZW50IHdhcyBhbHJlYWR5IHByZXZlbnRlZCBieSBhIGNoaWxkIGFuZCBiYWlsIGVhcmx5LlxuICAgIGlmKCBldmVudC5kZWZhdWx0UHJldmVudGVkICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdGhpcyBkcmFnIGV2ZW50IGlzIGFsbG93ZWQgdG8gZHJvcCBvbiB0aGlzIGRyb3B6b25lXG4gICAgY29uc3QgdHlwZSA9IGdldERuZFR5cGUoIGV2ZW50ICk7XG4gICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggdHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGVQbGFjZWhvbGRlclBvc2l0aW9uKCBldmVudCApO1xuXG4gICAgY29uc3QgZHJvcEVmZmVjdCA9IGdldERyb3BFZmZlY3QoIGV2ZW50LCB0aGlzLmRuZEVmZmVjdEFsbG93ZWQgKTtcblxuICAgIGlmKCBkcm9wRWZmZWN0ID09PSBcIm5vbmVcIiApIHtcblxuICAgICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGFsbG93IHRoZSBkcmFnb3ZlclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBzZXQgdGhlIGRyb3AgZWZmZWN0XG4gICAgc2V0RHJvcEVmZmVjdCggZXZlbnQsIGRyb3BFZmZlY3QgKTtcblxuICAgIHRoaXMuZG5kRHJhZ292ZXIuZW1pdCggZXZlbnQgKTtcblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdvdmVyQ2xhc3MgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJvcFwiLCBbIFwiJGV2ZW50XCIgXSApXG4gIG9uRHJvcCggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgdHJ5IHtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhpcyBkcmFnIGV2ZW50IGlzIGFsbG93ZWQgdG8gZHJvcCBvbiB0aGlzIGRyb3B6b25lXG4gICAgICBjb25zdCB0eXBlID0gZ2V0RG5kVHlwZSggZXZlbnQgKTtcbiAgICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIHR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhOkRyYWdEcm9wRGF0YSA9IGdldERyb3BEYXRhKCBldmVudCwgaXNFeHRlcm5hbERyYWcoKSApO1xuXG4gICAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCBkYXRhLnR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBzaWduYWwgY3VzdG9tIGRyb3AgaGFuZGxpbmdcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGRyb3BFZmZlY3QgPSBnZXREcm9wRWZmZWN0KCBldmVudCApO1xuXG4gICAgICBzZXREcm9wRWZmZWN0KCBldmVudCwgZHJvcEVmZmVjdCApO1xuXG4gICAgICBpZiggZHJvcEVmZmVjdCA9PT0gXCJub25lXCIgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkcm9wSW5kZXggPSB0aGlzLmdldFBsYWNlaG9sZGVySW5kZXgoKTtcblxuICAgICAgLy8gaWYgZm9yIHdoYXRldmVyIHJlYXNvbiB0aGUgcGxhY2Vob2xkZXIgaXMgbm90IHByZXNlbnQgaW4gdGhlIERPTSBidXQgaXQgc2hvdWxkIGJlIHRoZXJlXG4gICAgICAvLyB3ZSBkb24ndCBhbGxvdy9lbWl0IHRoZSBkcm9wIGV2ZW50IHNpbmNlIGl0IGJyZWFrcyB0aGUgY29udHJhY3RcbiAgICAgIC8vIHNlZW1zIHRvIG9ubHkgaGFwcGVuIGlmIGRyYWcgYW5kIGRyb3AgaXMgZXhlY3V0ZWQgZmFzdGVyIHRoYW4gdGhlIERPTSB1cGRhdGVzXG4gICAgICBpZiggZHJvcEluZGV4ID09PSAtMSApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZG5kRHJvcC5lbWl0KCB7XG4gICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgZHJvcEVmZmVjdDogZHJvcEVmZmVjdCxcbiAgICAgICAgaXNFeHRlcm5hbDogaXNFeHRlcm5hbERyYWcoKSxcbiAgICAgICAgZGF0YTogZGF0YS5kYXRhLFxuICAgICAgICBpbmRleDogZHJvcEluZGV4LFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgfSApO1xuXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIH1cbiAgICBmaW5hbGx5IHtcblxuICAgICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJhZ0xlYXZlKCBldmVudDpEbmRFdmVudCApIHtcblxuICAgIC8vIGNoZWNrIGlmIHN0aWxsIGluc2lkZSB0aGlzIGRyb3B6b25lIGFuZCBub3QgeWV0IGhhbmRsZWQgYnkgYW5vdGhlciBkcm9wem9uZVxuICAgIGlmKCB0eXBlb2YgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID09PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICBjb25zdCBuZXdUYXJnZXQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZICk7XG5cbiAgICAgIGlmKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyggbmV3VGFyZ2V0ICkgKSB7XG5cbiAgICAgICAgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcblxuICAgIC8vIGNsZWFudXAgZHJvcCBlZmZlY3Qgd2hlbiBsZWF2aW5nIGRyb3B6b25lXG4gICAgc2V0RHJvcEVmZmVjdCggZXZlbnQsIFwibm9uZVwiICk7XG4gIH1cblxuICBwcml2YXRlIGlzRHJvcEFsbG93ZWQoIHR5cGU/OnN0cmluZyApOmJvb2xlYW4ge1xuXG4gICAgLy8gZHJvcHpvbmUgaXMgZGlzYWJsZWQgLT4gZGVueSBpdFxuICAgIGlmKCB0aGlzLmRpc2FibGVkID09PSB0cnVlICkge1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gaWYgZHJhZyBkaWQgbm90IHN0YXJ0IGZyb20gb3VyIGRpcmVjdGl2ZVxuICAgIC8vIGFuZCBleHRlcm5hbCBkcmFnIHNvdXJjZXMgYXJlIG5vdCBhbGxvd2VkIC0+IGRlbnkgaXRcbiAgICBpZiggaXNFeHRlcm5hbERyYWcoKSA9PT0gdHJ1ZVxuICAgICAgJiYgdGhpcy5kbmRBbGxvd0V4dGVybmFsID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIG5vIGZpbHRlcmluZyBieSB0eXBlcyAtPiBhbGxvdyBpdFxuICAgIGlmKCAhdGhpcy5kbmREcm9wem9uZSApIHtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gbm8gdHlwZSBzZXQgLT4gYWxsb3cgaXRcbiAgICBpZiggIXR5cGUgKSB7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmKCBBcnJheS5pc0FycmF5KCB0aGlzLmRuZERyb3B6b25lICkgPT09IGZhbHNlICkge1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoIFwiZG5kRHJvcHpvbmU6IGJvdW5kIHZhbHVlIHRvIFtkbmREcm9wem9uZV0gbXVzdCBiZSBhbiBhcnJheSFcIiApO1xuICAgIH1cblxuICAgIC8vIGlmIGRyb3B6b25lIGNvbnRhaW5zIHR5cGUgLT4gYWxsb3cgaXRcbiAgICByZXR1cm4gdGhpcy5kbmREcm9wem9uZS5pbmRleE9mKCB0eXBlICkgIT09IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSB0cnlHZXRQbGFjZWhvbGRlcigpOkVsZW1lbnQgfCBudWxsIHtcblxuICAgIGlmKCB0eXBlb2YgdGhpcy5kbmRQbGFjZWhvbGRlclJlZiAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIHRoaXMuZG5kUGxhY2Vob2xkZXJSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBuYXN0eSB3b3JrYXJvdW5kIG5lZWRlZCBiZWNhdXNlIGlmIG5nLWNvbnRhaW5lciAvIHRlbXBsYXRlIGlzIHVzZWQgQENvbnRlbnRDaGlsZCgpIG9yIERJIHdpbGwgZmFpbCBiZWNhdXNlXG4gICAgLy8gb2Ygd3JvbmcgY29udGV4dCBzZWUgYW5ndWxhciBidWcgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM1MTdcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvciggXCJbZG5kUGxhY2Vob2xkZXJSZWZdXCIgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGxhY2Vob2xkZXJGcm9tRE9NKCkge1xuXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIgIT09IG51bGxcbiAgICAgICYmIHRoaXMucGxhY2Vob2xkZXIucGFyZW50Tm9kZSAhPT0gbnVsbCApIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggdGhpcy5wbGFjZWhvbGRlciApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tBbmRVcGRhdGVQbGFjZWhvbGRlclBvc2l0aW9uKCBldmVudDpEcmFnRXZlbnQgKTp2b2lkIHtcblxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyID09PSBudWxsICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gbWFrZSBzdXJlIHRoZSBwbGFjZWhvbGRlciBpcyBpbiB0aGUgRE9NXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIucGFyZW50Tm9kZSAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgKSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBsYWNlaG9sZGVyICk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHRoZSBwb3NpdGlvbiBpZiB0aGUgZXZlbnQgb3JpZ2luYXRlcyBmcm9tIGEgY2hpbGQgZWxlbWVudCBvZiB0aGUgZHJvcHpvbmVcbiAgICBjb25zdCBkaXJlY3RDaGlsZCA9IGdldERpcmVjdENoaWxkRWxlbWVudCggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50LnRhcmdldCBhcyBFbGVtZW50ICk7XG5cbiAgICAvLyBlYXJseSBleGl0IGlmIG5vIGRpcmVjdCBjaGlsZCBvciBkaXJlY3QgY2hpbGQgaXMgcGxhY2Vob2xkZXJcbiAgICBpZiggZGlyZWN0Q2hpbGQgPT09IG51bGxcbiAgICAgIHx8IGRpcmVjdENoaWxkID09PSB0aGlzLnBsYWNlaG9sZGVyICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb25QbGFjZWhvbGRlckJlZm9yZURpcmVjdENoaWxkID0gc2hvdWxkUG9zaXRpb25QbGFjZWhvbGRlckJlZm9yZUVsZW1lbnQoIGV2ZW50LCBkaXJlY3RDaGlsZCwgdGhpcy5kbmRIb3Jpem9udGFsICk7XG5cbiAgICBpZiggcG9zaXRpb25QbGFjZWhvbGRlckJlZm9yZURpcmVjdENoaWxkICkge1xuXG4gICAgICAvLyBkbyBpbnNlcnQgYmVmb3JlIG9ubHkgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiggZGlyZWN0Q2hpbGQucHJldmlvdXNTaWJsaW5nICE9PSB0aGlzLnBsYWNlaG9sZGVyICkge1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wbGFjZWhvbGRlciwgZGlyZWN0Q2hpbGQgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIC8vIGRvIGluc2VydCBhZnRlciBvbmx5IGlmIG5lY2Vzc2FyeVxuICAgICAgaWYoIGRpcmVjdENoaWxkLm5leHRTaWJsaW5nICE9PSB0aGlzLnBsYWNlaG9sZGVyICkge1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wbGFjZWhvbGRlciwgZGlyZWN0Q2hpbGQubmV4dFNpYmxpbmcgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBsYWNlaG9sZGVySW5kZXgoKTpudW1iZXIgfCB1bmRlZmluZWQge1xuXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIgPT09IG51bGwgKSB7XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoIGVsZW1lbnQuY2hpbGRyZW4sIHRoaXMucGxhY2Vob2xkZXIgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cERyYWdvdmVyU3RhdGUoKSB7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnb3ZlckNsYXNzICk7XG5cbiAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyRnJvbURPTSgpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWRyb3B6b25lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcmFnLWRyb3AvIiwic291cmNlcyI6WyJkbmQtZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsc0NBQXNDLEVBQ3ZDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFHdkYsa0NBT0M7OztJQU5DLDZCQUFnQjs7SUFDaEIsa0NBQXNCOztJQUN0QixrQ0FBbUI7O0lBQ25CLDRCQUFVOztJQUNWLDZCQUFjOztJQUNkLDRCQUFVOztBQUdaO0lBS0Usb0NBQTZCLFVBQXFCO1FBQXJCLGVBQVUsR0FBVixVQUFVLENBQVc7SUFDbEQsQ0FBQzs7Z0JBTkYsU0FBUyxTQUFFO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOzs7O2dCQTlCQyxVQUFVOztJQW1DWixpQ0FBQztDQUFBLEFBUEQsSUFPQztTQUpZLDBCQUEwQjs7O0lBRXhCLGdEQUFxQzs7QUFJcEQ7SUE0REUsOEJBQXFCLE1BQWEsRUFDYixVQUFxQixFQUNyQixRQUFrQjtRQUZ2QyxpQkFHQztRQUhvQixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBbER2QyxxQkFBZ0IsR0FBVyxLQUFLLENBQUM7UUFHakMsa0JBQWEsR0FBVyxLQUFLLENBQUM7UUFHOUIscUJBQWdCLEdBQVUsYUFBYSxDQUFD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QUFFLENBQUM7SUFDNUUsQ0FBQzs7Ozs7SUFFTyxtREFBb0I7Ozs7SUFBNUI7UUFFRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUUsQ0FBQztRQUVsRixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDOztnQkE5VkYsU0FBUyxTQUFFO29CQUNWLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7OztnQkFuQ0MsTUFBTTtnQkFKTixVQUFVO2dCQU9WLFNBQVM7Ozs4QkFtQ1IsS0FBSzttQ0FHTCxLQUFLO21DQUdMLEtBQUs7Z0NBR0wsS0FBSzttQ0FHTCxLQUFLOzJDQUdMLEtBQUs7OEJBR0wsTUFBTTswQkFHTixNQUFNO29DQUdOLFlBQVksU0FBRSwwQkFBMEI7K0JBV3hDLEtBQUs7bUNBZUwsS0FBSzt5QkFtR0wsWUFBWSxTQUFFLE1BQU0sRUFBRSxDQUFFLFFBQVEsQ0FBRTs7SUFxTXJDLDJCQUFDO0NBQUEsQUEvVkQsSUErVkM7U0E1Vlksb0JBQW9COzs7SUFFL0IsMkNBQ3NCOztJQUV0QixnREFDK0I7O0lBRS9CLGdEQUNpQzs7SUFFakMsNkNBQzhCOztJQUU5QixnREFDd0M7O0lBRXhDLHdEQUNpRDs7SUFFakQsMkNBQzZFOztJQUU3RSx1Q0FDK0U7Ozs7O0lBRS9FLGlEQUMrRDs7Ozs7SUFFL0QsMkNBQTBDOzs7OztJQUUxQyx3Q0FBaUM7Ozs7O0lBRWpDLHFEQUFzSDs7Ozs7SUFDdEgsb0RBQW9IOzs7OztJQUNwSCxxREFBc0g7Ozs7O0lBc0J6RyxzQ0FBcUI7Ozs7O0lBQ3JCLDBDQUE2Qjs7Ozs7SUFDN0Isd0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBEbmRFdmVudCxcbiAgRHJhZ0Ryb3BEYXRhLFxuICBnZXREaXJlY3RDaGlsZEVsZW1lbnQsXG4gIGdldERyb3BEYXRhLFxuICBzaG91bGRQb3NpdGlvblBsYWNlaG9sZGVyQmVmb3JlRWxlbWVudFxufSBmcm9tIFwiLi9kbmQtdXRpbHNcIjtcbmltcG9ydCB7IGdldERuZFR5cGUsIGdldERyb3BFZmZlY3QsIGlzRXh0ZXJuYWxEcmFnLCBzZXREcm9wRWZmZWN0IH0gZnJvbSBcIi4vZG5kLXN0YXRlXCI7XG5pbXBvcnQgeyBEcm9wRWZmZWN0LCBFZmZlY3RBbGxvd2VkIH0gZnJvbSBcIi4vZG5kLXR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG5kRHJvcEV2ZW50IHtcbiAgZXZlbnQ6RHJhZ0V2ZW50O1xuICBkcm9wRWZmZWN0OkRyb3BFZmZlY3Q7XG4gIGlzRXh0ZXJuYWw6Ym9vbGVhbjtcbiAgZGF0YT86YW55O1xuICBpbmRleD86bnVtYmVyO1xuICB0eXBlPzphbnk7XG59XG5cbkBEaXJlY3RpdmUoIHtcbiAgc2VsZWN0b3I6IFwiW2RuZFBsYWNlaG9sZGVyUmVmXVwiXG59IClcbmV4cG9ydCBjbGFzcyBEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOkVsZW1lbnRSZWYgKSB7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgge1xuICBzZWxlY3RvcjogXCJbZG5kRHJvcHpvbmVdXCJcbn0gKVxuZXhwb3J0IGNsYXNzIERuZERyb3B6b25lRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBkbmREcm9wem9uZT86c3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgZG5kRWZmZWN0QWxsb3dlZDpFZmZlY3RBbGxvd2VkO1xuXG4gIEBJbnB1dCgpXG4gIGRuZEFsbG93RXh0ZXJuYWw6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRuZEhvcml6b250YWw6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyYWdvdmVyQ2xhc3M6c3RyaW5nID0gXCJkbmREcmFnb3ZlclwiO1xuXG4gIEBJbnB1dCgpXG4gIGRuZERyb3B6b25lRGlzYWJsZWRDbGFzcyA9IFwiZG5kRHJvcHpvbmVEaXNhYmxlZFwiO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmREcmFnb3ZlcjpFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkbmREcm9wOkV2ZW50RW1pdHRlcjxEbmREcm9wRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEbmREcm9wRXZlbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZCggRG5kUGxhY2Vob2xkZXJSZWZEaXJlY3RpdmUgKVxuICBwcml2YXRlIHJlYWRvbmx5IGRuZFBsYWNlaG9sZGVyUmVmPzpEbmRQbGFjZWhvbGRlclJlZkRpcmVjdGl2ZTtcblxuICBwcml2YXRlIHBsYWNlaG9sZGVyOkVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGRpc2FibGVkOmJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRyYWdFbnRlckV2ZW50SGFuZGxlcjooIGV2ZW50OkRyYWdFdmVudCApID0+IHZvaWQgPSAoIGV2ZW50OkRyYWdFdmVudCApID0+IHRoaXMub25EcmFnRW50ZXIoIGV2ZW50ICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ092ZXJFdmVudEhhbmRsZXI6KCBldmVudDpEcmFnRXZlbnQgKSA9PiB2b2lkID0gKCBldmVudDpEcmFnRXZlbnQgKSA9PiB0aGlzLm9uRHJhZ092ZXIoIGV2ZW50ICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHJhZ0xlYXZlRXZlbnRIYW5kbGVyOiggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdm9pZCA9ICggZXZlbnQ6RHJhZ0V2ZW50ICkgPT4gdGhpcy5vbkRyYWdMZWF2ZSggZXZlbnQgKTtcblxuICBASW5wdXQoKVxuICBzZXQgZG5kRGlzYWJsZUlmKCB2YWx1ZTpib29sZWFuICkge1xuXG4gICAgdGhpcy5kaXNhYmxlZCA9ICEhdmFsdWU7XG5cbiAgICBpZiggdGhpcy5kaXNhYmxlZCApIHtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG5kRHJvcHpvbmVEaXNhYmxlZENsYXNzICk7XG4gICAgfVxuICAgIGVsc2Uge1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcm9wem9uZURpc2FibGVkQ2xhc3MgKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZG5kRGlzYWJsZURyb3BJZiggdmFsdWU6Ym9vbGVhbiApIHtcbiAgICB0aGlzLmRuZERpc2FibGVJZiA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgbmdab25lOk5nWm9uZSxcbiAgICAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjpFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjpSZW5kZXJlcjIgKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTp2b2lkIHtcblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnRyeUdldFBsYWNlaG9sZGVyKCk7XG5cbiAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyRnJvbURPTSgpO1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ2VudGVyXCIsIHRoaXMuZHJhZ0VudGVyRXZlbnRIYW5kbGVyICk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBcImRyYWdvdmVyXCIsIHRoaXMuZHJhZ092ZXJFdmVudEhhbmRsZXIgKTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiZHJhZ2xlYXZlXCIsIHRoaXMuZHJhZ0xlYXZlRXZlbnRIYW5kbGVyICk7XG4gICAgfSApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTp2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcImRyYWdlbnRlclwiLCB0aGlzLmRyYWdFbnRlckV2ZW50SGFuZGxlciApO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ292ZXJcIiwgdGhpcy5kcmFnT3ZlckV2ZW50SGFuZGxlciApO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwiZHJhZ2xlYXZlXCIsIHRoaXMuZHJhZ0xlYXZlRXZlbnRIYW5kbGVyICk7XG4gIH1cblxuICBvbkRyYWdFbnRlciggZXZlbnQ6RG5kRXZlbnQgKSB7XG5cbiAgICAvLyBjaGVjayBpZiBhbm90aGVyIGRyb3B6b25lIGlzIGFjdGl2YXRlZFxuICAgIGlmKCBldmVudC5fZG5kRHJvcHpvbmVBY3RpdmUgPT09IHRydWUgKSB7XG5cbiAgICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzZXQgYXMgYWN0aXZlIGlmIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBpbnNpZGUgdGhpcyBkcm9wem9uZVxuICAgIGlmKCB0eXBlb2YgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID09PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICBjb25zdCBuZXdUYXJnZXQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZICk7XG5cbiAgICAgIGlmKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyggbmV3VGFyZ2V0ICkgKSB7XG5cbiAgICAgICAgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiB0aGlzIGRyYWcgZXZlbnQgaXMgYWxsb3dlZCB0byBkcm9wIG9uIHRoaXMgZHJvcHpvbmVcbiAgICBjb25zdCB0eXBlID0gZ2V0RG5kVHlwZSggZXZlbnQgKTtcbiAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCB0eXBlICkgPT09IGZhbHNlICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYWxsb3cgdGhlIGRyYWdlbnRlclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvbkRyYWdPdmVyKCBldmVudDpEcmFnRXZlbnQgKSB7XG4gICAgLy8gV2l0aCBuZXN0ZWQgZHJvcHpvbmVzLCB3ZSB3YW50IHRvIGlnbm9yZSB0aGlzIGV2ZW50IGlmIGEgY2hpbGQgZHJvcHpvbmVcbiAgICAvLyBoYXMgYWxyZWFkeSBoYW5kbGVkIGEgZHJhZ292ZXIuICBIaXN0b3JpY2FsbHksIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIHdhc1xuICAgIC8vIHVzZWQgdG8gcHJldmVudCB0aGlzIGJ1YmJsaW5nLCBidXQgdGhhdCBwcmV2ZW50cyBhbnkgZHJhZ292ZXJzIG91dHNpZGUgdGhlXG4gICAgLy8gbmd4LWRyYWctZHJvcCBjb21wb25lbnQsIGFuZCBzdG9wcyBvdGhlciB1c2UgY2FzZXMgc3VjaCBhcyBzY3JvbGxpbmcgb24gZHJhZy5cbiAgICAvLyBJbnN0ZWFkLCB3ZSBjYW4gY2hlY2sgaWYgdGhlIGV2ZW50IHdhcyBhbHJlYWR5IHByZXZlbnRlZCBieSBhIGNoaWxkIGFuZCBiYWlsIGVhcmx5LlxuICAgIGlmKCBldmVudC5kZWZhdWx0UHJldmVudGVkICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdGhpcyBkcmFnIGV2ZW50IGlzIGFsbG93ZWQgdG8gZHJvcCBvbiB0aGlzIGRyb3B6b25lXG4gICAgY29uc3QgdHlwZSA9IGdldERuZFR5cGUoIGV2ZW50ICk7XG4gICAgaWYoIHRoaXMuaXNEcm9wQWxsb3dlZCggdHlwZSApID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGVQbGFjZWhvbGRlclBvc2l0aW9uKCBldmVudCApO1xuXG4gICAgY29uc3QgZHJvcEVmZmVjdCA9IGdldERyb3BFZmZlY3QoIGV2ZW50LCB0aGlzLmRuZEVmZmVjdEFsbG93ZWQgKTtcblxuICAgIGlmKCBkcm9wRWZmZWN0ID09PSBcIm5vbmVcIiApIHtcblxuICAgICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGFsbG93IHRoZSBkcmFnb3ZlclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBzZXQgdGhlIGRyb3AgZWZmZWN0XG4gICAgc2V0RHJvcEVmZmVjdCggZXZlbnQsIGRyb3BFZmZlY3QgKTtcblxuICAgIHRoaXMuZG5kRHJhZ292ZXIuZW1pdCggZXZlbnQgKTtcblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRuZERyYWdvdmVyQ2xhc3MgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoIFwiZHJvcFwiLCBbIFwiJGV2ZW50XCIgXSApXG4gIG9uRHJvcCggZXZlbnQ6RHJhZ0V2ZW50ICkge1xuXG4gICAgdHJ5IHtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhpcyBkcmFnIGV2ZW50IGlzIGFsbG93ZWQgdG8gZHJvcCBvbiB0aGlzIGRyb3B6b25lXG4gICAgICBjb25zdCB0eXBlID0gZ2V0RG5kVHlwZSggZXZlbnQgKTtcbiAgICAgIGlmKCB0aGlzLmlzRHJvcEFsbG93ZWQoIHR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhOkRyYWdEcm9wRGF0YSA9IGdldERyb3BEYXRhKCBldmVudCwgaXNFeHRlcm5hbERyYWcoKSApO1xuXG4gICAgICBpZiggdGhpcy5pc0Ryb3BBbGxvd2VkKCBkYXRhLnR5cGUgKSA9PT0gZmFsc2UgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBzaWduYWwgY3VzdG9tIGRyb3AgaGFuZGxpbmdcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGRyb3BFZmZlY3QgPSBnZXREcm9wRWZmZWN0KCBldmVudCApO1xuXG4gICAgICBzZXREcm9wRWZmZWN0KCBldmVudCwgZHJvcEVmZmVjdCApO1xuXG4gICAgICBpZiggZHJvcEVmZmVjdCA9PT0gXCJub25lXCIgKSB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkcm9wSW5kZXggPSB0aGlzLmdldFBsYWNlaG9sZGVySW5kZXgoKTtcblxuICAgICAgLy8gaWYgZm9yIHdoYXRldmVyIHJlYXNvbiB0aGUgcGxhY2Vob2xkZXIgaXMgbm90IHByZXNlbnQgaW4gdGhlIERPTSBidXQgaXQgc2hvdWxkIGJlIHRoZXJlXG4gICAgICAvLyB3ZSBkb24ndCBhbGxvdy9lbWl0IHRoZSBkcm9wIGV2ZW50IHNpbmNlIGl0IGJyZWFrcyB0aGUgY29udHJhY3RcbiAgICAgIC8vIHNlZW1zIHRvIG9ubHkgaGFwcGVuIGlmIGRyYWcgYW5kIGRyb3AgaXMgZXhlY3V0ZWQgZmFzdGVyIHRoYW4gdGhlIERPTSB1cGRhdGVzXG4gICAgICBpZiggZHJvcEluZGV4ID09PSAtMSApIHtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZG5kRHJvcC5lbWl0KCB7XG4gICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgZHJvcEVmZmVjdDogZHJvcEVmZmVjdCxcbiAgICAgICAgaXNFeHRlcm5hbDogaXNFeHRlcm5hbERyYWcoKSxcbiAgICAgICAgZGF0YTogZGF0YS5kYXRhLFxuICAgICAgICBpbmRleDogZHJvcEluZGV4LFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgfSApO1xuXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIH1cbiAgICBmaW5hbGx5IHtcblxuICAgICAgdGhpcy5jbGVhbnVwRHJhZ292ZXJTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJhZ0xlYXZlKCBldmVudDpEbmRFdmVudCApIHtcblxuICAgIC8vIGNoZWNrIGlmIHN0aWxsIGluc2lkZSB0aGlzIGRyb3B6b25lIGFuZCBub3QgeWV0IGhhbmRsZWQgYnkgYW5vdGhlciBkcm9wem9uZVxuICAgIGlmKCB0eXBlb2YgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID09PSBcInVuZGVmaW5lZFwiICkge1xuXG4gICAgICBjb25zdCBuZXdUYXJnZXQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZICk7XG5cbiAgICAgIGlmKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyggbmV3VGFyZ2V0ICkgKSB7XG5cbiAgICAgICAgZXZlbnQuX2RuZERyb3B6b25lQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2xlYW51cERyYWdvdmVyU3RhdGUoKTtcblxuICAgIC8vIGNsZWFudXAgZHJvcCBlZmZlY3Qgd2hlbiBsZWF2aW5nIGRyb3B6b25lXG4gICAgc2V0RHJvcEVmZmVjdCggZXZlbnQsIFwibm9uZVwiICk7XG4gIH1cblxuICBwcml2YXRlIGlzRHJvcEFsbG93ZWQoIHR5cGU/OnN0cmluZyApOmJvb2xlYW4ge1xuXG4gICAgLy8gZHJvcHpvbmUgaXMgZGlzYWJsZWQgLT4gZGVueSBpdFxuICAgIGlmKCB0aGlzLmRpc2FibGVkID09PSB0cnVlICkge1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gaWYgZHJhZyBkaWQgbm90IHN0YXJ0IGZyb20gb3VyIGRpcmVjdGl2ZVxuICAgIC8vIGFuZCBleHRlcm5hbCBkcmFnIHNvdXJjZXMgYXJlIG5vdCBhbGxvd2VkIC0+IGRlbnkgaXRcbiAgICBpZiggaXNFeHRlcm5hbERyYWcoKSA9PT0gdHJ1ZVxuICAgICAgJiYgdGhpcy5kbmRBbGxvd0V4dGVybmFsID09PSBmYWxzZSApIHtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIG5vIGZpbHRlcmluZyBieSB0eXBlcyAtPiBhbGxvdyBpdFxuICAgIGlmKCAhdGhpcy5kbmREcm9wem9uZSApIHtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gbm8gdHlwZSBzZXQgLT4gYWxsb3cgaXRcbiAgICBpZiggIXR5cGUgKSB7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmKCBBcnJheS5pc0FycmF5KCB0aGlzLmRuZERyb3B6b25lICkgPT09IGZhbHNlICkge1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoIFwiZG5kRHJvcHpvbmU6IGJvdW5kIHZhbHVlIHRvIFtkbmREcm9wem9uZV0gbXVzdCBiZSBhbiBhcnJheSFcIiApO1xuICAgIH1cblxuICAgIC8vIGlmIGRyb3B6b25lIGNvbnRhaW5zIHR5cGUgLT4gYWxsb3cgaXRcbiAgICByZXR1cm4gdGhpcy5kbmREcm9wem9uZS5pbmRleE9mKCB0eXBlICkgIT09IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSB0cnlHZXRQbGFjZWhvbGRlcigpOkVsZW1lbnQgfCBudWxsIHtcblxuICAgIGlmKCB0eXBlb2YgdGhpcy5kbmRQbGFjZWhvbGRlclJlZiAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblxuICAgICAgcmV0dXJuIHRoaXMuZG5kUGxhY2Vob2xkZXJSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBuYXN0eSB3b3JrYXJvdW5kIG5lZWRlZCBiZWNhdXNlIGlmIG5nLWNvbnRhaW5lciAvIHRlbXBsYXRlIGlzIHVzZWQgQENvbnRlbnRDaGlsZCgpIG9yIERJIHdpbGwgZmFpbCBiZWNhdXNlXG4gICAgLy8gb2Ygd3JvbmcgY29udGV4dCBzZWUgYW5ndWxhciBidWcgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM1MTdcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvciggXCJbZG5kUGxhY2Vob2xkZXJSZWZdXCIgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGxhY2Vob2xkZXJGcm9tRE9NKCkge1xuXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIgIT09IG51bGxcbiAgICAgICYmIHRoaXMucGxhY2Vob2xkZXIucGFyZW50Tm9kZSAhPT0gbnVsbCApIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggdGhpcy5wbGFjZWhvbGRlciApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tBbmRVcGRhdGVQbGFjZWhvbGRlclBvc2l0aW9uKCBldmVudDpEcmFnRXZlbnQgKTp2b2lkIHtcblxuICAgIGlmKCB0aGlzLnBsYWNlaG9sZGVyID09PSBudWxsICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gbWFrZSBzdXJlIHRoZSBwbGFjZWhvbGRlciBpcyBpbiB0aGUgRE9NXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIucGFyZW50Tm9kZSAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgKSB7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBsYWNlaG9sZGVyICk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHRoZSBwb3NpdGlvbiBpZiB0aGUgZXZlbnQgb3JpZ2luYXRlcyBmcm9tIGEgY2hpbGQgZWxlbWVudCBvZiB0aGUgZHJvcHpvbmVcbiAgICBjb25zdCBkaXJlY3RDaGlsZCA9IGdldERpcmVjdENoaWxkRWxlbWVudCggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50LnRhcmdldCBhcyBFbGVtZW50ICk7XG5cbiAgICAvLyBlYXJseSBleGl0IGlmIG5vIGRpcmVjdCBjaGlsZCBvciBkaXJlY3QgY2hpbGQgaXMgcGxhY2Vob2xkZXJcbiAgICBpZiggZGlyZWN0Q2hpbGQgPT09IG51bGxcbiAgICAgIHx8IGRpcmVjdENoaWxkID09PSB0aGlzLnBsYWNlaG9sZGVyICkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb25QbGFjZWhvbGRlckJlZm9yZURpcmVjdENoaWxkID0gc2hvdWxkUG9zaXRpb25QbGFjZWhvbGRlckJlZm9yZUVsZW1lbnQoIGV2ZW50LCBkaXJlY3RDaGlsZCwgdGhpcy5kbmRIb3Jpem9udGFsICk7XG5cbiAgICBpZiggcG9zaXRpb25QbGFjZWhvbGRlckJlZm9yZURpcmVjdENoaWxkICkge1xuXG4gICAgICAvLyBkbyBpbnNlcnQgYmVmb3JlIG9ubHkgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiggZGlyZWN0Q2hpbGQucHJldmlvdXNTaWJsaW5nICE9PSB0aGlzLnBsYWNlaG9sZGVyICkge1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wbGFjZWhvbGRlciwgZGlyZWN0Q2hpbGQgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIC8vIGRvIGluc2VydCBhZnRlciBvbmx5IGlmIG5lY2Vzc2FyeVxuICAgICAgaWYoIGRpcmVjdENoaWxkLm5leHRTaWJsaW5nICE9PSB0aGlzLnBsYWNlaG9sZGVyICkge1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wbGFjZWhvbGRlciwgZGlyZWN0Q2hpbGQubmV4dFNpYmxpbmcgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBsYWNlaG9sZGVySW5kZXgoKTpudW1iZXIgfCB1bmRlZmluZWQge1xuXG4gICAgaWYoIHRoaXMucGxhY2Vob2xkZXIgPT09IG51bGwgKSB7XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoIGVsZW1lbnQuY2hpbGRyZW4sIHRoaXMucGxhY2Vob2xkZXIgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cERyYWdvdmVyU3RhdGUoKSB7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kbmREcmFnb3ZlckNsYXNzICk7XG5cbiAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyRnJvbURPTSgpO1xuICB9XG59XG4iXX0=

@@ -350,4 +350,11 @@ import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, Output, Renderer2, ContentChild, NgModule } from '@angular/core';

/**
* @param {?} value
* @return {?}
*/
set dndDisableDragIf(value) {
this.dndDisableIf = value;
}
/**
* @return {?}
*/
ngAfterViewInit() {

@@ -506,2 +513,3 @@ this.ngZone.runOutsideAngular((/**

dndDisableIf: [{ type: Input }],
dndDisableDragIf: [{ type: Input }],
onDragStart: [{ type: HostListener, args: ["dragstart", ["$event"],] }],

@@ -580,4 +588,11 @@ onDragEnd: [{ type: HostListener, args: ["dragend", ["$event"],] }]

/**
* @param {?} value
* @return {?}
*/
set dndDisableDropIf(value) {
this.dndDisableIf = value;
}
/**
* @return {?}
*/
ngAfterViewInit() {

@@ -859,2 +874,3 @@ this.placeholder = this.tryGetPlaceholder();

dndDisableIf: [{ type: Input }],
dndDisableDropIf: [{ type: Input }],
onDrop: [{ type: HostListener, args: ["drop", ["$event"],] }]

@@ -861,0 +877,0 @@ };

@@ -346,2 +346,13 @@ import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, Output, Renderer2, ContentChild, NgModule } from '@angular/core';

});
Object.defineProperty(DndDraggableDirective.prototype, "dndDisableDragIf", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.dndDisableIf = value;
},
enumerable: true,
configurable: true
});
/**

@@ -535,2 +546,3 @@ * @return {?}

dndDisableIf: [{ type: Input }],
dndDisableDragIf: [{ type: Input }],
onDragStart: [{ type: HostListener, args: ["dragstart", ["$event"],] }],

@@ -608,2 +620,13 @@ onDragEnd: [{ type: HostListener, args: ["dragend", ["$event"],] }]

});
Object.defineProperty(DndDropzoneDirective.prototype, "dndDisableDropIf", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.dndDisableIf = value;
},
enumerable: true,
configurable: true
});
/**

@@ -936,2 +959,3 @@ * @return {?}

dndDisableIf: [{ type: Input }],
dndDisableDropIf: [{ type: Input }],
onDrop: [{ type: HostListener, args: ["drop", ["$event"],] }]

@@ -938,0 +962,0 @@ };

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

{"__symbolic":"module","version":4,"metadata":{"DndDragImageRefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[dndDragImageRef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DndDraggableDirective"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":22,"character":26}]}]}},"DndDraggableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":28,"character":1},"arguments":[{"selector":"[dndDraggable]"}]}],"members":{"dndDraggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"dndEffectAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"dndType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"dndDraggingClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"dndDraggingSourceClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"dndDraggableDisabledClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"dndDragImageOffsetFunction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"dndStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":3}}]}],"dndDrag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":3}}]}],"dndEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":60,"character":3}}]}],"dndMoved":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":63,"character":3}}]}],"dndCopied":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"dndLinked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"dndCanceled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"draggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":75,"character":3},"arguments":["attr.draggable"]}]}],"dndDisableIf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":22,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":102,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":103,"character":30}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDragStart":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":117,"character":3},"arguments":["dragstart",["$event"]]}]}],"onDrag":[{"__symbolic":"method"}],"onDragEnd":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":168,"character":3},"arguments":["dragend",["$event"]]}]}],"registerDragHandle":[{"__symbolic":"method"}],"registerDragImage":[{"__symbolic":"method"}],"determineDragImage":[{"__symbolic":"method"}]}},"DndDropEvent":{"__symbolic":"interface"},"DndPlaceholderRefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":32,"character":1},"arguments":[{"selector":"[dndPlaceholderRef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":37,"character":42}]}]}},"DndDropzoneDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":41,"character":1},"arguments":[{"selector":"[dndDropzone]"}]}],"members":{"dndDropzone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"dndEffectAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"dndAllowExternal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"dndHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"dndDragoverClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"dndDropzoneDisabledClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"dndDragover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":3}}]}],"dndDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"dndPlaceholderRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":70,"character":3},"arguments":[{"__symbolic":"reference","name":"DndPlaceholderRefDirective"}]}]}],"dndDisableIf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":96,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":37,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":98,"character":32}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDragEnter":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":190,"character":3},"arguments":["drop",["$event"]]}]}],"onDragLeave":[{"__symbolic":"method"}],"isDropAllowed":[{"__symbolic":"method"}],"tryGetPlaceholder":[{"__symbolic":"method"}],"removePlaceholderFromDOM":[{"__symbolic":"method"}],"checkAndUpdatePlaceholderPosition":[{"__symbolic":"method"}],"getPlaceholderIndex":[{"__symbolic":"method"}],"cleanupDragoverState":[{"__symbolic":"method"}]}},"DndHandleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[dndHandle]"}]}],"members":{"draggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":9,"character":3},"arguments":["attr.draggable"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DndDraggableDirective"}]}],"onDragEvent":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":17,"character":3},"arguments":["dragstart",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":18,"character":3},"arguments":["dragend",["$event"]]}]}]}},"DropEffect":{"__symbolic":"interface"},"EffectAllowed":{"__symbolic":"interface"},"DndDragImageOffsetFunction":{"__symbolic":"interface"},"DndModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4}],"declarations":[{"__symbolic":"reference","name":"DndDraggableDirective"},{"__symbolic":"reference","name":"DndDropzoneDirective"},{"__symbolic":"reference","name":"DndHandleDirective"},{"__symbolic":"reference","name":"DndPlaceholderRefDirective"},{"__symbolic":"reference","name":"DndDragImageRefDirective"}],"exports":[{"__symbolic":"reference","name":"DndDraggableDirective"},{"__symbolic":"reference","name":"DndDropzoneDirective"},{"__symbolic":"reference","name":"DndHandleDirective"},{"__symbolic":"reference","name":"DndPlaceholderRefDirective"},{"__symbolic":"reference","name":"DndDragImageRefDirective"}]}]}],"members":{}}},"origins":{"DndDragImageRefDirective":"./dnd-draggable.directive","DndDraggableDirective":"./dnd-draggable.directive","DndDropEvent":"./dnd-dropzone.directive","DndPlaceholderRefDirective":"./dnd-dropzone.directive","DndDropzoneDirective":"./dnd-dropzone.directive","DndHandleDirective":"./dnd-handle.directive","DropEffect":"./dnd-types","EffectAllowed":"./dnd-types","DndDragImageOffsetFunction":"./dnd-utils","DndModule":"./dnd.module"},"importAs":"ngx-drag-drop"}
{"__symbolic":"module","version":4,"metadata":{"DndDragImageRefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[dndDragImageRef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DndDraggableDirective"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":24,"character":26}]}]}},"DndDraggableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":30,"character":1},"arguments":[{"selector":"[dndDraggable]"}]}],"members":{"dndDraggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"dndEffectAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"dndType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"dndDraggingClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"dndDraggingSourceClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"dndDraggableDisabledClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"dndDragImageOffsetFunction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"dndStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":56,"character":3}}]}],"dndDrag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":59,"character":3}}]}],"dndEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":62,"character":3}}]}],"dndMoved":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":3}}]}],"dndCopied":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"dndLinked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"dndCanceled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":74,"character":3}}]}],"draggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":77,"character":3},"arguments":["attr.draggable"]}]}],"dndDisableIf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"dndDisableDragIf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":103,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":24,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":109,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":110,"character":30}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDragStart":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":124,"character":3},"arguments":["dragstart",["$event"]]}]}],"onDrag":[{"__symbolic":"method"}],"onDragEnd":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":175,"character":3},"arguments":["dragend",["$event"]]}]}],"registerDragHandle":[{"__symbolic":"method"}],"registerDragImage":[{"__symbolic":"method"}],"determineDragImage":[{"__symbolic":"method"}]}},"DndDropEvent":{"__symbolic":"interface"},"DndPlaceholderRefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":32,"character":1},"arguments":[{"selector":"[dndPlaceholderRef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":37,"character":42}]}]}},"DndDropzoneDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":41,"character":1},"arguments":[{"selector":"[dndDropzone]"}]}],"members":{"dndDropzone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"dndEffectAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"dndAllowExternal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"dndHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"dndDragoverClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"dndDropzoneDisabledClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"dndDragover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":3}}]}],"dndDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"dndPlaceholderRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":70,"character":3},"arguments":[{"__symbolic":"reference","name":"DndPlaceholderRefDirective"}]}]}],"dndDisableIf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"dndDisableDropIf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":101,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":37,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":103,"character":32}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDragEnter":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":195,"character":3},"arguments":["drop",["$event"]]}]}],"onDragLeave":[{"__symbolic":"method"}],"isDropAllowed":[{"__symbolic":"method"}],"tryGetPlaceholder":[{"__symbolic":"method"}],"removePlaceholderFromDOM":[{"__symbolic":"method"}],"checkAndUpdatePlaceholderPosition":[{"__symbolic":"method"}],"getPlaceholderIndex":[{"__symbolic":"method"}],"cleanupDragoverState":[{"__symbolic":"method"}]}},"DndHandleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[dndHandle]"}]}],"members":{"draggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":9,"character":3},"arguments":["attr.draggable"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DndDraggableDirective"}]}],"onDragEvent":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":17,"character":3},"arguments":["dragstart",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":18,"character":3},"arguments":["dragend",["$event"]]}]}]}},"DropEffect":{"__symbolic":"interface"},"EffectAllowed":{"__symbolic":"interface"},"DndDragImageOffsetFunction":{"__symbolic":"interface"},"DndModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4}],"declarations":[{"__symbolic":"reference","name":"DndDraggableDirective"},{"__symbolic":"reference","name":"DndDropzoneDirective"},{"__symbolic":"reference","name":"DndHandleDirective"},{"__symbolic":"reference","name":"DndPlaceholderRefDirective"},{"__symbolic":"reference","name":"DndDragImageRefDirective"}],"exports":[{"__symbolic":"reference","name":"DndDraggableDirective"},{"__symbolic":"reference","name":"DndDropzoneDirective"},{"__symbolic":"reference","name":"DndHandleDirective"},{"__symbolic":"reference","name":"DndPlaceholderRefDirective"},{"__symbolic":"reference","name":"DndDragImageRefDirective"}]}]}],"members":{}}},"origins":{"DndDragImageRefDirective":"./dnd-draggable.directive","DndDraggableDirective":"./dnd-draggable.directive","DndDropEvent":"./dnd-dropzone.directive","DndPlaceholderRefDirective":"./dnd-dropzone.directive","DndDropzoneDirective":"./dnd-dropzone.directive","DndHandleDirective":"./dnd-handle.directive","DropEffect":"./dnd-types","EffectAllowed":"./dnd-types","DndDragImageOffsetFunction":"./dnd-utils","DndModule":"./dnd.module"},"importAs":"ngx-drag-drop"}
{
"name": "ngx-drag-drop",
"version": "2.0.0-rc.5",
"version": "2.0.0-rc.6",
"description": "Angular directives using the native HTML Drag And Drop API",

@@ -5,0 +5,0 @@ "repository": {

@@ -199,2 +199,3 @@ [![npm](https://img.shields.io/npm/v/ngx-drag-drop.svg)](https://www.npmjs.com/package/ngx-drag-drop)

dndDisableIf: boolean;
dndDisableDragIf: boolean;

@@ -274,2 +275,3 @@ // set a custom class that is applied while dragging

dndDisableIf: boolean;
dndDisableDropIf: boolean;

@@ -276,0 +278,0 @@ // if draggables that are not [dndDraggable] are allowed to be dropped

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 not supported yet

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