@acorex/cdk 21.0.1-next.13 → 21.0.1-next.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.
- package/common/index.d.ts +7 -9
- package/drawer/index.d.ts +2 -0
- package/fesm2022/acorex-cdk-accordion.mjs.map +1 -1
- package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
- package/fesm2022/acorex-cdk-clipboard.mjs.map +1 -1
- package/fesm2022/acorex-cdk-common.mjs +10 -65
- package/fesm2022/acorex-cdk-common.mjs.map +1 -1
- package/fesm2022/acorex-cdk-dom.mjs.map +1 -1
- package/fesm2022/acorex-cdk-double-click.mjs.map +1 -1
- package/fesm2022/acorex-cdk-drag-drop.mjs +1 -1
- package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
- package/fesm2022/acorex-cdk-drawer.mjs +15 -5
- package/fesm2022/acorex-cdk-drawer.mjs.map +1 -1
- package/fesm2022/acorex-cdk-focus-trap.mjs.map +1 -1
- package/fesm2022/acorex-cdk-full-screen.mjs +12 -1
- package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
- package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
- package/fesm2022/acorex-cdk-list-navigation.mjs.map +1 -1
- package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
- package/fesm2022/acorex-cdk-overlay.mjs +370 -10
- package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
- package/fesm2022/acorex-cdk-pan-view.mjs.map +1 -1
- package/fesm2022/acorex-cdk-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-cdk-resizable.mjs.map +1 -1
- package/fesm2022/acorex-cdk-selection.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sticky.mjs.map +1 -1
- package/fesm2022/acorex-cdk-uploader.mjs.map +1 -1
- package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
- package/fesm2022/acorex-cdk-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-cdk-z-index.mjs +35 -0
- package/fesm2022/acorex-cdk-z-index.mjs.map +1 -0
- package/fesm2022/acorex-cdk.mjs.map +1 -1
- package/full-screen/index.d.ts +5 -0
- package/overlay/index.d.ts +94 -5
- package/package.json +6 -2
- package/z-index/README.md +3 -0
- package/z-index/index.d.ts +14 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-sliding-item.mjs","sources":["../../../../packages/cdk/sliding-item/src/lib/sliding-item.directive.ts","../../../../packages/cdk/sliding-item/src/acorex-cdk-sliding-item.ts"],"sourcesContent":["import { afterNextRender, Directive, effect, ElementRef, inject, signal } from '@angular/core';\n\n@Directive({ selector: '[axSlidingItem]' })\nexport class AXSlidingItemDirective {\n private hostElement = inject(ElementRef);\n private isMouseDown = signal(false);\n private prevX = signal(0);\n currentX = signal(0);\n stopPoint = signal(0);\n disableSlidingRight = signal(false);\n disableSlidingLeft = signal(false);\n\n #positionChange = effect(() => {\n if (this.currentX() > 0 && this.disableSlidingRight()) return;\n if (this.currentX() < 0 && this.disableSlidingLeft()) return;\n this.setPosition(this.currentX());\n });\n\n #init = afterNextRender(() => {\n const el = (this.hostElement.nativeElement as HTMLElement).parentElement;\n el.style.display = 'flex';\n el.style.justifyContent = 'space-between';\n el.style.position = 'relative';\n el.style.overflow = 'hidden';\n });\n\n #effect2 = effect(() => {\n this.hostElement.nativeElement.style.position = 'absolute';\n this.hostElement.nativeElement.style.top = '0';\n this.hostElement.nativeElement.style.left = '0';\n this.hostElement.nativeElement.style.width = '100%';\n this.hostElement.nativeElement.style.height = '100%';\n this.hostElement.nativeElement.style.zIndex = '1';\n this.hostElement.nativeElement.style.cursor = 'grab';\n this.hostElement.nativeElement.style.userSelect = 'none';\n this.hostElement.nativeElement.style.touchAction = 'none';\n\n this.hostElement.nativeElement.onpointerdown = (e: PointerEvent) => {\n this.hostElement.nativeElement.style.transition = 'none';\n this.hostElement.nativeElement.style.cursor = 'grabbing';\n this.isMouseDown.set(true);\n this.prevX.set(e.clientX);\n };\n\n this.hostElement.nativeElement.onpointermove = (e: PointerEvent) => {\n if (!this.isMouseDown()) return;\n const currentX = e.clientX;\n const deltaX = currentX - this.prevX();\n this.currentX.update((prev) => prev + deltaX);\n this.prevX.set(currentX);\n };\n\n this.hostElement.nativeElement.onpointerup = () => {\n this.isMouseDown.set(false);\n this.dismiss();\n };\n\n this.hostElement.nativeElement.onpointerleave = () => {\n if (!this.isMouseDown()) return;\n this.isMouseDown.set(false);\n this.dismiss();\n };\n });\n\n private dismiss() {\n const el = this.hostElement.nativeElement as HTMLElement;\n this.hostElement.nativeElement.style.transition = '.5s transform ease';\n el.style.cursor = 'grab';\n\n if (this.stopPoint()) {\n el.style.transform = `translate(${this.stopPoint()}, 0)`;\n this.currentX.set(this.stopPoint());\n this.prevX.set(this.stopPoint());\n } else {\n el.style.transform = `translate(0, 0)`;\n this.currentX.set(0);\n this.prevX.set(0);\n }\n }\n\n setPosition(pos: number) {\n const el = this.hostElement.nativeElement as HTMLElement;\n el.style.transform = `translate(${pos}px, 0)`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-sliding-item.mjs","sources":["../tmp-esm2022/sliding-item/lib/sliding-item.directive.js","../tmp-esm2022/sliding-item/acorex-cdk-sliding-item.js"],"sourcesContent":["import { afterNextRender, Directive, effect, ElementRef, inject, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXSlidingItemDirective {\n constructor() {\n this.hostElement = inject(ElementRef);\n this.isMouseDown = signal(false, ...(ngDevMode ? [{ debugName: \"isMouseDown\" }] : []));\n this.prevX = signal(0, ...(ngDevMode ? [{ debugName: \"prevX\" }] : []));\n this.currentX = signal(0, ...(ngDevMode ? [{ debugName: \"currentX\" }] : []));\n this.stopPoint = signal(0, ...(ngDevMode ? [{ debugName: \"stopPoint\" }] : []));\n this.disableSlidingRight = signal(false, ...(ngDevMode ? [{ debugName: \"disableSlidingRight\" }] : []));\n this.disableSlidingLeft = signal(false, ...(ngDevMode ? [{ debugName: \"disableSlidingLeft\" }] : []));\n this.#positionChange = effect(() => {\n if (this.currentX() > 0 && this.disableSlidingRight())\n return;\n if (this.currentX() < 0 && this.disableSlidingLeft())\n return;\n this.setPosition(this.currentX());\n }, ...(ngDevMode ? [{ debugName: \"#positionChange\" }] : []));\n this.#init = afterNextRender(() => {\n const el = this.hostElement.nativeElement.parentElement;\n el.style.display = 'flex';\n el.style.justifyContent = 'space-between';\n el.style.position = 'relative';\n el.style.overflow = 'hidden';\n });\n this.#effect2 = effect(() => {\n this.hostElement.nativeElement.style.position = 'absolute';\n this.hostElement.nativeElement.style.top = '0';\n this.hostElement.nativeElement.style.left = '0';\n this.hostElement.nativeElement.style.width = '100%';\n this.hostElement.nativeElement.style.height = '100%';\n this.hostElement.nativeElement.style.zIndex = '1';\n this.hostElement.nativeElement.style.cursor = 'grab';\n this.hostElement.nativeElement.style.userSelect = 'none';\n this.hostElement.nativeElement.style.touchAction = 'none';\n this.hostElement.nativeElement.onpointerdown = (e) => {\n this.hostElement.nativeElement.style.transition = 'none';\n this.hostElement.nativeElement.style.cursor = 'grabbing';\n this.isMouseDown.set(true);\n this.prevX.set(e.clientX);\n };\n this.hostElement.nativeElement.onpointermove = (e) => {\n if (!this.isMouseDown())\n return;\n const currentX = e.clientX;\n const deltaX = currentX - this.prevX();\n this.currentX.update((prev) => prev + deltaX);\n this.prevX.set(currentX);\n };\n this.hostElement.nativeElement.onpointerup = () => {\n this.isMouseDown.set(false);\n this.dismiss();\n };\n this.hostElement.nativeElement.onpointerleave = () => {\n if (!this.isMouseDown())\n return;\n this.isMouseDown.set(false);\n this.dismiss();\n };\n }, ...(ngDevMode ? [{ debugName: \"#effect2\" }] : []));\n }\n #positionChange;\n #init;\n #effect2;\n dismiss() {\n const el = this.hostElement.nativeElement;\n this.hostElement.nativeElement.style.transition = '.5s transform ease';\n el.style.cursor = 'grab';\n if (this.stopPoint()) {\n el.style.transform = `translate(${this.stopPoint()}, 0)`;\n this.currentX.set(this.stopPoint());\n this.prevX.set(this.stopPoint());\n }\n else {\n el.style.transform = `translate(0, 0)`;\n this.currentX.set(0);\n this.prevX.set(0);\n }\n }\n setPosition(pos) {\n const el = this.hostElement.nativeElement;\n el.style.transform = `translate(${pos}px, 0)`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXSlidingItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXSlidingItemDirective, isStandalone: true, selector: \"[axSlidingItem]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXSlidingItemDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[axSlidingItem]' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGluZy1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9zbGlkaW5nLWl0ZW0vc3JjL2xpYi9zbGlkaW5nLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHL0YsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUVVLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssdURBQUMsQ0FBQztRQUM1QixVQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsaURBQUMsQ0FBQztRQUMxQixhQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsb0RBQUMsQ0FBQztRQUNyQixjQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMscURBQUMsQ0FBQztRQUN0Qix3QkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSywrREFBQyxDQUFDO1FBQ3BDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLDhEQUFDLENBQUM7UUFFbkMsb0JBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQUUsT0FBTztZQUM5RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUFFLE9BQU87WUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDLDJEQUFDLENBQUM7UUFFSCxVQUFLLEdBQUcsZUFBZSxDQUFDLEdBQUcs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LGFBQTRCLENBQUM7UUFDekQsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsYUFBYSxHQUFHLFFBQVEsQ0FBQztJQUNoRCxDQUFDOytHQWhGVSxzQkFBc0I7bUdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1theFNsaWRpbmdJdGVtXScgfSlcbmV4cG9ydCBjbGFzcyBBWFNsaWRpbmdJdGVtRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBob3N0RWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBpc01vdXNlRG93biA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcHJldlggPSBzaWduYWwoMCk7XG4gIGN1cnJlbnRYID0gc2lnbmFsKDApO1xuICBzdG9wUG9pbnQgPSBzaWduYWwoMCk7XG4gIGRpc2FibGVTbGlkaW5nUmlnaHQgPSBzaWduYWwoZmFsc2UpO1xuICBkaXNhYmxlU2xpZGluZ0xlZnQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICNwb3NpdGlvbkNoYW5nZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY3VycmVudFgoKSA+IDAgJiYgdGhpcy5kaXNhYmxlU2xpZGluZ1JpZ2h0KCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5jdXJyZW50WCgpIDwgMCAmJiB0aGlzLmRpc2FibGVTbGlkaW5nTGVmdCgpKSByZXR1cm47XG4gICAgdGhpcy5zZXRQb3NpdGlvbih0aGlzLmN1cnJlbnRYKCkpO1xuICB9KTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgY29uc3QgZWwgPSAodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50O1xuICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgZWwuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnc3BhY2UtYmV0d2Vlbic7XG4gICAgZWwuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgIGVsLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gIH0pO1xuXG4gICNlZmZlY3QyID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSAnMCc7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnpJbmRleCA9ICcxJztcbiAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2dyYWInO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS51c2VyU2VsZWN0ID0gJ25vbmUnO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS50b3VjaEFjdGlvbiA9ICdub25lJztcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vbnBvaW50ZXJkb3duID0gKGU6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJztcbiAgICAgIHRoaXMuaXNNb3VzZURvd24uc2V0KHRydWUpO1xuICAgICAgdGhpcy5wcmV2WC5zZXQoZS5jbGllbnRYKTtcbiAgICB9O1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50Lm9ucG9pbnRlcm1vdmUgPSAoZTogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24oKSkgcmV0dXJuO1xuICAgICAgY29uc3QgY3VycmVudFggPSBlLmNsaWVudFg7XG4gICAgICBjb25zdCBkZWx0YVggPSBjdXJyZW50WCAtIHRoaXMucHJldlgoKTtcbiAgICAgIHRoaXMuY3VycmVudFgudXBkYXRlKChwcmV2KSA9PiBwcmV2ICsgZGVsdGFYKTtcbiAgICAgIHRoaXMucHJldlguc2V0KGN1cnJlbnRYKTtcbiAgICB9O1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50Lm9ucG9pbnRlcnVwID0gKCkgPT4ge1xuICAgICAgdGhpcy5pc01vdXNlRG93bi5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgfTtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vbnBvaW50ZXJsZWF2ZSA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc01vdXNlRG93bigpKSByZXR1cm47XG4gICAgICB0aGlzLmlzTW91c2VEb3duLnNldChmYWxzZSk7XG4gICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB9O1xuICB9KTtcblxuICBwcml2YXRlIGRpc21pc3MoKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAnLjVzIHRyYW5zZm9ybSBlYXNlJztcbiAgICBlbC5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XG5cbiAgICBpZiAodGhpcy5zdG9wUG9pbnQoKSkge1xuICAgICAgZWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3RoaXMuc3RvcFBvaW50KCl9LCAwKWA7XG4gICAgICB0aGlzLmN1cnJlbnRYLnNldCh0aGlzLnN0b3BQb2ludCgpKTtcbiAgICAgIHRoaXMucHJldlguc2V0KHRoaXMuc3RvcFBvaW50KCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKDAsIDApYDtcbiAgICAgIHRoaXMuY3VycmVudFguc2V0KDApO1xuICAgICAgdGhpcy5wcmV2WC5zZXQoMCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UG9zaXRpb24ocG9zOiBudW1iZXIpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBlbC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7cG9zfXB4LCAwKWA7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1zbGlkaW5nLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvc2xpZGluZy1pdGVtL3NyYy9hY29yZXgtY2RrLXNsaWRpbmctaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-sticky.mjs","sources":["../../../../packages/cdk/sticky/src/lib/sticky.directive.ts","../../../../packages/cdk/sticky/src/acorex-cdk-sticky.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2,\n inject,\n} from '@angular/core';\n\n@Directive({\n selector: '[axSticky]',\n exportAs: 'axpSticky',\n})\nexport class AXStickyDirective implements AfterViewInit, OnDestroy {\n private element = inject<ElementRef<HTMLDivElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private zone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n @Input('axSticky') stickyClass!: string;\n @Input('stickyOffset') stickyOffset = 100;\n @Output() isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _isSticky = false;\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(value: boolean) {\n if (this._isSticky !== value) {\n this._isSticky = value;\n this.isStickyChange.emit(value);\n }\n }\n\n private topOffset!: number;\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n private mutationObserver!: MutationObserver;\n\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n\n ngAfterViewInit() {\n this.initSticky();\n\n // Add mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(() => {\n this.updateTopOffset();\n });\n\n this.mutationObserver.observe(this.element.nativeElement, {\n childList: true,\n subtree: true,\n });\n\n // Add resize event listener\n window.addEventListener('resize', this.updateTopOffset.bind(this));\n }\n\n private initSticky() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n } else {\n this.parentElement = (document.querySelector(this.stickyParent) as HTMLElement) || window;\n }\n\n this.targetElement = (document.querySelector(this.stickyTarget) as HTMLElement) || this.element.nativeElement;\n\n this.updateTopOffset();\n this.parentElement.addEventListener('scroll', this.onParentScroll);\n }\n\n private updateTopOffset(): void {\n this.zone.runOutsideAngular(() => {\n const rect = this.targetElement.getBoundingClientRect();\n this.topOffset = rect.top + (window.scrollY || 0);\n });\n }\n\n private onParentScroll = (): void => {\n this.zone.runOutsideAngular(() => {\n const scrollTop = this.parentElement === window ? window.scrollY : (this.parentElement as HTMLElement).scrollTop;\n\n const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;\n\n if (shouldStick !== this.isSticky) {\n this.zone.run(() => {\n this.isSticky = shouldStick;\n this.toggleStickyClasses(shouldStick);\n this.cdr.markForCheck();\n });\n }\n });\n };\n\n private toggleStickyClasses(isSticky: boolean): void {\n const classes = this.stickyClass.split(' ').filter(Boolean);\n classes.forEach((className) => {\n if (isSticky) {\n this.renderer.addClass(this.targetElement, className);\n } else {\n this.renderer.removeClass(this.targetElement, className);\n }\n });\n }\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n window.removeEventListener('resize', this.updateTopOffset.bind(this));\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-sticky.mjs","sources":["../tmp-esm2022/sticky/lib/sticky.directive.js","../tmp-esm2022/sticky/acorex-cdk-sticky.js"],"sourcesContent":["import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, inject, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXStickyDirective {\n constructor() {\n this.element = inject(ElementRef);\n this.renderer = inject(Renderer2);\n this.zone = inject(NgZone);\n this.cdr = inject(ChangeDetectorRef);\n this.stickyOffset = 100;\n this.isStickyChange = new EventEmitter();\n this._isSticky = false;\n this.onParentScroll = () => {\n this.zone.runOutsideAngular(() => {\n const scrollTop = this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;\n const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;\n if (shouldStick !== this.isSticky) {\n this.zone.run(() => {\n this.isSticky = shouldStick;\n this.toggleStickyClasses(shouldStick);\n this.cdr.markForCheck();\n });\n }\n });\n };\n }\n get isSticky() {\n return this._isSticky;\n }\n set isSticky(value) {\n if (this._isSticky !== value) {\n this._isSticky = value;\n this.isStickyChange.emit(value);\n }\n }\n ngAfterViewInit() {\n this.initSticky();\n // Add mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(() => {\n this.updateTopOffset();\n });\n this.mutationObserver.observe(this.element.nativeElement, {\n childList: true,\n subtree: true,\n });\n // Add resize event listener\n window.addEventListener('resize', this.updateTopOffset.bind(this));\n }\n initSticky() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n }\n else {\n this.parentElement = document.querySelector(this.stickyParent) || window;\n }\n this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;\n this.updateTopOffset();\n this.parentElement.addEventListener('scroll', this.onParentScroll);\n }\n updateTopOffset() {\n this.zone.runOutsideAngular(() => {\n const rect = this.targetElement.getBoundingClientRect();\n this.topOffset = rect.top + (window.scrollY || 0);\n });\n }\n toggleStickyClasses(isSticky) {\n const classes = this.stickyClass.split(' ').filter(Boolean);\n classes.forEach((className) => {\n if (isSticky) {\n this.renderer.addClass(this.targetElement, className);\n }\n else {\n this.renderer.removeClass(this.targetElement, className);\n }\n });\n }\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n window.removeEventListener('resize', this.updateTopOffset.bind(this));\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXStickyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXStickyDirective, isStandalone: true, selector: \"[axSticky]\", inputs: { stickyClass: [\"axSticky\", \"stickyClass\"], stickyOffset: \"stickyOffset\", stickyParent: \"stickyParent\", stickyTarget: \"stickyTarget\" }, outputs: { isStickyChange: \"isStickyChange\" }, exportAs: [\"axpSticky\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXStickyDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axSticky]',\n exportAs: 'axpSticky',\n }]\n }], propDecorators: { stickyClass: [{\n type: Input,\n args: ['axSticky']\n }], stickyOffset: [{\n type: Input,\n args: ['stickyOffset']\n }], isStickyChange: [{\n type: Output\n }], stickyParent: [{\n type: Input\n }], stickyTarget: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9zdGlja3kvc3JjL2xpYi9zdGlja3kuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFNdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUo5QjtRQUtVLFlBQU8sR0FBRyxNQUFNLENBQTZCLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsU0FBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFHakIsaUJBQVksR0FBRyxHQUFHLENBQUM7UUFDaEMsbUJBQWMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUV0RSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBd0RsQixtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxhQUE2QixDQUFDLFNBQVMsQ0FBQztnQkFFakgsTUFBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFFcEUsSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQyxJQUFJ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QU0sQ0FBQztnQkFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzNELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV0RSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzsrR0FwR1UsaUJBQWlCO21HQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxXQUFXO2lCQUN0Qjs7c0JBT0UsS0FBSzt1QkFBQyxVQUFVOztzQkFDaEIsS0FBSzt1QkFBQyxjQUFjOztzQkFDcEIsTUFBTTs7c0JBa0JOLEtBQUs7O3NCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theFN0aWNreV0nLFxuICBleHBvcnRBczogJ2F4cFN0aWNreScsXG59KVxuZXhwb3J0IGNsYXNzIEFYU3RpY2t5RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBlbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBJbnB1dCgnYXhTdGlja3knKSBzdGlja3lDbGFzcyE6IHN0cmluZztcbiAgQElucHV0KCdzdGlja3lPZmZzZXQnKSBzdGlja3lPZmZzZXQgPSAxMDA7XG4gIEBPdXRwdXQoKSBpc1N0aWNreUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX2lzU3RpY2t5ID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgaXNTdGlja3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU3RpY2t5O1xuICB9XG4gIHB1YmxpYyBzZXQgaXNTdGlja3kodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5faXNTdGlja3kgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9pc1N0aWNreSA9IHZhbHVlO1xuICAgICAgdGhpcy5pc1N0aWNreUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvcE9mZnNldCE6IG51bWJlcjtcbiAgcHJpdmF0ZSBwYXJlbnRFbGVtZW50ITogSFRNTEVsZW1lbnQgfCBXaW5kb3c7XG4gIHByaXZhdGUgdGFyZ2V0RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXIhOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIEBJbnB1dCgpIHN0aWNreVBhcmVudCE6IHN0cmluZyB8IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKSBzdGlja3lUYXJnZXQhOiBzdHJpbmc7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdFN0aWNreSgpO1xuXG4gICAgLy8gQWRkIG11dGF0aW9uIG9ic2VydmVyIGZvciBkeW5hbWljIGNvbnRlbnRcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVRvcE9mZnNldCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgcmVzaXplIGV2ZW50IGxpc3RlbmVyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMudXBkYXRlVG9wT2Zmc2V0LmJpbmQodGhpcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3RpY2t5KCkge1xuICAgIGlmICh0aGlzLnN0aWNreVBhcmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQgPSB0aGlzLnN0aWNreVBhcmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50ID0gKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zdGlja3lQYXJlbnQpIGFzIEhUTUxFbGVtZW50KSB8fCB3aW5kb3c7XG4gICAgfVxuXG4gICAgdGhpcy50YXJnZXRFbGVtZW50ID0gKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zdGlja3lUYXJnZXQpIGFzIEhUTUxFbGVtZW50KSB8fCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMudXBkYXRlVG9wT2Zmc2V0KCk7XG4gICAgdGhpcy5wYXJlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25QYXJlbnRTY3JvbGwpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUb3BPZmZzZXQoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLnRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLnRvcE9mZnNldCA9IHJlY3QudG9wICsgKHdpbmRvdy5zY3JvbGxZIHx8IDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblBhcmVudFNjcm9sbCA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5wYXJlbnRFbGVtZW50ID09PSB3aW5kb3cgPyB3aW5kb3cuc2Nyb2xsWSA6ICh0aGlzLnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcDtcblxuICAgICAgY29uc3Qgc2hvdWxkU3RpY2sgPSBzY3JvbGxUb3AgKyB0aGlzLnN0aWNreU9mZnNldCA+PSB0aGlzLnRvcE9mZnNldDtcblxuICAgICAgaWYgKHNob3VsZFN0aWNrICE9PSB0aGlzLmlzU3RpY2t5KSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTdGlja3kgPSBzaG91bGRTdGljaztcbiAgICAgICAgICB0aGlzLnRvZ2dsZVN0aWNreUNsYXNzZXMoc2hvdWxkU3RpY2spO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBwcml2YXRlIHRvZ2dsZVN0aWNreUNsYXNzZXMoaXNTdGlja3k6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5zdGlja3lDbGFzcy5zcGxpdCgnICcpLmZpbHRlcihCb29sZWFuKTtcbiAgICBjbGFzc2VzLmZvckVhY2goKGNsYXNzTmFtZSkgPT4ge1xuICAgICAgaWYgKGlzU3RpY2t5KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50YXJnZXRFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhcmdldEVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblBhcmVudFNjcm9sbCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMudXBkYXRlVG9wT2Zmc2V0LmJpbmQodGhpcykpO1xuXG4gICAgaWYgKHRoaXMubXV0YXRpb25PYnNlcnZlcikge1xuICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1zdGlja3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvc3RpY2t5L3NyYy9hY29yZXgtY2RrLXN0aWNreS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-uploader.mjs","sources":["../../../../packages/cdk/uploader/src/lib/uploader.models.ts","../../../../packages/cdk/uploader/src/lib/uploader.service.ts","../../../../packages/cdk/uploader/src/lib/uploader-zone.directive.ts","../../../../packages/cdk/uploader/src/lib/uploader-browse-handle.directive.ts","../../../../packages/cdk/uploader/src/acorex-cdk-uploader.ts"],"sourcesContent":["import { AXEvent } from '@acorex/cdk/common';\nimport { computed, signal } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport type AXUploadStatus = 'new' | 'inprogress' | 'completed' | 'failed' | 'canceled';\n\nexport interface AXUploaderChangedEvent extends AXEvent {\n requests: AXUploadRequest[];\n}\n\nexport interface AXUploaderFileStartEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\nexport interface AXUploaderFileCompleteEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport interface AXUploaderFilesCompleteEvent extends AXEvent {\n uploadedFiles: AXUploadRequest[];\n data?: any;\n}\n\nexport interface AXUploaderFileCancelEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport class AXUploadRequest {\n get name(): string {\n return this.file.name;\n }\n\n get ext(): string {\n const parts = this.name.split('.');\n if (parts.length > 1) {\n return parts[parts.length - 1];\n } else {\n // No extension found\n return '';\n }\n }\n\n get size(): number {\n return this.file.size;\n }\n\n get file(): File {\n return this.uploadFile;\n }\n\n private readonly _progress = signal(0);\n progress = computed(() => this._progress());\n\n private readonly _estimateTime = signal(0);\n estimateTime = computed(() => this._estimateTime());\n\n private readonly _status = signal<AXUploadStatus>('new');\n status = computed(() => this._status());\n\n private readonly _message = signal<string | null>(null);\n message = computed(() => this._message());\n\n private readonly _isDetermined = signal<boolean>(false);\n isDetermined = computed(() => this._isDetermined());\n\n private startTime: number;\n private bytesTransferred = 0;\n\n public metaData: any;\n\n public onCancel = new Subject<void>();\n public onStart = new Subject<void>();\n public onFailed = new Subject<void>();\n public onComplete = new BehaviorSubject<void>(null);\n\n constructor(private uploadFile: File) {}\n\n private estimateTimeRemaining(bytesTransferred: number): number | null {\n const now = Date.now();\n const elapsed = now - this.startTime; // Time in milliseconds\n\n if (isNaN(elapsed) || elapsed === 0) {\n return null; // Avoid division by zero\n }\n\n const speed = (bytesTransferred || 1) / elapsed; // Bytes per millisecond\n const remainingBytes = this.size - bytesTransferred;\n const estimatedTime = Math.ceil(remainingBytes / speed); // Time in milliseconds\n return estimatedTime; // Return the estimated time in milliseconds\n }\n\n public setTransferredBytes(value: number) {\n this.bytesTransferred = value;\n if (value > 0 && !this._isDetermined() && (this.status() == 'new' || this.status() == 'inprogress')) {\n this._isDetermined.set(true);\n }\n this.updateEstimateTime();\n }\n\n private updateEstimateTime() {\n this._estimateTime.set(this.estimateTimeRemaining(this.bytesTransferred));\n const progress = Math.floor((this.bytesTransferred / this.size) * 100);\n this._progress.set(progress);\n }\n\n public async upload(): Promise<void> {\n this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this.onStart.next();\n }\n\n public cancel(): void {\n this._status.set('canceled');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this.onCancel.next();\n }\n\n public redo(): void {\n // this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this._message.set(null);\n this.onStart.next();\n }\n\n public error(message: string): void {\n this._status.set('failed');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this._message.set(message);\n this.onFailed.next();\n }\n\n public finish(data?: any): void {\n this._status.set('completed');\n this.bytesTransferred = this.size;\n this._estimateTime.set(0);\n this._progress.set(100);\n this.onComplete.next(data);\n }\n}\n","import { AXFileService } from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, computed, inject } from '@angular/core';\nimport { sumBy } from 'lodash-es';\nimport { BehaviorSubject, Subject, map } from 'rxjs';\nimport {\n AXUploadRequest,\n AXUploaderFileCancelEvent,\n AXUploaderFileCompleteEvent,\n AXUploaderFileStartEvent,\n AXUploaderFilesCompleteEvent,\n} from './uploader.models';\n\n/**\n * Service for managing file uploads with drag-and-drop support, progress tracking, and dialog management.\n * @category Services\n */\n@Injectable({ providedIn: 'root' })\nexport class AXUploaderService {\n /**\n * Translation service for localized text.\n * @ignore\n */\n private translateService = inject(AXTranslationService);\n\n /**\n * File service for file operations.\n * @ignore\n */\n private fileService: AXFileService = inject(AXFileService);\n\n /**\n * Behavior subject for managing upload requests.\n * @ignore\n */\n private readonly _files$ = new BehaviorSubject<AXUploadRequest[]>([]);\n\n /**\n * Gets the files behavior subject for observing upload requests.\n */\n public readonly files = this._files$.asObservable();\n\n /**\n * Subject for file upload start events.\n */\n public readonly onFileUploadStart = new Subject<AXUploaderFileStartEvent>();\n\n /**\n * Subject for file upload complete events.\n */\n public readonly onFileUploadComplete = new Subject<AXUploaderFileCompleteEvent>();\n\n /**\n * Subject for all files upload complete events.\n */\n public readonly onFilesUploadComplete = new Subject<AXUploaderFilesCompleteEvent>();\n\n /**\n * Subject for file upload canceled events.\n */\n public readonly onFileUploadCanceled = new Subject<AXUploaderFileCancelEvent>();\n\n /**\n * Signal indicating if any upload has determined progress.\n */\n public readonly isAnyDetermined = computed(() => this._files$.value.some((file) => file.isDetermined()));\n\n /**\n * Observable for total estimated upload time.\n */\n public readonly totalEstimateTime = this._files$.pipe(\n map((files) => sumBy(files, (file) => (file.status() === 'inprogress' ? file.estimateTime() : 0))),\n );\n\n /**\n * Converts a File object to an AXUploadRequest.\n * @private\n */\n private convertFileToRequest(file: File): AXUploadRequest {\n return new AXUploadRequest(file);\n }\n\n /**\n * Starts uploading files that are in 'new' status.\n * @private\n */\n private async startUpload() {\n const newFiles = this._files$.value.filter((c) => c.status() === 'new');\n for (const file of newFiles) {\n await this.bindEvents(file);\n }\n }\n\n /**\n * Binds event handlers to an upload request.\n * @private\n */\n private async bindEvents(c: AXUploadRequest) {\n c.onStart.subscribe(() => {\n this.onFileUploadStart.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n\n c.onComplete.subscribe((data) => {\n Object.assign(c, { metaData: data });\n this.onFileUploadComplete.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n\n const isAllDone = this._files$.value.every(\n (f) => f.status() === 'completed' || f.status() === 'canceled' || f.status() === 'failed',\n );\n\n if (isAllDone) {\n this.onFilesUploadComplete.next({\n component: this,\n uploadedFiles: this._files$.value,\n isUserInteraction: false,\n });\n }\n });\n\n c.onCancel.subscribe(() => {\n this.onFileUploadCanceled.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n }\n\n /**\n * Opens the file browser dialog and returns selected files as upload requests.\n * @param options - Configuration options for file selection\n * @returns Promise that resolves to an array of upload requests\n */\n async browse(options: { multiple?: boolean; accept?: string } = { multiple: false }): Promise<AXUploadRequest[]> {\n try {\n const files = await this.fileService.choose({ multiple: options?.multiple || false, accept: options.accept });\n if (files.length) {\n return this.add(files);\n }\n return [];\n } catch (error) {\n // It's good practice to log the error.\n console.error('File browse failed:', error);\n return [];\n }\n }\n\n /**\n * Adds files to the upload queue and starts the upload process.\n * @param files - Files to add to the upload queue\n * @returns Promise that resolves to an array of upload requests\n */\n async add(files: FileList | File[]): Promise<AXUploadRequest[]> {\n const list = Array.from(files).map((f) => this.convertFileToRequest(f));\n const newFiles = [...this._files$.value, ...list];\n this._files$.next(newFiles);\n this.startUpload();\n return list;\n }\n\n /**\n * Cancels all pending and in-progress uploads.\n */\n async cancelAll() {\n await Promise.all(this._files$.value.filter((c) => c.status() !== 'completed').map((c) => c.cancel()));\n }\n\n /**\n * Clears all completed uploads from the queue.\n */\n clearAll() {\n const remainingFiles = this._files$.value.filter((c) => c.status() === 'inprogress');\n this._files$.next(remainingFiles);\n }\n\n /**\n * Removes a specific upload request from the queue.\n * @param item - The upload request to remove\n */\n remove(item: AXUploadRequest) {\n const updatedFiles = this._files$.value.filter((c) => c !== item);\n this._files$.next(updatedFiles);\n }\n}\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectorRef,\n DOCUMENT,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n OnDestroy,\n PLATFORM_ID,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXUploaderChangedEvent, AXUploaderFileCompleteEvent, AXUploaderFilesCompleteEvent } from './uploader.models';\nimport { AXUploaderService } from './uploader.service';\n\n/**\n * A directive that provides drag-and-drop and file upload functionality.\n * When applied to an element, it enables drag-and-drop file uploads and file browsing.\n * @category Directives\n */\n@Directive({\n selector: '[axUploaderZone]',\n providers: [AXUnsubscriber],\n host: {\n class: 'ax-drop-zone',\n },\n})\nexport class AXUploaderZoneDirective implements OnDestroy {\n /**\n * The element reference for the directive host.\n * @ignore\n */\n private elementRef = inject(ElementRef);\n\n /**\n * View container reference for rendering custom templates.\n * @ignore\n */\n private viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Whether multiple files can be selected.\n * @defaultValue true\n */\n multiple = input(true);\n\n /**\n * File types that are accepted for upload.\n * @defaultValue null\n */\n accept = input<string | null>(null);\n\n /**\n * Custom template for the drag overlay. If provided, this will be used instead of the default overlay.\n */\n overlayTemplate = input<TemplateRef<unknown>>();\n\n /**\n * Whether browsing files by clicking on the container is disabled.\n * @defaultValue false\n */\n disableBrowse = input(false);\n\n /**\n * Whether drag and drop functionality is disabled.\n * @defaultValue false\n */\n disableDragDrop = input(false);\n\n /**\n * Change detector reference.\n * @ignore\n */\n private cdr = inject(ChangeDetectorRef);\n\n /**\n * Document reference.\n * @ignore\n */\n private document = inject(DOCUMENT);\n\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n private platformID = inject(PLATFORM_ID);\n\n /**\n * Upload service instance.\n * @ignore\n */\n private uploadService = inject(AXUploaderService);\n\n /**\n * Unsubscriber service instance.\n * @ignore\n */\n private unsubscriber = inject(AXUnsubscriber);\n\n /**\n * Translation service instance.\n * @ignore\n */\n private translateService = inject(AXTranslationService);\n\n /**\n * The host element.\n * @ignore\n */\n private element: HTMLElement;\n\n /**\n * Embedded view reference for custom template.\n * @ignore\n */\n private templateViewRef: EmbeddedViewRef<unknown> | null = null;\n\n /**\n * Emitted when files are selected or dropped (like HTML file input).\n * Emits an event with files property containing the selected files.\n */\n fileChange = output<{ event: Event; files: File[] }>();\n\n /**\n * Emitted when files are changed (added, removed, etc.).\n * @deprecated Use fileChange instead for simpler file input-like behavior\n */\n onChanged = output<AXUploaderChangedEvent>();\n\n /**\n * Emitted on drag enter event.\n */\n dragEnter = output<DragEvent>();\n\n /**\n * Emitted on drag leave event.\n */\n dragLeave = output<DragEvent>();\n\n /**\n * Emitted on drag over event.\n */\n dragOver = output<DragEvent>();\n\n /**\n * Emitted when a single file upload is completed.\n */\n onFileUploadComplete = output<AXUploaderFileCompleteEvent>();\n\n /**\n * Emitted when all files upload is completed.\n */\n onFilesUploadComplete = output<AXUploaderFilesCompleteEvent>();\n\n /**\n * CSS class for the overlay state.\n * @ignore\n */\n stateClass = 'ax-uploader-overlay-state';\n\n /**\n * The overlay element for drag and drop visual feedback.\n * @ignore\n */\n overlayElement: HTMLDivElement | null = null;\n\n /**\n * Flag to track if dragOver has been emitted for the current drag session.\n * @ignore\n */\n private dragOverEmitted = signal(false);\n\n /**\n * Counter to track drag enter/leave depth to prevent false dragleave events.\n * When moving from parent to child, dragleave fires even though we're still inside.\n * @ignore\n */\n private dragDepth = signal(0);\n\n /**\n * Animation end handler for cleanup.\n * @ignore\n */\n private animationEndHandler: ((e: AnimationEvent) => void) | null = null;\n\n /**\n * Initializes the directive with event listeners and service subscriptions.\n */\n constructor() {\n this.element = this.elementRef.nativeElement as HTMLElement;\n this.element.style.position = 'relative';\n\n //\n this.uploadService.onFileUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFileUploadComplete.emit(c);\n });\n\n this.uploadService.onFilesUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFilesUploadComplete.emit(c);\n });\n //\n setTimeout(() => {\n const browseHandlers = this.element.querySelectorAll('[data-ax-uploader-browse-handle=\"true\"]');\n if (browseHandlers.length <= 0 && !this.disableBrowse()) {\n this.element.addEventListener('click', this.browser.bind(this), true);\n }\n });\n\n if (!this.disableDragDrop()) {\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', (e) => this.removeZone(e as DragEvent), true);\n }\n }\n\n /**\n * Cleans up event listeners when the directive is destroyed.\n */\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.browser.bind(this));\n\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n\n /**\n * Handles drag enter events to show the upload overlay.\n * @private\n */\n private async handleDragEnter(event: DragEvent) {\n if (this.disableDragDrop()) return;\n this.dragOverEmitted.set(false); // Reset flag when entering\n this.dragDepth.update((depth) => depth + 1); // Increment depth counter\n\n // Only create overlay on first enter (when depth is 1)\n if (this.dragDepth() === 1) {\n // Cancel any pending exit animation\n this.cancelExitAnimation();\n await this.createZone();\n this.dragEnter.emit(event);\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n /**\n * Handles drop events to process dropped files.\n * @private\n */\n private async handleOnDrop(event: DragEvent) {\n if (this.disableDragDrop()) return;\n event.preventDefault();\n event.stopImmediatePropagation();\n\n // Reset drag depth on drop\n this.dragDepth.set(0);\n\n if (event.dataTransfer?.files && event.dataTransfer.files.length > 0) {\n const files = Array.from(event.dataTransfer.files);\n\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({ event, files });\n\n // Also emit the old onChanged event for backward compatibility\n const requests = await this.uploadService.add(event.dataTransfer.files);\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n }\n\n this.removeZone();\n this.cdr.detectChanges();\n }\n\n /**\n * Handles drag over events to allow dropping.\n * @private\n */\n private handleDragOver(event: DragEvent) {\n if (this.disableDragDrop()) return;\n // Only emit dragOver once per drag session to avoid spam\n if (!this.dragOverEmitted()) {\n this.dragOverEmitted.set(true);\n this.dragOver.emit(event);\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n /**\n * Creates the visual overlay for drag and drop feedback.\n * @private\n */\n private async createZone() {\n if (isPlatformBrowser(this.platformID)) {\n // Check if overlay already exists (might be exiting)\n let existingOverlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n\n // Verify the overlay is actually in the DOM (not removed after animation)\n if (existingOverlay && existingOverlay.parentNode === this.element) {\n // Remove exiting class to cancel exit animation and show overlay again\n existingOverlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up any pending animation handler\n if (this.animationEndHandler) {\n existingOverlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n // Reset overlayElement reference if it was cleared\n if (!this.overlayElement && existingOverlay) {\n this.overlayElement = existingOverlay as HTMLDivElement;\n }\n return;\n } else if (existingOverlay && existingOverlay.parentNode !== this.element) {\n // Overlay exists but is not in the DOM, clear the reference\n this.overlayElement = null;\n existingOverlay = null;\n }\n\n // Check if custom template is provided\n const template = this.overlayTemplate();\n if (template) {\n // Create container for template\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n\n // Create embedded view from template (will be inserted at directive anchor)\n this.viewContainerRef.clear();\n this.templateViewRef = this.viewContainerRef.createEmbeddedView(template);\n this.templateViewRef.detectChanges();\n\n // Get root nodes and move them to overlay element\n const rootNodes = this.templateViewRef.rootNodes;\n for (const node of rootNodes) {\n // Remove from current location if it has a parent\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n this.overlayElement.appendChild(node);\n }\n\n // Detach the view since we've moved the nodes\n this.templateViewRef.detach();\n\n this.element.appendChild(this.overlayElement);\n this.cdr.detectChanges();\n return;\n }\n\n // Use default overlay\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n\n const icon: HTMLSpanElement = this.document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n\n const text = this.document.createElement('span');\n text.innerText = await this.translateService.translateAsync('@acorex:uploader.zone.text');\n\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n\n this.element.appendChild(this.overlayElement);\n }\n }\n\n /**\n * Cancels any pending exit animation and cleans up handlers.\n * @private\n */\n private cancelExitAnimation() {\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n\n if (overlay && this.animationEndHandler) {\n // Remove exiting class to cancel animation\n overlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up the handler\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n }\n }\n\n /**\n * Removes the visual overlay for drag and drop feedback.\n * @private\n */\n private removeZone(event?: DragEvent) {\n if (this.disableDragDrop()) return;\n this.dragDepth.update((depth) => Math.max(0, depth - 1)); // Decrement depth counter, ensure non-negative\n\n // Only remove overlay when we've truly left the drop zone (depth reaches 0)\n if (this.dragDepth() <= 0) {\n this.dragDepth.set(0); // Ensure it's exactly 0\n this.dragOverEmitted.set(false); // Reset flag when leaving\n\n if (event) {\n this.dragLeave.emit(event);\n }\n\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n\n if (overlay) {\n // Clean up any existing handler first\n if (this.animationEndHandler) {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n }\n\n // Add exiting class to trigger CSS animation\n overlay.classList.add('ax-uploader-overlay-exiting');\n\n // Wait for CSS animation to complete\n this.animationEndHandler = (e: AnimationEvent) => {\n if (e.target === overlay && e.animationName === 'fadeOutScale') {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n\n if (overlay.parentNode === this.element) {\n this.element.removeChild(overlay);\n }\n if (this.overlayElement && this.overlayElement.parentNode) {\n this.overlayElement.remove();\n }\n\n // Clear the overlay element reference\n this.overlayElement = null;\n\n // Remove custom template view if it exists\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n };\n\n overlay.addEventListener('animationend', this.animationEndHandler);\n } else {\n // If overlay doesn't exist, just clean up template view\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n }\n }\n }\n\n /**\n * Opens the file browser dialog and processes selected files.\n * @returns Promise that resolves when files are processed\n */\n public async browser(): Promise<void> {\n if (this.disableBrowse()) return;\n const files = await this.uploadService.browse({ accept: this.accept() ?? undefined, multiple: this.multiple() });\n\n if (files.length > 0) {\n // Create a synthetic event for consistency\n const syntheticEvent = new Event('change');\n const target = Object.create(EventTarget.prototype) as EventTarget & { files: File[] };\n target.files = files.map((r) => r.file);\n Object.defineProperty(syntheticEvent, 'target', { value: target, writable: false });\n\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({\n event: syntheticEvent,\n files: files.map((r) => r.file),\n });\n\n // Also emit the old onChanged event for backward compatibility\n this.onChanged.emit({\n component: this,\n requests: files,\n isUserInteraction: true,\n });\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, OnDestroy, OnInit, PLATFORM_ID, inject } from '@angular/core';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\n\n/**\n * A directive that provides browse functionality for file uploads.\n * When applied to an element, clicking it will trigger the file browser dialog.\n * @category Directives\n */\n@Directive({ selector: '[axUploaderBrowseHandle]' })\nexport class AXUploaderBrowseDirective implements OnInit, OnDestroy {\n /**\n * The uploader zone directive instance.\n * @ignore\n */\n private uploaderZone = inject(AXUploaderZoneDirective);\n\n /**\n * The element reference for the directive host.\n * @ignore\n */\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n private platformID = inject(PLATFORM_ID);\n\n /**\n * Initializes the directive by adding click event listener and data attribute.\n */\n ngOnInit() {\n if (isPlatformBrowser(this.platformID) && this.elementRef?.nativeElement) {\n const element = this.elementRef.nativeElement;\n element.addEventListener('click', this.handleClick.bind(this));\n // Use setAttribute for SSR compatibility\n if (element.dataset) {\n element.dataset['axUploaderBrowseHandle'] = 'true';\n } else {\n element.setAttribute('data-ax-uploader-browse-handle', 'true');\n }\n }\n }\n\n /**\n * Cleans up the directive by removing event listeners.\n */\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformID) && this.elementRef.nativeElement) {\n this.elementRef.nativeElement.removeEventListener('click', this.handleClick.bind(this));\n }\n }\n\n /**\n * Handles the click event to trigger file browser.\n * @private\n */\n private async handleClick() {\n await this.uploaderZone.browser();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-uploader.mjs","sources":["../tmp-esm2022/uploader/lib/uploader.models.js","../tmp-esm2022/uploader/lib/uploader.service.js","../tmp-esm2022/uploader/lib/uploader-zone.directive.js","../tmp-esm2022/uploader/lib/uploader-browse-handle.directive.js","../tmp-esm2022/uploader/acorex-cdk-uploader.js"],"sourcesContent":["import { computed, signal } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nexport class AXUploadRequest {\n get name() {\n return this.file.name;\n }\n get ext() {\n const parts = this.name.split('.');\n if (parts.length > 1) {\n return parts[parts.length - 1];\n }\n else {\n // No extension found\n return '';\n }\n }\n get size() {\n return this.file.size;\n }\n get file() {\n return this.uploadFile;\n }\n constructor(uploadFile) {\n this.uploadFile = uploadFile;\n this._progress = signal(0, ...(ngDevMode ? [{ debugName: \"_progress\" }] : []));\n this.progress = computed(() => this._progress(), ...(ngDevMode ? [{ debugName: \"progress\" }] : []));\n this._estimateTime = signal(0, ...(ngDevMode ? [{ debugName: \"_estimateTime\" }] : []));\n this.estimateTime = computed(() => this._estimateTime(), ...(ngDevMode ? [{ debugName: \"estimateTime\" }] : []));\n this._status = signal('new', ...(ngDevMode ? [{ debugName: \"_status\" }] : []));\n this.status = computed(() => this._status(), ...(ngDevMode ? [{ debugName: \"status\" }] : []));\n this._message = signal(null, ...(ngDevMode ? [{ debugName: \"_message\" }] : []));\n this.message = computed(() => this._message(), ...(ngDevMode ? [{ debugName: \"message\" }] : []));\n this._isDetermined = signal(false, ...(ngDevMode ? [{ debugName: \"_isDetermined\" }] : []));\n this.isDetermined = computed(() => this._isDetermined(), ...(ngDevMode ? [{ debugName: \"isDetermined\" }] : []));\n this.bytesTransferred = 0;\n this.onCancel = new Subject();\n this.onStart = new Subject();\n this.onFailed = new Subject();\n this.onComplete = new BehaviorSubject(null);\n }\n estimateTimeRemaining(bytesTransferred) {\n const now = Date.now();\n const elapsed = now - this.startTime; // Time in milliseconds\n if (isNaN(elapsed) || elapsed === 0) {\n return null; // Avoid division by zero\n }\n const speed = (bytesTransferred || 1) / elapsed; // Bytes per millisecond\n const remainingBytes = this.size - bytesTransferred;\n const estimatedTime = Math.ceil(remainingBytes / speed); // Time in milliseconds\n return estimatedTime; // Return the estimated time in milliseconds\n }\n setTransferredBytes(value) {\n this.bytesTransferred = value;\n if (value > 0 && !this._isDetermined() && (this.status() == 'new' || this.status() == 'inprogress')) {\n this._isDetermined.set(true);\n }\n this.updateEstimateTime();\n }\n updateEstimateTime() {\n this._estimateTime.set(this.estimateTimeRemaining(this.bytesTransferred));\n const progress = Math.floor((this.bytesTransferred / this.size) * 100);\n this._progress.set(progress);\n }\n async upload() {\n this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this.onStart.next();\n }\n cancel() {\n this._status.set('canceled');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this.onCancel.next();\n }\n redo() {\n // this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this._message.set(null);\n this.onStart.next();\n }\n error(message) {\n this._status.set('failed');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this._message.set(message);\n this.onFailed.next();\n }\n finish(data) {\n this._status.set('completed');\n this.bytesTransferred = this.size;\n this._estimateTime.set(0);\n this._progress.set(100);\n this.onComplete.next(data);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL3VwbG9hZGVyL3NyYy9saWIvdXBsb2FkZXIubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBd0JoRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNOLHFCQUFxQjtZQUNyQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUEyQkQsWUFBb0IsVUFBZ0I7UUFBaEIsZUFBVSxHQUFWLFVBQVUsQ0FBTTtRQXpCbkIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLHFEQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG9EQUFDLENBQUM7UUFFM0Isa0JBQWEs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Q0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgQVhVcGxvYWRTdGF0dXMgPSAnbmV3JyB8ICdpbnByb2dyZXNzJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCcgfCAnY2FuY2VsZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYVXBsb2FkZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBBWEV2ZW50IHtcbiAgcmVxdWVzdHM6IEFYVXBsb2FkUmVxdWVzdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVXBsb2FkZXJGaWxlU3RhcnRFdmVudCBleHRlbmRzIEFYRXZlbnQge1xuICB1cGxvYWRlZEZpbGU6IEFYVXBsb2FkUmVxdWVzdDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRlckZpbGVDb21wbGV0ZUV2ZW50IGV4dGVuZHMgQVhFdmVudCB7XG4gIHVwbG9hZGVkRmlsZTogQVhVcGxvYWRSZXF1ZXN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQgZXh0ZW5kcyBBWEV2ZW50IHtcbiAgdXBsb2FkZWRGaWxlczogQVhVcGxvYWRSZXF1ZXN0W107XG4gIGRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRlckZpbGVDYW5jZWxFdmVudCBleHRlbmRzIEFYRXZlbnQge1xuICB1cGxvYWRlZEZpbGU6IEFYVXBsb2FkUmVxdWVzdDtcbn1cblxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkUmVxdWVzdCB7XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZS5uYW1lO1xuICB9XG5cbiAgZ2V0IGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzID0gdGhpcy5uYW1lLnNwbGl0KCcuJyk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gZXh0ZW5zaW9uIGZvdW5kXG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWxlLnNpemU7XG4gIH1cblxuICBnZXQgZmlsZSgpOiBGaWxlIHtcbiAgICByZXR1cm4gdGhpcy51cGxvYWRGaWxlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvZ3Jlc3MgPSBzaWduYWwoMCk7XG4gIHByb2dyZXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fcHJvZ3Jlc3MoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZXN0aW1hdGVUaW1lID0gc2lnbmFsKDApO1xuICBlc3RpbWF0ZVRpbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9lc3RpbWF0ZVRpbWUoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzID0gc2lnbmFsPEFYVXBsb2FkU3RhdHVzPignbmV3Jyk7XG4gIHN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXR1cygpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZXNzYWdlID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBtZXNzYWdlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbWVzc2FnZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pc0RldGVybWluZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc0RldGVybWluZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9pc0RldGVybWluZWQoKSk7XG5cbiAgcHJpdmF0ZSBzdGFydFRpbWU6IG51bWJlcjtcbiAgcHJpdmF0ZSBieXRlc1RyYW5zZmVycmVkID0gMDtcblxuICBwdWJsaWMgbWV0YURhdGE6IGFueTtcblxuICBwdWJsaWMgb25DYW5jZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgb25TdGFydCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvbkZhaWxlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvbkNvbXBsZXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVwbG9hZEZpbGU6IEZpbGUpIHt9XG5cbiAgcHJpdmF0ZSBlc3RpbWF0ZVRpbWVSZW1haW5pbmcoYnl0ZXNUcmFuc2ZlcnJlZDogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBlbGFwc2VkID0gbm93IC0gdGhpcy5zdGFydFRpbWU7IC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzXG5cbiAgICBpZiAoaXNOYU4oZWxhcHNlZCkgfHwgZWxhcHNlZCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7IC8vIEF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICB9XG5cbiAgICBjb25zdCBzcGVlZCA9IChieXRlc1RyYW5zZmVycmVkIHx8IDEpIC8gZWxhcHNlZDsgLy8gQnl0ZXMgcGVyIG1pbGxpc2Vjb25kXG4gICAgY29uc3QgcmVtYWluaW5nQnl0ZXMgPSB0aGlzLnNpemUgLSBieXRlc1RyYW5zZmVycmVkO1xuICAgIGNvbnN0IGVzdGltYXRlZFRpbWUgPSBNYXRoLmNlaWwocmVtYWluaW5nQnl0ZXMgLyBzcGVlZCk7IC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzXG4gICAgcmV0dXJuIGVzdGltYXRlZFRpbWU7IC8vIFJldHVybiB0aGUgZXN0aW1hdGVkIHRpbWUgaW4gbWlsbGlzZWNvbmRzXG4gIH1cblxuICBwdWJsaWMgc2V0VHJhbnNmZXJyZWRCeXRlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5ieXRlc1RyYW5zZmVycmVkID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlID4gMCAmJiAhdGhpcy5faXNEZXRlcm1pbmVkKCkgJiYgKHRoaXMuc3RhdHVzKCkgPT0gJ25ldycgfHwgdGhpcy5zdGF0dXMoKSA9PSAnaW5wcm9ncmVzcycpKSB7XG4gICAgICB0aGlzLl9pc0RldGVybWluZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUVzdGltYXRlVGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFc3RpbWF0ZVRpbWUoKSB7XG4gICAgdGhpcy5fZXN0aW1hdGVUaW1lLnNldCh0aGlzLmVzdGltYXRlVGltZVJlbWFpbmluZyh0aGlzLmJ5dGVzVHJhbnNmZXJyZWQpKTtcbiAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGguZmxvb3IoKHRoaXMuYnl0ZXNUcmFuc2ZlcnJlZCAvIHRoaXMuc2l6ZSkgKiAxMDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldChwcm9ncmVzcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLl9wcm9ncmVzcy5zZXQoMCk7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgnaW5wcm9ncmVzcycpO1xuICAgIHRoaXMub25TdGFydC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXR1cy5zZXQoJ2NhbmNlbGVkJyk7XG4gICAgdGhpcy5ieXRlc1RyYW5zZmVycmVkID0gMDtcbiAgICB0aGlzLl9lc3RpbWF0ZVRpbWUuc2V0KDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldCgwKTtcbiAgICB0aGlzLm9uQ2FuY2VsLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRvKCk6IHZvaWQge1xuICAgIC8vIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLl9wcm9ncmVzcy5zZXQoMCk7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgnaW5wcm9ncmVzcycpO1xuICAgIHRoaXMuX21lc3NhZ2Uuc2V0KG51bGwpO1xuICAgIHRoaXMub25TdGFydC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZXJyb3IobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgnZmFpbGVkJyk7XG4gICAgdGhpcy5ieXRlc1RyYW5zZmVycmVkID0gMDtcbiAgICB0aGlzLl9lc3RpbWF0ZVRpbWUuc2V0KDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldCgwKTtcbiAgICB0aGlzLl9tZXNzYWdlLnNldChtZXNzYWdlKTtcbiAgICB0aGlzLm9uRmFpbGVkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5pc2goZGF0YT86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXR1cy5zZXQoJ2NvbXBsZXRlZCcpO1xuICAgIHRoaXMuYnl0ZXNUcmFuc2ZlcnJlZCA9IHRoaXMuc2l6ZTtcbiAgICB0aGlzLl9lc3RpbWF0ZVRpbWUuc2V0KDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldCgxMDApO1xuICAgIHRoaXMub25Db21wbGV0ZS5uZXh0KGRhdGEpO1xuICB9XG59XG4iXX0=","import { AXFileService } from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, computed, inject } from '@angular/core';\nimport { sumBy } from 'lodash-es';\nimport { BehaviorSubject, Subject, map } from 'rxjs';\nimport { AXUploadRequest, } from './uploader.models';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for managing file uploads with drag-and-drop support, progress tracking, and dialog management.\n * @category Services\n */\nexport class AXUploaderService {\n constructor() {\n /**\n * Translation service for localized text.\n * @ignore\n */\n this.translateService = inject(AXTranslationService);\n /**\n * File service for file operations.\n * @ignore\n */\n this.fileService = inject(AXFileService);\n /**\n * Behavior subject for managing upload requests.\n * @ignore\n */\n this._files$ = new BehaviorSubject([]);\n /**\n * Gets the files behavior subject for observing upload requests.\n */\n this.files = this._files$.asObservable();\n /**\n * Subject for file upload start events.\n */\n this.onFileUploadStart = new Subject();\n /**\n * Subject for file upload complete events.\n */\n this.onFileUploadComplete = new Subject();\n /**\n * Subject for all files upload complete events.\n */\n this.onFilesUploadComplete = new Subject();\n /**\n * Subject for file upload canceled events.\n */\n this.onFileUploadCanceled = new Subject();\n /**\n * Signal indicating if any upload has determined progress.\n */\n this.isAnyDetermined = computed(() => this._files$.value.some((file) => file.isDetermined()), ...(ngDevMode ? [{ debugName: \"isAnyDetermined\" }] : []));\n /**\n * Observable for total estimated upload time.\n */\n this.totalEstimateTime = this._files$.pipe(map((files) => sumBy(files, (file) => (file.status() === 'inprogress' ? file.estimateTime() : 0))));\n }\n /**\n * Converts a File object to an AXUploadRequest.\n * @private\n */\n convertFileToRequest(file) {\n return new AXUploadRequest(file);\n }\n /**\n * Starts uploading files that are in 'new' status.\n * @private\n */\n async startUpload() {\n const newFiles = this._files$.value.filter((c) => c.status() === 'new');\n for (const file of newFiles) {\n await this.bindEvents(file);\n }\n }\n /**\n * Binds event handlers to an upload request.\n * @private\n */\n async bindEvents(c) {\n c.onStart.subscribe(() => {\n this.onFileUploadStart.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n c.onComplete.subscribe((data) => {\n Object.assign(c, { metaData: data });\n this.onFileUploadComplete.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n const isAllDone = this._files$.value.every((f) => f.status() === 'completed' || f.status() === 'canceled' || f.status() === 'failed');\n if (isAllDone) {\n this.onFilesUploadComplete.next({\n component: this,\n uploadedFiles: this._files$.value,\n isUserInteraction: false,\n });\n }\n });\n c.onCancel.subscribe(() => {\n this.onFileUploadCanceled.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n }\n /**\n * Opens the file browser dialog and returns selected files as upload requests.\n * @param options - Configuration options for file selection\n * @returns Promise that resolves to an array of upload requests\n */\n async browse(options = { multiple: false }) {\n try {\n const files = await this.fileService.choose({ multiple: options?.multiple || false, accept: options.accept });\n if (files.length) {\n return this.add(files);\n }\n return [];\n }\n catch (error) {\n // It's good practice to log the error.\n console.error('File browse failed:', error);\n return [];\n }\n }\n /**\n * Adds files to the upload queue and starts the upload process.\n * @param files - Files to add to the upload queue\n * @returns Promise that resolves to an array of upload requests\n */\n async add(files) {\n const list = Array.from(files).map((f) => this.convertFileToRequest(f));\n const newFiles = [...this._files$.value, ...list];\n this._files$.next(newFiles);\n this.startUpload();\n return list;\n }\n /**\n * Cancels all pending and in-progress uploads.\n */\n async cancelAll() {\n await Promise.all(this._files$.value.filter((c) => c.status() !== 'completed').map((c) => c.cancel()));\n }\n /**\n * Clears all completed uploads from the queue.\n */\n clearAll() {\n const remainingFiles = this._files$.value.filter((c) => c.status() === 'inprogress');\n this._files$.next(remainingFiles);\n }\n /**\n * Removes a specific upload request from the queue.\n * @param item - The upload request to remove\n */\n remove(item) {\n const updatedFiles = this._files$.value.filter((c) => c !== item);\n this._files$.next(updatedFiles);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay91cGxvYWRlci9zcmMvbGliL3VwbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQ0wsZUFBZSxHQUtoQixNQUFNLG1CQUFtQixDQUFDOztBQUUzQjs7O0dBR0c7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRUU7OztXQUdHO1FBQ0sscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFeEQ7OztXQUdHO1FBQ0ssZ0JBQVcsR0FBa0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNEOzs7V0FHRztRQUNjLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFFdEU7O1dBRUc7UUFDYSxVQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwRDs7V0FFRztRQUNhLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBRTVFOztXQUVHO1FBQ2EseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7UUFFbEY7O1dBRUc7UUFDYSwwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBZ0MsQ0FBQztRQUVwRjs7V0FFRztRQUNhLHlC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Q0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssWUFBWSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxJQUFxQjtRQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQTVLVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGaWxlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHN1bUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBWFVwbG9hZFJlcXVlc3QsXG4gIEFYVXBsb2FkZXJGaWxlQ2FuY2VsRXZlbnQsXG4gIEFYVXBsb2FkZXJGaWxlQ29tcGxldGVFdmVudCxcbiAgQVhVcGxvYWRlckZpbGVTdGFydEV2ZW50LFxuICBBWFVwbG9hZGVyRmlsZXNDb21wbGV0ZUV2ZW50LFxufSBmcm9tICcuL3VwbG9hZGVyLm1vZGVscyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgZmlsZSB1cGxvYWRzIHdpdGggZHJhZy1hbmQtZHJvcCBzdXBwb3J0LCBwcm9ncmVzcyB0cmFja2luZywgYW5kIGRpYWxvZyBtYW5hZ2VtZW50LlxuICogQGNhdGVnb3J5IFNlcnZpY2VzXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRlclNlcnZpY2Uge1xuICAvKipcbiAgICogVHJhbnNsYXRpb24gc2VydmljZSBmb3IgbG9jYWxpemVkIHRleHQuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEZpbGUgc2VydmljZSBmb3IgZmlsZSBvcGVyYXRpb25zLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBBWEZpbGVTZXJ2aWNlID0gaW5qZWN0KEFYRmlsZVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBCZWhhdmlvciBzdWJqZWN0IGZvciBtYW5hZ2luZyB1cGxvYWQgcmVxdWVzdHMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QVhVcGxvYWRSZXF1ZXN0W10+KFtdKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgZmlsZXMgYmVoYXZpb3Igc3ViamVjdCBmb3Igb2JzZXJ2aW5nIHVwbG9hZCByZXF1ZXN0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlcyA9IHRoaXMuX2ZpbGVzJC5hc09ic2VydmFibGUoKTtcblxuICAvKipcbiAgICogU3ViamVjdCBmb3IgZmlsZSB1cGxvYWQgc3RhcnQgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRmlsZVVwbG9hZFN0YXJ0ID0gbmV3IFN1YmplY3Q8QVhVcGxvYWRlckZpbGVTdGFydEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBTdWJqZWN0IGZvciBmaWxlIHVwbG9hZCBjb21wbGV0ZSBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25GaWxlVXBsb2FkQ29tcGxldGUgPSBuZXcgU3ViamVjdDxBWFVwbG9hZGVyRmlsZUNvbXBsZXRlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGFsbCBmaWxlcyB1cGxvYWQgY29tcGxldGUgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRmlsZXNVcGxvYWRDb21wbGV0ZSA9IG5ldyBTdWJqZWN0PEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGZpbGUgdXBsb2FkIGNhbmNlbGVkIGV2ZW50cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbkZpbGVVcGxvYWRDYW5jZWxlZCA9IG5ldyBTdWJqZWN0PEFYVXBsb2FkZXJGaWxlQ2FuY2VsRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFNpZ25hbCBpbmRpY2F0aW5nIGlmIGFueSB1cGxvYWQgaGFzIGRldGVybWluZWQgcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXNBbnlEZXRlcm1pbmVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZmlsZXMkLnZhbHVlLnNvbWUoKGZpbGUpID0+IGZpbGUuaXNEZXRlcm1pbmVkKCkpKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBmb3IgdG90YWwgZXN0aW1hdGVkIHVwbG9hZCB0aW1lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRvdGFsRXN0aW1hdGVUaW1lID0gdGhpcy5fZmlsZXMkLnBpcGUoXG4gICAgbWFwKChmaWxlcykgPT4gc3VtQnkoZmlsZXMsIChmaWxlKSA9PiAoZmlsZS5zdGF0dXMoKSA9PT0gJ2lucHJvZ3Jlc3MnID8gZmlsZS5lc3RpbWF0ZVRpbWUoKSA6IDApKSksXG4gICk7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgRmlsZSBvYmplY3QgdG8gYW4gQVhVcGxvYWRSZXF1ZXN0LlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0RmlsZVRvUmVxdWVzdChmaWxlOiBGaWxlKTogQVhVcGxvYWRSZXF1ZXN0IHtcbiAgICByZXR1cm4gbmV3IEFYVXBsb2FkUmVxdWVzdChmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgdXBsb2FkaW5nIGZpbGVzIHRoYXQgYXJlIGluICduZXcnIHN0YXR1cy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc3RhcnRVcGxvYWQoKSB7XG4gICAgY29uc3QgbmV3RmlsZXMgPSB0aGlzLl9maWxlcyQudmFsdWUuZmlsdGVyKChjKSA9PiBjLnN0YXR1cygpID09PSAnbmV3Jyk7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIG5ld0ZpbGVzKSB7XG4gICAgICBhd2FpdCB0aGlzLmJpbmRFdmVudHMoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIGV2ZW50IGhhbmRsZXJzIHRvIGFuIHVwbG9hZCByZXF1ZXN0LlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBiaW5kRXZlbnRzKGM6IEFYVXBsb2FkUmVxdWVzdCkge1xuICAgIGMub25TdGFydC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vbkZpbGVVcGxvYWRTdGFydC5uZXh0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB1cGxvYWRlZEZpbGU6IGMsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYy5vbkNvbXBsZXRlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihjLCB7IG1ldGFEYXRhOiBkYXRhIH0pO1xuICAgICAgdGhpcy5vbkZpbGVVcGxvYWRDb21wbGV0ZS5uZXh0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB1cGxvYWRlZEZpbGU6IGMsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBpc0FsbERvbmUgPSB0aGlzLl9maWxlcyQudmFsdWUuZXZlcnkoXG4gICAgICAgIChmKSA9PiBmLnN0YXR1cygpID09PSAnY29tcGxldGVkJyB8fCBmLnN0YXR1cygpID09PSAnY2FuY2VsZWQnIHx8IGYuc3RhdHVzKCkgPT09ICdmYWlsZWQnLFxuICAgICAgKTtcblxuICAgICAgaWYgKGlzQWxsRG9uZSkge1xuICAgICAgICB0aGlzLm9uRmlsZXNVcGxvYWRDb21wbGV0ZS5uZXh0KHtcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgdXBsb2FkZWRGaWxlczogdGhpcy5fZmlsZXMkLnZhbHVlLFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjLm9uQ2FuY2VsLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZVVwbG9hZENhbmNlbGVkLm5leHQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIHVwbG9hZGVkRmlsZTogYyxcbiAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGZpbGUgYnJvd3NlciBkaWFsb2cgYW5kIHJldHVybnMgc2VsZWN0ZWQgZmlsZXMgYXMgdXBsb2FkIHJlcXVlc3RzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZmlsZSBzZWxlY3Rpb25cbiAgICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIHVwbG9hZCByZXF1ZXN0c1xuICAgKi9cbiAgYXN5bmMgYnJvd3NlKG9wdGlvbnM6IHsgbXVsdGlwbGU/OiBib29sZWFuOyBhY2NlcHQ/OiBzdHJpbmcgfSA9IHsgbXVsdGlwbGU6IGZhbHNlIH0pOiBQcm9taXNlPEFYVXBsb2FkUmVxdWVzdFtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy5maWxlU2VydmljZS5jaG9vc2UoeyBtdWx0aXBsZTogb3B0aW9ucz8ubXVsdGlwbGUgfHwgZmFsc2UsIGFjY2VwdDogb3B0aW9ucy5hY2NlcHQgfSk7XG4gICAgICBpZiAoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZChmaWxlcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW107XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEl0J3MgZ29vZCBwcmFjdGljZSB0byBsb2cgdGhlIGVycm9yLlxuICAgICAgY29uc29sZS5lcnJvcignRmlsZSBicm93c2UgZmFpbGVkOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBzdGFydHMgdGhlIHVwbG9hZCBwcm9jZXNzLlxuICAgKiBAcGFyYW0gZmlsZXMgLSBGaWxlcyB0byBhZGQgdG8gdGhlIHVwbG9hZCBxdWV1ZVxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgb2YgdXBsb2FkIHJlcXVlc3RzXG4gICAqL1xuICBhc3luYyBhZGQoZmlsZXM6IEZpbGVMaXN0IHwgRmlsZVtdKTogUHJvbWlzZTxBWFVwbG9hZFJlcXVlc3RbXT4ge1xuICAgIGNvbnN0IGxpc3QgPSBBcnJheS5mcm9tKGZpbGVzKS5tYXAoKGYpID0+IHRoaXMuY29udmVydEZpbGVUb1JlcXVlc3QoZikpO1xuICAgIGNvbnN0IG5ld0ZpbGVzID0gWy4uLnRoaXMuX2ZpbGVzJC52YWx1ZSwgLi4ubGlzdF07XG4gICAgdGhpcy5fZmlsZXMkLm5leHQobmV3RmlsZXMpO1xuICAgIHRoaXMuc3RhcnRVcGxvYWQoKTtcbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGFsbCBwZW5kaW5nIGFuZCBpbi1wcm9ncmVzcyB1cGxvYWRzLlxuICAgKi9cbiAgYXN5bmMgY2FuY2VsQWxsKCkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuX2ZpbGVzJC52YWx1ZS5maWx0ZXIoKGMpID0+IGMuc3RhdHVzKCkgIT09ICdjb21wbGV0ZWQnKS5tYXAoKGMpID0+IGMuY2FuY2VsKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIGNvbXBsZXRlZCB1cGxvYWRzIGZyb20gdGhlIHF1ZXVlLlxuICAgKi9cbiAgY2xlYXJBbGwoKSB7XG4gICAgY29uc3QgcmVtYWluaW5nRmlsZXMgPSB0aGlzLl9maWxlcyQudmFsdWUuZmlsdGVyKChjKSA9PiBjLnN0YXR1cygpID09PSAnaW5wcm9ncmVzcycpO1xuICAgIHRoaXMuX2ZpbGVzJC5uZXh0KHJlbWFpbmluZ0ZpbGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgc3BlY2lmaWMgdXBsb2FkIHJlcXVlc3QgZnJvbSB0aGUgcXVldWUuXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIHVwbG9hZCByZXF1ZXN0IHRvIHJlbW92ZVxuICAgKi9cbiAgcmVtb3ZlKGl0ZW06IEFYVXBsb2FkUmVxdWVzdCkge1xuICAgIGNvbnN0IHVwZGF0ZWRGaWxlcyA9IHRoaXMuX2ZpbGVzJC52YWx1ZS5maWx0ZXIoKGMpID0+IGMgIT09IGl0ZW0pO1xuICAgIHRoaXMuX2ZpbGVzJC5uZXh0KHVwZGF0ZWRGaWxlcyk7XG4gIH1cbn1cbiJdfQ==","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectorRef, DOCUMENT, Directive, ElementRef, PLATFORM_ID, ViewContainerRef, inject, input, output, signal, } from '@angular/core';\nimport { AXUploaderService } from './uploader.service';\nimport * as i0 from \"@angular/core\";\n/**\n * A directive that provides drag-and-drop and file upload functionality.\n * When applied to an element, it enables drag-and-drop file uploads and file browsing.\n * @category Directives\n */\nexport class AXUploaderZoneDirective {\n /**\n * Initializes the directive with event listeners and service subscriptions.\n */\n constructor() {\n /**\n * The element reference for the directive host.\n * @ignore\n */\n this.elementRef = inject(ElementRef);\n /**\n * View container reference for rendering custom templates.\n * @ignore\n */\n this.viewContainerRef = inject(ViewContainerRef);\n /**\n * Whether multiple files can be selected.\n * @defaultValue true\n */\n this.multiple = input(true, ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n /**\n * File types that are accepted for upload.\n * @defaultValue null\n */\n this.accept = input(null, ...(ngDevMode ? [{ debugName: \"accept\" }] : []));\n /**\n * Custom template for the drag overlay. If provided, this will be used instead of the default overlay.\n */\n this.overlayTemplate = input(...(ngDevMode ? [undefined, { debugName: \"overlayTemplate\" }] : []));\n /**\n * Whether browsing files by clicking on the container is disabled.\n * @defaultValue false\n */\n this.disableBrowse = input(false, ...(ngDevMode ? [{ debugName: \"disableBrowse\" }] : []));\n /**\n * Whether drag and drop functionality is disabled.\n * @defaultValue false\n */\n this.disableDragDrop = input(false, ...(ngDevMode ? [{ debugName: \"disableDragDrop\" }] : []));\n /**\n * Change detector reference.\n * @ignore\n */\n this.cdr = inject(ChangeDetectorRef);\n /**\n * Document reference.\n * @ignore\n */\n this.document = inject(DOCUMENT);\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n this.platformID = inject(PLATFORM_ID);\n /**\n * Upload service instance.\n * @ignore\n */\n this.uploadService = inject(AXUploaderService);\n /**\n * Unsubscriber service instance.\n * @ignore\n */\n this.unsubscriber = inject(AXUnsubscriber);\n /**\n * Translation service instance.\n * @ignore\n */\n this.translateService = inject(AXTranslationService);\n /**\n * Embedded view reference for custom template.\n * @ignore\n */\n this.templateViewRef = null;\n /**\n * Emitted when files are selected or dropped (like HTML file input).\n * Emits an event with files property containing the selected files.\n */\n this.fileChange = output();\n /**\n * Emitted when files are changed (added, removed, etc.).\n * @deprecated Use fileChange instead for simpler file input-like behavior\n */\n this.onChanged = output();\n /**\n * Emitted on drag enter event.\n */\n this.dragEnter = output();\n /**\n * Emitted on drag leave event.\n */\n this.dragLeave = output();\n /**\n * Emitted on drag over event.\n */\n this.dragOver = output();\n /**\n * Emitted when a single file upload is completed.\n */\n this.onFileUploadComplete = output();\n /**\n * Emitted when all files upload is completed.\n */\n this.onFilesUploadComplete = output();\n /**\n * CSS class for the overlay state.\n * @ignore\n */\n this.stateClass = 'ax-uploader-overlay-state';\n /**\n * The overlay element for drag and drop visual feedback.\n * @ignore\n */\n this.overlayElement = null;\n /**\n * Flag to track if dragOver has been emitted for the current drag session.\n * @ignore\n */\n this.dragOverEmitted = signal(false, ...(ngDevMode ? [{ debugName: \"dragOverEmitted\" }] : []));\n /**\n * Counter to track drag enter/leave depth to prevent false dragleave events.\n * When moving from parent to child, dragleave fires even though we're still inside.\n * @ignore\n */\n this.dragDepth = signal(0, ...(ngDevMode ? [{ debugName: \"dragDepth\" }] : []));\n /**\n * Animation end handler for cleanup.\n * @ignore\n */\n this.animationEndHandler = null;\n this.element = this.elementRef.nativeElement;\n this.element.style.position = 'relative';\n //\n this.uploadService.onFileUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFileUploadComplete.emit(c);\n });\n this.uploadService.onFilesUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFilesUploadComplete.emit(c);\n });\n //\n setTimeout(() => {\n const browseHandlers = this.element.querySelectorAll('[data-ax-uploader-browse-handle=\"true\"]');\n if (browseHandlers.length <= 0 && !this.disableBrowse()) {\n this.element.addEventListener('click', this.browser.bind(this), true);\n }\n });\n if (!this.disableDragDrop()) {\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', (e) => this.removeZone(e), true);\n }\n }\n /**\n * Cleans up event listeners when the directive is destroyed.\n */\n ngOnDestroy() {\n this.element.removeEventListener('click', this.browser.bind(this));\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n /**\n * Handles drag enter events to show the upload overlay.\n * @private\n */\n async handleDragEnter(event) {\n if (this.disableDragDrop())\n return;\n this.dragOverEmitted.set(false); // Reset flag when entering\n this.dragDepth.update((depth) => depth + 1); // Increment depth counter\n // Only create overlay on first enter (when depth is 1)\n if (this.dragDepth() === 1) {\n // Cancel any pending exit animation\n this.cancelExitAnimation();\n await this.createZone();\n this.dragEnter.emit(event);\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n /**\n * Handles drop events to process dropped files.\n * @private\n */\n async handleOnDrop(event) {\n if (this.disableDragDrop())\n return;\n event.preventDefault();\n event.stopImmediatePropagation();\n // Reset drag depth on drop\n this.dragDepth.set(0);\n if (event.dataTransfer?.files && event.dataTransfer.files.length > 0) {\n const files = Array.from(event.dataTransfer.files);\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({ event, files });\n // Also emit the old onChanged event for backward compatibility\n const requests = await this.uploadService.add(event.dataTransfer.files);\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n }\n this.removeZone();\n this.cdr.detectChanges();\n }\n /**\n * Handles drag over events to allow dropping.\n * @private\n */\n handleDragOver(event) {\n if (this.disableDragDrop())\n return;\n // Only emit dragOver once per drag session to avoid spam\n if (!this.dragOverEmitted()) {\n this.dragOverEmitted.set(true);\n this.dragOver.emit(event);\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n /**\n * Creates the visual overlay for drag and drop feedback.\n * @private\n */\n async createZone() {\n if (isPlatformBrowser(this.platformID)) {\n // Check if overlay already exists (might be exiting)\n let existingOverlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n // Verify the overlay is actually in the DOM (not removed after animation)\n if (existingOverlay && existingOverlay.parentNode === this.element) {\n // Remove exiting class to cancel exit animation and show overlay again\n existingOverlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up any pending animation handler\n if (this.animationEndHandler) {\n existingOverlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n // Reset overlayElement reference if it was cleared\n if (!this.overlayElement && existingOverlay) {\n this.overlayElement = existingOverlay;\n }\n return;\n }\n else if (existingOverlay && existingOverlay.parentNode !== this.element) {\n // Overlay exists but is not in the DOM, clear the reference\n this.overlayElement = null;\n existingOverlay = null;\n }\n // Check if custom template is provided\n const template = this.overlayTemplate();\n if (template) {\n // Create container for template\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n // Create embedded view from template (will be inserted at directive anchor)\n this.viewContainerRef.clear();\n this.templateViewRef = this.viewContainerRef.createEmbeddedView(template);\n this.templateViewRef.detectChanges();\n // Get root nodes and move them to overlay element\n const rootNodes = this.templateViewRef.rootNodes;\n for (const node of rootNodes) {\n // Remove from current location if it has a parent\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n this.overlayElement.appendChild(node);\n }\n // Detach the view since we've moved the nodes\n this.templateViewRef.detach();\n this.element.appendChild(this.overlayElement);\n this.cdr.detectChanges();\n return;\n }\n // Use default overlay\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n const icon = this.document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n const text = this.document.createElement('span');\n text.innerText = await this.translateService.translateAsync('@acorex:uploader.zone.text');\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n this.element.appendChild(this.overlayElement);\n }\n }\n /**\n * Cancels any pending exit animation and cleans up handlers.\n * @private\n */\n cancelExitAnimation() {\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n if (overlay && this.animationEndHandler) {\n // Remove exiting class to cancel animation\n overlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up the handler\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n }\n }\n /**\n * Removes the visual overlay for drag and drop feedback.\n * @private\n */\n removeZone(event) {\n if (this.disableDragDrop())\n return;\n this.dragDepth.update((depth) => Math.max(0, depth - 1)); // Decrement depth counter, ensure non-negative\n // Only remove overlay when we've truly left the drop zone (depth reaches 0)\n if (this.dragDepth() <= 0) {\n this.dragDepth.set(0); // Ensure it's exactly 0\n this.dragOverEmitted.set(false); // Reset flag when leaving\n if (event) {\n this.dragLeave.emit(event);\n }\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n if (overlay) {\n // Clean up any existing handler first\n if (this.animationEndHandler) {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n }\n // Add exiting class to trigger CSS animation\n overlay.classList.add('ax-uploader-overlay-exiting');\n // Wait for CSS animation to complete\n this.animationEndHandler = (e) => {\n if (e.target === overlay && e.animationName === 'fadeOutScale') {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n if (overlay.parentNode === this.element) {\n this.element.removeChild(overlay);\n }\n if (this.overlayElement && this.overlayElement.parentNode) {\n this.overlayElement.remove();\n }\n // Clear the overlay element reference\n this.overlayElement = null;\n // Remove custom template view if it exists\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n };\n overlay.addEventListener('animationend', this.animationEndHandler);\n }\n else {\n // If overlay doesn't exist, just clean up template view\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n }\n }\n }\n /**\n * Opens the file browser dialog and processes selected files.\n * @returns Promise that resolves when files are processed\n */\n async browser() {\n if (this.disableBrowse())\n return;\n const files = await this.uploadService.browse({ accept: this.accept() ?? undefined, multiple: this.multiple() });\n if (files.length > 0) {\n // Create a synthetic event for consistency\n const syntheticEvent = new Event('change');\n const target = Object.create(EventTarget.prototype);\n target.files = files.map((r) => r.file);\n Object.defineProperty(syntheticEvent, 'target', { value: target, writable: false });\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({\n event: syntheticEvent,\n files: files.map((r) => r.file),\n });\n // Also emit the old onChanged event for backward compatibility\n this.onChanged.emit({\n component: this,\n requests: files,\n isUserInteraction: true,\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderZoneDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.15\", type: AXUploaderZoneDirective, isStandalone: true, selector: \"[axUploaderZone]\", inputs: { multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: \"accept\", publicName: \"accept\", isSignal: true, isRequired: false, transformFunction: null }, overlayTemplate: { classPropertyName: \"overlayTemplate\", publicName: \"overlayTemplate\", isSignal: true, isRequired: false, transformFunction: null }, disableBrowse: { classPropertyName: \"disableBrowse\", publicName: \"disableBrowse\", isSignal: true, isRequired: false, transformFunction: null }, disableDragDrop: { classPropertyName: \"disableDragDrop\", publicName: \"disableDragDrop\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileChange: \"fileChange\", onChanged: \"onChanged\", dragEnter: \"dragEnter\", dragLeave: \"dragLeave\", dragOver: \"dragOver\", onFileUploadComplete: \"onFileUploadComplete\", onFilesUploadComplete: \"onFilesUploadComplete\" }, host: { classAttribute: \"ax-drop-zone\" }, providers: [AXUnsubscriber], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderZoneDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axUploaderZone]',\n providers: [AXUnsubscriber],\n host: {\n class: 'ax-drop-zone',\n },\n }]\n }], ctorParameters: () => [], propDecorators: { multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: \"multiple\", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: \"accept\", required: false }] }], overlayTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"overlayTemplate\", required: false }] }], disableBrowse: [{ type: i0.Input, args: [{ isSignal: true, alias: \"disableBrowse\", required: false }] }], disableDragDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: \"disableDragDrop\", required: false }] }], fileChange: [{ type: i0.Output, args: [\"fileChange\"] }], onChanged: [{ type: i0.Output, args: [\"onChanged\"] }], dragEnter: [{ type: i0.Output, args: [\"dragEnter\"] }], dragLeave: [{ type: i0.Output, args: [\"dragLeave\"] }], dragOver: [{ type: i0.Output, args: [\"dragOver\"] }], onFileUploadComplete: [{ type: i0.Output, args: [\"onFileUploadComplete\"] }], onFilesUploadComplete: [{ type: i0.Output, args: [\"onFilesUploadComplete\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItem9uZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvdXBsb2FkZXIvc3JjL2xpYi91cGxvYWRlci16b25lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFHVixXQUFXLEVBRVgsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdkQ7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUE4SmxDOztPQUVHO0lBQ0g7UUFoS0E7OztXQUdHO1FBQ0ssZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4Qzs7O1dBR0c7UUFDSyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVwRDs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksb0RBQUMsQ0FBQztRQUV2Qjs7O1dBR0c7UUFDSCxXQUFNLEdBQUcsS0FBSyxDQUFnQixJQUFJLGtEQUFDLENBQUM7UUFFcEM7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUsscUVBQXdCLENBQUM7UUFFaEQ7OztXQUdHO1FBQ0gsa0JBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyx5REFBQyxDQUFDO1FBRTdCOzs7V0FHRztRQUNILG9CQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssMkRBQUMsQ0FBQztRQUUvQjs7O1dBR0c7UUFDSyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFeEM7OztXQUdHO1FBQ0ssYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQzs7O1dBR0c7UUFDSyxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXpDOzs7V0FHRztRQUNLLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbEQ7OztXQUdHO1FBQ0ssaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUM7OztXQUdHO1FBQ0sscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFReEQ7OztXQUdHO1FBQ0ssb0JBQWUsR0FBb0MsSUFBSSxDQUFDO1FBRWhFOzs7V0FHRztRQUNILGVBQVUsR0FBRyxNQUFNLEVBQW1DLENBQUM7UUFFdkQ7OztXQUdHO1FBQ0gsY0FBUyxHQUFHLE1BQU0sRUFBMEIsQ0FBQztRQUU3Qzs7V0FFRztRQUNILGNBQVMsR0FBRyxNQUFNLEVBQWEsQ0FBQztRQUVoQzs7V0FFRztRQUNILGNBQVMsR0FBRyxNQUFNLEVBQWEsQ0FBQztRQUVoQzs7V0FFRztRQUNILGFBQVEsR0FBRyxNQUFNLEVBQWEsQ0FBQztRQUUvQjs7V0FFRztRQUNILHlCQUFvQixHQUFHLE1BQU0sRUFBK0IsQ0FBQztRQUU3RDs7V0FFRztRQUNILDBCQUFxQixHQUFHLE1BQU0sRUFBZ0MsQ0FBQztRQUUvRDs7O1dBR0c7UUFDSCxlQUFVLEdBQUcsMkJBQTJCLENBQUM7UUFFekM7OztXQUdHO1FBQ0gsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO1FBRTdDOzs7V0FHRztRQUNLLG9CQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssMkRBQUMsQ0FBQztRQUV4Qzs7OztXQUlHO1FBQ0ssY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLHFEQUFDLENBQUM7UUFFOUI7OztXQUdHO1FBQ0ssd0JBQW1CLEdBQXlDLElBQUksQ0FBQztRQU12RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNEIsQ0FBQztRQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBRXpDLEVBQUU7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRTtRQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDaEcsSUFBSSxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBYyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0YsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBZ0I7UUFDNUMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtRQUM1RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1FBRXZFLHVEQUF1RDtRQUN2RCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFnQjtRQUN6QyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFBRSxPQUFPO1FBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVqQywyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEIsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRW5ELGtEQUFrRDtZQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBRXZDLCtEQUErRDtZQUMvRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFFBQVE7Z0JBQ1IsaUJBQWlCLEVBQUUsSUFBSTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxLQUFnQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFBRSxPQUFPO1FBQ25DLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssS0FBSyxDQUFDLFVBQVU7UUFDdEIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxxREFBcUQ7WUFDckQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBRXZHLDBFQUEwRTtZQUMxRSxJQUFJLGVBQWUsSUFBSSxlQUFlLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkUsdUVBQXVFO2dCQUN2RSxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUNoRSx5Q0FBeUM7Z0JBQ3pDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7b0JBQzdCLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQzlFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7Z0JBQ2xDLENBQUM7Z0JBQ0QsbURBQW1EO2dCQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFpQyxDQUFDO2dCQUMxRCxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO2lCQUFNLElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMxRSw0REFBNEQ7Z0JBQzVELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLENBQUM7WUFFRCx1Q0FBdUM7WUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsZ0NBQWdDO2dCQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLDJCQUEyQixDQUFDO2dCQUVyRCw0RUFBNEU7Z0JBQzVFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBRXJDLGtEQUFrRDtnQkFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2pELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQzdCLGtEQUFrRDtvQkFDbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQyxDQUFDO29CQUNELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO2dCQUVELDhDQUE4QztnQkFDOUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFFOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixPQUFPO1lBQ1QsQ0FBQztZQUVELHNCQUFzQjtZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRywyQkFBMkIsQ0FBQztZQUVyRCxNQUFNLElBQUksR0FBb0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFFaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUUxRixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7WUFFakcsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3hDLDJDQUEyQztnQkFDM0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDeEQsdUJBQXVCO2dCQUN2QixPQUFPLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFVBQVUsQ0FBQyxLQUFpQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFBRSxPQUFPO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLCtDQUErQztRQUV6Ryw0RUFBNEU7UUFDNUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7WUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7WUFFM0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBRUQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUVqRyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUNaLHNDQUFzQztvQkFDdEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzt3QkFDN0IsT0FBTyxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQkFDeEUsQ0FBQztvQkFFRCw2Q0FBNkM7b0JBQzdDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7b0JBRXJELHFDQUFxQztvQkFDckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBaUIsRUFBRSxFQUFFO3dCQUMvQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssY0FBYyxFQUFFLENBQUM7NEJBQy9ELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7NEJBQ3RFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7NEJBRWhDLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0NBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUNwQyxDQUFDOzRCQUNELElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dDQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUMvQixDQUFDOzRCQUVELHNDQUFzQzs0QkFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7NEJBRTNCLDJDQUEyQzs0QkFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0NBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQ0FDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7NEJBQzlCLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDLENBQUM7b0JBRUYsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDckUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLHdEQUF3RDtvQkFDeEQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7b0JBQzlCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUFFLE9BQU87UUFDakMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpILElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQiwyQ0FBMkM7WUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFvQyxDQUFDO1lBQ3ZGLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFcEYsa0RBQWtEO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNuQixLQUFLLEVBQUUsY0FBYztnQkFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDaEMsQ0FBQyxDQUFDO1lBRUgsK0RBQStEO1lBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRLEVBQUUsS0FBSztnQkFDZixpQkFBaUIsRUFBRSxJQUFJO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQXpjVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixnaENBTHZCLENBQUMsY0FBYyxDQUFDOzs0RkFLaEIsdUJBQXVCO2tCQVBuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxjQUFjO3FCQUN0QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBET0NVTUVOVCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyQ2hhbmdlZEV2ZW50LCBBWFVwbG9hZGVyRmlsZUNvbXBsZXRlRXZlbnQsIEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQgfSBmcm9tICcuL3VwbG9hZGVyLm1vZGVscyc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4vdXBsb2FkZXIuc2VydmljZSc7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBwcm92aWRlcyBkcmFnLWFuZC1kcm9wIGFuZCBmaWxlIHVwbG9hZCBmdW5jdGlvbmFsaXR5LlxuICogV2hlbiBhcHBsaWVkIHRvIGFuIGVsZW1lbnQsIGl0IGVuYWJsZXMgZHJhZy1hbmQtZHJvcCBmaWxlIHVwbG9hZHMgYW5kIGZpbGUgYnJvd3NpbmcuXG4gKiBAY2F0ZWdvcnkgRGlyZWN0aXZlc1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhVcGxvYWRlclpvbmVdJyxcbiAgcHJvdmlkZXJzOiBbQVhVbnN1YnNjcmliZXJdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdheC1kcm9wLXpvbmUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFVwbG9hZGVyWm9uZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCByZWZlcmVuY2UgZm9yIHRoZSBkaXJlY3RpdmUgaG9zdC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBWaWV3IGNvbnRhaW5lciByZWZlcmVuY2UgZm9yIHJlbmRlcmluZyBjdXN0b20gdGVtcGxhdGVzLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgbXVsdGlwbGUgZmlsZXMgY2FuIGJlIHNlbGVjdGVkLlxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIG11bHRpcGxlID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIEZpbGUgdHlwZXMgdGhhdCBhcmUgYWNjZXB0ZWQgZm9yIHVwbG9hZC5cbiAgICogQGRlZmF1bHRWYWx1ZSBudWxsXG4gICAqL1xuICBhY2NlcHQgPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciB0aGUgZHJhZyBvdmVybGF5LiBJZiBwcm92aWRlZCwgdGhpcyB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBvdmVybGF5LlxuICAgKi9cbiAgb3ZlcmxheVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYnJvd3NpbmcgZmlsZXMgYnkgY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBpcyBkaXNhYmxlZC5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgZGlzYWJsZUJyb3dzZSA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogV2hldGhlciBkcmFnIGFuZCBkcm9wIGZ1bmN0aW9uYWxpdHkgaXMgZGlzYWJsZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIGRpc2FibGVEcmFnRHJvcCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogQ2hhbmdlIGRldGVjdG9yIHJlZmVyZW5jZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudCByZWZlcmVuY2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSBJRCBmb3IgYnJvd3NlciBkZXRlY3Rpb24uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBzZXJ2aWNlIGluc3RhbmNlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHVwbG9hZFNlcnZpY2UgPSBpbmplY3QoQVhVcGxvYWRlclNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZXIgc2VydmljZSBpbnN0YW5jZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGlvbiBzZXJ2aWNlIGluc3RhbmNlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdCBlbGVtZW50LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBFbWJlZGRlZCB2aWV3IHJlZmVyZW5jZSBmb3IgY3VzdG9tIHRlbXBsYXRlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHRlbXBsYXRlVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQgb3IgZHJvcHBlZCAobGlrZSBIVE1MIGZpbGUgaW5wdXQpLlxuICAgKiBFbWl0cyBhbiBldmVudCB3aXRoIGZpbGVzIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHNlbGVjdGVkIGZpbGVzLlxuICAgKi9cbiAgZmlsZUNoYW5nZSA9IG91dHB1dDx7IGV2ZW50OiBFdmVudDsgZmlsZXM6IEZpbGVbXSB9PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gZmlsZXMgYXJlIGNoYW5nZWQgKGFkZGVkLCByZW1vdmVkLCBldGMuKS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGZpbGVDaGFuZ2UgaW5zdGVhZCBmb3Igc2ltcGxlciBmaWxlIGlucHV0LWxpa2UgYmVoYXZpb3JcbiAgICovXG4gIG9uQ2hhbmdlZCA9IG91dHB1dDxBWFVwbG9hZGVyQ2hhbmdlZEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGRyYWcgZW50ZXIgZXZlbnQuXG4gICAqL1xuICBkcmFnRW50ZXIgPSBvdXRwdXQ8RHJhZ0V2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGRyYWcgbGVhdmUgZXZlbnQuXG4gICAqL1xuICBkcmFnTGVhdmUgPSBvdXRwdXQ8RHJhZ0V2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGRyYWcgb3ZlciBldmVudC5cbiAgICovXG4gIGRyYWdPdmVyID0gb3V0cHV0PERyYWdFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgc2luZ2xlIGZpbGUgdXBsb2FkIGlzIGNvbXBsZXRlZC5cbiAgICovXG4gIG9uRmlsZVVwbG9hZENvbXBsZXRlID0gb3V0cHV0PEFYVXBsb2FkZXJGaWxlQ29tcGxldGVFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFsbCBmaWxlcyB1cGxvYWQgaXMgY29tcGxldGVkLlxuICAgKi9cbiAgb25GaWxlc1VwbG9hZENvbXBsZXRlID0gb3V0cHV0PEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgc3RhdGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHN0YXRlQ2xhc3MgPSAnYXgtdXBsb2FkZXItb3ZlcmxheS1zdGF0ZSc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVybGF5IGVsZW1lbnQgZm9yIGRyYWcgYW5kIGRyb3AgdmlzdWFsIGZlZWRiYWNrLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvdmVybGF5RWxlbWVudDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRmxhZyB0byB0cmFjayBpZiBkcmFnT3ZlciBoYXMgYmVlbiBlbWl0dGVkIGZvciB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZHJhZ092ZXJFbWl0dGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogQ291bnRlciB0byB0cmFjayBkcmFnIGVudGVyL2xlYXZlIGRlcHRoIHRvIHByZXZlbnQgZmFsc2UgZHJhZ2xlYXZlIGV2ZW50cy5cbiAgICogV2hlbiBtb3ZpbmcgZnJvbSBwYXJlbnQgdG8gY2hpbGQsIGRyYWdsZWF2ZSBmaXJlcyBldmVuIHRob3VnaCB3ZSdyZSBzdGlsbCBpbnNpZGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZHJhZ0RlcHRoID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiBBbmltYXRpb24gZW5kIGhhbmRsZXIgZm9yIGNsZWFudXAuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgYW5pbWF0aW9uRW5kSGFuZGxlcjogKChlOiBBbmltYXRpb25FdmVudCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRpcmVjdGl2ZSB3aXRoIGV2ZW50IGxpc3RlbmVycyBhbmQgc2VydmljZSBzdWJzY3JpcHRpb25zLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5lbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblxuICAgIC8vXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLm9uRmlsZVVwbG9hZENvbXBsZXRlLnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZVVwbG9hZENvbXBsZXRlLmVtaXQoYyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwbG9hZFNlcnZpY2Uub25GaWxlc1VwbG9hZENvbXBsZXRlLnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZXNVcGxvYWRDb21wbGV0ZS5lbWl0KGMpO1xuICAgIH0pO1xuICAgIC8vXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBicm93c2VIYW5kbGVycyA9IHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1heC11cGxvYWRlci1icm93c2UtaGFuZGxlPVwidHJ1ZVwiXScpO1xuICAgICAgaWYgKGJyb3dzZUhhbmRsZXJzLmxlbmd0aCA8PSAwICYmICF0aGlzLmRpc2FibGVCcm93c2UoKSkge1xuICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmJyb3dzZXIuYmluZCh0aGlzKSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZURyYWdEcm9wKCkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCB0aGlzLmhhbmRsZURyYWdFbnRlci5iaW5kKHRoaXMpLCB0cnVlKTtcbiAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlRHJhZ092ZXIuYmluZCh0aGlzKSwgdHJ1ZSk7XG4gICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMuaGFuZGxlT25Ecm9wLmJpbmQodGhpcyksIHRydWUpO1xuICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIChlKSA9PiB0aGlzLnJlbW92ZVpvbmUoZSBhcyBEcmFnRXZlbnQpLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW5zIHVwIGV2ZW50IGxpc3RlbmVycyB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5icm93c2VyLmJpbmQodGhpcykpO1xuXG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdlbnRlcicsIHRoaXMuaGFuZGxlRHJhZ0VudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVPbkRyb3AuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlci5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5yZW1vdmVab25lLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJhZyBlbnRlciBldmVudHMgdG8gc2hvdyB0aGUgdXBsb2FkIG92ZXJsYXkuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZURyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZURyYWdEcm9wKCkpIHJldHVybjtcbiAgICB0aGlzLmRyYWdPdmVyRW1pdHRlZC5zZXQoZmFsc2UpOyAvLyBSZXNldCBmbGFnIHdoZW4gZW50ZXJpbmdcbiAgICB0aGlzLmRyYWdEZXB0aC51cGRhdGUoKGRlcHRoKSA9PiBkZXB0aCArIDEpOyAvLyBJbmNyZW1lbnQgZGVwdGggY291bnRlclxuXG4gICAgLy8gT25seSBjcmVhdGUgb3ZlcmxheSBvbiBmaXJzdCBlbnRlciAod2hlbiBkZXB0aCBpcyAxKVxuICAgIGlmICh0aGlzLmRyYWdEZXB0aCgpID09PSAxKSB7XG4gICAgICAvLyBDYW5jZWwgYW55IHBlbmRpbmcgZXhpdCBhbmltYXRpb25cbiAgICAgIHRoaXMuY2FuY2VsRXhpdEFuaW1hdGlvbigpO1xuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVab25lKCk7XG4gICAgICB0aGlzLmRyYWdFbnRlci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJvcCBldmVudHMgdG8gcHJvY2VzcyBkcm9wcGVkIGZpbGVzLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVEcmFnRHJvcCgpKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgIC8vIFJlc2V0IGRyYWcgZGVwdGggb24gZHJvcFxuICAgIHRoaXMuZHJhZ0RlcHRoLnNldCgwKTtcblxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcblxuICAgICAgLy8gRW1pdCBzaW1wbGUgZmlsZSBjaGFuZ2UgZXZlbnQgKGxpa2UgSFRNTCBpbnB1dClcbiAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHsgZXZlbnQsIGZpbGVzIH0pO1xuXG4gICAgICAvLyBBbHNvIGVtaXQgdGhlIG9sZCBvbkNoYW5nZWQgZXZlbnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgIGNvbnN0IHJlcXVlc3RzID0gYXdhaXQgdGhpcy51cGxvYWRTZXJ2aWNlLmFkZChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgcmVxdWVzdHMsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVab25lKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJhZyBvdmVyIGV2ZW50cyB0byBhbGxvdyBkcm9wcGluZy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVEcmFnRHJvcCgpKSByZXR1cm47XG4gICAgLy8gT25seSBlbWl0IGRyYWdPdmVyIG9uY2UgcGVyIGRyYWcgc2Vzc2lvbiB0byBhdm9pZCBzcGFtXG4gICAgaWYgKCF0aGlzLmRyYWdPdmVyRW1pdHRlZCgpKSB7XG4gICAgICB0aGlzLmRyYWdPdmVyRW1pdHRlZC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmRyYWdPdmVyLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHZpc3VhbCBvdmVybGF5IGZvciBkcmFnIGFuZCBkcm9wIGZlZWRiYWNrLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVab25lKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICAvLyBDaGVjayBpZiBvdmVybGF5IGFscmVhZHkgZXhpc3RzIChtaWdodCBiZSBleGl0aW5nKVxuICAgICAgbGV0IGV4aXN0aW5nT3ZlcmxheSA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F4LXVwbG9hZGVyLW92ZXJsYXktc3RhdGUnKSB8fCB0aGlzLm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAvLyBWZXJpZnkgdGhlIG92ZXJsYXkgaXMgYWN0dWFsbHkgaW4gdGhlIERPTSAobm90IHJlbW92ZWQgYWZ0ZXIgYW5pbWF0aW9uKVxuICAgICAgaWYgKGV4aXN0aW5nT3ZlcmxheSAmJiBleGlzdGluZ092ZXJsYXkucGFyZW50Tm9kZSA9PT0gdGhpcy5lbGVtZW50KSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGl0aW5nIGNsYXNzIHRvIGNhbmNlbCBleGl0IGFuaW1hdGlvbiBhbmQgc2hvdyBvdmVybGF5IGFnYWluXG4gICAgICAgIGV4aXN0aW5nT3ZlcmxheS5jbGFzc0xpc3QucmVtb3ZlKCdheC11cGxvYWRlci1vdmVybGF5LWV4aXRpbmcnKTtcbiAgICAgICAgLy8gQ2xlYW4gdXAgYW55IHBlbmRpbmcgYW5pbWF0aW9uIGhhbmRsZXJcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uRW5kSGFuZGxlcikge1xuICAgICAgICAgIGV4aXN0aW5nT3ZlcmxheS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIpO1xuICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRW5kSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVzZXQgb3ZlcmxheUVsZW1lbnQgcmVmZXJlbmNlIGlmIGl0IHdhcyBjbGVhcmVkXG4gICAgICAgIGlmICghdGhpcy5vdmVybGF5RWxlbWVudCAmJiBleGlzdGluZ092ZXJsYXkpIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlFbGVtZW50ID0gZXhpc3RpbmdPdmVybGF5IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoZXhpc3RpbmdPdmVybGF5ICYmIGV4aXN0aW5nT3ZlcmxheS5wYXJlbnROb2RlICE9PSB0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgLy8gT3ZlcmxheSBleGlzdHMgYnV0IGlzIG5vdCBpbiB0aGUgRE9NLCBjbGVhciB0aGUgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQgPSBudWxsO1xuICAgICAgICBleGlzdGluZ092ZXJsYXkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBjdXN0b20gdGVtcGxhdGUgaXMgcHJvdmlkZWRcbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5vdmVybGF5VGVtcGxhdGUoKTtcbiAgICAgIGlmICh0ZW1wbGF0ZSkge1xuICAgICAgICAvLyBDcmVhdGUgY29udGFpbmVyIGZvciB0ZW1wbGF0ZVxuICAgICAgICB0aGlzLm92ZXJsYXlFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJywgJy1heC16LTEnKTtcbiAgICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5pZCA9ICdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJztcblxuICAgICAgICAvLyBDcmVhdGUgZW1iZWRkZWQgdmlldyBmcm9tIHRlbXBsYXRlICh3aWxsIGJlIGluc2VydGVkIGF0IGRpcmVjdGl2ZSBhbmNob3IpXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgLy8gR2V0IHJvb3Qgbm9kZXMgYW5kIG1vdmUgdGhlbSB0byBvdmVybGF5IGVsZW1lbnRcbiAgICAgICAgY29uc3Qgcm9vdE5vZGVzID0gdGhpcy50ZW1wbGF0ZVZpZXdSZWYucm9vdE5vZGVzO1xuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygcm9vdE5vZGVzKSB7XG4gICAgICAgICAgLy8gUmVtb3ZlIGZyb20gY3VycmVudCBsb2NhdGlvbiBpZiBpdCBoYXMgYSBwYXJlbnRcbiAgICAgICAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQuYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZXRhY2ggdGhlIHZpZXcgc2luY2Ugd2UndmUgbW92ZWQgdGhlIG5vZGVzXG4gICAgICAgIHRoaXMudGVtcGxhdGVWaWV3UmVmLmRldGFjaCgpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLm92ZXJsYXlFbGVtZW50KTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFVzZSBkZWZhdWx0IG92ZXJsYXlcbiAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJywgJy1heC16LTEnKTtcbiAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQuaWQgPSAnYXgtdXBsb2FkZXItb3ZlcmxheS1zdGF0ZSc7XG5cbiAgICAgIGNvbnN0IGljb246IEhUTUxTcGFuRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgaWNvbi5jbGFzc0xpc3QuYWRkKCdheC1pY29uJywgJ2F4LWljb24tdXBsb2FkJyk7XG5cbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIHRleHQuaW5uZXJUZXh0ID0gYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OnVwbG9hZGVyLnpvbmUudGV4dCcpO1xuXG4gICAgICB0aGlzLm92ZXJsYXlFbGVtZW50LmFwcGVuZENoaWxkKGljb24pO1xuICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0KTtcblxuICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGFueSBwZW5kaW5nIGV4aXQgYW5pbWF0aW9uIGFuZCBjbGVhbnMgdXAgaGFuZGxlcnMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNhbmNlbEV4aXRBbmltYXRpb24oKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJykgfHwgdGhpcy5vdmVybGF5RWxlbWVudDtcblxuICAgICAgaWYgKG92ZXJsYXkgJiYgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGl0aW5nIGNsYXNzIHRvIGNhbmNlbCBhbmltYXRpb25cbiAgICAgICAgb3ZlcmxheS5jbGFzc0xpc3QucmVtb3ZlKCdheC11cGxvYWRlci1vdmVybGF5LWV4aXRpbmcnKTtcbiAgICAgICAgLy8gQ2xlYW4gdXAgdGhlIGhhbmRsZXJcbiAgICAgICAgb3ZlcmxheS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSB2aXN1YWwgb3ZlcmxheSBmb3IgZHJhZyBhbmQgZHJvcCBmZWVkYmFjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlWm9uZShldmVudD86IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVEcmFnRHJvcCgpKSByZXR1cm47XG4gICAgdGhpcy5kcmFnRGVwdGgudXBkYXRlKChkZXB0aCkgPT4gTWF0aC5tYXgoMCwgZGVwdGggLSAxKSk7IC8vIERlY3JlbWVudCBkZXB0aCBjb3VudGVyLCBlbnN1cmUgbm9uLW5lZ2F0aXZlXG5cbiAgICAvLyBPbmx5IHJlbW92ZSBvdmVybGF5IHdoZW4gd2UndmUgdHJ1bHkgbGVmdCB0aGUgZHJvcCB6b25lIChkZXB0aCByZWFjaGVzIDApXG4gICAgaWYgKHRoaXMuZHJhZ0RlcHRoKCkgPD0gMCkge1xuICAgICAgdGhpcy5kcmFnRGVwdGguc2V0KDApOyAvLyBFbnN1cmUgaXQncyBleGFjdGx5IDBcbiAgICAgIHRoaXMuZHJhZ092ZXJFbWl0dGVkLnNldChmYWxzZSk7IC8vIFJlc2V0IGZsYWcgd2hlbiBsZWF2aW5nXG5cbiAgICAgIGlmIChldmVudCkge1xuICAgICAgICB0aGlzLmRyYWdMZWF2ZS5lbWl0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F4LXVwbG9hZGVyLW92ZXJsYXktc3RhdGUnKSB8fCB0aGlzLm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAgIGlmIChvdmVybGF5KSB7XG4gICAgICAgICAgLy8gQ2xlYW4gdXAgYW55IGV4aXN0aW5nIGhhbmRsZXIgZmlyc3RcbiAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKSB7XG4gICAgICAgICAgICBvdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIHRoaXMuYW5pbWF0aW9uRW5kSGFuZGxlcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQWRkIGV4aXRpbmcgY2xhc3MgdG8gdHJpZ2dlciBDU1MgYW5pbWF0aW9uXG4gICAgICAgICAgb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWRlci1vdmVybGF5LWV4aXRpbmcnKTtcblxuICAgICAgICAgIC8vIFdhaXQgZm9yIENTUyBhbmltYXRpb24gdG8gY29tcGxldGVcbiAgICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIgPSAoZTogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChlLnRhcmdldCA9PT0gb3ZlcmxheSAmJiBlLmFuaW1hdGlvbk5hbWUgPT09ICdmYWRlT3V0U2NhbGUnKSB7XG4gICAgICAgICAgICAgIG92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKTtcbiAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyID0gbnVsbDtcblxuICAgICAgICAgICAgICBpZiAob3ZlcmxheS5wYXJlbnROb2RlID09PSB0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQob3ZlcmxheSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheUVsZW1lbnQgJiYgdGhpcy5vdmVybGF5RWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIENsZWFyIHRoZSBvdmVybGF5IGVsZW1lbnQgcmVmZXJlbmNlXG4gICAgICAgICAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQgPSBudWxsO1xuXG4gICAgICAgICAgICAgIC8vIFJlbW92ZSBjdXN0b20gdGVtcGxhdGUgdmlldyBpZiBpdCBleGlzdHNcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGVtcGxhdGVWaWV3UmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVZpZXdSZWYgPSBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBvdmVybGF5IGRvZXNuJ3QgZXhpc3QsIGp1c3QgY2xlYW4gdXAgdGVtcGxhdGUgdmlld1xuICAgICAgICAgIGlmICh0aGlzLnRlbXBsYXRlVmlld1JlZikge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZiA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBmaWxlIGJyb3dzZXIgZGlhbG9nIGFuZCBwcm9jZXNzZXMgc2VsZWN0ZWQgZmlsZXMuXG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGZpbGVzIGFyZSBwcm9jZXNzZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBicm93c2VyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVCcm93c2UoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy51cGxvYWRTZXJ2aWNlLmJyb3dzZSh7IGFjY2VwdDogdGhpcy5hY2NlcHQoKSA/PyB1bmRlZmluZWQsIG11bHRpcGxlOiB0aGlzLm11bHRpcGxlKCkgfSk7XG5cbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gQ3JlYXRlIGEgc3ludGhldGljIGV2ZW50IGZvciBjb25zaXN0ZW5jeVxuICAgICAgY29uc3Qgc3ludGhldGljRXZlbnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScpO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gT2JqZWN0LmNyZWF0ZShFdmVudFRhcmdldC5wcm90b3R5cGUpIGFzIEV2ZW50VGFyZ2V0ICYgeyBmaWxlczogRmlsZVtdIH07XG4gICAgICB0YXJnZXQuZmlsZXMgPSBmaWxlcy5tYXAoKHIpID0+IHIuZmlsZSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3ludGhldGljRXZlbnQsICd0YXJnZXQnLCB7IHZhbHVlOiB0YXJnZXQsIHdyaXRhYmxlOiBmYWxzZSB9KTtcblxuICAgICAgLy8gRW1pdCBzaW1wbGUgZmlsZSBjaGFuZ2UgZXZlbnQgKGxpa2UgSFRNTCBpbnB1dClcbiAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgZXZlbnQ6IHN5bnRoZXRpY0V2ZW50LFxuICAgICAgICBmaWxlczogZmlsZXMubWFwKChyKSA9PiByLmZpbGUpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFsc28gZW1pdCB0aGUgb2xkIG9uQ2hhbmdlZCBldmVudCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgcmVxdWVzdHM6IGZpbGVzLFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, inject } from '@angular/core';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\nimport * as i0 from \"@angular/core\";\n/**\n * A directive that provides browse functionality for file uploads.\n * When applied to an element, clicking it will trigger the file browser dialog.\n * @category Directives\n */\nexport class AXUploaderBrowseDirective {\n constructor() {\n /**\n * The uploader zone directive instance.\n * @ignore\n */\n this.uploaderZone = inject(AXUploaderZoneDirective);\n /**\n * The element reference for the directive host.\n * @ignore\n */\n this.elementRef = inject((ElementRef));\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n this.platformID = inject(PLATFORM_ID);\n }\n /**\n * Initializes the directive by adding click event listener and data attribute.\n */\n ngOnInit() {\n if (isPlatformBrowser(this.platformID) && this.elementRef?.nativeElement) {\n const element = this.elementRef.nativeElement;\n element.addEventListener('click', this.handleClick.bind(this));\n // Use setAttribute for SSR compatibility\n if (element.dataset) {\n element.dataset['axUploaderBrowseHandle'] = 'true';\n }\n else {\n element.setAttribute('data-ax-uploader-browse-handle', 'true');\n }\n }\n }\n /**\n * Cleans up the directive by removing event listeners.\n */\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformID) && this.elementRef.nativeElement) {\n this.elementRef.nativeElement.removeEventListener('click', this.handleClick.bind(this));\n }\n }\n /**\n * Handles the click event to trigger file browser.\n * @private\n */\n async handleClick() {\n await this.uploaderZone.browser();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderBrowseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXUploaderBrowseDirective, isStandalone: true, selector: \"[axUploaderBrowseHandle]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderBrowseDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[axUploaderBrowseHandle]' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItYnJvd3NlLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvdXBsb2FkZXIvc3JjL2xpYi91cGxvYWRlci1icm93c2UtaGFuZGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFcEU7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFEdEM7UUFFRTs7O1dBR0c7UUFDSyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXZEOzs7V0FHRztRQUNLLGVBQVUsR0FBNEIsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFOUU7OztXQUdHO1FBQ0ssZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQWtDMUM7SUFoQ0M7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUM5QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0QseUNBQXlDO1lBQ3pDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ3JELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsWUFBWSxDQUFDLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsV0FBVztRQUN2QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQzsrR0FsRFUseUJBQXlCO21HQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBQTEFURk9STV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyWm9uZURpcmVjdGl2ZSB9IGZyb20gJy4vdXBsb2FkZXItem9uZS5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgcHJvdmlkZXMgYnJvd3NlIGZ1bmN0aW9uYWxpdHkgZm9yIGZpbGUgdXBsb2Fkcy5cbiAqIFdoZW4gYXBwbGllZCB0byBhbiBlbGVtZW50LCBjbGlja2luZyBpdCB3aWxsIHRyaWdnZXIgdGhlIGZpbGUgYnJvd3NlciBkaWFsb2cuXG4gKiBAY2F0ZWdvcnkgRGlyZWN0aXZlc1xuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbYXhVcGxvYWRlckJyb3dzZUhhbmRsZV0nIH0pXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRlckJyb3dzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSB1cGxvYWRlciB6b25lIGRpcmVjdGl2ZSBpbnN0YW5jZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB1cGxvYWRlclpvbmUgPSBpbmplY3QoQVhVcGxvYWRlclpvbmVEaXJlY3RpdmUpO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCByZWZlcmVuY2UgZm9yIHRoZSBkaXJlY3RpdmUgaG9zdC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgLyoqXG4gICAqIFBsYXRmb3JtIElEIGZvciBicm93c2VyIGRldGVjdGlvbi5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRpcmVjdGl2ZSBieSBhZGRpbmcgY2xpY2sgZXZlbnQgbGlzdGVuZXIgYW5kIGRhdGEgYXR0cmlidXRlLlxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkgJiYgdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVDbGljay5iaW5kKHRoaXMpKTtcbiAgICAgIC8vIFVzZSBzZXRBdHRyaWJ1dGUgZm9yIFNTUiBjb21wYXRpYmlsaXR5XG4gICAgICBpZiAoZWxlbWVudC5kYXRhc2V0KSB7XG4gICAgICAgIGVsZW1lbnQuZGF0YXNldFsnYXhVcGxvYWRlckJyb3dzZUhhbmRsZSddID0gJ3RydWUnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYXgtdXBsb2FkZXItYnJvd3NlLWhhbmRsZScsICd0cnVlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyB1cCB0aGUgZGlyZWN0aXZlIGJ5IHJlbW92aW5nIGV2ZW50IGxpc3RlbmVycy5cbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGNsaWNrIGV2ZW50IHRvIHRyaWdnZXIgZmlsZSBicm93c2VyLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVDbGljaygpIHtcbiAgICBhd2FpdCB0aGlzLnVwbG9hZGVyWm9uZS5icm93c2VyKCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay91cGxvYWRlci9zcmMvYWNvcmV4LWNkay11cGxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|