angular-resizable-element
Advanced tools
Comparing version 3.3.5 to 3.4.0
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"ResizableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ResizableDirective"},{"__symbolic":"reference","name":"ResizeHandleDirective"}],"exports":[{"__symbolic":"reference","name":"ResizableDirective"},{"__symbolic":"reference","name":"ResizeHandleDirective"}]}]}],"members":{}},"BoundingRectangle":{"__symbolic":"interface"},"Edges":{"__symbolic":"interface"},"ResizeEvent":{"__symbolic":"interface"},"ResizableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":286,"character":1},"arguments":[{"selector":"[mwlResizable]"}]}],"members":{"validateResize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":293,"character":3}}]}],"resizeEdges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":299,"character":3}}]}],"enableGhostResize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":304,"character":3}}]}],"resizeSnapGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":311,"character":3}}]}],"resizeCursors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":316,"character":3}}]}],"resizeCursorPrecision":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":322,"character":3}}]}],"ghostElementPositioning":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":327,"character":3}}]}],"allowNegativeResizes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":332,"character":3}}]}],"mouseMoveThrottleMS":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":337,"character":3}}]}],"resizeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":342,"character":3}}]}],"resizing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":347,"character":3}}]}],"resizeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":352,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":392,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":392,"character":12}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":393,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":394,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":395,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setElementClass":[{"__symbolic":"method"}]}},"ResizeHandleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[mwlResizeHandle]"}]}],"members":{"resizeEdges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":44,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":45,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":46,"character":18},{"__symbolic":"reference","name":"ResizableDirective"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onMousedown":[{"__symbolic":"method"}],"onMouseup":[{"__symbolic":"method"}],"onMousemove":[{"__symbolic":"method"}],"unsubscribeEventListeners":[{"__symbolic":"method"}],"listenOnTheHost":[{"__symbolic":"method"}]}}},"origins":{"ResizableModule":"./resizable.module","BoundingRectangle":"./interfaces/bounding-rectangle.interface","Edges":"./interfaces/edges.interface","ResizeEvent":"./interfaces/resize-event.interface","ResizableDirective":"./resizable.directive","ResizeHandleDirective":"./resize-handle.directive"},"importAs":"angular-resizable-element"} | ||
{"__symbolic":"module","version":4,"metadata":{"ResizableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ResizableDirective"},{"__symbolic":"reference","name":"ResizeHandleDirective"}],"exports":[{"__symbolic":"reference","name":"ResizableDirective"},{"__symbolic":"reference","name":"ResizeHandleDirective"}]}]}],"members":{}},"BoundingRectangle":{"__symbolic":"interface"},"Edges":{"__symbolic":"interface"},"ResizeEvent":{"__symbolic":"interface"},"ResizableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":291,"character":1},"arguments":[{"selector":"[mwlResizable]","exportAs":"mwlResizable"}]}],"members":{"validateResize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":299,"character":3}}]}],"resizeEdges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":305,"character":3}}]}],"enableGhostResize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":310,"character":3}}]}],"resizeSnapGrid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":317,"character":3}}]}],"resizeCursors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":322,"character":3}}]}],"resizeCursorPrecision":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":328,"character":3}}]}],"ghostElementPositioning":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":333,"character":3}}]}],"allowNegativeResizes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":338,"character":3}}]}],"mouseMoveThrottleMS":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":343,"character":3}}]}],"resizeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":348,"character":3}}]}],"resizing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":353,"character":3}}]}],"resizeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":358,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":398,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":398,"character":12}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":399,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":400,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":401,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setElementClass":[{"__symbolic":"method"}]}},"ResizeHandleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":32,"character":1},"arguments":[{"selector":"[mwlResizeHandle]"}]}],"members":{"resizeEdges":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"resizableContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":57,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":54,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":55,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":56,"character":18},{"__symbolic":"reference","name":"ResizableDirective"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onMousedown":[{"__symbolic":"method"}],"onMouseup":[{"__symbolic":"method"}],"onMousemove":[{"__symbolic":"method"}],"unsubscribeEventListeners":[{"__symbolic":"method"}],"listenOnTheHost":[{"__symbolic":"method"}]}}},"origins":{"ResizableModule":"./resizable.module","BoundingRectangle":"./interfaces/bounding-rectangle.interface","Edges":"./interfaces/edges.interface","ResizeEvent":"./interfaces/resize-event.interface","ResizableDirective":"./resizable.directive","ResizeHandleDirective":"./resize-handle.directive"},"importAs":"angular-resizable-element"} |
@@ -305,2 +305,7 @@ (function (global, factory) { | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
@@ -399,3 +404,9 @@ var ResizableDirective = /** @class */ (function () { | ||
if (currentResize) { | ||
event.preventDefault(); | ||
try { | ||
event.preventDefault(); | ||
} | ||
catch (e) { | ||
// just adding try-catch not to see errors in console if there is a passive listener for same event somewhere | ||
// browser does nothing except of writing errors to console | ||
} | ||
} | ||
@@ -718,3 +729,4 @@ }), operators.share()); | ||
{ type: core.Directive, args: [{ | ||
selector: '[mwlResizable]' | ||
selector: '[mwlResizable]', | ||
exportAs: 'mwlResizable' | ||
},] } | ||
@@ -886,9 +898,14 @@ ]; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
var ResizeHandleDirective = /** @class */ (function () { | ||
function ResizeHandleDirective(renderer, element, zone, resizable) { | ||
function ResizeHandleDirective(renderer, element, zone, resizableDirective) { | ||
this.renderer = renderer; | ||
this.element = element; | ||
this.zone = zone; | ||
this.resizable = resizable; | ||
this.resizableDirective = resizableDirective; | ||
/** | ||
@@ -995,2 +1012,16 @@ * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on | ||
}; | ||
Object.defineProperty(ResizeHandleDirective.prototype, "resizable", { | ||
// directive might be passed from DI or as an input | ||
get: | ||
// directive might be passed from DI or as an input | ||
/** | ||
* @private | ||
* @return {?} | ||
*/ | ||
function () { | ||
return this.resizableDirective || this.resizableContainer; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
/** | ||
@@ -1059,7 +1090,8 @@ * @private | ||
{ type: core.NgZone }, | ||
{ type: ResizableDirective } | ||
{ type: ResizableDirective, decorators: [{ type: core.Optional }] } | ||
]; | ||
}; | ||
ResizeHandleDirective.propDecorators = { | ||
resizeEdges: [{ type: core.Input }] | ||
resizeEdges: [{ type: core.Input }], | ||
resizableContainer: [{ type: core.Input }] | ||
}; | ||
@@ -1066,0 +1098,0 @@ return ResizeHandleDirective; |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("angular-resizable-element",["exports","@angular/common","@angular/core","rxjs","rxjs/operators"],t):t(e["angular-resizable-element"]={},e.ng.common,e.ng.core,e.rxjs,e.rxjs.operators)}(this,function(e,t,r,u,a){"use strict";var l=function(){return(l=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function d(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(i=o.next()).done;)s.push(i.value)}catch(l){r={error:l}}finally{try{i&&!i.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return s}var s="undefined"!=typeof window&&("ontouchstart"in window||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints);function c(e,t,n){return void 0===n&&(n=3),Math.abs(e-t)<n}function p(e,t,n,i){var r={top:e.top,bottom:e.bottom,left:e.left,right:e.right};return t.top&&(r.top+=i),t.bottom&&(r.bottom+=i),t.left&&(r.left+=n),t.right&&(r.right+=n),r.height=r.bottom-r.top,r.width=r.right-r.left,r}function h(e){var t=e.clientY,n=e.rect;return t>=n.top&&t<=n.bottom}function m(e){var t=e.clientX,n=e.rect;return t>=n.left&&t<=n.right}function f(e){var t=e.clientX,n=e.clientY,i=e.elm,r=e.allowedEdges,o=e.cursorPrecision,s=i.nativeElement.getBoundingClientRect(),l={};return r.left&&c(t,s.left,o)&&h({clientY:n,rect:s})&&(l.left=!0),r.right&&c(t,s.right,o)&&h({clientY:n,rect:s})&&(l.right=!0),r.top&&c(n,s.top,o)&&m({clientX:t,rect:s})&&(l.top=!0),r.bottom&&c(n,s.bottom,o)&&m({clientX:t,rect:s})&&(l.bottom=!0),l}var g=Object.freeze({topLeft:"nw-resize",topRight:"ne-resize",bottomLeft:"sw-resize",bottomRight:"se-resize",leftOrRight:"col-resize",topOrBottom:"row-resize"});function v(e,t){return e.left&&e.top?t.topLeft:e.right&&e.top?t.topRight:e.left&&e.bottom?t.bottomLeft:e.right&&e.bottom?t.bottomRight:e.left||e.right?t.leftOrRight:e.top||e.bottom?t.topOrBottom:""}function y(e){var t=e.edges,n=e.initialRectangle,i=e.newRectangle,r={};return Object.keys(t).forEach(function(e){r[e]=(i[e]||0)-(n[e]||0)}),r}var b="resize-active",n=function(){function e(e,t,n,i){this.platformId=e,this.renderer=t,this.elm=n,this.zone=i,this.resizeEdges={},this.enableGhostResize=!1,this.resizeSnapGrid={},this.resizeCursors=g,this.resizeCursorPrecision=3,this.ghostElementPositioning="fixed",this.allowNegativeResizes=!1,this.mouseMoveThrottleMS=50,this.resizeStart=new r.EventEmitter,this.resizing=new r.EventEmitter,this.resizeEnd=new r.EventEmitter,this.mouseup=new u.Subject,this.mousedown=new u.Subject,this.mousemove=new u.Subject,this.destroy$=new u.Subject,this.resizeEdges$=new u.Subject,this.pointerEventListeners=o.getInstance(t,i)}return e.prototype.ngOnInit=function(){var o,s=this,e=u.merge(this.pointerEventListeners.pointerDown,this.mousedown),n=u.merge(this.pointerEventListeners.pointerMove,this.mousemove).pipe(a.tap(function(e){var t=e.event;o&&t.preventDefault()}),a.share()),i=u.merge(this.pointerEventListeners.pointerUp,this.mouseup),r=function(){o&&o.clonedNode&&(s.elm.nativeElement.parentElement.removeChild(o.clonedNode),s.renderer.setStyle(s.elm.nativeElement,"visibility","inherit"))},c=function(){return l({},g,s.resizeCursors)};this.resizeEdges$.pipe(a.startWith(this.resizeEdges),a.map(function(){return s.resizeEdges&&Object.keys(s.resizeEdges).some(function(e){return!!s.resizeEdges[e]})}),a.switchMap(function(e){return e?n:u.EMPTY}),a.auditTime(this.mouseMoveThrottleMS),a.takeUntil(this.destroy$)).subscribe(function(e){var t=f({clientX:e.clientX,clientY:e.clientY,elm:s.elm,allowedEdges:s.resizeEdges,cursorPrecision:s.resizeCursorPrecision}),n=c();if(!o){var i=v(t,n);s.renderer.setStyle(s.elm.nativeElement,"cursor",i)}s.setElementClass(s.elm,"resize-left-hover",!0===t.left),s.setElementClass(s.elm,"resize-right-hover",!0===t.right),s.setElementClass(s.elm,"resize-top-hover",!0===t.top),s.setElementClass(s.elm,"resize-bottom-hover",!0===t.bottom)}),e.pipe(a.mergeMap(function(t){function r(e){return{clientX:e.clientX-t.clientX,clientY:e.clientY-t.clientY}}var l=function(){var e={x:1,y:1};return o&&(s.resizeSnapGrid.left&&o.edges.left?e.x=+s.resizeSnapGrid.left:s.resizeSnapGrid.right&&o.edges.right&&(e.x=+s.resizeSnapGrid.right),s.resizeSnapGrid.top&&o.edges.top?e.y=+s.resizeSnapGrid.top:s.resizeSnapGrid.bottom&&o.edges.bottom&&(e.y=+s.resizeSnapGrid.bottom)),e};function c(e,t){return{x:Math.ceil(e.clientX/t.x),y:Math.ceil(e.clientY/t.y)}}return u.merge(n.pipe(a.take(1)).pipe(a.map(function(e){return[,e]})),n.pipe(a.pairwise())).pipe(a.map(function(e){var t=d(e,2),n=t[0],i=t[1];return[n?r(n):n,r(i)]})).pipe(a.filter(function(e){var t=d(e,2),n=t[0],i=t[1];if(!n)return!0;var r=l(),o=c(n,r),s=c(i,r);return o.x!==s.x||o.y!==s.y})).pipe(a.map(function(e){var t=d(e,2)[1],n=l();return{clientX:Math.round(t.clientX/n.x)*n.x,clientY:Math.round(t.clientY/n.y)*n.y}})).pipe(a.takeUntil(u.merge(i,e)))})).pipe(a.filter(function(){return!!o})).pipe(a.map(function(e){var t=e.clientX,n=e.clientY;return p(o.startingRect,o.edges,t,n)})).pipe(a.filter(function(e){return s.allowNegativeResizes||!!(e.height&&e.width&&0<e.height&&0<e.width)})).pipe(a.filter(function(e){return!s.validateResize||s.validateResize({rectangle:e,edges:y({edges:o.edges,initialRectangle:o.startingRect,newRectangle:e})})}),a.takeUntil(this.destroy$)).subscribe(function(e){o&&o.clonedNode&&(s.renderer.setStyle(o.clonedNode,"height",e.height+"px"),s.renderer.setStyle(o.clonedNode,"width",e.width+"px"),s.renderer.setStyle(o.clonedNode,"top",e.top+"px"),s.renderer.setStyle(o.clonedNode,"left",e.left+"px")),0<s.resizing.observers.length&&s.zone.run(function(){s.resizing.emit({edges:y({edges:o.edges,initialRectangle:o.startingRect,newRectangle:e}),rectangle:e})}),o.currentRect=e}),e.pipe(a.map(function(e){var t=e.clientX,n=e.clientY;return e.edges||f({clientX:t,clientY:n,elm:s.elm,allowedEdges:s.resizeEdges,cursorPrecision:s.resizeCursorPrecision})})).pipe(a.filter(function(e){return 0<Object.keys(e).length}),a.takeUntil(this.destroy$)).subscribe(function(e){o&&r();var t=function l(e,t){var n=0,i=0,r=e.nativeElement.style,o=["transform","-ms-transform","-moz-transform","-o-transform"].map(function(e){return r[e]}).find(function(e){return!!e});if(o&&o.includes("translate")&&(n=o.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$1"),i=o.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$2")),"absolute"===t)return{height:e.nativeElement.offsetHeight,width:e.nativeElement.offsetWidth,top:e.nativeElement.offsetTop-i,bottom:e.nativeElement.offsetHeight+e.nativeElement.offsetTop-i,left:e.nativeElement.offsetLeft-n,right:e.nativeElement.offsetWidth+e.nativeElement.offsetLeft-n};var s=e.nativeElement.getBoundingClientRect();return{height:s.height,width:s.width,top:s.top-i,bottom:s.bottom-i,left:s.left-n,right:s.right-n,scrollTop:e.nativeElement.scrollTop,scrollLeft:e.nativeElement.scrollLeft}}(s.elm,s.ghostElementPositioning);o={edges:e,startingRect:t,currentRect:t};var n=c(),i=v(o.edges,n);s.renderer.setStyle(document.body,"cursor",i),s.setElementClass(s.elm,b,!0),s.enableGhostResize&&(o.clonedNode=s.elm.nativeElement.cloneNode(!0),s.elm.nativeElement.parentElement.appendChild(o.clonedNode),s.renderer.setStyle(s.elm.nativeElement,"visibility","hidden"),s.renderer.setStyle(o.clonedNode,"position",s.ghostElementPositioning),s.renderer.setStyle(o.clonedNode,"left",o.startingRect.left+"px"),s.renderer.setStyle(o.clonedNode,"top",o.startingRect.top+"px"),s.renderer.setStyle(o.clonedNode,"height",o.startingRect.height+"px"),s.renderer.setStyle(o.clonedNode,"width",o.startingRect.width+"px"),s.renderer.setStyle(o.clonedNode,"cursor",v(o.edges,n)),s.renderer.addClass(o.clonedNode,"resize-ghost-element"),o.clonedNode.scrollTop=o.startingRect.scrollTop,o.clonedNode.scrollLeft=o.startingRect.scrollLeft),0<s.resizeStart.observers.length&&s.zone.run(function(){s.resizeStart.emit({edges:y({edges:e,initialRectangle:t,newRectangle:t}),rectangle:p(t,{},0,0)})})}),i.pipe(a.takeUntil(this.destroy$)).subscribe(function(){o&&(s.renderer.removeClass(s.elm.nativeElement,b),s.renderer.setStyle(document.body,"cursor",""),s.renderer.setStyle(s.elm.nativeElement,"cursor",""),0<s.resizeEnd.observers.length&&s.zone.run(function(){s.resizeEnd.emit({edges:y({edges:o.edges,initialRectangle:o.startingRect,newRectangle:o.currentRect}),rectangle:o.currentRect})}),r(),o=null)})},e.prototype.ngOnChanges=function(e){e.resizeEdges&&this.resizeEdges$.next(this.resizeEdges)},e.prototype.ngOnDestroy=function(){t.isPlatformBrowser(this.platformId)&&this.renderer.setStyle(document.body,"cursor",""),this.mousedown.complete(),this.mouseup.complete(),this.mousemove.complete(),this.resizeEdges$.complete(),this.destroy$.next()},e.prototype.setElementClass=function(e,t,n){n?this.renderer.addClass(e.nativeElement,t):this.renderer.removeClass(e.nativeElement,t)},e.decorators=[{type:r.Directive,args:[{selector:"[mwlResizable]"}]}],e.ctorParameters=function(){return[{type:undefined,decorators:[{type:r.Inject,args:[r.PLATFORM_ID]}]},{type:r.Renderer2},{type:r.ElementRef},{type:r.NgZone}]},e.propDecorators={validateResize:[{type:r.Input}],resizeEdges:[{type:r.Input}],enableGhostResize:[{type:r.Input}],resizeSnapGrid:[{type:r.Input}],resizeCursors:[{type:r.Input}],resizeCursorPrecision:[{type:r.Input}],ghostElementPositioning:[{type:r.Input}],allowNegativeResizes:[{type:r.Input}],mouseMoveThrottleMS:[{type:r.Input}],resizeStart:[{type:r.Output}],resizing:[{type:r.Output}],resizeEnd:[{type:r.Output}]},e}(),o=function(){function n(r,o){this.pointerDown=new u.Observable(function(t){var e,n;return o.runOutsideAngular(function(){e=r.listen("document","mousedown",function(e){t.next({clientX:e.clientX,clientY:e.clientY,event:e})}),s&&(n=r.listen("document","touchstart",function(e){t.next({clientX:e.touches[0].clientX,clientY:e.touches[0].clientY,event:e})}))}),function(){e(),s&&n()}}).pipe(a.share()),this.pointerMove=new u.Observable(function(t){var e,n;return o.runOutsideAngular(function(){e=r.listen("document","mousemove",function(e){t.next({clientX:e.clientX,clientY:e.clientY,event:e})}),s&&(n=r.listen("document","touchmove",function(e){t.next({clientX:e.targetTouches[0].clientX,clientY:e.targetTouches[0].clientY,event:e})}))}),function(){e(),s&&n()}}).pipe(a.share()),this.pointerUp=new u.Observable(function(t){var e,n,i;return o.runOutsideAngular(function(){e=r.listen("document","mouseup",function(e){t.next({clientX:e.clientX,clientY:e.clientY,event:e})}),s&&(n=r.listen("document","touchend",function(e){t.next({clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY,event:e})}),i=r.listen("document","touchcancel",function(e){t.next({clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY,event:e})}))}),function(){e(),s&&(n(),i())}}).pipe(a.share())}return n.getInstance=function(e,t){return n.instance||(n.instance=new n(e,t)),n.instance},n}(),i=function(){function e(e,t,n,i){this.renderer=e,this.element=t,this.zone=n,this.resizable=i,this.resizeEdges={},this.eventListeners={},this.destroy$=new u.Subject}return e.prototype.ngOnInit=function(){var t=this;this.zone.runOutsideAngular(function(){t.listenOnTheHost("mousedown").subscribe(function(e){t.onMousedown(e,e.clientX,e.clientY)}),t.listenOnTheHost("mouseup").subscribe(function(e){t.onMouseup(e.clientX,e.clientY)}),s&&(t.listenOnTheHost("touchstart").subscribe(function(e){t.onMousedown(e,e.touches[0].clientX,e.touches[0].clientY)}),u.merge(t.listenOnTheHost("touchend"),t.listenOnTheHost("touchcancel")).subscribe(function(e){t.onMouseup(e.changedTouches[0].clientX,e.changedTouches[0].clientY)}))})},e.prototype.ngOnDestroy=function(){this.destroy$.next(),this.unsubscribeEventListeners()},e.prototype.onMousedown=function(e,t,n){var i=this;e.preventDefault(),this.eventListeners.touchmove||(this.eventListeners.touchmove=this.renderer.listen(this.element.nativeElement,"touchmove",function(e){i.onMousemove(e,e.targetTouches[0].clientX,e.targetTouches[0].clientY)})),this.eventListeners.mousemove||(this.eventListeners.mousemove=this.renderer.listen(this.element.nativeElement,"mousemove",function(e){i.onMousemove(e,e.clientX,e.clientY)})),this.resizable.mousedown.next({clientX:t,clientY:n,edges:this.resizeEdges})},e.prototype.onMouseup=function(e,t){this.unsubscribeEventListeners(),this.resizable.mouseup.next({clientX:e,clientY:t,edges:this.resizeEdges})},e.prototype.onMousemove=function(e,t,n){this.resizable.mousemove.next({clientX:t,clientY:n,edges:this.resizeEdges,event:e})},e.prototype.unsubscribeEventListeners=function(){var t=this;Object.keys(this.eventListeners).forEach(function(e){t.eventListeners[e](),delete t.eventListeners[e]})},e.prototype.listenOnTheHost=function(e){return u.fromEvent(this.element.nativeElement,e).pipe(a.takeUntil(this.destroy$))},e.decorators=[{type:r.Directive,args:[{selector:"[mwlResizeHandle]"}]}],e.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef},{type:r.NgZone},{type:n}]},e.propDecorators={resizeEdges:[{type:r.Input}]},e}(),z=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{declarations:[n,i],exports:[n,i]}]}],e}();e.ResizableDirective=n,e.ResizeHandleDirective=i,e.ResizableModule=z,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("angular-resizable-element",["exports","@angular/common","@angular/core","rxjs","rxjs/operators"],t):t(e["angular-resizable-element"]={},e.ng.common,e.ng.core,e.rxjs,e.rxjs.operators)}(this,function(e,t,r,u,a){"use strict";var l=function(){return(l=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function p(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(i=o.next()).done;)s.push(i.value)}catch(l){r={error:l}}finally{try{i&&!i.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return s}var s="undefined"!=typeof window&&("ontouchstart"in window||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints);function c(e,t,n){return void 0===n&&(n=3),Math.abs(e-t)<n}function d(e,t,n,i){var r={top:e.top,bottom:e.bottom,left:e.left,right:e.right};return t.top&&(r.top+=i),t.bottom&&(r.bottom+=i),t.left&&(r.left+=n),t.right&&(r.right+=n),r.height=r.bottom-r.top,r.width=r.right-r.left,r}function h(e){var t=e.clientY,n=e.rect;return t>=n.top&&t<=n.bottom}function m(e){var t=e.clientX,n=e.rect;return t>=n.left&&t<=n.right}function f(e){var t=e.clientX,n=e.clientY,i=e.elm,r=e.allowedEdges,o=e.cursorPrecision,s=i.nativeElement.getBoundingClientRect(),l={};return r.left&&c(t,s.left,o)&&h({clientY:n,rect:s})&&(l.left=!0),r.right&&c(t,s.right,o)&&h({clientY:n,rect:s})&&(l.right=!0),r.top&&c(n,s.top,o)&&m({clientX:t,rect:s})&&(l.top=!0),r.bottom&&c(n,s.bottom,o)&&m({clientX:t,rect:s})&&(l.bottom=!0),l}var g=Object.freeze({topLeft:"nw-resize",topRight:"ne-resize",bottomLeft:"sw-resize",bottomRight:"se-resize",leftOrRight:"col-resize",topOrBottom:"row-resize"});function v(e,t){return e.left&&e.top?t.topLeft:e.right&&e.top?t.topRight:e.left&&e.bottom?t.bottomLeft:e.right&&e.bottom?t.bottomRight:e.left||e.right?t.leftOrRight:e.top||e.bottom?t.topOrBottom:""}function y(e){var t=e.edges,n=e.initialRectangle,i=e.newRectangle,r={};return Object.keys(t).forEach(function(e){r[e]=(i[e]||0)-(n[e]||0)}),r}var b="resize-active",n=function(){function e(e,t,n,i){this.platformId=e,this.renderer=t,this.elm=n,this.zone=i,this.resizeEdges={},this.enableGhostResize=!1,this.resizeSnapGrid={},this.resizeCursors=g,this.resizeCursorPrecision=3,this.ghostElementPositioning="fixed",this.allowNegativeResizes=!1,this.mouseMoveThrottleMS=50,this.resizeStart=new r.EventEmitter,this.resizing=new r.EventEmitter,this.resizeEnd=new r.EventEmitter,this.mouseup=new u.Subject,this.mousedown=new u.Subject,this.mousemove=new u.Subject,this.destroy$=new u.Subject,this.resizeEdges$=new u.Subject,this.pointerEventListeners=o.getInstance(t,i)}return e.prototype.ngOnInit=function(){var o,s=this,e=u.merge(this.pointerEventListeners.pointerDown,this.mousedown),n=u.merge(this.pointerEventListeners.pointerMove,this.mousemove).pipe(a.tap(function(e){var t=e.event;if(o)try{t.preventDefault()}catch(n){}}),a.share()),i=u.merge(this.pointerEventListeners.pointerUp,this.mouseup),r=function(){o&&o.clonedNode&&(s.elm.nativeElement.parentElement.removeChild(o.clonedNode),s.renderer.setStyle(s.elm.nativeElement,"visibility","inherit"))},c=function(){return l({},g,s.resizeCursors)};this.resizeEdges$.pipe(a.startWith(this.resizeEdges),a.map(function(){return s.resizeEdges&&Object.keys(s.resizeEdges).some(function(e){return!!s.resizeEdges[e]})}),a.switchMap(function(e){return e?n:u.EMPTY}),a.auditTime(this.mouseMoveThrottleMS),a.takeUntil(this.destroy$)).subscribe(function(e){var t=f({clientX:e.clientX,clientY:e.clientY,elm:s.elm,allowedEdges:s.resizeEdges,cursorPrecision:s.resizeCursorPrecision}),n=c();if(!o){var i=v(t,n);s.renderer.setStyle(s.elm.nativeElement,"cursor",i)}s.setElementClass(s.elm,"resize-left-hover",!0===t.left),s.setElementClass(s.elm,"resize-right-hover",!0===t.right),s.setElementClass(s.elm,"resize-top-hover",!0===t.top),s.setElementClass(s.elm,"resize-bottom-hover",!0===t.bottom)}),e.pipe(a.mergeMap(function(t){function r(e){return{clientX:e.clientX-t.clientX,clientY:e.clientY-t.clientY}}var l=function(){var e={x:1,y:1};return o&&(s.resizeSnapGrid.left&&o.edges.left?e.x=+s.resizeSnapGrid.left:s.resizeSnapGrid.right&&o.edges.right&&(e.x=+s.resizeSnapGrid.right),s.resizeSnapGrid.top&&o.edges.top?e.y=+s.resizeSnapGrid.top:s.resizeSnapGrid.bottom&&o.edges.bottom&&(e.y=+s.resizeSnapGrid.bottom)),e};function c(e,t){return{x:Math.ceil(e.clientX/t.x),y:Math.ceil(e.clientY/t.y)}}return u.merge(n.pipe(a.take(1)).pipe(a.map(function(e){return[,e]})),n.pipe(a.pairwise())).pipe(a.map(function(e){var t=p(e,2),n=t[0],i=t[1];return[n?r(n):n,r(i)]})).pipe(a.filter(function(e){var t=p(e,2),n=t[0],i=t[1];if(!n)return!0;var r=l(),o=c(n,r),s=c(i,r);return o.x!==s.x||o.y!==s.y})).pipe(a.map(function(e){var t=p(e,2)[1],n=l();return{clientX:Math.round(t.clientX/n.x)*n.x,clientY:Math.round(t.clientY/n.y)*n.y}})).pipe(a.takeUntil(u.merge(i,e)))})).pipe(a.filter(function(){return!!o})).pipe(a.map(function(e){var t=e.clientX,n=e.clientY;return d(o.startingRect,o.edges,t,n)})).pipe(a.filter(function(e){return s.allowNegativeResizes||!!(e.height&&e.width&&0<e.height&&0<e.width)})).pipe(a.filter(function(e){return!s.validateResize||s.validateResize({rectangle:e,edges:y({edges:o.edges,initialRectangle:o.startingRect,newRectangle:e})})}),a.takeUntil(this.destroy$)).subscribe(function(e){o&&o.clonedNode&&(s.renderer.setStyle(o.clonedNode,"height",e.height+"px"),s.renderer.setStyle(o.clonedNode,"width",e.width+"px"),s.renderer.setStyle(o.clonedNode,"top",e.top+"px"),s.renderer.setStyle(o.clonedNode,"left",e.left+"px")),0<s.resizing.observers.length&&s.zone.run(function(){s.resizing.emit({edges:y({edges:o.edges,initialRectangle:o.startingRect,newRectangle:e}),rectangle:e})}),o.currentRect=e}),e.pipe(a.map(function(e){var t=e.clientX,n=e.clientY;return e.edges||f({clientX:t,clientY:n,elm:s.elm,allowedEdges:s.resizeEdges,cursorPrecision:s.resizeCursorPrecision})})).pipe(a.filter(function(e){return 0<Object.keys(e).length}),a.takeUntil(this.destroy$)).subscribe(function(e){o&&r();var t=function l(e,t){var n=0,i=0,r=e.nativeElement.style,o=["transform","-ms-transform","-moz-transform","-o-transform"].map(function(e){return r[e]}).find(function(e){return!!e});if(o&&o.includes("translate")&&(n=o.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$1"),i=o.replace(/.*translate3?d?\((-?[0-9]*)px, (-?[0-9]*)px.*/,"$2")),"absolute"===t)return{height:e.nativeElement.offsetHeight,width:e.nativeElement.offsetWidth,top:e.nativeElement.offsetTop-i,bottom:e.nativeElement.offsetHeight+e.nativeElement.offsetTop-i,left:e.nativeElement.offsetLeft-n,right:e.nativeElement.offsetWidth+e.nativeElement.offsetLeft-n};var s=e.nativeElement.getBoundingClientRect();return{height:s.height,width:s.width,top:s.top-i,bottom:s.bottom-i,left:s.left-n,right:s.right-n,scrollTop:e.nativeElement.scrollTop,scrollLeft:e.nativeElement.scrollLeft}}(s.elm,s.ghostElementPositioning);o={edges:e,startingRect:t,currentRect:t};var n=c(),i=v(o.edges,n);s.renderer.setStyle(document.body,"cursor",i),s.setElementClass(s.elm,b,!0),s.enableGhostResize&&(o.clonedNode=s.elm.nativeElement.cloneNode(!0),s.elm.nativeElement.parentElement.appendChild(o.clonedNode),s.renderer.setStyle(s.elm.nativeElement,"visibility","hidden"),s.renderer.setStyle(o.clonedNode,"position",s.ghostElementPositioning),s.renderer.setStyle(o.clonedNode,"left",o.startingRect.left+"px"),s.renderer.setStyle(o.clonedNode,"top",o.startingRect.top+"px"),s.renderer.setStyle(o.clonedNode,"height",o.startingRect.height+"px"),s.renderer.setStyle(o.clonedNode,"width",o.startingRect.width+"px"),s.renderer.setStyle(o.clonedNode,"cursor",v(o.edges,n)),s.renderer.addClass(o.clonedNode,"resize-ghost-element"),o.clonedNode.scrollTop=o.startingRect.scrollTop,o.clonedNode.scrollLeft=o.startingRect.scrollLeft),0<s.resizeStart.observers.length&&s.zone.run(function(){s.resizeStart.emit({edges:y({edges:e,initialRectangle:t,newRectangle:t}),rectangle:d(t,{},0,0)})})}),i.pipe(a.takeUntil(this.destroy$)).subscribe(function(){o&&(s.renderer.removeClass(s.elm.nativeElement,b),s.renderer.setStyle(document.body,"cursor",""),s.renderer.setStyle(s.elm.nativeElement,"cursor",""),0<s.resizeEnd.observers.length&&s.zone.run(function(){s.resizeEnd.emit({edges:y({edges:o.edges,initialRectangle:o.startingRect,newRectangle:o.currentRect}),rectangle:o.currentRect})}),r(),o=null)})},e.prototype.ngOnChanges=function(e){e.resizeEdges&&this.resizeEdges$.next(this.resizeEdges)},e.prototype.ngOnDestroy=function(){t.isPlatformBrowser(this.platformId)&&this.renderer.setStyle(document.body,"cursor",""),this.mousedown.complete(),this.mouseup.complete(),this.mousemove.complete(),this.resizeEdges$.complete(),this.destroy$.next()},e.prototype.setElementClass=function(e,t,n){n?this.renderer.addClass(e.nativeElement,t):this.renderer.removeClass(e.nativeElement,t)},e.decorators=[{type:r.Directive,args:[{selector:"[mwlResizable]",exportAs:"mwlResizable"}]}],e.ctorParameters=function(){return[{type:undefined,decorators:[{type:r.Inject,args:[r.PLATFORM_ID]}]},{type:r.Renderer2},{type:r.ElementRef},{type:r.NgZone}]},e.propDecorators={validateResize:[{type:r.Input}],resizeEdges:[{type:r.Input}],enableGhostResize:[{type:r.Input}],resizeSnapGrid:[{type:r.Input}],resizeCursors:[{type:r.Input}],resizeCursorPrecision:[{type:r.Input}],ghostElementPositioning:[{type:r.Input}],allowNegativeResizes:[{type:r.Input}],mouseMoveThrottleMS:[{type:r.Input}],resizeStart:[{type:r.Output}],resizing:[{type:r.Output}],resizeEnd:[{type:r.Output}]},e}(),o=function(){function n(r,o){this.pointerDown=new u.Observable(function(t){var e,n;return o.runOutsideAngular(function(){e=r.listen("document","mousedown",function(e){t.next({clientX:e.clientX,clientY:e.clientY,event:e})}),s&&(n=r.listen("document","touchstart",function(e){t.next({clientX:e.touches[0].clientX,clientY:e.touches[0].clientY,event:e})}))}),function(){e(),s&&n()}}).pipe(a.share()),this.pointerMove=new u.Observable(function(t){var e,n;return o.runOutsideAngular(function(){e=r.listen("document","mousemove",function(e){t.next({clientX:e.clientX,clientY:e.clientY,event:e})}),s&&(n=r.listen("document","touchmove",function(e){t.next({clientX:e.targetTouches[0].clientX,clientY:e.targetTouches[0].clientY,event:e})}))}),function(){e(),s&&n()}}).pipe(a.share()),this.pointerUp=new u.Observable(function(t){var e,n,i;return o.runOutsideAngular(function(){e=r.listen("document","mouseup",function(e){t.next({clientX:e.clientX,clientY:e.clientY,event:e})}),s&&(n=r.listen("document","touchend",function(e){t.next({clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY,event:e})}),i=r.listen("document","touchcancel",function(e){t.next({clientX:e.changedTouches[0].clientX,clientY:e.changedTouches[0].clientY,event:e})}))}),function(){e(),s&&(n(),i())}}).pipe(a.share())}return n.getInstance=function(e,t){return n.instance||(n.instance=new n(e,t)),n.instance},n}(),i=function(){function e(e,t,n,i){this.renderer=e,this.element=t,this.zone=n,this.resizableDirective=i,this.resizeEdges={},this.eventListeners={},this.destroy$=new u.Subject}return e.prototype.ngOnInit=function(){var t=this;this.zone.runOutsideAngular(function(){t.listenOnTheHost("mousedown").subscribe(function(e){t.onMousedown(e,e.clientX,e.clientY)}),t.listenOnTheHost("mouseup").subscribe(function(e){t.onMouseup(e.clientX,e.clientY)}),s&&(t.listenOnTheHost("touchstart").subscribe(function(e){t.onMousedown(e,e.touches[0].clientX,e.touches[0].clientY)}),u.merge(t.listenOnTheHost("touchend"),t.listenOnTheHost("touchcancel")).subscribe(function(e){t.onMouseup(e.changedTouches[0].clientX,e.changedTouches[0].clientY)}))})},e.prototype.ngOnDestroy=function(){this.destroy$.next(),this.unsubscribeEventListeners()},e.prototype.onMousedown=function(e,t,n){var i=this;e.preventDefault(),this.eventListeners.touchmove||(this.eventListeners.touchmove=this.renderer.listen(this.element.nativeElement,"touchmove",function(e){i.onMousemove(e,e.targetTouches[0].clientX,e.targetTouches[0].clientY)})),this.eventListeners.mousemove||(this.eventListeners.mousemove=this.renderer.listen(this.element.nativeElement,"mousemove",function(e){i.onMousemove(e,e.clientX,e.clientY)})),this.resizable.mousedown.next({clientX:t,clientY:n,edges:this.resizeEdges})},e.prototype.onMouseup=function(e,t){this.unsubscribeEventListeners(),this.resizable.mouseup.next({clientX:e,clientY:t,edges:this.resizeEdges})},Object.defineProperty(e.prototype,"resizable",{get:function(){return this.resizableDirective||this.resizableContainer},enumerable:!0,configurable:!0}),e.prototype.onMousemove=function(e,t,n){this.resizable.mousemove.next({clientX:t,clientY:n,edges:this.resizeEdges,event:e})},e.prototype.unsubscribeEventListeners=function(){var t=this;Object.keys(this.eventListeners).forEach(function(e){t.eventListeners[e](),delete t.eventListeners[e]})},e.prototype.listenOnTheHost=function(e){return u.fromEvent(this.element.nativeElement,e).pipe(a.takeUntil(this.destroy$))},e.decorators=[{type:r.Directive,args:[{selector:"[mwlResizeHandle]"}]}],e.ctorParameters=function(){return[{type:r.Renderer2},{type:r.ElementRef},{type:r.NgZone},{type:n,decorators:[{type:r.Optional}]}]},e.propDecorators={resizeEdges:[{type:r.Input}],resizableContainer:[{type:r.Input}]},e}(),z=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{declarations:[n,i],exports:[n,i]}]}],e}();e.ResizableDirective=n,e.ResizeHandleDirective=i,e.ResizableModule=z,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=angular-resizable-element.umd.min.js.map |
@@ -5,2 +5,12 @@ # Change Log | ||
<a name="3.4.0"></a> | ||
# [3.4.0](https://github.com/mattlewis92/angular-resizable-element/compare/v3.3.5...v3.4.0) (2021-06-02) | ||
### Features | ||
* **mwlResizeHandle:** add `resizableContainer` input ([862249f](https://github.com/mattlewis92/angular-resizable-element/commit/862249f)) | ||
<a name="3.3.5"></a> | ||
@@ -7,0 +17,0 @@ ## [3.3.5](https://github.com/mattlewis92/angular-resizable-element/compare/v3.3.4...v3.3.5) (2021-02-02) |
@@ -5,3 +5,3 @@ /** | ||
*/ | ||
import { Directive, Input, Renderer2, ElementRef, NgZone } from '@angular/core'; | ||
import { Directive, Input, Renderer2, ElementRef, NgZone, Optional } from '@angular/core'; | ||
import { fromEvent, merge, Subject } from 'rxjs'; | ||
@@ -21,2 +21,7 @@ import { takeUntil } from 'rxjs/operators'; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
@@ -28,9 +33,9 @@ export class ResizeHandleDirective { | ||
* @param {?} zone | ||
* @param {?} resizable | ||
* @param {?} resizableDirective | ||
*/ | ||
constructor(renderer, element, zone, resizable) { | ||
constructor(renderer, element, zone, resizableDirective) { | ||
this.renderer = renderer; | ||
this.element = element; | ||
this.zone = zone; | ||
this.resizable = resizable; | ||
this.resizableDirective = resizableDirective; | ||
/** | ||
@@ -110,4 +115,12 @@ * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on | ||
} | ||
// directive might be passed from DI or as an input | ||
/** | ||
* @private | ||
* @return {?} | ||
*/ | ||
get resizable() { | ||
return this.resizableDirective || this.resizableContainer; | ||
} | ||
/** | ||
* @private | ||
* @param {?} event | ||
@@ -156,6 +169,7 @@ * @param {?} clientX | ||
{ type: NgZone }, | ||
{ type: ResizableDirective } | ||
{ type: ResizableDirective, decorators: [{ type: Optional }] } | ||
]; | ||
ResizeHandleDirective.propDecorators = { | ||
resizeEdges: [{ type: Input }] | ||
resizeEdges: [{ type: Input }], | ||
resizableContainer: [{ type: Input }] | ||
}; | ||
@@ -169,3 +183,8 @@ if (false) { | ||
/** | ||
* Reference to ResizableDirective in case if handle is not located inside of element with ResizableDirective | ||
* @type {?} | ||
*/ | ||
ResizeHandleDirective.prototype.resizableContainer; | ||
/** | ||
* @type {?} | ||
* @private | ||
@@ -198,4 +217,4 @@ */ | ||
*/ | ||
ResizeHandleDirective.prototype.resizable; | ||
ResizeHandleDirective.prototype.resizableDirective; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXJlc2l6YWJsZS1lbGVtZW50LyIsInNvdXJjZXMiOlsicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBR1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7QUFnQnBELE1BQU0sT0FBTyxxQkFBcUI7Ozs7Ozs7SUFjaEMsWUFDVSxRQUFtQixFQUNuQixPQUFtQixFQUNuQixJQUFZLEVBQ1osU0FBNkI7UUFIN0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFvQjs7OztRQWQ5QixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUV6QixtQkFBYyxHQUlsQixFQUFFLENBQUM7UUFFQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQU9wQyxDQUFDOzs7O0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxL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ICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBOZ1pvbmVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXNpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWRnZXMgfSBmcm9tICcuL2ludGVyZmFjZXMvZWRnZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElTX1RPVUNIX0RFVklDRSB9IGZyb20gJy4vaXMtdG91Y2gtZGV2aWNlJztcblxuLyoqXG4gKiBBbiBlbGVtZW50IHBsYWNlZCBpbnNpZGUgYSBgbXdsUmVzaXphYmxlYCBkaXJlY3RpdmUgdG8gYmUgdXNlZCBhcyBhIGRyYWcgYW5kIHJlc2l6ZSBoYW5kbGVcbiAqXG4gKiBGb3IgZXhhbXBsZVxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgbXdsUmVzaXphYmxlPlxuICogICA8ZGl2IG13bFJlc2l6ZUhhbmRsZSBbcmVzaXplRWRnZXNdPVwie2JvdHRvbTogdHJ1ZSwgcmlnaHQ6IHRydWV9XCI+PC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXdsUmVzaXplSGFuZGxlXSdcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXplSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIGBFZGdlc2Agb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVkZ2VzIG9mIHRoZSBwYXJlbnQgZWxlbWVudCB0aGF0IGRyYWdnaW5nIHRoZSBoYW5kbGUgd2lsbCB0cmlnZ2VyIGEgcmVzaXplIG9uXG4gICAqL1xuICBASW5wdXQoKSByZXNpemVFZGdlczogRWRnZXMgPSB7fTtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiB7XG4gICAgdG91Y2htb3ZlPzogKCkgPT4gdm9pZDtcbiAgICBtb3VzZW1vdmU/OiAoKSA9PiB2b2lkO1xuICAgIFtrZXk6IHN0cmluZ106ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgfSA9IHt9O1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZXNpemFibGU6IFJlc2l6YWJsZURpcmVjdGl2ZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PE1vdXNlRXZlbnQ+KCdtb3VzZWRvd24nKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLm9uTW91c2Vkb3duKGV2ZW50LCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmxpc3Rlbk9uVGhlSG9zdDxNb3VzZUV2ZW50PignbW91c2V1cCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIHRoaXMub25Nb3VzZXVwKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChJU19UT1VDSF9ERVZJQ0UpIHtcbiAgICAgICAgdGhpcy5saXN0ZW5PblRoZUhvc3Q8VG91Y2hFdmVudD4oJ3RvdWNoc3RhcnQnKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgIHRoaXMub25Nb3VzZWRvd24oXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PFRvdWNoRXZlbnQ+KCd0b3VjaGVuZCcpLFxuICAgICAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PFRvdWNoRXZlbnQ+KCd0b3VjaGNhbmNlbCcpXG4gICAgICAgICkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICB0aGlzLm9uTW91c2V1cChcbiAgICAgICAgICAgIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgICAgICBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqL1xuICBvbk1vdXNlZG93bihcbiAgICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsXG4gICAgY2xpZW50WDogbnVtYmVyLFxuICAgIGNsaWVudFk6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5ldmVudExpc3RlbmVycy50b3VjaG1vdmUpIHtcbiAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMudG91Y2htb3ZlID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAndG91Y2htb3ZlJyxcbiAgICAgICAgKHRvdWNoTW92ZUV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbk1vdXNlbW92ZShcbiAgICAgICAgICAgIHRvdWNoTW92ZUV2ZW50LFxuICAgICAgICAgICAgdG91Y2hNb3ZlRXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYLFxuICAgICAgICAgICAgdG91Y2hNb3ZlRXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmV2ZW50TGlzdGVuZXJzLm1vdXNlbW92ZSkge1xuICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5tb3VzZW1vdmUgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgICAobW91c2VNb3ZlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLm9uTW91c2Vtb3ZlKFxuICAgICAgICAgICAgbW91c2VNb3ZlRXZlbnQsXG4gICAgICAgICAgICBtb3VzZU1vdmVFdmVudC5jbGllbnRYLFxuICAgICAgICAgICAgbW91c2VNb3ZlRXZlbnQuY2xpZW50WVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucmVzaXphYmxlLm1vdXNlZG93bi5uZXh0KHtcbiAgICAgIGNsaWVudFgsXG4gICAgICBjbGllbnRZLFxuICAgICAgZWRnZXM6IHRoaXMucmVzaXplRWRnZXNcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqL1xuICBvbk1vdXNldXAoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnJlc2l6YWJsZS5tb3VzZXVwLm5leHQoe1xuICAgICAgY2xpZW50WCxcbiAgICAgIGNsaWVudFksXG4gICAgICBlZGdlczogdGhpcy5yZXNpemVFZGdlc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlbW92ZShcbiAgICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsXG4gICAgY2xpZW50WDogbnVtYmVyLFxuICAgIGNsaWVudFk6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6YWJsZS5tb3VzZW1vdmUubmV4dCh7XG4gICAgICBjbGllbnRYLFxuICAgICAgY2xpZW50WSxcbiAgICAgIGVkZ2VzOiB0aGlzLnJlc2l6ZUVkZ2VzLFxuICAgICAgZXZlbnRcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmV2ZW50TGlzdGVuZXJzKS5mb3JFYWNoKHR5cGUgPT4ge1xuICAgICAgKHRoaXMgYXMgYW55KS5ldmVudExpc3RlbmVyc1t0eXBlXSgpO1xuICAgICAgZGVsZXRlIHRoaXMuZXZlbnRMaXN0ZW5lcnNbdHlwZV07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk9uVGhlSG9zdDxUIGV4dGVuZHMgRXZlbnQ+KGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxUPih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXJlc2l6YWJsZS1lbGVtZW50LyIsInNvdXJjZXMiOlsicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBR1YsTUFBTSxFQUNOLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQnBELE1BQU0sT0FBTyxxQkFBcUI7Ozs7Ozs7SUFrQmhDLFlBQ1UsUUFBbUIsRUFDbkIsT0FBbUIsRUFDbkIsSUFBWSxFQUNBLGtCQUFzQztRQUhsRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNBLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7Ozs7UUFsQm5ELGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBTXpCLG1CQUFjLEdBSWxCLEVBQUUsQ0FBQztRQUVDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBT3BDLENBQUM7Ozs7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBYSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlELElBQUksQ0FB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Qzs7Ozs7SUFJakMsbURBQWdEOzs7OztJQUVoRCwrQ0FJTzs7Ozs7SUFFUCx5Q0FBdUM7Ozs7O0lBR3JDLHlDQUEyQjs7Ozs7SUFDM0Isd0NBQTJCOzs7OztJQUMzQixxQ0FBb0I7Ozs7O0lBQ3BCLG1EQUEwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIFJlbmRlcmVyMixcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXNpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWRnZXMgfSBmcm9tICcuL2ludGVyZmFjZXMvZWRnZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElTX1RPVUNIX0RFVklDRSB9IGZyb20gJy4vaXMtdG91Y2gtZGV2aWNlJztcblxuLyoqXG4gKiBBbiBlbGVtZW50IHBsYWNlZCBpbnNpZGUgYSBgbXdsUmVzaXphYmxlYCBkaXJlY3RpdmUgdG8gYmUgdXNlZCBhcyBhIGRyYWcgYW5kIHJlc2l6ZSBoYW5kbGVcbiAqXG4gKiBGb3IgZXhhbXBsZVxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgbXdsUmVzaXphYmxlPlxuICogICA8ZGl2IG13bFJlc2l6ZUhhbmRsZSBbcmVzaXplRWRnZXNdPVwie2JvdHRvbTogdHJ1ZSwgcmlnaHQ6IHRydWV9XCI+PC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICogT3IgaW4gY2FzZSB0aGV5IGFyZSBzaWJsaW5nIGVsZW1lbnRzOlxuICogYGBgaHRtbFxuICogPGRpdiBtd2xSZXNpemFibGUgI3Jlc2l6YWJsZUVsZW1lbnQ9XCJtd2xSZXNpemFibGVcIj48L2Rpdj5cbiAqIDxkaXYgbXdsUmVzaXplSGFuZGxlIFtyZXNpemFibGVDb250YWluZXJdPVwicmVzaXphYmxlRWxlbWVudFwiIFtyZXNpemVFZGdlc109XCJ7Ym90dG9tOiB0cnVlLCByaWdodDogdHJ1ZX1cIj48L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXdsUmVzaXplSGFuZGxlXSdcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXplSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIGBFZGdlc2Agb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVkZ2VzIG9mIHRoZSBwYXJlbnQgZWxlbWVudCB0aGF0IGRyYWdnaW5nIHRoZSBoYW5kbGUgd2lsbCB0cmlnZ2VyIGEgcmVzaXplIG9uXG4gICAqL1xuICBASW5wdXQoKSByZXNpemVFZGdlczogRWRnZXMgPSB7fTtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBSZXNpemFibGVEaXJlY3RpdmUgaW4gY2FzZSBpZiBoYW5kbGUgaXMgbm90IGxvY2F0ZWQgaW5zaWRlIG9mIGVsZW1lbnQgd2l0aCBSZXNpemFibGVEaXJlY3RpdmVcbiAgICovXG4gIEBJbnB1dCgpIHJlc2l6YWJsZUNvbnRhaW5lcjogUmVzaXphYmxlRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IHtcbiAgICB0b3VjaG1vdmU/OiAoKSA9PiB2b2lkO1xuICAgIG1vdXNlbW92ZT86ICgpID0+IHZvaWQ7XG4gICAgW2tleTogc3RyaW5nXTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICB9ID0ge307XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlc2l6YWJsZURpcmVjdGl2ZTogUmVzaXphYmxlRGlyZWN0aXZlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5saXN0ZW5PblRoZUhvc3Q8TW91c2VFdmVudD4oJ21vdXNlZG93bicpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIHRoaXMub25Nb3VzZWRvd24oZXZlbnQsIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PE1vdXNlRXZlbnQ+KCdtb3VzZXVwJykuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgdGhpcy5vbk1vdXNldXAoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKElTX1RPVUNIX0RFVklDRSkge1xuICAgICAgICB0aGlzLmxpc3Rlbk9uVGhlSG9zdDxUb3VjaEV2ZW50PigndG91Y2hzdGFydCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgdGhpcy5vbk1vdXNlZG93bihcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYLFxuICAgICAgICAgICAgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgdGhpcy5saXN0ZW5PblRoZUhvc3Q8VG91Y2hFdmVudD4oJ3RvdWNoZW5kJyksXG4gICAgICAgICAgdGhpcy5saXN0ZW5PblRoZUhvc3Q8VG91Y2hFdmVudD4oJ3RvdWNoY2FuY2VsJylcbiAgICAgICAgKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgIHRoaXMub25Nb3VzZXVwKFxuICAgICAgICAgICAgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBoaWRkZW5cbiAgICovXG4gIG9uTW91c2Vkb3duKFxuICAgIGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCxcbiAgICBjbGllbnRYOiBudW1iZXIsXG4gICAgY2xpZW50WTogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0aGlzLmV2ZW50TGlzdGVuZXJzLnRvdWNobW92ZSkge1xuICAgICAgdGhpcy5ldmVudExpc3RlbmVycy50b3VjaG1vdmUgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICd0b3VjaG1vdmUnLFxuICAgICAgICAodG91Y2hNb3ZlRXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLm9uTW91c2Vtb3ZlKFxuICAgICAgICAgICAgdG91Y2hNb3ZlRXZlbnQsXG4gICAgICAgICAgICB0b3VjaE1vdmVFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgICAgICB0b3VjaE1vdmVFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZXZlbnRMaXN0ZW5lcnMubW91c2Vtb3ZlKSB7XG4gICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLm1vdXNlbW92ZSA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ21vdXNlbW92ZScsXG4gICAgICAgIChtb3VzZU1vdmVFdmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMub25Nb3VzZW1vdmUoXG4gICAgICAgICAgICBtb3VzZU1vdmVFdmVudCxcbiAgICAgICAgICAgIG1vdXNlTW92ZUV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICBtb3VzZU1vdmVFdmVudC5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yZXNpemFibGUubW91c2Vkb3duLm5leHQoe1xuICAgICAgY2xpZW50WCxcbiAgICAgIGNsaWVudFksXG4gICAgICBlZGdlczogdGhpcy5yZXNpemVFZGdlc1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBoaWRkZW5cbiAgICovXG4gIG9uTW91c2V1cChjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmVFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMucmVzaXphYmxlLm1vdXNldXAubmV4dCh7XG4gICAgICBjbGllbnRYLFxuICAgICAgY2xpZW50WSxcbiAgICAgIGVkZ2VzOiB0aGlzLnJlc2l6ZUVkZ2VzXG4gICAgfSk7XG4gIH1cblxuICAvLyBkaXJlY3RpdmUgbWlnaHQgYmUgcGFzc2VkIGZyb20gREkgb3IgYXMgYW4gaW5wdXRcbiAgcHJpdmF0ZSBnZXQgcmVzaXphYmxlKCk6IFJlc2l6YWJsZURpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzaXphYmxlRGlyZWN0aXZlIHx8IHRoaXMucmVzaXphYmxlQ29udGFpbmVyO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlbW92ZShcbiAgICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsXG4gICAgY2xpZW50WDogbnVtYmVyLFxuICAgIGNsaWVudFk6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6YWJsZS5tb3VzZW1vdmUubmV4dCh7XG4gICAgICBjbGllbnRYLFxuICAgICAgY2xpZW50WSxcbiAgICAgIGVkZ2VzOiB0aGlzLnJlc2l6ZUVkZ2VzLFxuICAgICAgZXZlbnRcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmV2ZW50TGlzdGVuZXJzKS5mb3JFYWNoKHR5cGUgPT4ge1xuICAgICAgKHRoaXMgYXMgYW55KS5ldmVudExpc3RlbmVyc1t0eXBlXSgpO1xuICAgICAgZGVsZXRlIHRoaXMuZXZlbnRMaXN0ZW5lcnNbdHlwZV07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk9uVGhlSG9zdDxUIGV4dGVuZHMgRXZlbnQ+KGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxUPih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxufVxuIl19 |
@@ -5,3 +5,3 @@ /** | ||
*/ | ||
import { Directive, Input, Renderer2, ElementRef, NgZone } from '@angular/core'; | ||
import { Directive, Input, Renderer2, ElementRef, NgZone, Optional } from '@angular/core'; | ||
import { fromEvent, merge, Subject } from 'rxjs'; | ||
@@ -21,9 +21,14 @@ import { takeUntil } from 'rxjs/operators'; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
var ResizeHandleDirective = /** @class */ (function () { | ||
function ResizeHandleDirective(renderer, element, zone, resizable) { | ||
function ResizeHandleDirective(renderer, element, zone, resizableDirective) { | ||
this.renderer = renderer; | ||
this.element = element; | ||
this.zone = zone; | ||
this.resizable = resizable; | ||
this.resizableDirective = resizableDirective; | ||
/** | ||
@@ -130,2 +135,16 @@ * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on | ||
}; | ||
Object.defineProperty(ResizeHandleDirective.prototype, "resizable", { | ||
// directive might be passed from DI or as an input | ||
get: | ||
// directive might be passed from DI or as an input | ||
/** | ||
* @private | ||
* @return {?} | ||
*/ | ||
function () { | ||
return this.resizableDirective || this.resizableContainer; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
/** | ||
@@ -193,6 +212,7 @@ * @private | ||
{ type: NgZone }, | ||
{ type: ResizableDirective } | ||
{ type: ResizableDirective, decorators: [{ type: Optional }] } | ||
]; }; | ||
ResizeHandleDirective.propDecorators = { | ||
resizeEdges: [{ type: Input }] | ||
resizeEdges: [{ type: Input }], | ||
resizableContainer: [{ type: Input }] | ||
}; | ||
@@ -209,3 +229,8 @@ return ResizeHandleDirective; | ||
/** | ||
* Reference to ResizableDirective in case if handle is not located inside of element with ResizableDirective | ||
* @type {?} | ||
*/ | ||
ResizeHandleDirective.prototype.resizableContainer; | ||
/** | ||
* @type {?} | ||
* @private | ||
@@ -238,4 +263,4 @@ */ | ||
*/ | ||
ResizeHandleDirective.prototype.resizable; | ||
ResizeHandleDirective.prototype.resizableDirective; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXJlc2l6YWJsZS1lbGVtZW50LyIsInNvdXJjZXMiOlsicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBR1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7QUFhcEQ7SUFpQkUsK0JBQ1UsUUFBbUIsRUFDbkIsT0FBbUIsRUFDbkIsSUFBWSxFQUNaLFNBQTZCO1FBSDdCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osY0FBUyxHQUFULFNBQVMsQ0FBb0I7Ozs7UUFkOUIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFFekIsbUJBQWMsR0FJbEIsRUFBRSxDQUFDO1FBRUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPcEMsQ0FBQzs7OztJQUVKLHdDQUFROzs7SUFBUjtRQUFBLGlCQThCQztRQTdCQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzFCLEtBQUksQ0FBQyxlQUFlLENBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUEsS0FBSztnQkFDM0QsS0FBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFB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QUFpQzs7Ozs7SUFFakMsK0NBSU87Ozs7O0lBRVAseUNBQXVDOzs7OztJQUdyQyx5Q0FBMkI7Ozs7O0lBQzNCLHdDQUEyQjs7Ozs7SUFDM0IscUNBQW9COzs7OztJQUNwQiwwQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBOZ1pvbmVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXNpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWRnZXMgfSBmcm9tICcuL2ludGVyZmFjZXMvZWRnZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElTX1RPVUNIX0RFVklDRSB9IGZyb20gJy4vaXMtdG91Y2gtZGV2aWNlJztcblxuLyoqXG4gKiBBbiBlbGVtZW50IHBsYWNlZCBpbnNpZGUgYSBgbXdsUmVzaXphYmxlYCBkaXJlY3RpdmUgdG8gYmUgdXNlZCBhcyBhIGRyYWcgYW5kIHJlc2l6ZSBoYW5kbGVcbiAqXG4gKiBGb3IgZXhhbXBsZVxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgbXdsUmVzaXphYmxlPlxuICogICA8ZGl2IG13bFJlc2l6ZUhhbmRsZSBbcmVzaXplRWRnZXNdPVwie2JvdHRvbTogdHJ1ZSwgcmlnaHQ6IHRydWV9XCI+PC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXdsUmVzaXplSGFuZGxlXSdcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXplSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIGBFZGdlc2Agb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGVkZ2VzIG9mIHRoZSBwYXJlbnQgZWxlbWVudCB0aGF0IGRyYWdnaW5nIHRoZSBoYW5kbGUgd2lsbCB0cmlnZ2VyIGEgcmVzaXplIG9uXG4gICAqL1xuICBASW5wdXQoKSByZXNpemVFZGdlczogRWRnZXMgPSB7fTtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiB7XG4gICAgdG91Y2htb3ZlPzogKCkgPT4gdm9pZDtcbiAgICBtb3VzZW1vdmU/OiAoKSA9PiB2b2lkO1xuICAgIFtrZXk6IHN0cmluZ106ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgfSA9IHt9O1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZXNpemFibGU6IFJlc2l6YWJsZURpcmVjdGl2ZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PE1vdXNlRXZlbnQ+KCdtb3VzZWRvd24nKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLm9uTW91c2Vkb3duKGV2ZW50LCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmxpc3Rlbk9uVGhlSG9zdDxNb3VzZUV2ZW50PignbW91c2V1cCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIHRoaXMub25Nb3VzZXVwKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChJU19UT1VDSF9ERVZJQ0UpIHtcbiAgICAgICAgdGhpcy5saXN0ZW5PblRoZUhvc3Q8VG91Y2hFdmVudD4oJ3RvdWNoc3RhcnQnKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgIHRoaXMub25Nb3VzZWRvd24oXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PFRvdWNoRXZlbnQ+KCd0b3VjaGVuZCcpLFxuICAgICAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PFRvdWNoRXZlbnQ+KCd0b3VjaGNhbmNlbCcpXG4gICAgICAgICkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICB0aGlzLm9uTW91c2V1cChcbiAgICAgICAgICAgIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgICAgICBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqL1xuICBvbk1vdXNlZG93bihcbiAgICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsXG4gICAgY2xpZW50WDogbnVtYmVyLFxuICAgIGNsaWVudFk6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5ldmVudExpc3RlbmVycy50b3VjaG1vdmUpIHtcbiAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMudG91Y2htb3ZlID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAndG91Y2htb3ZlJyxcbiAgICAgICAgKHRvdWNoTW92ZUV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbk1vdXNlbW92ZShcbiAgICAgICAgICAgIHRvdWNoTW92ZUV2ZW50LFxuICAgICAgICAgICAgdG91Y2hNb3ZlRXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYLFxuICAgICAgICAgICAgdG91Y2hNb3ZlRXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmV2ZW50TGlzdGVuZXJzLm1vdXNlbW92ZSkge1xuICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5tb3VzZW1vdmUgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgICAobW91c2VNb3ZlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLm9uTW91c2Vtb3ZlKFxuICAgICAgICAgICAgbW91c2VNb3ZlRXZlbnQsXG4gICAgICAgICAgICBtb3VzZU1vdmVFdmVudC5jbGllbnRYLFxuICAgICAgICAgICAgbW91c2VNb3ZlRXZlbnQuY2xpZW50WVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucmVzaXphYmxlLm1vdXNlZG93bi5uZXh0KHtcbiAgICAgIGNsaWVudFgsXG4gICAgICBjbGllbnRZLFxuICAgICAgZWRnZXM6IHRoaXMucmVzaXplRWRnZXNcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqL1xuICBvbk1vdXNldXAoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnJlc2l6YWJsZS5tb3VzZXVwLm5leHQoe1xuICAgICAgY2xpZW50WCxcbiAgICAgIGNsaWVudFksXG4gICAgICBlZGdlczogdGhpcy5yZXNpemVFZGdlc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlbW92ZShcbiAgICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsXG4gICAgY2xpZW50WDogbnVtYmVyLFxuICAgIGNsaWVudFk6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6YWJsZS5tb3VzZW1vdmUubmV4dCh7XG4gICAgICBjbGllbnRYLFxuICAgICAgY2xpZW50WSxcbiAgICAgIGVkZ2VzOiB0aGlzLnJlc2l6ZUVkZ2VzLFxuICAgICAgZXZlbnRcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmV2ZW50TGlzdGVuZXJzKS5mb3JFYWNoKHR5cGUgPT4ge1xuICAgICAgKHRoaXMgYXMgYW55KS5ldmVudExpc3RlbmVyc1t0eXBlXSgpO1xuICAgICAgZGVsZXRlIHRoaXMuZXZlbnRMaXN0ZW5lcnNbdHlwZV07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk9uVGhlSG9zdDxUIGV4dGVuZHMgRXZlbnQ+KGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxUPih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXJlc2l6YWJsZS1lbGVtZW50LyIsInNvdXJjZXMiOlsicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBR1YsTUFBTSxFQUNOLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQnBEO0lBcUJFLCtCQUNVLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ25CLElBQVksRUFDQSxrQkFBc0M7UUFIbEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDQSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9COzs7O1FBbEJuRCxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQU16QixtQkFBYyxHQUlsQixFQUFFLENBQUM7UUFFQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQU9wQyxDQUFDOzs7O0lBRUosd0NBQVE7OztJQUFSO1FBQUEsaUJBOEJDO1FBN0JDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDMUIsS0FBSSxDQUFDLGVBQWUsQ0FBYSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBQSxLQUFLO2dCQUMzRCxLQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztZQUVILEtBQUksQ0FBQyxlQUFlLENBQWEsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUEsS0FBSztnQkFDekQsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksZUFBZSxFQUFFO2dCQUNuQixLQUFJLENBQUMsZUFBZSxDQUFhLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLEtBQUs7b0JBQzVELEtBQUksQ0FBQyxXQUFXLENBQ2QsS0FBSyxFQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDekIsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQztnQkFFSCxLQUFLLENBQ0gsS0FBSSxDQUFDLGVBQWUsQ0FBYSxVQUFVLENBQUMsRUFDNUMsS0FBSSxDQUFDLGVBQWUsQ0FBYSxhQUFhLENBQUMsQ0FDaEQsQ0FBQyxTQUFTLENBQUMsVUFBQSxLQUFLO29CQUNmLEtBQUksQ0FBQyxTQUFTLENBQ1osS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQy9CLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUNoQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCwyQ0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRzs7Ozs7Ozs7SUFDSCwyQ0FBVzs7Ozs7OztJQUFYLFVBQ0UsS0FBOEIsRUFDOUIsT0FBZSxFQUNmLE9BQWU7UUFIakIsaUJBcUNDO1FBaENDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQixXQUFXLEVBQ1gsVUFBQyxjQUEwQjtnQkFDekIsS0FBSSxDQUFDLFdBQVcsQ0FDZCxjQUFjLEVBQ2QsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQ3ZDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUN4QyxDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRTtZQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQzFCLFdBQVcsRUFDWCxVQUFDLGNBQTBCO2dCQUN6QixLQUFJLENBQUMsV0FBVyxDQUNkLGNBQWMsRUFDZCxjQUFjLENBQUMsT0FBTyxFQUN0QixjQUFjLENBQUMsT0FBTyxDQUN2QixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUM1QixPQUFPLFNBQUE7WUFDUCxPQUFPLFNBQUE7WUFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHOzs7Ozs7O0lBQ0gseUNBQVM7Ozs7OztJQUFULFVBQVUsT0FBZSxFQUFFLE9BQWU7UUFDeEMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sU0FBQTtZQUNQLE9BQU8sU0FBQTtZQUNQLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0Qsc0JBQVksNENBQVM7UUFEckIsbURBQW1EOzs7Ozs7O1FBQ25EO1lBQ0UsT0FBTyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQzVELENBQUM7OztPQUFBOzs7Ozs7OztJQUVPLDJDQUFXOzs7Ozs7O0lBQW5CLFVBQ0UsS0FBOEIsRUFDOUIsT0FBZSxFQUNmLE9BQWU7UUFFZixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDNUIsT0FBTyxTQUFBO1lBQ1AsT0FBTyxTQUFBO1lBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3ZCLEtBQUssT0FBQTtTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRU8seURBQXlCOzs7O0lBQWpDO1FBQUEsaUJBS0M7UUFKQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxJQUFJO1lBQzNDLENBQUMsbUJBQUEsS0FBSSxFQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEtBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7O0lBRU8sK0NBQWU7Ozs7OztJQUF2QixVQUF5QyxTQUFpQjtRQUN4RCxPQUFPLFNBQVMsQ0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQzdELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCLENBQUM7SUFDSixDQUFDOztnQkFwSkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOzs7O2dCQS9CQyxTQUFTO2dCQUNULFVBQVU7Z0JBR1YsTUFBTTtnQkFLQyxrQkFBa0IsdUJBNkN0QixRQUFROzs7OEJBbEJWLEtBQUs7cUNBSUwsS0FBSzs7SUEwSVIsNEJBQUM7Q0FBQSxBQXJKRCxJQXFKQztTQWxKWSxxQkFBcUI7Ozs7OztJQUloQyw0Q0FBaUM7Ozs7O0lBSWpDLG1EQUFnRDs7Ozs7SUFFaEQsK0NBSU87Ozs7O0lBRVAseUNBQXVDOzs7OztJQUdyQyx5Q0FBMkI7Ozs7O0lBQzNCLHdDQUEyQjs7Ozs7SUFDM0IscUNBQW9COzs7OztJQUNwQixtREFBMEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmVzaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNpemFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVkZ2VzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2VkZ2VzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJU19UT1VDSF9ERVZJQ0UgfSBmcm9tICcuL2lzLXRvdWNoLWRldmljZSc7XG5cbi8qKlxuICogQW4gZWxlbWVudCBwbGFjZWQgaW5zaWRlIGEgYG13bFJlc2l6YWJsZWAgZGlyZWN0aXZlIHRvIGJlIHVzZWQgYXMgYSBkcmFnIGFuZCByZXNpemUgaGFuZGxlXG4gKlxuICogRm9yIGV4YW1wbGVcbiAqXG4gKiBgYGBodG1sXG4gKiA8ZGl2IG13bFJlc2l6YWJsZT5cbiAqICAgPGRpdiBtd2xSZXNpemVIYW5kbGUgW3Jlc2l6ZUVkZ2VzXT1cIntib3R0b206IHRydWUsIHJpZ2h0OiB0cnVlfVwiPjwvZGl2PlxuICogPC9kaXY+XG4gKiBgYGBcbiAqIE9yIGluIGNhc2UgdGhleSBhcmUgc2libGluZyBlbGVtZW50czpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgbXdsUmVzaXphYmxlICNyZXNpemFibGVFbGVtZW50PVwibXdsUmVzaXphYmxlXCI+PC9kaXY+XG4gKiA8ZGl2IG13bFJlc2l6ZUhhbmRsZSBbcmVzaXphYmxlQ29udGFpbmVyXT1cInJlc2l6YWJsZUVsZW1lbnRcIiBbcmVzaXplRWRnZXNdPVwie2JvdHRvbTogdHJ1ZSwgcmlnaHQ6IHRydWV9XCI+PC9kaXY+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW213bFJlc2l6ZUhhbmRsZV0nXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6ZUhhbmRsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSBgRWRnZXNgIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBlZGdlcyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgdGhhdCBkcmFnZ2luZyB0aGUgaGFuZGxlIHdpbGwgdHJpZ2dlciBhIHJlc2l6ZSBvblxuICAgKi9cbiAgQElucHV0KCkgcmVzaXplRWRnZXM6IEVkZ2VzID0ge307XG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gUmVzaXphYmxlRGlyZWN0aXZlIGluIGNhc2UgaWYgaGFuZGxlIGlzIG5vdCBsb2NhdGVkIGluc2lkZSBvZiBlbGVtZW50IHdpdGggUmVzaXphYmxlRGlyZWN0aXZlXG4gICAqL1xuICBASW5wdXQoKSByZXNpemFibGVDb250YWluZXI6IFJlc2l6YWJsZURpcmVjdGl2ZTtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiB7XG4gICAgdG91Y2htb3ZlPzogKCkgPT4gdm9pZDtcbiAgICBtb3VzZW1vdmU/OiAoKSA9PiB2b2lkO1xuICAgIFtrZXk6IHN0cmluZ106ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgfSA9IHt9O1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZXNpemFibGVEaXJlY3RpdmU6IFJlc2l6YWJsZURpcmVjdGl2ZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PE1vdXNlRXZlbnQ+KCdtb3VzZWRvd24nKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLm9uTW91c2Vkb3duKGV2ZW50LCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmxpc3Rlbk9uVGhlSG9zdDxNb3VzZUV2ZW50PignbW91c2V1cCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIHRoaXMub25Nb3VzZXVwKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChJU19UT1VDSF9ERVZJQ0UpIHtcbiAgICAgICAgdGhpcy5saXN0ZW5PblRoZUhvc3Q8VG91Y2hFdmVudD4oJ3RvdWNoc3RhcnQnKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgIHRoaXMub25Nb3VzZWRvd24oXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PFRvdWNoRXZlbnQ+KCd0b3VjaGVuZCcpLFxuICAgICAgICAgIHRoaXMubGlzdGVuT25UaGVIb3N0PFRvdWNoRXZlbnQ+KCd0b3VjaGNhbmNlbCcpXG4gICAgICAgICkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICB0aGlzLm9uTW91c2V1cChcbiAgICAgICAgICAgIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgICAgICBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqL1xuICBvbk1vdXNlZG93bihcbiAgICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsXG4gICAgY2xpZW50WDogbnVtYmVyLFxuICAgIGNsaWVudFk6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5ldmVudExpc3RlbmVycy50b3VjaG1vdmUpIHtcbiAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMudG91Y2htb3ZlID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAndG91Y2htb3ZlJyxcbiAgICAgICAgKHRvdWNoTW92ZUV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbk1vdXNlbW92ZShcbiAgICAgICAgICAgIHRvdWNoTW92ZUV2ZW50LFxuICAgICAgICAgICAgdG91Y2hNb3ZlRXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYLFxuICAgICAgICAgICAgdG91Y2hNb3ZlRXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmV2ZW50TGlzdGVuZXJzLm1vdXNlbW92ZSkge1xuICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5tb3VzZW1vdmUgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgICAobW91c2VNb3ZlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLm9uTW91c2Vtb3ZlKFxuICAgICAgICAgICAgbW91c2VNb3ZlRXZlbnQsXG4gICAgICAgICAgICBtb3VzZU1vdmVFdmVudC5jbGllbnRYLFxuICAgICAgICAgICAgbW91c2VNb3ZlRXZlbnQuY2xpZW50WVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucmVzaXphYmxlLm1vdXNlZG93bi5uZXh0KHtcbiAgICAgIGNsaWVudFgsXG4gICAgICBjbGllbnRZLFxuICAgICAgZWRnZXM6IHRoaXMucmVzaXplRWRnZXNcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqL1xuICBvbk1vdXNldXAoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnJlc2l6YWJsZS5tb3VzZXVwLm5leHQoe1xuICAgICAgY2xpZW50WCxcbiAgICAgIGNsaWVudFksXG4gICAgICBlZGdlczogdGhpcy5yZXNpemVFZGdlc1xuICAgIH0pO1xuICB9XG5cbiAgLy8gZGlyZWN0aXZlIG1pZ2h0IGJlIHBhc3NlZCBmcm9tIERJIG9yIGFzIGFuIGlucHV0XG4gIHByaXZhdGUgZ2V0IHJlc2l6YWJsZSgpOiBSZXNpemFibGVEaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLnJlc2l6YWJsZURpcmVjdGl2ZSB8fCB0aGlzLnJlc2l6YWJsZUNvbnRhaW5lcjtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZW1vdmUoXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxuICAgIGNsaWVudFg6IG51bWJlcixcbiAgICBjbGllbnRZOiBudW1iZXJcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemFibGUubW91c2Vtb3ZlLm5leHQoe1xuICAgICAgY2xpZW50WCxcbiAgICAgIGNsaWVudFksXG4gICAgICBlZGdlczogdGhpcy5yZXNpemVFZGdlcyxcbiAgICAgIGV2ZW50XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgT2JqZWN0LmtleXModGhpcy5ldmVudExpc3RlbmVycykuZm9yRWFjaCh0eXBlID0+IHtcbiAgICAgICh0aGlzIGFzIGFueSkuZXZlbnRMaXN0ZW5lcnNbdHlwZV0oKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmV2ZW50TGlzdGVuZXJzW3R5cGVdO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5PblRoZUhvc3Q8VCBleHRlbmRzIEV2ZW50PihldmVudE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBmcm9tRXZlbnQ8VD4odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICk7XG4gIH1cbn1cbiJdfQ== |
import { isPlatformBrowser } from '@angular/common'; | ||
import { Directive, Renderer2, ElementRef, Output, Input, EventEmitter, NgZone, Inject, PLATFORM_ID, NgModule } from '@angular/core'; | ||
import { Directive, Renderer2, ElementRef, Output, Input, EventEmitter, NgZone, Inject, PLATFORM_ID, Optional, NgModule } from '@angular/core'; | ||
import { Subject, Observable, merge, EMPTY, fromEvent } from 'rxjs'; | ||
@@ -246,2 +246,7 @@ import { map, mergeMap, takeUntil, filter, pairwise, take, share, auditTime, switchMap, startWith, tap } from 'rxjs/operators'; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
@@ -335,3 +340,9 @@ class ResizableDirective { | ||
if (currentResize) { | ||
event.preventDefault(); | ||
try { | ||
event.preventDefault(); | ||
} | ||
catch (e) { | ||
// just adding try-catch not to see errors in console if there is a passive listener for same event somewhere | ||
// browser does nothing except of writing errors to console | ||
} | ||
} | ||
@@ -625,3 +636,4 @@ }), share()); | ||
{ type: Directive, args: [{ | ||
selector: '[mwlResizable]' | ||
selector: '[mwlResizable]', | ||
exportAs: 'mwlResizable' | ||
},] } | ||
@@ -785,2 +797,7 @@ ]; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
@@ -792,9 +809,9 @@ class ResizeHandleDirective { | ||
* @param {?} zone | ||
* @param {?} resizable | ||
* @param {?} resizableDirective | ||
*/ | ||
constructor(renderer, element, zone, resizable) { | ||
constructor(renderer, element, zone, resizableDirective) { | ||
this.renderer = renderer; | ||
this.element = element; | ||
this.zone = zone; | ||
this.resizable = resizable; | ||
this.resizableDirective = resizableDirective; | ||
/** | ||
@@ -874,4 +891,12 @@ * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on | ||
} | ||
// directive might be passed from DI or as an input | ||
/** | ||
* @private | ||
* @return {?} | ||
*/ | ||
get resizable() { | ||
return this.resizableDirective || this.resizableContainer; | ||
} | ||
/** | ||
* @private | ||
* @param {?} event | ||
@@ -920,6 +945,7 @@ * @param {?} clientX | ||
{ type: NgZone }, | ||
{ type: ResizableDirective } | ||
{ type: ResizableDirective, decorators: [{ type: Optional }] } | ||
]; | ||
ResizeHandleDirective.propDecorators = { | ||
resizeEdges: [{ type: Input }] | ||
resizeEdges: [{ type: Input }], | ||
resizableContainer: [{ type: Input }] | ||
}; | ||
@@ -926,0 +952,0 @@ |
import { __assign, __read } from 'tslib'; | ||
import { isPlatformBrowser } from '@angular/common'; | ||
import { Directive, Renderer2, ElementRef, Output, Input, EventEmitter, NgZone, Inject, PLATFORM_ID, NgModule } from '@angular/core'; | ||
import { Directive, Renderer2, ElementRef, Output, Input, EventEmitter, NgZone, Inject, PLATFORM_ID, Optional, NgModule } from '@angular/core'; | ||
import { Subject, Observable, merge, EMPTY, fromEvent } from 'rxjs'; | ||
@@ -252,2 +252,7 @@ import { map, mergeMap, takeUntil, filter, pairwise, take, share, auditTime, switchMap, startWith, tap } from 'rxjs/operators'; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
@@ -346,3 +351,9 @@ var ResizableDirective = /** @class */ (function () { | ||
if (currentResize) { | ||
event.preventDefault(); | ||
try { | ||
event.preventDefault(); | ||
} | ||
catch (e) { | ||
// just adding try-catch not to see errors in console if there is a passive listener for same event somewhere | ||
// browser does nothing except of writing errors to console | ||
} | ||
} | ||
@@ -665,3 +676,4 @@ }), share()); | ||
{ type: Directive, args: [{ | ||
selector: '[mwlResizable]' | ||
selector: '[mwlResizable]', | ||
exportAs: 'mwlResizable' | ||
},] } | ||
@@ -831,9 +843,14 @@ ]; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
var ResizeHandleDirective = /** @class */ (function () { | ||
function ResizeHandleDirective(renderer, element, zone, resizable) { | ||
function ResizeHandleDirective(renderer, element, zone, resizableDirective) { | ||
this.renderer = renderer; | ||
this.element = element; | ||
this.zone = zone; | ||
this.resizable = resizable; | ||
this.resizableDirective = resizableDirective; | ||
/** | ||
@@ -940,2 +957,16 @@ * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on | ||
}; | ||
Object.defineProperty(ResizeHandleDirective.prototype, "resizable", { | ||
// directive might be passed from DI or as an input | ||
get: | ||
// directive might be passed from DI or as an input | ||
/** | ||
* @private | ||
* @return {?} | ||
*/ | ||
function () { | ||
return this.resizableDirective || this.resizableContainer; | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
/** | ||
@@ -1003,6 +1034,7 @@ * @private | ||
{ type: NgZone }, | ||
{ type: ResizableDirective } | ||
{ type: ResizableDirective, decorators: [{ type: Optional }] } | ||
]; }; | ||
ResizeHandleDirective.propDecorators = { | ||
resizeEdges: [{ type: Input }] | ||
resizeEdges: [{ type: Input }], | ||
resizableContainer: [{ type: Input }] | ||
}; | ||
@@ -1009,0 +1041,0 @@ return ResizeHandleDirective; |
{ | ||
"name": "angular-resizable-element", | ||
"version": "3.3.5", | ||
"version": "3.4.0", | ||
"description": "An angular 6.0+ directive that allows an element to be dragged and resized", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -24,2 +24,7 @@ import { Renderer2, ElementRef, OnInit, EventEmitter, OnDestroy, NgZone, OnChanges, SimpleChanges } from '@angular/core'; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
@@ -26,0 +31,0 @@ export declare class ResizableDirective implements OnInit, OnChanges, OnDestroy { |
@@ -14,2 +14,7 @@ import { Renderer2, ElementRef, OnInit, OnDestroy, NgZone } from '@angular/core'; | ||
* ``` | ||
* Or in case they are sibling elements: | ||
* ```html | ||
* <div mwlResizable #resizableElement="mwlResizable"></div> | ||
* <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div> | ||
* ``` | ||
*/ | ||
@@ -20,3 +25,3 @@ export declare class ResizeHandleDirective implements OnInit, OnDestroy { | ||
private zone; | ||
private resizable; | ||
private resizableDirective; | ||
/** | ||
@@ -26,5 +31,9 @@ * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on | ||
resizeEdges: Edges; | ||
/** | ||
* Reference to ResizableDirective in case if handle is not located inside of element with ResizableDirective | ||
*/ | ||
resizableContainer: ResizableDirective; | ||
private eventListeners; | ||
private destroy$; | ||
constructor(renderer: Renderer2, element: ElementRef, zone: NgZone, resizable: ResizableDirective); | ||
constructor(renderer: Renderer2, element: ElementRef, zone: NgZone, resizableDirective: ResizableDirective); | ||
ngOnInit(): void; | ||
@@ -40,2 +49,3 @@ ngOnDestroy(): void; | ||
onMouseup(clientX: number, clientY: number): void; | ||
private readonly resizable; | ||
private onMousemove; | ||
@@ -42,0 +52,0 @@ private unsubscribeEventListeners; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
684093
6013