@acorex/cdk 20.7.12 → 20.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -66,10 +66,7 @@ class AXResizableDirective {
66
66
  if (!this.isBrowser)
67
67
  return;
68
68
  this.initialElementWidth = this.hostElement.offsetWidth;
69
- const initialWidth = this.width();
70
- if (initialWidth !== null) {
71
- this.hostElement.style.width = `${initialWidth}px`;
72
- }
69
+ this.applyWidthFromModel();
73
70
  if (this.maxWidth() === Infinity) {
74
71
  const parentWidth = this.hostElement.parentElement?.offsetWidth;
75
72
  if (parentWidth) {
@@ -82,6 +79,7 @@ class AXResizableDirective {
82
79
  }
83
80
  this.createResizeHandle();
84
81
  this.setupResizableState();
82
+ this.setupWidthSync();
85
83
  }
86
84
  ngOnDestroy() {
87
85
  this.subscriptions.unsubscribe();
@@ -99,6 +97,38 @@ class AXResizableDirective {
99
97
  }
100
98
  }));
101
99
  }
100
+ /** Re-apply host width when `width` / `defaultWidth` inputs change after init. */
101
+ setupWidthSync() {
102
+ this.subscriptions.add(this.width.subscribe((width) => {
103
+ if (this.isResizing() || width === null) {
104
+ return;
105
+ }
106
+ this.applyElementWidth(width);
107
+ }));
108
+ this.subscriptions.add(this.defaultWidth.subscribe((defaultWidth) => {
109
+ if (this.isResizing() || defaultWidth === null) {
110
+ return;
111
+ }
112
+ const width = this.width();
113
+ if (width === null) {
114
+ this.applyElementWidth(defaultWidth);
115
+ }
116
+ }));
117
+ }
118
+ applyWidthFromModel() {
119
+ const width = this.width();
120
+ if (width !== null) {
121
+ this.applyElementWidth(width);
122
+ return;
123
+ }
124
+ const defaultWidth = this.defaultWidth();
125
+ if (defaultWidth !== null) {
126
+ this.applyElementWidth(defaultWidth);
127
+ }
128
+ }
129
+ applyElementWidth(width) {
130
+ this.hostElement.style.width = `${width}px`;
131
+ }
102
132
  createResizeHandle() {
103
133
  if (!this.axResizable() || this.resizeHandle)
104
134
  return;
@@ -257,21 +287,21 @@ class AXResizableDirective {
257
287
  resetToInitialWidth() {
258
288
  const defaultWidth = this.defaultWidth();
259
289
  if (defaultWidth !== null) {
260
- this.hostElement.style.width = `${defaultWidth}px`;
290
+ this.applyElementWidth(defaultWidth);
261
291
  return defaultWidth;
262
292
  }
263
293
  const initialWidth = this.width();
264
294
  if (initialWidth !== null) {
265
- this.hostElement.style.width = `${initialWidth}px`;
295
+ this.applyElementWidth(initialWidth);
266
296
  return initialWidth;
267
297
  }
268
- this.hostElement.style.width = `${this.initialElementWidth}px`;
298
+ this.applyElementWidth(this.initialElementWidth);
269
299
  return this.initialElementWidth;
270
300
  }
271
301
  maximizeToMaxWidth() {
272
302
  const maxWidth = this.maxWidth();
273
303
  if (maxWidth !== Infinity) {
274
- this.hostElement.style.width = `${maxWidth}px`;
304
+ this.applyElementWidth(maxWidth);
275
305
  }
276
306
  return maxWidth;
277
307
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-resizable.mjs","sources":["../tmp-esm2022/resizable/lib/resize.directive.js","../tmp-esm2022/resizable/acorex-cdk-resizable.js"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Directive, DOCUMENT, ElementRef, inject, model, NgZone, output, PLATFORM_ID, signal, } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXResizableDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.platformService = inject(AXPlatform);\n this.zone = inject(NgZone);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.isResizing = signal(false, ...(ngDevMode ? [{ debugName: \"isResizing\" }] : []));\n this.initialElementWidth = 0;\n this.startMoveWidth = 0;\n this.subscriptions = new Subscription();\n // Bound event handlers to maintain reference for cleanup\n this.boundMouseDown = this.onMouseDown.bind(this);\n this.boundMouseMove = this.onMouseMove.bind(this);\n this.boundMouseUp = this.onMouseUp.bind(this);\n this.boundMouseEnter = this.onMouseEnter.bind(this);\n this.boundMouseLeave = this.onMouseLeave.bind(this);\n this.boundDoubleClick = this.onDoubleClick.bind(this);\n this.resizeObserver = new ResizeObserver((entries) => {\n const parentElement = this.hostElement.parentElement;\n if (!parentElement)\n return;\n for (const entry of entries) {\n if (entry.target === parentElement && this.maxWidth() === Infinity) {\n this.maxWidth.set(entry.contentRect.width);\n break;\n }\n }\n });\n /** Define if directive is active or not */\n this.axResizable = model(true, ...(ngDevMode ? [{ debugName: \"axResizable\" }] : []));\n /** Minimum width for the resizable element. */\n this.minWidth = model(100, ...(ngDevMode ? [{ debugName: \"minWidth\" }] : []));\n /** Maximum width for the resizable element. Defaults to parent width if not provided. */\n this.maxWidth = model(Infinity, ...(ngDevMode ? [{ debugName: \"maxWidth\" }] : []));\n /** Behavior on double-click: 'reset' or 'maximize'. */\n this.dblClickAction = model('reset', ...(ngDevMode ? [{ debugName: \"dblClickAction\" }] : []));\n /** Define initial width for the element. */\n this.width = model(null, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n /** Define reset width for the element. */\n this.defaultWidth = model(null, ...(ngDevMode ? [{ debugName: \"defaultWidth\" }] : []));\n /** Event emitted when resizing starts. */\n this.onResizingStarted = output();\n /** Event emitted when resizing ends. */\n this.onResizingEnded = output();\n /** Event emitted on double-click. */\n this.onResizingDblClick = output();\n this.isRTL = signal(AXHtmlUtil.isRtl(this.document.documentElement), ...(ngDevMode ? [{ debugName: \"isRTL\" }] : []));\n this.isBrowser = isPlatformBrowser(this.platformID);\n this.hostElement = this.el.nativeElement;\n this.subscriptions.add(this.platformService.directionChange.subscribe((i) => {\n this.isRTL.set(i.data === 'rtl');\n if (this.resizeHandle) {\n this.updateHandlePosition();\n }\n }));\n }\n ngAfterViewInit() {\n if (!this.isBrowser)\n return;\n this.initialElementWidth = this.hostElement.offsetWidth;\n const initialWidth = this.width();\n if (initialWidth !== null) {\n this.hostElement.style.width = `${initialWidth}px`;\n }\n if (this.maxWidth() === Infinity) {\n const parentWidth = this.hostElement.parentElement?.offsetWidth;\n if (parentWidth) {\n this.maxWidth.set(parentWidth);\n }\n }\n const parentElement = this.hostElement.parentElement;\n if (parentElement) {\n this.resizeObserver.observe(parentElement);\n }\n this.createResizeHandle();\n this.setupResizableState();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.resizeObserver.disconnect();\n this.cleanupEventListeners();\n }\n setupResizableState() {\n this.subscriptions.add(this.axResizable.subscribe((isActive) => {\n if (!isActive) {\n this.resetToInitialWidth();\n this.cleanupEventListeners();\n }\n else {\n this.createResizeHandle();\n }\n }));\n }\n createResizeHandle() {\n if (!this.axResizable() || this.resizeHandle)\n return;\n this.hostElement.style.position = 'relative';\n this.resizeHandle = this.document.createElement('div');\n this.resizeHandle.classList.add('ax-resizable-handler');\n this.hostElement.appendChild(this.resizeHandle);\n this.applyHandleStyles();\n this.attachEventListeners();\n }\n applyHandleStyles() {\n if (!this.resizeHandle)\n return;\n Object.assign(this.resizeHandle.style, {\n width: STYLES.handlerWidth,\n backgroundColor: STYLES.backgroundColor,\n position: 'absolute',\n top: '0',\n bottom: '0',\n cursor: STYLES.cursor,\n zIndex: STYLES.zIndex,\n transition: STYLES.transition,\n borderRadius: STYLES.borderRadius,\n userSelect: 'none',\n });\n this.updateHandlePosition();\n }\n updateHandlePosition() {\n if (!this.resizeHandle)\n return;\n const isRTL = this.isRTL();\n if (isRTL) {\n this.resizeHandle.style.left = '0';\n this.resizeHandle.style.right = '';\n }\n else {\n this.resizeHandle.style.right = '0';\n this.resizeHandle.style.left = '';\n }\n }\n attachEventListeners() {\n if (!this.resizeHandle)\n return;\n const handle = this.resizeHandle;\n this.zone.runOutsideAngular(() => {\n handle.addEventListener('mousedown', this.boundMouseDown);\n handle.addEventListener('mouseenter', this.boundMouseEnter);\n handle.addEventListener('mouseleave', this.boundMouseLeave);\n handle.addEventListener('dblclick', this.boundDoubleClick);\n this.document.addEventListener('mousemove', this.boundMouseMove);\n this.document.addEventListener('mouseup', this.boundMouseUp);\n });\n }\n cleanupEventListeners() {\n if (this.resizeHandle) {\n this.resizeHandle.removeEventListener('mousedown', this.boundMouseDown);\n this.resizeHandle.removeEventListener('mouseenter', this.boundMouseEnter);\n this.resizeHandle.removeEventListener('mouseleave', this.boundMouseLeave);\n this.resizeHandle.removeEventListener('dblclick', this.boundDoubleClick);\n this.resizeHandle.remove();\n this.resizeHandle = undefined;\n }\n this.document.removeEventListener('mousemove', this.boundMouseMove);\n this.document.removeEventListener('mouseup', this.boundMouseUp);\n this.document.body.style.cursor = '';\n }\n onMouseDown(event) {\n if (!this.resizeHandle)\n return;\n const handleRect = this.resizeHandle.getBoundingClientRect();\n if (event.clientX < handleRect.left || event.clientX > handleRect.right)\n return;\n event.preventDefault();\n this.isResizing.set(true);\n this.document.body.style.cursor = STYLES.cursorActive;\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorActive;\n this.startMoveWidth = this.hostElement.offsetWidth;\n this.zone.run(() => {\n this.onResizingStarted.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingStarted',\n value: this.startMoveWidth,\n oldValue: this.startMoveWidth,\n });\n });\n }\n onMouseMove(event) {\n if (!this.isResizing())\n return;\n const rect = this.hostElement.getBoundingClientRect();\n const isRTL = this.isRTL();\n let newWidth = isRTL ? rect.right - event.clientX : event.clientX - rect.left;\n newWidth = Math.max(this.minWidth(), Math.min(newWidth, this.maxWidth()));\n if (newWidth !== this.hostElement.offsetWidth) {\n this.hostElement.style.width = `${newWidth}px`;\n }\n }\n onMouseUp() {\n if (!this.isResizing() || !this.resizeHandle)\n return;\n this.isResizing.set(false);\n this.document.body.style.cursor = '';\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n const currentWidth = this.hostElement.offsetWidth;\n this.zone.run(() => {\n this.onResizingEnded.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingEnded',\n value: currentWidth,\n oldValue: this.startMoveWidth,\n });\n });\n }\n onMouseEnter() {\n if (!this.isResizing() && this.resizeHandle) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorHover;\n }\n }\n onMouseLeave() {\n if (!this.isResizing() && this.resizeHandle) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n }\n }\n onDoubleClick() {\n const elementWidth = this.hostElement.offsetWidth;\n const action = this.dblClickAction();\n let newWidth;\n switch (action) {\n case 'reset':\n newWidth = this.resetToInitialWidth();\n break;\n case 'maximize':\n newWidth = this.maximizeToMaxWidth();\n break;\n case 'fit':\n newWidth = this.fitToContent();\n break;\n default:\n newWidth = elementWidth;\n }\n this.zone.run(() => {\n this.onResizingDblClick.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'onResizingDblClick',\n oldValue: elementWidth,\n value: newWidth,\n });\n });\n }\n resetToInitialWidth() {\n const defaultWidth = this.defaultWidth();\n if (defaultWidth !== null) {\n this.hostElement.style.width = `${defaultWidth}px`;\n return defaultWidth;\n }\n const initialWidth = this.width();\n if (initialWidth !== null) {\n this.hostElement.style.width = `${initialWidth}px`;\n return initialWidth;\n }\n this.hostElement.style.width = `${this.initialElementWidth}px`;\n return this.initialElementWidth;\n }\n maximizeToMaxWidth() {\n const maxWidth = this.maxWidth();\n if (maxWidth !== Infinity) {\n this.hostElement.style.width = `${maxWidth}px`;\n }\n return maxWidth;\n }\n fitToContent() {\n this.hostElement.style.width = 'fit-content';\n return this.hostElement.clientWidth;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXResizableDirective, isStandalone: true, selector: \"[axResizable]\", inputs: { axResizable: { classPropertyName: \"axResizable\", publicName: \"axResizable\", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: \"minWidth\", publicName: \"minWidth\", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: \"maxWidth\", publicName: \"maxWidth\", isSignal: true, isRequired: false, transformFunction: null }, dblClickAction: { classPropertyName: \"dblClickAction\", publicName: \"dblClickAction\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, defaultWidth: { classPropertyName: \"defaultWidth\", publicName: \"defaultWidth\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { axResizable: \"axResizableChange\", minWidth: \"minWidthChange\", maxWidth: \"maxWidthChange\", dblClickAction: \"dblClickActionChange\", width: \"widthChange\", defaultWidth: \"defaultWidthChange\", onResizingStarted: \"onResizingStarted\", onResizingEnded: \"onResizingEnded\", onResizingDblClick: \"onResizingDblClick\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXResizableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axResizable]',\n }]\n }], ctorParameters: () => [] });\nconst STYLES = {\n handlerWidth: 'var(--ax-comp-resizable-handler-width, 4px)',\n backgroundColor: 'rgba(var(--ax-comp-resizable-background-color))',\n backgroundColorActive: 'rgba(var(--ax-comp-resizable-background-color-active, var(--ax-sys-color-primary-surface)))',\n backgroundColorHover: 'rgba(var(--ax-comp-resizable-background-color-hover, var(--ax-sys-color-primary-light-surface)))',\n cursor: 'var(--ax-comp-resizable-cursor, ew-resize)',\n cursorActive: 'var(--ax-comp-resizable-cursor-active, ew-resize)',\n zIndex: 'var(--ax-comp-resizable-z-index, 999)',\n transition: 'var(--ax-comp-resizable-transition, background-color --ax-sys-transition-duration --ax-sys-transition-timing-function)',\n borderRadius: 'var(--ax-comp-resizable-border-radius, --ax-sys-border-radius)',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9yZXNpemFibGUvc3JjL2xpYi9yZXNpemUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3BDLE1BQU0sT0FBTyxvQkFBb0I7SUE4RC9CO1FBN0RpQixPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSzFDLGVBQVUsR0FBNEIsTUFBTSxDQUFDLEtBQUssc0RBQUMsQ0FBQztRQUNwRCx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNDLHlEQUF5RDtRQUN4QyxtQkFBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxD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QUMsV0FBVyxDQUFDO0lBQ3RDLENBQUM7OEdBeFVVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7QUFxVkQsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsNkNBQTZDO0lBQzNELGVBQWUsRUFBRSxpREFBaUQ7SUFDbEUscUJBQXFCLEVBQUUsNkZBQTZGO0lBQ3BILG9CQUFvQixFQUNsQixrR0FBa0c7SUFDcEcsTUFBTSxFQUFFLDRDQUE0QztJQUNwRCxZQUFZLEVBQUUsbURBQW1EO0lBQ2pFLE1BQU0sRUFBRSx1Q0FBdUM7SUFDL0MsVUFBVSxFQUNSLHdIQUF3SDtJQUMxSCxZQUFZLEVBQUUsZ0VBQWdFO0NBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBET0NVTUVOVCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBtb2RlbCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theFJlc2l6YWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBBWFJlc2l6YWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1TZXJ2aWNlID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuICBcbiAgcHJpdmF0ZSBob3N0RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHJlc2l6ZUhhbmRsZT86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGlzUmVzaXppbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBpbml0aWFsRWxlbWVudFdpZHRoID0gMDtcbiAgcHJpdmF0ZSBzdGFydE1vdmVXaWR0aCA9IDA7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgXG4gIC8vIEJvdW5kIGV2ZW50IGhhbmRsZXJzIHRvIG1haW50YWluIHJlZmVyZW5jZSBmb3IgY2xlYW51cFxuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kTW91c2VEb3duID0gdGhpcy5vbk1vdXNlRG93bi5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kTW91c2VNb3ZlID0gdGhpcy5vbk1vdXNlTW92ZS5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kTW91c2VVcCA9IHRoaXMub25Nb3VzZVVwLmJpbmQodGhpcyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYm91bmRNb3VzZUVudGVyID0gdGhpcy5vbk1vdXNlRW50ZXIuYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBib3VuZE1vdXNlTGVhdmUgPSB0aGlzLm9uTW91c2VMZWF2ZS5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kRG91YmxlQ2xpY2sgPSB0aGlzLm9uRG91YmxlQ2xpY2suYmluZCh0aGlzKTtcbiAgXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmICghcGFyZW50RWxlbWVudCkgcmV0dXJuO1xuICAgIFxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgaWYgKGVudHJ5LnRhcmdldCA9PT0gcGFyZW50RWxlbWVudCAmJiB0aGlzLm1heFdpZHRoKCkgPT09IEluZmluaXR5KSB7XG4gICAgICAgIHRoaXMubWF4V2lkdGguc2V0KGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvKiogRGVmaW5lIGlmIGRpcmVjdGl2ZSBpcyBhY3RpdmUgb3Igbm90ICovXG4gIGF4UmVzaXphYmxlID0gbW9kZWwodHJ1ZSk7XG5cbiAgLyoqIE1pbmltdW0gd2lkdGggZm9yIHRoZSByZXNpemFibGUgZWxlbWVudC4gKi9cbiAgbWluV2lkdGggPSBtb2RlbCgxMDApO1xuXG4gIC8qKiBNYXhpbXVtIHdpZHRoIGZvciB0aGUgcmVzaXphYmxlIGVsZW1lbnQuIERlZmF1bHRzIHRvIHBhcmVudCB3aWR0aCBpZiBub3QgcHJvdmlkZWQuICovXG4gIG1heFdpZHRoID0gbW9kZWwoSW5maW5pdHkpO1xuXG4gIC8qKiBCZWhhdmlvciBvbiBkb3VibGUtY2xpY2s6ICdyZXNldCcgb3IgJ21heGltaXplJy4gKi9cbiAgZGJsQ2xpY2tBY3Rpb24gPSBtb2RlbDwncmVzZXQnIHwgJ21heGltaXplJyB8ICdmaXQnPigncmVzZXQnKTtcblxuICAvKiogRGVmaW5lIGluaXRpYWwgd2lkdGggZm9yIHRoZSBlbGVtZW50LiAqL1xuICB3aWR0aCA9IG1vZGVsPG51bGwgfCBudW1iZXI+KG51bGwpO1xuXG4gIC8qKiBEZWZpbmUgcmVzZXQgd2lkdGggZm9yIHRoZSBlbGVtZW50LiAqL1xuICBkZWZhdWx0V2lkdGggPSBtb2RlbDxudWxsIHwgbnVtYmVyPihudWxsKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHJlc2l6aW5nIHN0YXJ0cy4gKi9cbiAgb25SZXNpemluZ1N0YXJ0ZWQgPSBvdXRwdXQ8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gcmVzaXppbmcgZW5kcy4gKi9cbiAgb25SZXNpemluZ0VuZGVkID0gb3V0cHV0PEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPj4oKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCBvbiBkb3VibGUtY2xpY2suICovXG4gIG9uUmVzaXppbmdEYmxDbGljayA9IG91dHB1dDxBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmRpcmVjdGlvbkNoYW5nZS5zdWJzY3JpYmUoKGkpID0+IHtcbiAgICAgICAgdGhpcy5pc1JUTC5zZXQoaS5kYXRhID09PSAncnRsJyk7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUhhbmRsZSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlSGFuZGxlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICBcbiAgICB0aGlzLmluaXRpYWxFbGVtZW50V2lkdGggPSB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFdpZHRoO1xuXG4gICAgY29uc3QgaW5pdGlhbFdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgIGlmIChpbml0aWFsV2lkdGggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtpbml0aWFsV2lkdGh9cHhgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heFdpZHRoKCkgPT09IEluZmluaXR5KSB7XG4gICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IHRoaXMuaG9zdEVsZW1lbnQucGFyZW50RWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICBpZiAocGFyZW50V2lkdGgpIHtcbiAgICAgICAgdGhpcy5tYXhXaWR0aC5zZXQocGFyZW50V2lkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUocGFyZW50RWxlbWVudCk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuY3JlYXRlUmVzaXplSGFuZGxlKCk7XG4gICAgdGhpcy5zZXR1cFJlc2l6YWJsZVN0YXRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNsZWFudXBFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFJlc2l6YWJsZVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmF4UmVzaXphYmxlLnN1YnNjcmliZSgoaXNBY3RpdmUpID0+IHtcbiAgICAgICAgaWYgKCFpc0FjdGl2ZSkge1xuICAgICAgICAgIHRoaXMucmVzZXRUb0luaXRpYWxXaWR0aCgpO1xuICAgICAgICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jcmVhdGVSZXNpemVIYW5kbGUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXNpemVIYW5kbGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmF4UmVzaXphYmxlKCkgfHwgdGhpcy5yZXNpemVIYW5kbGUpIHJldHVybjtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuXG4gICAgdGhpcy5yZXNpemVIYW5kbGUgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVzaXplSGFuZGxlLmNsYXNzTGlzdC5hZGQoJ2F4LXJlc2l6YWJsZS1oYW5kbGVyJyk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJlc2l6ZUhhbmRsZSk7XG5cbiAgICB0aGlzLmFwcGx5SGFuZGxlU3R5bGVzKCk7XG4gICAgdGhpcy5hdHRhY2hFdmVudExpc3RlbmVycygpO1xuICB9XG4gIFxuICBwcml2YXRlIGFwcGx5SGFuZGxlU3R5bGVzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNpemVIYW5kbGUpIHJldHVybjtcbiAgICBcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLCB7XG4gICAgICB3aWR0aDogU1RZTEVTLmhhbmRsZXJXaWR0aCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogU1RZTEVTLmJhY2tncm91bmRDb2xvcixcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICBib3R0b206ICcwJyxcbiAgICAgIGN1cnNvcjogU1RZTEVTLmN1cnNvcixcbiAgICAgIHpJbmRleDogU1RZTEVTLnpJbmRleCxcbiAgICAgIHRyYW5zaXRpb246IFNUWUxFUy50cmFuc2l0aW9uLFxuICAgICAgYm9yZGVyUmFkaXVzOiBTVFlMRVMuYm9yZGVyUmFkaXVzLFxuICAgICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIH0pO1xuICAgIFxuICAgIHRoaXMudXBkYXRlSGFuZGxlUG9zaXRpb24oKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSB1cGRhdGVIYW5kbGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzaXplSGFuZGxlKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgaXNSVEwgPSB0aGlzLmlzUlRMKCk7XG4gICAgaWYgKGlzUlRMKSB7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuc3R5bGUucmlnaHQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5sZWZ0ID0gJyc7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGF0dGFjaEV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNpemVIYW5kbGUpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBoYW5kbGUgPSB0aGlzLnJlc2l6ZUhhbmRsZTtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuYm91bmRNb3VzZURvd24pO1xuICAgICAgaGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmJvdW5kTW91c2VFbnRlcik7XG4gICAgICBoYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuYm91bmRNb3VzZUxlYXZlKTtcbiAgICAgIGhhbmRsZS5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMuYm91bmREb3VibGVDbGljayk7XG4gICAgICB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuYm91bmRNb3VzZU1vdmUpO1xuICAgICAgdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5ib3VuZE1vdXNlVXApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzaXplSGFuZGxlKSB7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmJvdW5kTW91c2VEb3duKTtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmJvdW5kTW91c2VFbnRlcik7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5ib3VuZE1vdXNlTGVhdmUpO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCB0aGlzLmJvdW5kRG91YmxlQ2xpY2spO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUucmVtb3ZlKCk7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuYm91bmRNb3VzZU1vdmUpO1xuICAgIHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuYm91bmRNb3VzZVVwKTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJyc7XG4gIH1cblxuICBwcml2YXRlIGlzUlRMID0gc2lnbmFsKEFYSHRtbFV0aWwuaXNSdGwodGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKTtcblxuICBwcml2YXRlIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlc2l6ZUhhbmRsZSkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IGhhbmRsZVJlY3QgPSB0aGlzLnJlc2l6ZUhhbmRsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoZXZlbnQuY2xpZW50WCA8IGhhbmRsZVJlY3QubGVmdCB8fCBldmVudC5jbGllbnRYID4gaGFuZGxlUmVjdC5yaWdodCkgcmV0dXJuO1xuICAgIFxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgXG4gICAgdGhpcy5pc1Jlc2l6aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gU1RZTEVTLmN1cnNvckFjdGl2ZTtcbiAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBTVFlMRVMuYmFja2dyb3VuZENvbG9yQWN0aXZlO1xuICAgIHRoaXMuc3RhcnRNb3ZlV2lkdGggPSB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIFxuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5vblJlc2l6aW5nU3RhcnRlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5ob3N0RWxlbWVudCxcbiAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgICAgIG5hbWU6ICdyZXNpemluZ1N0YXJ0ZWQnLFxuICAgICAgICB2YWx1ZTogdGhpcy5zdGFydE1vdmVXaWR0aCxcbiAgICAgICAgb2xkVmFsdWU6IHRoaXMuc3RhcnRNb3ZlV2lkdGgsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNpemluZygpKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaXNSVEwgPSB0aGlzLmlzUlRMKCk7XG4gICAgXG4gICAgbGV0IG5ld1dpZHRoID0gaXNSVEwgPyByZWN0LnJpZ2h0IC0gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgbmV3V2lkdGggPSBNYXRoLm1heCh0aGlzLm1pbldpZHRoKCksIE1hdGgubWluKG5ld1dpZHRoLCB0aGlzLm1heFdpZHRoKCkpKTtcblxuICAgIGlmIChuZXdXaWR0aCAhPT0gdGhpcy5ob3N0RWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS53aWR0aCA9IGAke25ld1dpZHRofXB4YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VVcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNpemluZygpIHx8ICF0aGlzLnJlc2l6ZUhhbmRsZSkgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuaXNSZXNpemluZy5zZXQoZmFsc2UpO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnJztcbiAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBTVFlMRVMuYmFja2dyb3VuZENvbG9yO1xuICAgIFxuICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IHRoaXMuaG9zdEVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLm9uUmVzaXppbmdFbmRlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5ob3N0RWxlbWVudCxcbiAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgICAgIG5hbWU6ICdyZXNpemluZ0VuZGVkJyxcbiAgICAgICAgdmFsdWU6IGN1cnJlbnRXaWR0aCxcbiAgICAgICAgb2xkVmFsdWU6IHRoaXMuc3RhcnRNb3ZlV2lkdGgsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKCkgJiYgdGhpcy5yZXNpemVIYW5kbGUpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFNUWUxFUy5iYWNrZ3JvdW5kQ29sb3JIb3ZlcjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNpemluZygpICYmIHRoaXMucmVzaXplSGFuZGxlKSB7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBTVFlMRVMuYmFja2dyb3VuZENvbG9yO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Eb3VibGVDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuZGJsQ2xpY2tBY3Rpb24oKTtcbiAgICBcbiAgICBsZXQgbmV3V2lkdGg6IG51bWJlcjtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAncmVzZXQnOlxuICAgICAgICBuZXdXaWR0aCA9IHRoaXMucmVzZXRUb0luaXRpYWxXaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21heGltaXplJzpcbiAgICAgICAgbmV3V2lkdGggPSB0aGlzLm1heGltaXplVG9NYXhXaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpdCc6XG4gICAgICAgIG5ld1dpZHRoID0gdGhpcy5maXRUb0NvbnRlbnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBuZXdXaWR0aCA9IGVsZW1lbnRXaWR0aDtcbiAgICB9XG5cbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMub25SZXNpemluZ0RibENsaWNrLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmhvc3RFbGVtZW50LFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgICAgbmFtZTogJ29uUmVzaXppbmdEYmxDbGljaycsXG4gICAgICAgIG9sZFZhbHVlOiBlbGVtZW50V2lkdGgsXG4gICAgICAgIHZhbHVlOiBuZXdXaWR0aCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRvSW5pdGlhbFdpZHRoKCk6IG51bWJlciB7XG4gICAgY29uc3QgZGVmYXVsdFdpZHRoID0gdGhpcy5kZWZhdWx0V2lkdGgoKTtcbiAgICBpZiAoZGVmYXVsdFdpZHRoICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7ZGVmYXVsdFdpZHRofXB4YDtcbiAgICAgIHJldHVybiBkZWZhdWx0V2lkdGg7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGluaXRpYWxXaWR0aCA9IHRoaXMud2lkdGgoKTtcbiAgICBpZiAoaW5pdGlhbFdpZHRoICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7aW5pdGlhbFdpZHRofXB4YDtcbiAgICAgIHJldHVybiBpbml0aWFsV2lkdGg7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt0aGlzLmluaXRpYWxFbGVtZW50V2lkdGh9cHhgO1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxFbGVtZW50V2lkdGg7XG4gIH1cblxuICBwcml2YXRlIG1heGltaXplVG9NYXhXaWR0aCgpOiBudW1iZXIge1xuICAgIGNvbnN0IG1heFdpZHRoID0gdGhpcy5tYXhXaWR0aCgpO1xuICAgIGlmIChtYXhXaWR0aCAhPT0gSW5maW5pdHkpIHtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHttYXhXaWR0aH1weGA7XG4gICAgfVxuICAgIHJldHVybiBtYXhXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgZml0VG9Db250ZW50KCk6IG51bWJlciB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS53aWR0aCA9ICdmaXQtY29udGVudCc7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEFYVmFsdWVDaGFuZ2VkRXZlbnQ8VD4ge1xuICBjb21wb25lbnQ6IHVua25vd247XG4gIGh0bWxFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIGlzVXNlckludGVyYWN0aW9uPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBUO1xuICBvbGRWYWx1ZT86IFQ7XG59XG5cbmNvbnN0IFNUWUxFUyA9IHtcbiAgaGFuZGxlcldpZHRoOiAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtaGFuZGxlci13aWR0aCwgNHB4KScsXG4gIGJhY2tncm91bmRDb2xvcjogJ3JnYmEodmFyKC0tYXgtY29tcC1yZXNpemFibGUtYmFja2dyb3VuZC1jb2xvcikpJyxcbiAgYmFja2dyb3VuZENvbG9yQWN0aXZlOiAncmdiYSh2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSwgdmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktc3VyZmFjZSkpKScsXG4gIGJhY2tncm91bmRDb2xvckhvdmVyOlxuICAgICdyZ2JhKHZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIHZhcigtLWF4LXN5cy1jb2xvci1wcmltYXJ5LWxpZ2h0LXN1cmZhY2UpKSknLFxuICBjdXJzb3I6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1jdXJzb3IsIGV3LXJlc2l6ZSknLFxuICBjdXJzb3JBY3RpdmU6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1jdXJzb3ItYWN0aXZlLCBldy1yZXNpemUpJyxcbiAgekluZGV4OiAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtei1pbmRleCwgOTk5KScsXG4gIHRyYW5zaXRpb246XG4gICAgJ3ZhcigtLWF4LWNvbXAtcmVzaXphYmxlLXRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgLS1heC1zeXMtdHJhbnNpdGlvbi1kdXJhdGlvbiAtLWF4LXN5cy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiknLFxuICBib3JkZXJSYWRpdXM6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1ib3JkZXItcmFkaXVzLCAtLWF4LXN5cy1ib3JkZXItcmFkaXVzKScsXG59O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1yZXNpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvcmVzaXphYmxlL3NyYy9hY29yZXgtY2RrLXJlc2l6YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-resizable.mjs","sources":["../tmp-esm2022/resizable/lib/resize.directive.js","../tmp-esm2022/resizable/acorex-cdk-resizable.js"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Directive, DOCUMENT, ElementRef, inject, model, NgZone, output, PLATFORM_ID, signal, } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXResizableDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.platformService = inject(AXPlatform);\n this.zone = inject(NgZone);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.isResizing = signal(false, ...(ngDevMode ? [{ debugName: \"isResizing\" }] : []));\n this.initialElementWidth = 0;\n this.startMoveWidth = 0;\n this.subscriptions = new Subscription();\n // Bound event handlers to maintain reference for cleanup\n this.boundMouseDown = this.onMouseDown.bind(this);\n this.boundMouseMove = this.onMouseMove.bind(this);\n this.boundMouseUp = this.onMouseUp.bind(this);\n this.boundMouseEnter = this.onMouseEnter.bind(this);\n this.boundMouseLeave = this.onMouseLeave.bind(this);\n this.boundDoubleClick = this.onDoubleClick.bind(this);\n this.resizeObserver = new ResizeObserver((entries) => {\n const parentElement = this.hostElement.parentElement;\n if (!parentElement)\n return;\n for (const entry of entries) {\n if (entry.target === parentElement && this.maxWidth() === Infinity) {\n this.maxWidth.set(entry.contentRect.width);\n break;\n }\n }\n });\n /** Define if directive is active or not */\n this.axResizable = model(true, ...(ngDevMode ? [{ debugName: \"axResizable\" }] : []));\n /** Minimum width for the resizable element. */\n this.minWidth = model(100, ...(ngDevMode ? [{ debugName: \"minWidth\" }] : []));\n /** Maximum width for the resizable element. Defaults to parent width if not provided. */\n this.maxWidth = model(Infinity, ...(ngDevMode ? [{ debugName: \"maxWidth\" }] : []));\n /** Behavior on double-click: 'reset' or 'maximize'. */\n this.dblClickAction = model('reset', ...(ngDevMode ? [{ debugName: \"dblClickAction\" }] : []));\n /** Define initial width for the element. */\n this.width = model(null, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n /** Define reset width for the element. */\n this.defaultWidth = model(null, ...(ngDevMode ? [{ debugName: \"defaultWidth\" }] : []));\n /** Event emitted when resizing starts. */\n this.onResizingStarted = output();\n /** Event emitted when resizing ends. */\n this.onResizingEnded = output();\n /** Event emitted on double-click. */\n this.onResizingDblClick = output();\n this.isRTL = signal(AXHtmlUtil.isRtl(this.document.documentElement), ...(ngDevMode ? [{ debugName: \"isRTL\" }] : []));\n this.isBrowser = isPlatformBrowser(this.platformID);\n this.hostElement = this.el.nativeElement;\n this.subscriptions.add(this.platformService.directionChange.subscribe((i) => {\n this.isRTL.set(i.data === 'rtl');\n if (this.resizeHandle) {\n this.updateHandlePosition();\n }\n }));\n }\n ngAfterViewInit() {\n if (!this.isBrowser)\n return;\n this.initialElementWidth = this.hostElement.offsetWidth;\n this.applyWidthFromModel();\n if (this.maxWidth() === Infinity) {\n const parentWidth = this.hostElement.parentElement?.offsetWidth;\n if (parentWidth) {\n this.maxWidth.set(parentWidth);\n }\n }\n const parentElement = this.hostElement.parentElement;\n if (parentElement) {\n this.resizeObserver.observe(parentElement);\n }\n this.createResizeHandle();\n this.setupResizableState();\n this.setupWidthSync();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.resizeObserver.disconnect();\n this.cleanupEventListeners();\n }\n setupResizableState() {\n this.subscriptions.add(this.axResizable.subscribe((isActive) => {\n if (!isActive) {\n this.resetToInitialWidth();\n this.cleanupEventListeners();\n }\n else {\n this.createResizeHandle();\n }\n }));\n }\n /** Re-apply host width when `width` / `defaultWidth` inputs change after init. */\n setupWidthSync() {\n this.subscriptions.add(this.width.subscribe((width) => {\n if (this.isResizing() || width === null) {\n return;\n }\n this.applyElementWidth(width);\n }));\n this.subscriptions.add(this.defaultWidth.subscribe((defaultWidth) => {\n if (this.isResizing() || defaultWidth === null) {\n return;\n }\n const width = this.width();\n if (width === null) {\n this.applyElementWidth(defaultWidth);\n }\n }));\n }\n applyWidthFromModel() {\n const width = this.width();\n if (width !== null) {\n this.applyElementWidth(width);\n return;\n }\n const defaultWidth = this.defaultWidth();\n if (defaultWidth !== null) {\n this.applyElementWidth(defaultWidth);\n }\n }\n applyElementWidth(width) {\n this.hostElement.style.width = `${width}px`;\n }\n createResizeHandle() {\n if (!this.axResizable() || this.resizeHandle)\n return;\n this.hostElement.style.position = 'relative';\n this.resizeHandle = this.document.createElement('div');\n this.resizeHandle.classList.add('ax-resizable-handler');\n this.hostElement.appendChild(this.resizeHandle);\n this.applyHandleStyles();\n this.attachEventListeners();\n }\n applyHandleStyles() {\n if (!this.resizeHandle)\n return;\n Object.assign(this.resizeHandle.style, {\n width: STYLES.handlerWidth,\n backgroundColor: STYLES.backgroundColor,\n position: 'absolute',\n top: '0',\n bottom: '0',\n cursor: STYLES.cursor,\n zIndex: STYLES.zIndex,\n transition: STYLES.transition,\n borderRadius: STYLES.borderRadius,\n userSelect: 'none',\n });\n this.updateHandlePosition();\n }\n updateHandlePosition() {\n if (!this.resizeHandle)\n return;\n const isRTL = this.isRTL();\n if (isRTL) {\n this.resizeHandle.style.left = '0';\n this.resizeHandle.style.right = '';\n }\n else {\n this.resizeHandle.style.right = '0';\n this.resizeHandle.style.left = '';\n }\n }\n attachEventListeners() {\n if (!this.resizeHandle)\n return;\n const handle = this.resizeHandle;\n this.zone.runOutsideAngular(() => {\n handle.addEventListener('mousedown', this.boundMouseDown);\n handle.addEventListener('mouseenter', this.boundMouseEnter);\n handle.addEventListener('mouseleave', this.boundMouseLeave);\n handle.addEventListener('dblclick', this.boundDoubleClick);\n this.document.addEventListener('mousemove', this.boundMouseMove);\n this.document.addEventListener('mouseup', this.boundMouseUp);\n });\n }\n cleanupEventListeners() {\n if (this.resizeHandle) {\n this.resizeHandle.removeEventListener('mousedown', this.boundMouseDown);\n this.resizeHandle.removeEventListener('mouseenter', this.boundMouseEnter);\n this.resizeHandle.removeEventListener('mouseleave', this.boundMouseLeave);\n this.resizeHandle.removeEventListener('dblclick', this.boundDoubleClick);\n this.resizeHandle.remove();\n this.resizeHandle = undefined;\n }\n this.document.removeEventListener('mousemove', this.boundMouseMove);\n this.document.removeEventListener('mouseup', this.boundMouseUp);\n this.document.body.style.cursor = '';\n }\n onMouseDown(event) {\n if (!this.resizeHandle)\n return;\n const handleRect = this.resizeHandle.getBoundingClientRect();\n if (event.clientX < handleRect.left || event.clientX > handleRect.right)\n return;\n event.preventDefault();\n this.isResizing.set(true);\n this.document.body.style.cursor = STYLES.cursorActive;\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorActive;\n this.startMoveWidth = this.hostElement.offsetWidth;\n this.zone.run(() => {\n this.onResizingStarted.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingStarted',\n value: this.startMoveWidth,\n oldValue: this.startMoveWidth,\n });\n });\n }\n onMouseMove(event) {\n if (!this.isResizing())\n return;\n const rect = this.hostElement.getBoundingClientRect();\n const isRTL = this.isRTL();\n let newWidth = isRTL ? rect.right - event.clientX : event.clientX - rect.left;\n newWidth = Math.max(this.minWidth(), Math.min(newWidth, this.maxWidth()));\n if (newWidth !== this.hostElement.offsetWidth) {\n this.hostElement.style.width = `${newWidth}px`;\n }\n }\n onMouseUp() {\n if (!this.isResizing() || !this.resizeHandle)\n return;\n this.isResizing.set(false);\n this.document.body.style.cursor = '';\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n const currentWidth = this.hostElement.offsetWidth;\n this.zone.run(() => {\n this.onResizingEnded.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingEnded',\n value: currentWidth,\n oldValue: this.startMoveWidth,\n });\n });\n }\n onMouseEnter() {\n if (!this.isResizing() && this.resizeHandle) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorHover;\n }\n }\n onMouseLeave() {\n if (!this.isResizing() && this.resizeHandle) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n }\n }\n onDoubleClick() {\n const elementWidth = this.hostElement.offsetWidth;\n const action = this.dblClickAction();\n let newWidth;\n switch (action) {\n case 'reset':\n newWidth = this.resetToInitialWidth();\n break;\n case 'maximize':\n newWidth = this.maximizeToMaxWidth();\n break;\n case 'fit':\n newWidth = this.fitToContent();\n break;\n default:\n newWidth = elementWidth;\n }\n this.zone.run(() => {\n this.onResizingDblClick.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'onResizingDblClick',\n oldValue: elementWidth,\n value: newWidth,\n });\n });\n }\n resetToInitialWidth() {\n const defaultWidth = this.defaultWidth();\n if (defaultWidth !== null) {\n this.applyElementWidth(defaultWidth);\n return defaultWidth;\n }\n const initialWidth = this.width();\n if (initialWidth !== null) {\n this.applyElementWidth(initialWidth);\n return initialWidth;\n }\n this.applyElementWidth(this.initialElementWidth);\n return this.initialElementWidth;\n }\n maximizeToMaxWidth() {\n const maxWidth = this.maxWidth();\n if (maxWidth !== Infinity) {\n this.applyElementWidth(maxWidth);\n }\n return maxWidth;\n }\n fitToContent() {\n this.hostElement.style.width = 'fit-content';\n return this.hostElement.clientWidth;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXResizableDirective, isStandalone: true, selector: \"[axResizable]\", inputs: { axResizable: { classPropertyName: \"axResizable\", publicName: \"axResizable\", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: \"minWidth\", publicName: \"minWidth\", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: \"maxWidth\", publicName: \"maxWidth\", isSignal: true, isRequired: false, transformFunction: null }, dblClickAction: { classPropertyName: \"dblClickAction\", publicName: \"dblClickAction\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, defaultWidth: { classPropertyName: \"defaultWidth\", publicName: \"defaultWidth\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { axResizable: \"axResizableChange\", minWidth: \"minWidthChange\", maxWidth: \"maxWidthChange\", dblClickAction: \"dblClickActionChange\", width: \"widthChange\", defaultWidth: \"defaultWidthChange\", onResizingStarted: \"onResizingStarted\", onResizingEnded: \"onResizingEnded\", onResizingDblClick: \"onResizingDblClick\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXResizableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axResizable]',\n }]\n }], ctorParameters: () => [] });\nconst STYLES = {\n handlerWidth: 'var(--ax-comp-resizable-handler-width, 4px)',\n backgroundColor: 'rgba(var(--ax-comp-resizable-background-color))',\n backgroundColorActive: 'rgba(var(--ax-comp-resizable-background-color-active, var(--ax-sys-color-primary-surface)))',\n backgroundColorHover: 'rgba(var(--ax-comp-resizable-background-color-hover, var(--ax-sys-color-primary-light-surface)))',\n cursor: 'var(--ax-comp-resizable-cursor, ew-resize)',\n cursorActive: 'var(--ax-comp-resizable-cursor-active, ew-resize)',\n zIndex: 'var(--ax-comp-resizable-z-index, 999)',\n transition: 'var(--ax-comp-resizable-transition, background-color --ax-sys-transition-duration --ax-sys-transition-timing-function)',\n borderRadius: 'var(--ax-comp-resizable-border-radius, --ax-sys-border-radius)',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9yZXNpemFibGUvc3JjL2xpYi9yZXNpemUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3BDLE1BQU0sT0FBTyxvQkFBb0I7SUE4RC9CO1FBN0RpQixPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSzFDLGVBQVUsR0FBNEIsTUFBTSxDQUFDLEtBQUssc0RBQUMsQ0FBQztRQUNwRCx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNDLHlEQUF5RDtRQUN4QyxtQkFBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxD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QztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7O0FBMFhELE1BQU0sTUFBTSxHQUFHO0lBQ2IsWUFBWSxFQUFFLDZDQUE2QztJQUMzRCxlQUFlLEVBQUUsaURBQWlEO0lBQ2xFLHFCQUFxQixFQUFFLDZGQUE2RjtJQUNwSCxvQkFBb0IsRUFDbEIsa0dBQWtHO0lBQ3BHLE1BQU0sRUFBRSw0Q0FBNEM7SUFDcEQsWUFBWSxFQUFFLG1EQUFtRDtJQUNqRSxNQUFNLEVBQUUsdUNBQXVDO0lBQy9DLFVBQVUsRUFDUix3SEFBd0g7SUFDMUgsWUFBWSxFQUFFLGdFQUFnRTtDQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRE9DVU1FTlQsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgbW9kZWwsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhSZXNpemFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhSZXNpemFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtU2VydmljZSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSUQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcbiAgXG4gIHByaXZhdGUgaG9zdEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSByZXNpemVIYW5kbGU/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBpc1Jlc2l6aW5nOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgaW5pdGlhbEVsZW1lbnRXaWR0aCA9IDA7XG4gIHByaXZhdGUgc3RhcnRNb3ZlV2lkdGggPSAwO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIFxuICAvLyBCb3VuZCBldmVudCBoYW5kbGVycyB0byBtYWludGFpbiByZWZlcmVuY2UgZm9yIGNsZWFudXBcbiAgcHJpdmF0ZSByZWFkb25seSBib3VuZE1vdXNlRG93biA9IHRoaXMub25Nb3VzZURvd24uYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBib3VuZE1vdXNlTW92ZSA9IHRoaXMub25Nb3VzZU1vdmUuYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBib3VuZE1vdXNlVXAgPSB0aGlzLm9uTW91c2VVcC5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kTW91c2VFbnRlciA9IHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYm91bmRNb3VzZUxlYXZlID0gdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBib3VuZERvdWJsZUNsaWNrID0gdGhpcy5vbkRvdWJsZUNsaWNrLmJpbmQodGhpcyk7XG4gIFxuICBwcml2YXRlIHJlYWRvbmx5IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBpZiAoIXBhcmVudEVsZW1lbnQpIHJldHVybjtcbiAgICBcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGlmIChlbnRyeS50YXJnZXQgPT09IHBhcmVudEVsZW1lbnQgJiYgdGhpcy5tYXhXaWR0aCgpID09PSBJbmZpbml0eSkge1xuICAgICAgICB0aGlzLm1heFdpZHRoLnNldChlbnRyeS5jb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLyoqIERlZmluZSBpZiBkaXJlY3RpdmUgaXMgYWN0aXZlIG9yIG5vdCAqL1xuICBheFJlc2l6YWJsZSA9IG1vZGVsKHRydWUpO1xuXG4gIC8qKiBNaW5pbXVtIHdpZHRoIGZvciB0aGUgcmVzaXphYmxlIGVsZW1lbnQuICovXG4gIG1pbldpZHRoID0gbW9kZWwoMTAwKTtcblxuICAvKiogTWF4aW11bSB3aWR0aCBmb3IgdGhlIHJlc2l6YWJsZSBlbGVtZW50LiBEZWZhdWx0cyB0byBwYXJlbnQgd2lkdGggaWYgbm90IHByb3ZpZGVkLiAqL1xuICBtYXhXaWR0aCA9IG1vZGVsKEluZmluaXR5KTtcblxuICAvKiogQmVoYXZpb3Igb24gZG91YmxlLWNsaWNrOiAncmVzZXQnIG9yICdtYXhpbWl6ZScuICovXG4gIGRibENsaWNrQWN0aW9uID0gbW9kZWw8J3Jlc2V0JyB8ICdtYXhpbWl6ZScgfCAnZml0Jz4oJ3Jlc2V0Jyk7XG5cbiAgLyoqIERlZmluZSBpbml0aWFsIHdpZHRoIGZvciB0aGUgZWxlbWVudC4gKi9cbiAgd2lkdGggPSBtb2RlbDxudWxsIHwgbnVtYmVyPihudWxsKTtcblxuICAvKiogRGVmaW5lIHJlc2V0IHdpZHRoIGZvciB0aGUgZWxlbWVudC4gKi9cbiAgZGVmYXVsdFdpZHRoID0gbW9kZWw8bnVsbCB8IG51bWJlcj4obnVsbCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiByZXNpemluZyBzdGFydHMuICovXG4gIG9uUmVzaXppbmdTdGFydGVkID0gb3V0cHV0PEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPj4oKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHJlc2l6aW5nIGVuZHMuICovXG4gIG9uUmVzaXppbmdFbmRlZCA9IG91dHB1dDxBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gZG91YmxlLWNsaWNrLiAqL1xuICBvblJlc2l6aW5nRGJsQ2xpY2sgPSBvdXRwdXQ8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIFxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5kaXJlY3Rpb25DaGFuZ2Uuc3Vic2NyaWJlKChpKSA9PiB7XG4gICAgICAgIHRoaXMuaXNSVEwuc2V0KGkuZGF0YSA9PT0gJ3J0bCcpO1xuICAgICAgICBpZiAodGhpcy5yZXNpemVIYW5kbGUpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUhhbmRsZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5pbml0aWFsRWxlbWVudFdpZHRoID0gdGhpcy5ob3N0RWxlbWVudC5vZmZzZXRXaWR0aDtcblxuICAgIHRoaXMuYXBwbHlXaWR0aEZyb21Nb2RlbCgpO1xuXG4gICAgaWYgKHRoaXMubWF4V2lkdGgoKSA9PT0gSW5maW5pdHkpIHtcbiAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gdGhpcy5ob3N0RWxlbWVudC5wYXJlbnRFbGVtZW50Py5vZmZzZXRXaWR0aDtcbiAgICAgIGlmIChwYXJlbnRXaWR0aCkge1xuICAgICAgICB0aGlzLm1heFdpZHRoLnNldChwYXJlbnRXaWR0aCk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLmhvc3RFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShwYXJlbnRFbGVtZW50KTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5jcmVhdGVSZXNpemVIYW5kbGUoKTtcbiAgICB0aGlzLnNldHVwUmVzaXphYmxlU3RhdGUoKTtcbiAgICB0aGlzLnNldHVwV2lkdGhTeW5jKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNsZWFudXBFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFJlc2l6YWJsZVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmF4UmVzaXphYmxlLnN1YnNjcmliZSgoaXNBY3RpdmUpID0+IHtcbiAgICAgICAgaWYgKCFpc0FjdGl2ZSkge1xuICAgICAgICAgIHRoaXMucmVzZXRUb0luaXRpYWxXaWR0aCgpO1xuICAgICAgICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jcmVhdGVSZXNpemVIYW5kbGUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqIFJlLWFwcGx5IGhvc3Qgd2lkdGggd2hlbiBgd2lkdGhgIC8gYGRlZmF1bHRXaWR0aGAgaW5wdXRzIGNoYW5nZSBhZnRlciBpbml0LiAqL1xuICBwcml2YXRlIHNldHVwV2lkdGhTeW5jKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLndpZHRoLnN1YnNjcmliZSgod2lkdGgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZXNpemluZygpIHx8IHdpZHRoID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlFbGVtZW50V2lkdGgod2lkdGgpO1xuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5kZWZhdWx0V2lkdGguc3Vic2NyaWJlKChkZWZhdWx0V2lkdGgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZXNpemluZygpIHx8IGRlZmF1bHRXaWR0aCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMud2lkdGgoKTtcbiAgICAgICAgaWYgKHdpZHRoID09PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5hcHBseUVsZW1lbnRXaWR0aChkZWZhdWx0V2lkdGgpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVdpZHRoRnJvbU1vZGVsKCk6IHZvaWQge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgIGlmICh3aWR0aCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5hcHBseUVsZW1lbnRXaWR0aCh3aWR0aCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRXaWR0aCA9IHRoaXMuZGVmYXVsdFdpZHRoKCk7XG4gICAgaWYgKGRlZmF1bHRXaWR0aCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5hcHBseUVsZW1lbnRXaWR0aChkZWZhdWx0V2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlFbGVtZW50V2lkdGgod2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2l6ZUhhbmRsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXhSZXNpemFibGUoKSB8fCB0aGlzLnJlc2l6ZUhhbmRsZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG5cbiAgICB0aGlzLnJlc2l6ZUhhbmRsZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZXNpemVIYW5kbGUuY2xhc3NMaXN0LmFkZCgnYXgtcmVzaXphYmxlLWhhbmRsZXInKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucmVzaXplSGFuZGxlKTtcblxuICAgIHRoaXMuYXBwbHlIYW5kbGVTdHlsZXMoKTtcbiAgICB0aGlzLmF0dGFjaEV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cbiAgXG4gIHByaXZhdGUgYXBwbHlIYW5kbGVTdHlsZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlc2l6ZUhhbmRsZSkgcmV0dXJuO1xuICAgIFxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXNpemVIYW5kbGUuc3R5bGUsIHtcbiAgICAgIHdpZHRoOiBTVFlMRVMuaGFuZGxlcldpZHRoLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBTVFlMRVMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB0b3A6ICcwJyxcbiAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgY3Vyc29yOiBTVFlMRVMuY3Vyc29yLFxuICAgICAgekluZGV4OiBTVFlMRVMuekluZGV4LFxuICAgICAgdHJhbnNpdGlvbjogU1RZTEVTLnRyYW5zaXRpb24sXG4gICAgICBib3JkZXJSYWRpdXM6IFNUWUxFUy5ib3JkZXJSYWRpdXMsXG4gICAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy51cGRhdGVIYW5kbGVQb3NpdGlvbigpO1xuICB9XG4gIFxuICBwcml2YXRlIHVwZGF0ZUhhbmRsZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNpemVIYW5kbGUpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBpc1JUTCA9IHRoaXMuaXNSVEwoKTtcbiAgICBpZiAoaXNSVEwpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5yaWdodCA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5yaWdodCA9ICcwJztcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmxlZnQgPSAnJztcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgYXR0YWNoRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlc2l6ZUhhbmRsZSkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMucmVzaXplSGFuZGxlO1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBoYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5ib3VuZE1vdXNlRG93bik7XG4gICAgICBoYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuYm91bmRNb3VzZUVudGVyKTtcbiAgICAgIGhhbmRsZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5ib3VuZE1vdXNlTGVhdmUpO1xuICAgICAgaGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ2RibGNsaWNrJywgdGhpcy5ib3VuZERvdWJsZUNsaWNrKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZE1vdXNlTW92ZSk7XG4gICAgICB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmJvdW5kTW91c2VVcCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXNpemVIYW5kbGUpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuYm91bmRNb3VzZURvd24pO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuYm91bmRNb3VzZUVudGVyKTtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLmJvdW5kTW91c2VMZWF2ZSk7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMuYm91bmREb3VibGVDbGljayk7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmUoKTtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZE1vdXNlTW92ZSk7XG4gICAgdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5ib3VuZE1vdXNlVXApO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgaXNSVEwgPSBzaWduYWwoQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpO1xuXG4gIHByaXZhdGUgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzaXplSGFuZGxlKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgaGFuZGxlUmVjdCA9IHRoaXMucmVzaXplSGFuZGxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGlmIChldmVudC5jbGllbnRYIDwgaGFuZGxlUmVjdC5sZWZ0IHx8IGV2ZW50LmNsaWVudFggPiBoYW5kbGVSZWN0LnJpZ2h0KSByZXR1cm47XG4gICAgXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBcbiAgICB0aGlzLmlzUmVzaXppbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSBTVFlMRVMuY3Vyc29yQWN0aXZlO1xuICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFNUWUxFUy5iYWNrZ3JvdW5kQ29sb3JBY3RpdmU7XG4gICAgdGhpcy5zdGFydE1vdmVXaWR0aCA9IHRoaXMuaG9zdEVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLm9uUmVzaXppbmdTdGFydGVkLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmhvc3RFbGVtZW50LFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgICAgbmFtZTogJ3Jlc2l6aW5nU3RhcnRlZCcsXG4gICAgICAgIHZhbHVlOiB0aGlzLnN0YXJ0TW92ZVdpZHRoLFxuICAgICAgICBvbGRWYWx1ZTogdGhpcy5zdGFydE1vdmVXaWR0aCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKCkpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCByZWN0ID0gdGhpcy5ob3N0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBpc1JUTCA9IHRoaXMuaXNSVEwoKTtcbiAgICBcbiAgICBsZXQgbmV3V2lkdGggPSBpc1JUTCA/IHJlY3QucmlnaHQgLSBldmVudC5jbGllbnRYIDogZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdDtcbiAgICBuZXdXaWR0aCA9IE1hdGgubWF4KHRoaXMubWluV2lkdGgoKSwgTWF0aC5taW4obmV3V2lkdGgsIHRoaXMubWF4V2lkdGgoKSkpO1xuXG4gICAgaWYgKG5ld1dpZHRoICE9PSB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKCkgfHwgIXRoaXMucmVzaXplSGFuZGxlKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5pc1Jlc2l6aW5nLnNldChmYWxzZSk7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICcnO1xuICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFNUWUxFUy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgXG4gICAgY29uc3QgY3VycmVudFdpZHRoID0gdGhpcy5ob3N0RWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICBcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMub25SZXNpemluZ0VuZGVkLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmhvc3RFbGVtZW50LFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgICAgbmFtZTogJ3Jlc2l6aW5nRW5kZWQnLFxuICAgICAgICB2YWx1ZTogY3VycmVudFdpZHRoLFxuICAgICAgICBvbGRWYWx1ZTogdGhpcy5zdGFydE1vdmVXaWR0aCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmVzaXppbmcoKSAmJiB0aGlzLnJlc2l6ZUhhbmRsZSkge1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gU1RZTEVTLmJhY2tncm91bmRDb2xvckhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKCkgJiYgdGhpcy5yZXNpemVIYW5kbGUpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFNUWUxFUy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkRvdWJsZUNsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IHRoaXMuaG9zdEVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5kYmxDbGlja0FjdGlvbigpO1xuICAgIFxuICAgIGxldCBuZXdXaWR0aDogbnVtYmVyO1xuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdyZXNldCc6XG4gICAgICAgIG5ld1dpZHRoID0gdGhpcy5yZXNldFRvSW5pdGlhbFdpZHRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWF4aW1pemUnOlxuICAgICAgICBuZXdXaWR0aCA9IHRoaXMubWF4aW1pemVUb01heFdpZHRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZml0JzpcbiAgICAgICAgbmV3V2lkdGggPSB0aGlzLmZpdFRvQ29udGVudCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG5ld1dpZHRoID0gZWxlbWVudFdpZHRoO1xuICAgIH1cblxuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5vblJlc2l6aW5nRGJsQ2xpY2suZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuaG9zdEVsZW1lbnQsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgICBuYW1lOiAnb25SZXNpemluZ0RibENsaWNrJyxcbiAgICAgICAgb2xkVmFsdWU6IGVsZW1lbnRXaWR0aCxcbiAgICAgICAgdmFsdWU6IG5ld1dpZHRoLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VG9Jbml0aWFsV2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBkZWZhdWx0V2lkdGggPSB0aGlzLmRlZmF1bHRXaWR0aCgpO1xuICAgIGlmIChkZWZhdWx0V2lkdGggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuYXBwbHlFbGVtZW50V2lkdGgoZGVmYXVsdFdpZHRoKTtcbiAgICAgIHJldHVybiBkZWZhdWx0V2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3QgaW5pdGlhbFdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgIGlmIChpbml0aWFsV2lkdGggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuYXBwbHlFbGVtZW50V2lkdGgoaW5pdGlhbFdpZHRoKTtcbiAgICAgIHJldHVybiBpbml0aWFsV2lkdGg7XG4gICAgfVxuXG4gICAgdGhpcy5hcHBseUVsZW1lbnRXaWR0aCh0aGlzLmluaXRpYWxFbGVtZW50V2lkdGgpO1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxFbGVtZW50V2lkdGg7XG4gIH1cblxuICBwcml2YXRlIG1heGltaXplVG9NYXhXaWR0aCgpOiBudW1iZXIge1xuICAgIGNvbnN0IG1heFdpZHRoID0gdGhpcy5tYXhXaWR0aCgpO1xuICAgIGlmIChtYXhXaWR0aCAhPT0gSW5maW5pdHkpIHtcbiAgICAgIHRoaXMuYXBwbHlFbGVtZW50V2lkdGgobWF4V2lkdGgpO1xuICAgIH1cbiAgICByZXR1cm4gbWF4V2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGZpdFRvQ29udGVudCgpOiBudW1iZXIge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSAnZml0LWNvbnRlbnQnO1xuICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG59XG5cbmludGVyZmFjZSBBWFZhbHVlQ2hhbmdlZEV2ZW50PFQ+IHtcbiAgY29tcG9uZW50OiB1bmtub3duO1xuICBodG1sRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBpc1VzZXJJbnRlcmFjdGlvbj86IGJvb2xlYW47XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHZhbHVlPzogVDtcbiAgb2xkVmFsdWU/OiBUO1xufVxuXG5jb25zdCBTVFlMRVMgPSB7XG4gIGhhbmRsZXJXaWR0aDogJ3ZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWhhbmRsZXItd2lkdGgsIDRweCknLFxuICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKHZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWJhY2tncm91bmQtY29sb3IpKScsXG4gIGJhY2tncm91bmRDb2xvckFjdGl2ZTogJ3JnYmEodmFyKC0tYXgtY29tcC1yZXNpemFibGUtYmFja2dyb3VuZC1jb2xvci1hY3RpdmUsIHZhcigtLWF4LXN5cy1jb2xvci1wcmltYXJ5LXN1cmZhY2UpKSknLFxuICBiYWNrZ3JvdW5kQ29sb3JIb3ZlcjpcbiAgICAncmdiYSh2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLCB2YXIoLS1heC1zeXMtY29sb3ItcHJpbWFyeS1saWdodC1zdXJmYWNlKSkpJyxcbiAgY3Vyc29yOiAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtY3Vyc29yLCBldy1yZXNpemUpJyxcbiAgY3Vyc29yQWN0aXZlOiAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtY3Vyc29yLWFjdGl2ZSwgZXctcmVzaXplKScsXG4gIHpJbmRleDogJ3ZhcigtLWF4LWNvbXAtcmVzaXphYmxlLXotaW5kZXgsIDk5OSknLFxuICB0cmFuc2l0aW9uOlxuICAgICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS10cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yIC0tYXgtc3lzLXRyYW5zaXRpb24tZHVyYXRpb24gLS1heC1zeXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pJyxcbiAgYm9yZGVyUmFkaXVzOiAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtYm9yZGVyLXJhZGl1cywgLS1heC1zeXMtYm9yZGVyLXJhZGl1cyknLFxufTtcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1yZXNpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvcmVzaXphYmxlL3NyYy9hY29yZXgtY2RrLXJlc2l6YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex/cdk",
3
- "version": "20.7.12",
3
+ "version": "20.7.14",
4
4
  "peerDependencies": {
5
- "@acorex/core": "20.7.12",
5
+ "@acorex/core": "20.7.14",
6
6
  "quill": ">=2.0.2",
7
7
  "qrcode": ">=1.5.4",
8
8
  "swiper": ">=11.1.15",
@@ -43,6 +43,10 @@ declare class AXResizableDirective implements AfterViewInit, OnDestroy {
43
43
  ngAfterViewInit(): void;
44
44
  ngOnDestroy(): void;
45
45
  private setupResizableState;
46
+ /** Re-apply host width when `width` / `defaultWidth` inputs change after init. */
47
+ private setupWidthSync;
48
+ private applyWidthFromModel;
49
+ private applyElementWidth;
46
50
  private createResizeHandle;
47
51
  private applyHandleStyles;
48
52
  private updateHandlePosition;