@acorex/components 20.8.25 → 20.8.26

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.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-image-editor.mjs","sources":["../tmp-esm2022/image-editor/lib/image-editor.service.js","../tmp-esm2022/image-editor/lib/image-editor-cropper-window/image-editor-cropper-window.component.js","../tmp-esm2022/image-editor/lib/image-editor-view/image-editor-view.component.js","../tmp-esm2022/image-editor/lib/image-editor-container/image-editor-container.component.js","../tmp-esm2022/image-editor/lib/image-editor-aspect-ratio.util.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-tool.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-highlight/image-editor-highlight.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-history/image-editor-history.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-pen/image-editor-pen.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-rotate/image-editor-rotate.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-highlight/image-editor-highlight-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-pen/image-editor-pen-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-rotate/image-editor-rotate-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-tools-bar/image-editor-tools-bar.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-tool-selector/image-editor-tool-selector.component.js","../tmp-esm2022/image-editor/lib/image-editor.module.js","../tmp-esm2022/image-editor/acorex-components-image-editor.js"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXImageEditorService {\n constructor() {\n this.activeToolState = signal(null, ...(ngDevMode ? [{ debugName: \"activeToolState\" }] : []));\n this.penColor = signal('rgb(12, 12, 12)', ...(ngDevMode ? [{ debugName: \"penColor\" }] : []));\n this.highlightColor = signal('rgb(255, 210, 48)', ...(ngDevMode ? [{ debugName: \"highlightColor\" }] : []));\n this.penWidth = signal(10, ...(ngDevMode ? [{ debugName: \"penWidth\" }] : []));\n this.highlightWidth = signal(10, ...(ngDevMode ? [{ debugName: \"highlightWidth\" }] : []));\n this.penType = signal(null, ...(ngDevMode ? [{ debugName: \"penType\" }] : []));\n this.rotate = signal({ state: 0, userInteract: false }, ...(ngDevMode ? [{ debugName: \"rotate\" }] : []));\n this.isImageLoad = signal(false, ...(ngDevMode ? [{ debugName: \"isImageLoad\" }] : []));\n this.newImage = null;\n this.initialImage = null;\n this.imageBlob = signal([], ...(ngDevMode ? [{ debugName: \"imageBlob\" }] : []));\n this.undoPressed = signal(false, ...(ngDevMode ? [{ debugName: \"undoPressed\" }] : []));\n this.redoPressed = signal(false, ...(ngDevMode ? [{ debugName: \"redoPressed\" }] : []));\n this.cropperRatio = signal(null, ...(ngDevMode ? [{ debugName: \"cropperRatio\" }] : []));\n this.cropperSize = signal(150, ...(ngDevMode ? [{ debugName: \"cropperSize\" }] : []));\n }\n toggleTool(tool) {\n if (this.activeToolState() === tool) {\n this.activeToolState.set(null);\n return;\n }\n this.activateTool(tool);\n }\n activateTool(tool) {\n this.activeToolState.set(tool);\n if (tool === 'pen' || tool === 'highlight') {\n this.penType.set(tool);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRUUsb0JBQWUsR0FBRyxNQUFNLENBQW9CLElBQUksMkRBQUMsQ0FBQztRQUNsRCxhQUFRLEdBQUcsTUFBTSxDQUEwQyxpQkFBaUIsb0RBQUMsQ0FBQztRQUM5RSxtQkFBYyxHQUFHLE1BQU0sQ0FBMEMsbUJBQW1CLDBEQUFDLENBQUM7UUFDdEYsYUFBUSxHQUFHLE1BQU0sQ0FBUyxFQUFFLG9EQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxNQUFNLENBQVMsRUFBRSwwREFBQyxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxNQUFNLENBQXNCLElBQUksbURBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGtEQUFDLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGFBQVEsR0FBNEIsSUFBSSxDQUFDO1FBQ3pDLGlCQUFZLEdBQTRCLElBQUksQ0FBQztRQUM3QyxjQUFTLEdBQUcsTUFBTSxDQUFTLEVBQUUscURBQUMsQ0FBQztRQUMvQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUEwQixJQUFJLHdEQUFDLENBQUM7UUFDckQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyx1REFBQyxDQUFDO0tBa0IzQjtJQWhCQyxVQUFVLENBQUMsSUFBdUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBdUI7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzs4R0FoQ1Usb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhJbWFnZUVkaXRvclRvb2wgPSAncGVuJyB8ICdoaWdobGlnaHQnIHwgJ2Nyb3AnIHwgJ3JvdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yU2VydmljZSB7XG4gIGFjdGl2ZVRvb2xTdGF0ZSA9IHNpZ25hbDxBWEltYWdlRWRpdG9yVG9vbD4obnVsbCk7XG4gIHBlbkNvbG9yID0gc2lnbmFsPHN0cmluZyB8IENhbnZhc0dyYWRpZW50IHwgQ2FudmFzUGF0dGVybj4oJ3JnYigxMiwgMTIsIDEyKScpO1xuICBoaWdobGlnaHRDb2xvciA9IHNpZ25hbDxzdHJpbmcgfCBDYW52YXNHcmFkaWVudCB8IENhbnZhc1BhdHRlcm4+KCdyZ2IoMjU1LCAyMTAsIDQ4KScpO1xuICBwZW5XaWR0aCA9IHNpZ25hbDxudW1iZXI+KDEwKTtcbiAgaGlnaGxpZ2h0V2lkdGggPSBzaWduYWw8bnVtYmVyPigxMCk7XG4gIHBlblR5cGUgPSBzaWduYWw8J3BlbicgfCAnaGlnaGxpZ2h0Jz4obnVsbCk7XG4gIHJvdGF0ZSA9IHNpZ25hbCh7IHN0YXRlOiAwLCB1c2VySW50ZXJhY3Q6IGZhbHNlIH0pO1xuICBpc0ltYWdlTG9hZCA9IHNpZ25hbChmYWxzZSk7XG4gIG5ld0ltYWdlOiBIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIGluaXRpYWxJbWFnZTogSFRNTEltYWdlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBpbWFnZUJsb2IgPSBzaWduYWw8QmxvYltdPihbXSk7XG4gIHVuZG9QcmVzc2VkID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVkb1ByZXNzZWQgPSBzaWduYWwoZmFsc2UpO1xuICBjcm9wcGVyUmF0aW8gPSBzaWduYWw8JzE6MScgfCAnMTY6OScgfCBzdHJpbmc+KG51bGwpO1xuICBjcm9wcGVyU2l6ZSA9IHNpZ25hbCgxNTApO1xuXG4gIHRvZ2dsZVRvb2wodG9vbDogQVhJbWFnZUVkaXRvclRvb2wpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVUb29sU3RhdGUoKSA9PT0gdG9vbCkge1xuICAgICAgdGhpcy5hY3RpdmVUb29sU3RhdGUuc2V0KG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZhdGVUb29sKHRvb2wpO1xuICB9XG5cbiAgYWN0aXZhdGVUb29sKHRvb2w6IEFYSW1hZ2VFZGl0b3JUb29sKSB7XG4gICAgdGhpcy5hY3RpdmVUb29sU3RhdGUuc2V0KHRvb2wpO1xuXG4gICAgaWYgKHRvb2wgPT09ICdwZW4nIHx8IHRvb2wgPT09ICdoaWdobGlnaHQnKSB7XG4gICAgICB0aGlzLnBlblR5cGUuc2V0KHRvb2wpO1xuICAgIH1cbiAgfVxufVxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, NgZone, PLATFORM_ID, Renderer2, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorCropperWindowComponent {\n constructor() {\n this.showGrid = input(true, ...(ngDevMode ? [{ debugName: \"showGrid\" }] : []));\n /** Base size in pixels used to calculate the initial cropper window dimensions. */\n this.size = input(...(ngDevMode ? [undefined, { debugName: \"size\" }] : []));\n this.service = inject(AXImageEditorService);\n this.ngZone = inject(NgZone);\n this.selectedHandle = signal(null, ...(ngDevMode ? [{ debugName: \"selectedHandle\" }] : []));\n this.panState = signal(false, ...(ngDevMode ? [{ debugName: \"panState\" }] : []));\n this.elementRef = inject(ElementRef);\n this.cropperWindow = viewChild('r', ...(ngDevMode ? [{ debugName: \"cropperWindow\" }] : []));\n this.currentX = signal(-45, ...(ngDevMode ? [{ debugName: \"currentX\" }] : []));\n this.currentY = signal(-45, ...(ngDevMode ? [{ debugName: \"currentY\" }] : []));\n this.prevX = signal(0, ...(ngDevMode ? [{ debugName: \"prevX\" }] : []));\n this.prevY = signal(0, ...(ngDevMode ? [{ debugName: \"prevY\" }] : []));\n this.aspectWidth = signal(0, ...(ngDevMode ? [{ debugName: \"aspectWidth\" }] : []));\n this.aspectHeight = signal(0, ...(ngDevMode ? [{ debugName: \"aspectHeight\" }] : []));\n this.isMousePressed = signal(false, ...(ngDevMode ? [{ debugName: \"isMousePressed\" }] : []));\n this.renderer = inject(Renderer2);\n this.platformID = inject(PLATFORM_ID);\n this.#eff = effect(() => {\n const host = this.elementRef.nativeElement;\n let width;\n let height;\n const scale = this.size() ?? this.service.cropperSize();\n switch (this.service.cropperRatio()) {\n case '1:1':\n width = 1;\n height = 1;\n break;\n case '16:9':\n width = 1.777777777777778;\n height = 1;\n break;\n case null:\n width = 1;\n height = 1;\n break;\n default:\n [width, height] = this.service.cropperRatio().split(':').map(Number);\n }\n if (width >= height) {\n const aspect = width / height;\n width = aspect;\n height = 1;\n this.aspectWidth.set(aspect);\n this.aspectHeight.set(1);\n }\n else {\n const aspect = height / width;\n width = 1;\n height = aspect;\n this.aspectWidth.set(1);\n this.aspectHeight.set(aspect);\n }\n host.style.width = `${width * scale}px`;\n host.style.height = `${height * scale}px`;\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n this.#init = afterNextRender(() => {\n const host = this.elementRef.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n this.mouseMoveEvent = this.renderer.listen(document, 'pointermove', this.changeSizeHandler.bind(this));\n this.mouseUpEvent = this.renderer.listen(document, 'pointerup', this.clearSelector.bind(this));\n this.mouseDownEvent = this.renderer.listen(host, 'pointerdown', this.panDown.bind(this));\n this.mouseMoveEvent2 = this.renderer.listen(host, 'pointermove', this.panMove.bind(this));\n this.mouseUpEvent2 = this.renderer.listen(host, 'pointerup', this.panUp.bind(this));\n });\n });\n this.#positionChange = effect(() => {\n this.setPosition(this.currentX(), this.currentY());\n }, ...(ngDevMode ? [{ debugName: \"#positionChange\" }] : []));\n }\n #eff;\n #init;\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformID) && this.mouseMoveEvent) {\n this.mouseMoveEvent();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseUpEvent) {\n this.mouseUpEvent();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseDownEvent) {\n this.mouseDownEvent();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseMoveEvent2) {\n this.mouseMoveEvent2();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseUpEvent2) {\n this.mouseUpEvent2();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseLeaveEvent) {\n this.mouseLeaveEvent();\n }\n }\n #positionChange;\n panMove(e) {\n if (!this.isMousePressed())\n return;\n if (this.selectedHandle())\n return;\n if (!this.panState())\n return;\n const currentX = e.clientX;\n const currentY = e.clientY;\n const deltaX = currentX - this.prevX();\n const deltaY = currentY - this.prevY();\n this.currentX.update((prev) => prev + deltaX);\n this.currentY.update((prev) => prev + deltaY);\n this.prevX.set(currentX);\n this.prevY.set(currentY);\n }\n panDown(e) {\n this.isMousePressed.set(true);\n if (this.selectedHandle())\n return;\n this.panState.set(true);\n this.prevX.set(e.clientX);\n this.prevY.set(e.clientY);\n }\n panUp() {\n this.isMousePressed.set(false);\n if (this.selectedHandle())\n return;\n this.panState.set(false);\n }\n getCropperArea() {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n setPosition(posX, posY) {\n const el = this.elementRef.nativeElement;\n el.style.transform = `translate(${posX}px, ${posY}px)`;\n }\n handleSelector(e, value) {\n if (this.panState())\n return;\n const host = this.elementRef.nativeElement;\n this.startX = e.clientX;\n this.startY = e.clientY;\n this.startWidth = host.offsetWidth;\n this.startHeight = host.offsetHeight;\n this.startLeft = host.offsetLeft;\n this.startTop = host.offsetTop;\n this.selectedHandle.set(value);\n }\n changeSizeHandler(e) {\n if (!this.isMousePressed())\n return;\n if (this.panState())\n return;\n if (!this.selectedHandle())\n return;\n const host = this.elementRef.nativeElement;\n const dy = e.clientY - this.startY;\n const dx = e.clientX - this.startX;\n let newWidth;\n let newHeight;\n const minSize = 20;\n switch (this.selectedHandle()) {\n case 'right':\n newWidth = Math.max(minSize, this.startWidth + dx);\n host.style.width = `${newWidth}px`;\n break;\n case 'top':\n newHeight = Math.max(minSize, this.startHeight - dy);\n host.style.height = `${newHeight}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n break;\n case 'left':\n newWidth = Math.max(minSize, this.startWidth - dx);\n host.style.width = `${newWidth}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n break;\n case 'bottom':\n newHeight = Math.max(minSize, this.startHeight + dy);\n host.style.height = `${newHeight}px`;\n break;\n case 'right-top':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = Math.max(minSize, this.startHeight - dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n break;\n case 'bottom-right':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = Math.max(minSize, this.startHeight + dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n }\n break;\n case 'bottom-left':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = Math.max(minSize, this.startHeight + dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n }\n break;\n case 'left-top':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = Math.max(minSize, this.startHeight - dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n break;\n }\n }\n clearSelector() {\n if (this.panState())\n return;\n this.selectedHandle.set(null);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropperWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorCropperWindowComponent, isStandalone: true, selector: \"ax-image-editor-cropper-window\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropperWindowComponent }], viewQueries: [{ propertyName: \"cropperWindow\", first: true, predicate: [\"r\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<div [style.border]=\\\"!showGrid() ? '1px dashed white' : null\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!service.cropperRatio()) {\\n <div (pointerdown)=\\\"handleSelector($event, 'right')\\\" class=\\\"ax-image-right-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'top')\\\" class=\\\"ax-image-top-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left')\\\" class=\\\"ax-image-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom')\\\" class=\\\"ax-image-bottom-handle ax-handle-shape\\\"></div>\\n }\\n\\n <div (pointerdown)=\\\"handleSelector($event, 'right-top')\\\" class=\\\"ax-image-right-top-handle ax-handle-shape\\\"></div>\\n <div\\n (pointerdown)=\\\"handleSelector($event, 'bottom-right')\\\"\\n class=\\\"ax-image-bottom-right-handle ax-handle-shape\\\"\\n ></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom-left')\\\" class=\\\"ax-image-bottom-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left-top')\\\" class=\\\"ax-image-left-top-handle ax-handle-shape\\\"></div>\\n\\n @if (showGrid()) {\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-image-editor-cropper-window{position:absolute;top:45%;left:45%;-webkit-user-select:none;user-select:none;touch-action:none}ax-image-editor-cropper-window .ax-image-cropper-window-container{position:relative;height:100%;cursor:move;outline:rgba(0,0,0,.7) solid 100vmax;display:grid;grid-template-columns:repeat(3,1fr)}ax-image-editor-cropper-window .ax-image-cropper-window-container .ax-grid-item{border:1px dashed rgba(255,255,255,.5)}ax-image-editor-cropper-window .ax-handle-shape{width:1rem;height:1rem;border:1px dashed white;background-color:gray;position:absolute;-webkit-user-select:none;user-select:none}ax-image-editor-cropper-window .ax-image-right-top-handle{top:-.5rem;right:-.5rem;cursor:ne-resize}ax-image-editor-cropper-window .ax-image-bottom-right-handle{bottom:-.5rem;right:-.5rem;cursor:se-resize}ax-image-editor-cropper-window .ax-image-right-handle{right:-.5rem;top:calc(50% - .5rem);cursor:e-resize}ax-image-editor-cropper-window .ax-image-bottom-left-handle{bottom:-.5rem;left:-.5rem;cursor:sw-resize}ax-image-editor-cropper-window .ax-image-left-top-handle{top:-.5rem;left:-.5rem;cursor:nw-resize}ax-image-editor-cropper-window .ax-image-bottom-handle{bottom:-.5rem;right:calc(50% - .5rem);cursor:s-resize}ax-image-editor-cropper-window .ax-image-left-handle{left:-.5rem;top:calc(50% - .5rem);cursor:w-resize}ax-image-editor-cropper-window .ax-image-top-handle{top:-.5rem;right:calc(50% - .5rem);cursor:n-resize}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropperWindowComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-cropper-window', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropperWindowComponent }], template: \"<div [style.border]=\\\"!showGrid() ? '1px dashed white' : null\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!service.cropperRatio()) {\\n <div (pointerdown)=\\\"handleSelector($event, 'right')\\\" class=\\\"ax-image-right-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'top')\\\" class=\\\"ax-image-top-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left')\\\" class=\\\"ax-image-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom')\\\" class=\\\"ax-image-bottom-handle ax-handle-shape\\\"></div>\\n }\\n\\n <div (pointerdown)=\\\"handleSelector($event, 'right-top')\\\" class=\\\"ax-image-right-top-handle ax-handle-shape\\\"></div>\\n <div\\n (pointerdown)=\\\"handleSelector($event, 'bottom-right')\\\"\\n class=\\\"ax-image-bottom-right-handle ax-handle-shape\\\"\\n ></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom-left')\\\" class=\\\"ax-image-bottom-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left-top')\\\" class=\\\"ax-image-left-top-handle ax-handle-shape\\\"></div>\\n\\n @if (showGrid()) {\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-image-editor-cropper-window{position:absolute;top:45%;left:45%;-webkit-user-select:none;user-select:none;touch-action:none}ax-image-editor-cropper-window .ax-image-cropper-window-container{position:relative;height:100%;cursor:move;outline:rgba(0,0,0,.7) solid 100vmax;display:grid;grid-template-columns:repeat(3,1fr)}ax-image-editor-cropper-window .ax-image-cropper-window-container .ax-grid-item{border:1px dashed rgba(255,255,255,.5)}ax-image-editor-cropper-window .ax-handle-shape{width:1rem;height:1rem;border:1px dashed white;background-color:gray;position:absolute;-webkit-user-select:none;user-select:none}ax-image-editor-cropper-window .ax-image-right-top-handle{top:-.5rem;right:-.5rem;cursor:ne-resize}ax-image-editor-cropper-window .ax-image-bottom-right-handle{bottom:-.5rem;right:-.5rem;cursor:se-resize}ax-image-editor-cropper-window .ax-image-right-handle{right:-.5rem;top:calc(50% - .5rem);cursor:e-resize}ax-image-editor-cropper-window .ax-image-bottom-left-handle{bottom:-.5rem;left:-.5rem;cursor:sw-resize}ax-image-editor-cropper-window .ax-image-left-top-handle{top:-.5rem;left:-.5rem;cursor:nw-resize}ax-image-editor-cropper-window .ax-image-bottom-handle{bottom:-.5rem;right:calc(50% - .5rem);cursor:s-resize}ax-image-editor-cropper-window .ax-image-left-handle{left:-.5rem;top:calc(50% - .5rem);cursor:w-resize}ax-image-editor-cropper-window .ax-image-top-handle{top:-.5rem;right:calc(50% - .5rem);cursor:n-resize}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93L2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRS9EOzs7R0FHRztBQVNILE1BQU0sT0FBTyxtQ0FBbUM7SUFSaEQ7UUFTVyxhQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksb0RBQUMsQ0FBQztRQUVoQyxtRkFBbUY7UUFDMUUsU0FBSSxHQUFHLEtBQUssMERBQVUsQ0FBQztRQUV0QixZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4Qixt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O2dCQUN6RSxDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQXRSVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQywrVUFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsOElDOUJ6Riw0K0NBNEJBOzsyRkRJYSxtQ0FBbUM7a0JBUi9DLFNBQVM7K0JBQ0UsZ0NBQWdDLGlCQUUzQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmw6ICcuL2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNyb3BwZXJXaW5kb3dDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc2hvd0dyaWQgPSBpbnB1dCh0cnVlKTtcblxuICAvKiogQmFzZSBzaXplIGluIHBpeGVscyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgaW5pdGlhbCBjcm9wcGVyIHdpbmRvdyBkaW1lbnNpb25zLiAqL1xuICByZWFkb25seSBzaXplID0gaW5wdXQ8bnVtYmVyPigpO1xuXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZEhhbmRsZSA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xuICBwcml2YXRlIHBhblN0YXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcm90ZWN0ZWQgY3JvcHBlcldpbmRvdyA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncicpO1xuICBwcml2YXRlIGN1cnJlbnRYID0gc2lnbmFsKC00NSk7XG4gIHByaXZhdGUgY3VycmVudFkgPSBzaWduYWwoLTQ1KTtcbiAgcHJpdmF0ZSBwcmV2WCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBwcmV2WSA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBhc3BlY3RXaWR0aCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBhc3BlY3RIZWlnaHQgPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgaXNNb3VzZVByZXNzZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSBtb3VzZU1vdmVFdmVudDogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZVVwRXZlbnQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VNb3ZlRXZlbnQyOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIG1vdXNlVXBFdmVudDI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VEb3duRXZlbnQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VMZWF2ZUV2ZW50OiAoKSA9PiB2b2lkO1xuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBsZXQgd2lkdGg6IG51bWJlcjtcbiAgICBsZXQgaGVpZ2h0OiBudW1iZXI7XG4gICAgY29uc3Qgc2NhbGUgPSB0aGlzLnNpemUoKSA/PyB0aGlzLnNlcnZpY2UuY3JvcHBlclNpemUoKTtcblxuICAgIHN3aXRjaCAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpKSB7XG4gICAgICBjYXNlICcxOjEnOlxuICAgICAgICB3aWR0aCA9IDE7XG4gICAgICAgIGhlaWdodCA9IDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMTY6OSc6XG4gICAgICAgIHdpZHRoID0gMS43Nzc3Nzc3Nzc3Nzc3Nzg7XG4gICAgICAgIGhlaWdodCA9IDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBudWxsOlxuICAgICAgICB3aWR0aCA9IDE7XG4gICAgICAgIGhlaWdodCA9IDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgW3dpZHRoLCBoZWlnaHRdID0gdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpLnNwbGl0KCc6JykubWFwKE51bWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHdpZHRoID49IGhlaWdodCkge1xuICAgICAgY29uc3QgYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgICB3aWR0aCA9IGFzcGVjdDtcbiAgICAgIGhlaWdodCA9IDE7XG4gICAgICB0aGlzLmFzcGVjdFdpZHRoLnNldChhc3BlY3QpO1xuICAgICAgdGhpcy5hc3BlY3RIZWlnaHQuc2V0KDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhc3BlY3QgPSBoZWlnaHQgLyB3aWR0aDtcbiAgICAgIHdpZHRoID0gMTtcbiAgICAgIGhlaWdodCA9IGFzcGVjdDtcbiAgICAgIHRoaXMuYXNwZWN0V2lkdGguc2V0KDEpO1xuICAgICAgdGhpcy5hc3BlY3RIZWlnaHQuc2V0KGFzcGVjdCk7XG4gICAgfVxuXG4gICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3dpZHRoICogc2NhbGV9cHhgO1xuICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0ICogc2NhbGV9cHhgO1xuICB9KTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5tb3VzZU1vdmVFdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGRvY3VtZW50LCAncG9pbnRlcm1vdmUnLCB0aGlzLmNoYW5nZVNpemVIYW5kbGVyLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tb3VzZVVwRXZlbnQgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihkb2N1bWVudCwgJ3BvaW50ZXJ1cCcsIHRoaXMuY2xlYXJTZWxlY3Rvci5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubW91c2VEb3duRXZlbnQgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihob3N0LCAncG9pbnRlcmRvd24nLCB0aGlzLnBhbkRvd24uYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50MiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVybW92ZScsIHRoaXMucGFuTW92ZS5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubW91c2VVcEV2ZW50MiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVydXAnLCB0aGlzLnBhblVwLmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTW92ZUV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VVcEV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlVXBFdmVudCgpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlRG93bkV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlRG93bkV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VNb3ZlRXZlbnQyKSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlVXBFdmVudDIpIHtcbiAgICAgIHRoaXMubW91c2VVcEV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTGVhdmVFdmVudCkge1xuICAgICAgdGhpcy5tb3VzZUxlYXZlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICAjcG9zaXRpb25DaGFuZ2UgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5jdXJyZW50WCgpLCB0aGlzLmN1cnJlbnRZKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcGFuTW92ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzTW91c2VQcmVzc2VkKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnBhblN0YXRlKCkpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRYID0gZS5jbGllbnRYO1xuICAgIGNvbnN0IGN1cnJlbnRZID0gZS5jbGllbnRZO1xuICAgIGNvbnN0IGRlbHRhWCA9IGN1cnJlbnRYIC0gdGhpcy5wcmV2WCgpO1xuICAgIGNvbnN0IGRlbHRhWSA9IGN1cnJlbnRZIC0gdGhpcy5wcmV2WSgpO1xuICAgIHRoaXMuY3VycmVudFgudXBkYXRlKChwcmV2KSA9PiBwcmV2ICsgZGVsdGFYKTtcbiAgICB0aGlzLmN1cnJlbnRZLnVwZGF0ZSgocHJldikgPT4gcHJldiArIGRlbHRhWSk7XG4gICAgdGhpcy5wcmV2WC5zZXQoY3VycmVudFgpO1xuICAgIHRoaXMucHJldlkuc2V0KGN1cnJlbnRZKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYW5Eb3duKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmlzTW91c2VQcmVzc2VkLnNldCh0cnVlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgdGhpcy5wYW5TdGF0ZS5zZXQodHJ1ZSk7XG4gICAgdGhpcy5wcmV2WC5zZXQoZS5jbGllbnRYKTtcbiAgICB0aGlzLnByZXZZLnNldChlLmNsaWVudFkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhblVwKCkge1xuICAgIHRoaXMuaXNNb3VzZVByZXNzZWQuc2V0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgdGhpcy5wYW5TdGF0ZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGdldENyb3BwZXJBcmVhKCkge1xuICAgIHJldHVybiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlcikge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3Bvc1h9cHgsICR7cG9zWX1weClgO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFg6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFk6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFdpZHRoOiBudW1iZXI7XG4gIHByaXZhdGUgc3RhcnRIZWlnaHQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydExlZnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFRvcDogbnVtYmVyO1xuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWxlY3RvcihlOiBNb3VzZUV2ZW50LCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucGFuU3RhdGUoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLnN0YXJ0WCA9IGUuY2xpZW50WDtcbiAgICB0aGlzLnN0YXJ0WSA9IGUuY2xpZW50WTtcbiAgICB0aGlzLnN0YXJ0V2lkdGggPSBob3N0Lm9mZnNldFdpZHRoO1xuICAgIHRoaXMuc3RhcnRIZWlnaHQgPSBob3N0Lm9mZnNldEhlaWdodDtcbiAgICB0aGlzLnN0YXJ0TGVmdCA9IGhvc3Qub2Zmc2V0TGVmdDtcbiAgICB0aGlzLnN0YXJ0VG9wID0gaG9zdC5vZmZzZXRUb3A7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRsZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoYW5nZVNpemVIYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNNb3VzZVByZXNzZWQoKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnBhblN0YXRlKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGR5ID0gZS5jbGllbnRZIC0gdGhpcy5zdGFydFk7XG4gICAgY29uc3QgZHggPSBlLmNsaWVudFggLSB0aGlzLnN0YXJ0WDtcblxuICAgIGxldCBuZXdXaWR0aDogbnVtYmVyO1xuICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlcjtcblxuICAgIGNvbnN0IG1pblNpemUgPSAyMDtcblxuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSB7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIG5ld1dpZHRoID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydFdpZHRoICsgZHgpO1xuICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRIZWlnaHQgLSBkeSk7XG4gICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0VG9wICsgKHRoaXMuc3RhcnRIZWlnaHQgLSBuZXdIZWlnaHQpfXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0V2lkdGggLSBkeCk7XG4gICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtuZXdXaWR0aH1weGA7XG4gICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgKHRoaXMuc3RhcnRXaWR0aCAtIG5ld1dpZHRoKX1weGA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydEhlaWdodCArIGR5KTtcbiAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtuZXdIZWlnaHR9cHhgO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0LXRvcCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCArIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSAobmV3V2lkdGggKiB0aGlzLmFzcGVjdEhlaWdodCgpKSAvIHRoaXMuYXNwZWN0V2lkdGgoKTtcbiAgICAgICAgICBpZiAobmV3SGVpZ2h0IDwgbWluU2l6ZSkge1xuICAgICAgICAgICAgbmV3SGVpZ2h0ID0gbWluU2l6ZTtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gKG5ld0hlaWdodCAqIHRoaXMuYXNwZWN0V2lkdGgoKSkgLyB0aGlzLmFzcGVjdEhlaWdodCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyAodGhpcy5zdGFydEhlaWdodCAtIG5ld0hlaWdodCl9cHhgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1dpZHRoID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydFdpZHRoICsgZHgpO1xuICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRIZWlnaHQgLSBkeSk7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke25ld1dpZHRofXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke25ld0hlaWdodH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0VG9wICsgKHRoaXMuc3RhcnRIZWlnaHQgLSBuZXdIZWlnaHQpfXB4YDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCArIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSAobmV3V2lkdGggKiB0aGlzLmFzcGVjdEhlaWdodCgpKSAvIHRoaXMuYXNwZWN0V2lkdGgoKTtcbiAgICAgICAgICBpZiAobmV3SGVpZ2h0IDwgbWluU2l6ZSkge1xuICAgICAgICAgICAgbmV3SGVpZ2h0ID0gbWluU2l6ZTtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gKG5ld0hlaWdodCAqIHRoaXMuYXNwZWN0V2lkdGgoKSkgLyB0aGlzLmFzcGVjdEhlaWdodCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCArIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0SGVpZ2h0ICsgZHkpO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtuZXdXaWR0aH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtuZXdIZWlnaHR9cHhgO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpKSB7XG4gICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0V2lkdGggLSBkeCk7XG4gICAgICAgICAgbmV3SGVpZ2h0ID0gKG5ld1dpZHRoICogdGhpcy5hc3BlY3RIZWlnaHQoKSkgLyB0aGlzLmFzcGVjdFdpZHRoKCk7XG4gICAgICAgICAgaWYgKG5ld0hlaWdodCA8IG1pblNpemUpIHtcbiAgICAgICAgICAgIG5ld0hlaWdodCA9IG1pblNpemU7XG4gICAgICAgICAgICBuZXdXaWR0aCA9IChuZXdIZWlnaHQgKiB0aGlzLmFzcGVjdFdpZHRoKCkpIC8gdGhpcy5hc3BlY3RIZWlnaHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke25ld1dpZHRofXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke25ld0hlaWdodH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyAodGhpcy5zdGFydFdpZHRoIC0gbmV3V2lkdGgpfXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCAtIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0SGVpZ2h0ICsgZHkpO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtuZXdXaWR0aH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtuZXdIZWlnaHR9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgKHRoaXMuc3RhcnRXaWR0aCAtIG5ld1dpZHRoKX1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0LXRvcCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCAtIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSAobmV3V2lkdGggKiB0aGlzLmFzcGVjdEhlaWdodCgpKSAvIHRoaXMuYXNwZWN0V2lkdGgoKTtcbiAgICAgICAgICBpZiAobmV3SGVpZ2h0IDwgbWluU2l6ZSkge1xuICAgICAgICAgICAgbmV3SGVpZ2h0ID0gbWluU2l6ZTtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gKG5ld0hlaWdodCAqIHRoaXMuYXNwZWN0V2lkdGgoKSkgLyB0aGlzLmFzcGVjdEhlaWdodCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmxlZnQgPSBgJHt0aGlzLnN0YXJ0TGVmdCArICh0aGlzLnN0YXJ0V2lkdGggLSBuZXdXaWR0aCl9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUudG9wID0gYCR7dGhpcy5zdGFydFRvcCArICh0aGlzLnN0YXJ0SGVpZ2h0IC0gbmV3SGVpZ2h0KX1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0V2lkdGggLSBkeCk7XG4gICAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydEhlaWdodCAtIGR5KTtcbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmxlZnQgPSBgJHt0aGlzLnN0YXJ0TGVmdCArICh0aGlzLnN0YXJ0V2lkdGggLSBuZXdXaWR0aCl9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUudG9wID0gYCR7dGhpcy5zdGFydFRvcCArICh0aGlzLnN0YXJ0SGVpZ2h0IC0gbmV3SGVpZ2h0KX1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyU2VsZWN0b3IoKSB7XG4gICAgaWYgKHRoaXMucGFuU3RhdGUoKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kbGUuc2V0KG51bGwpO1xuICB9XG59XG4iLCI8ZGl2IFtzdHlsZS5ib3JkZXJdPVwiIXNob3dHcmlkKCkgPyAnMXB4IGRhc2hlZCB3aGl0ZScgOiBudWxsXCIgI3IgY2xhc3M9XCJheC1pbWFnZS1jcm9wcGVyLXdpbmRvdy1jb250YWluZXJcIj5cbiAgQGlmICghc2VydmljZS5jcm9wcGVyUmF0aW8oKSkge1xuICAgIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ3JpZ2h0JylcIiBjbGFzcz1cImF4LWltYWdlLXJpZ2h0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICd0b3AnKVwiIGNsYXNzPVwiYXgtaW1hZ2UtdG9wLWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdsZWZ0JylcIiBjbGFzcz1cImF4LWltYWdlLWxlZnQtaGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuICAgIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2JvdHRvbScpXCIgY2xhc3M9XCJheC1pbWFnZS1ib3R0b20taGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuICB9XG5cbiAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAncmlnaHQtdG9wJylcIiBjbGFzcz1cImF4LWltYWdlLXJpZ2h0LXRvcC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gIDxkaXZcbiAgICAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAnYm90dG9tLXJpZ2h0JylcIlxuICAgIGNsYXNzPVwiYXgtaW1hZ2UtYm90dG9tLXJpZ2h0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIlxuICA+PC9kaXY+XG4gIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2JvdHRvbS1sZWZ0JylcIiBjbGFzcz1cImF4LWltYWdlLWJvdHRvbS1sZWZ0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAnbGVmdC10b3AnKVwiIGNsYXNzPVwiYXgtaW1hZ2UtbGVmdC10b3AtaGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuXG4gIEBpZiAoc2hvd0dyaWQoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, input, linkedSignal, Renderer2, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { AXImageEditorContainerComponent } from '../image-editor-container/image-editor-container.component';\nimport { AXImageEditorCropperWindowComponent } from '../image-editor-cropper-window/image-editor-cropper-window.component';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\nexport class AXImageEditorViewComponent extends MXBaseComponent {\n /** @ignore */\n resizeWindow() {\n this.canvasResponsive(this.service.newImage);\n }\n /** @ignore */\n canvasResponsive(image) {\n const imageWidth = image.width;\n const imageHeight = image.height;\n this.originalWidth.set(imageWidth);\n this.originalHeight.set(imageHeight);\n if (imageWidth > imageHeight) {\n this.canvasElem().nativeElement.width = imageWidth;\n this.canvasElem().nativeElement.height = imageWidth;\n }\n else {\n this.canvasElem().nativeElement.width = imageHeight;\n this.canvasElem().nativeElement.height = imageHeight;\n }\n requestAnimationFrame(() => {\n //recalculate width after canvas size change\n const recalculateWidth = this.canvasElem().nativeElement.getClientRects()[0]?.width;\n let scale;\n if (imageWidth > imageHeight) {\n scale = this.originalWidth() / recalculateWidth;\n }\n else {\n scale = this.originalHeight() / recalculateWidth;\n }\n this.scale.set(scale);\n this.canvasElem().nativeElement.width = recalculateWidth;\n this.canvasElem().nativeElement.height = recalculateWidth;\n if (imageWidth > imageHeight) {\n this.ctx().drawImage(image, 0, recalculateWidth / 2 - this.originalHeight() / scale / 2, recalculateWidth, this.originalHeight() / scale);\n }\n else {\n this.ctx().drawImage(image, recalculateWidth / 2 - this.originalWidth() / scale / 2, 0, this.originalWidth() / scale, recalculateWidth);\n }\n });\n }\n /** @ignore */\n constructor() {\n super();\n /**\n * its change grid display state.\n */\n this.showGrid = input(true, ...(ngDevMode ? [{ debugName: \"showGrid\" }] : []));\n /**\n * Base size in pixels for the initial cropper window dimensions.\n */\n this.cropperSize = input(...(ngDevMode ? [undefined, { debugName: \"cropperSize\" }] : []));\n /**\n * its change grid display state.\n */\n this.lockRatio = signal(false, ...(ngDevMode ? [{ debugName: \"lockRatio\" }] : []));\n /**\n * its receive image src.\n */\n this.src = input('', ...(ngDevMode ? [{ debugName: \"src\" }] : []));\n /** @ignore */\n this.canvasElem = viewChild('canvasElem', ...(ngDevMode ? [{ debugName: \"canvasElem\" }] : []));\n /** @ignore */\n this.cropperWindow = viewChild('f', ...(ngDevMode ? [{ debugName: \"cropperWindow\" }] : []));\n /** @ignore */\n this.ctx = signal(null, ...(ngDevMode ? [{ debugName: \"ctx\" }] : []));\n /** @ignore */\n this.service = inject(AXImageEditorService);\n /** @ignore */\n this.isMouseDown = signal(false, ...(ngDevMode ? [{ debugName: \"isMouseDown\" }] : []));\n /** @ignore */\n this.isDrawRectangleCreated = signal(false, ...(ngDevMode ? [{ debugName: \"isDrawRectangleCreated\" }] : []));\n /** @ignore */\n this.parent = inject(AXImageEditorContainerComponent);\n /** @ignore */\n this.renderer = inject(Renderer2);\n /** @ignore */\n this.imageEditorHistory = signal([], ...(ngDevMode ? [{ debugName: \"imageEditorHistory\" }] : []));\n /** @ignore */\n this.imageEditorHistoryPointer = linkedSignal(() => this.imageEditorHistory().length - 1, ...(ngDevMode ? [{ debugName: \"imageEditorHistoryPointer\" }] : []));\n this.originalWidth = signal(0, ...(ngDevMode ? [{ debugName: \"originalWidth\" }] : []));\n this.originalHeight = signal(0, ...(ngDevMode ? [{ debugName: \"originalHeight\" }] : []));\n this.scale = signal(0, ...(ngDevMode ? [{ debugName: \"scale\" }] : []));\n afterNextRender(() => {\n this.resizeEventListener = this.renderer.listen(window, 'resize', this.resizeWindow.bind(this));\n //set canvas options\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d', { willReadFrequently: true }));\n this.ctx().lineJoin = 'round';\n this.ctx().lineCap = 'round';\n });\n effect(() => {\n this.setInitialImage(this.src());\n });\n effect(() => {\n if (!this.service.undoPressed()) {\n this.imageChanged();\n }\n });\n effect(() => {\n if (!this.service.redoPressed()) {\n this.imageChanged();\n }\n });\n effect(() => {\n if (!this.service.rotate().userInteract || !this.ctx())\n return;\n this.rotateImage();\n });\n effect(() => {\n const size = this.cropperSize();\n if (size != null) {\n this.service.cropperSize.set(size);\n }\n });\n }\n /** @ignore */\n ngOnDestroy() {\n if (this.resizeEventListener) {\n this.resizeEventListener();\n }\n if (this.imageLoadEventListener) {\n this.imageLoadEventListener();\n }\n }\n setInitialImage(src, replaceHistory = true) {\n this.service.initialImage = new Image();\n this.service.initialImage.src = src;\n this.service.initialImage.crossOrigin = 'anonymous';\n this.imageLoadEventListener = this.renderer.listen(this.service.initialImage, 'load', () => {\n this.service.newImage = this.service.initialImage;\n this.service.isImageLoad.set(true);\n this.canvasResponsive(this.service.initialImage);\n if (replaceHistory) {\n this.imageEditorHistory.set([this.service.initialImage]);\n }\n else {\n this.imageEditorHistory.update((prev) => [...prev, this.service.initialImage]);\n }\n });\n }\n /** @ignore */\n imageChanged() {\n if (this.service.undoPressed() && this.imageEditorHistoryPointer() >= 1) {\n this.imageEditorHistoryPointer.update((prev) => prev - 1);\n this.service.newImage = this.imageEditorHistory()[this.imageEditorHistoryPointer()];\n this.canvasResponsive(this.imageEditorHistory()[this.imageEditorHistoryPointer()]);\n }\n if (this.service.redoPressed() && this.imageEditorHistoryPointer() < this.imageEditorHistory().length - 1) {\n this.imageEditorHistoryPointer.update((prev) => prev + 1);\n this.service.newImage = this.imageEditorHistory()[this.imageEditorHistoryPointer()];\n this.canvasResponsive(this.imageEditorHistory()[this.imageEditorHistoryPointer()]);\n }\n this.service.undoPressed.set(false);\n this.service.redoPressed.set(false);\n }\n /** @ignore */\n penConfigHandler(penType) {\n switch (penType) {\n case 'pen':\n this.ctx().globalAlpha = 1;\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.penWidth();\n break;\n case 'highlight':\n this.ctx().globalAlpha = 0.008;\n this.ctx().strokeStyle = this.service.highlightColor();\n this.ctx().lineWidth = this.service.highlightWidth();\n break;\n }\n }\n /** @ignore */\n mouseDownHandler(e) {\n this.isMouseDown.set(true);\n if (!this.service.penType())\n return;\n this.penConfigHandler(this.service.penType());\n this.ctx().beginPath();\n this.ctx().moveTo(e.offsetX, e.offsetY);\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n /** @ignore */\n mouseMoveHandler(e) {\n if (!this.isMouseDown())\n return;\n if (!this.service.penType())\n return;\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n /** @ignore */\n mouseUpHandler() {\n this.isMouseDown.set(false);\n this.ctx().closePath();\n this.saveImageChange();\n }\n /** @ignore */\n async crop() {\n const cropper = this.cropperWindow();\n if (this.service.activeToolState() !== 'crop' || !cropper) {\n return;\n }\n const cropRect = cropper.getCropperArea();\n const canvasRect = this.canvasElem().nativeElement.getClientRects()[0];\n const dx = cropRect.x - canvasRect.x;\n const dy = cropRect.y - canvasRect.y;\n const imageData = this.ctx().getImageData(dx, dy, cropRect.width, cropRect.height);\n this.canvasElem().nativeElement.width = cropRect.width;\n this.canvasElem().nativeElement.height = cropRect.height;\n this.ctx().putImageData(imageData, 0, 0);\n const cropImage = this.canvasElem().nativeElement.toDataURL('image/jpeg', 1);\n await this.saveImageChange();\n this.setInitialImage(cropImage, false);\n this.service.activeToolState.set(null);\n }\n /** @ignore */\n rotateImage() {\n this.ctx().globalAlpha = 1;\n this.ctx().save();\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\n // Calculate scale factor to fit rotated image within canvas\n const rotationAngle = (this.service.rotate().state * Math.PI) / 180;\n const cos = Math.abs(Math.cos(rotationAngle));\n const sin = Math.abs(Math.sin(rotationAngle));\n const rotatedWidth = this.service.newImage.width * cos + this.service.newImage.height * sin;\n const rotatedHeight = this.service.newImage.width * sin + this.service.newImage.height * cos;\n const scaleX = this.canvasElem().nativeElement.width / rotatedWidth;\n const scaleY = this.canvasElem().nativeElement.height / rotatedHeight;\n const scale = Math.min(scaleX, scaleY);\n this.ctx().translate(this.canvasElem().nativeElement.width / 2, this.canvasElem().nativeElement.height / 2);\n this.ctx().rotate(rotationAngle);\n this.ctx().scale(scale, scale);\n this.ctx().drawImage(this.service.newImage, -this.service.newImage.width / 2, -this.service.newImage.height / 2);\n this.ctx().restore();\n this.saveImageChange();\n this.service.rotate.update((prev) => {\n return { state: prev.state, userInteract: false };\n });\n }\n /** @ignore */\n async saveImageChange() {\n const canvas = this.canvasElem().nativeElement;\n const newImage = new Image();\n newImage.crossOrigin = 'anonymous';\n newImage.src = canvas.toDataURL('image/jpeg', 1);\n this.service.newImage = newImage;\n this.imageEditorHistory.update((prev) => [...prev, newImage]);\n const canvasToBlob = (type, quality) => {\n return new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n }\n else {\n reject(new Error(`toBlob returned null for type ${type}`));\n }\n }, type, quality);\n });\n };\n const blobs = await Promise.all([\n canvasToBlob('image/jpeg', 1),\n canvasToBlob('image/png', 1),\n canvasToBlob('image/webp', 1),\n ]);\n this.service.imageBlob.set(blobs);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorViewComponent, isStandalone: true, selector: \"ax-image-editor-view\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", isSignal: true, isRequired: false, transformFunction: null }, cropperSize: { classPropertyName: \"cropperSize\", publicName: \"cropperSize\", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: \"src\", publicName: \"src\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], viewQueries: [{ propertyName: \"canvasElem\", first: true, predicate: [\"canvasElem\"], descendants: true, isSignal: true }, { propertyName: \"cropperWindow\", first: true, predicate: [\"f\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<canvas\\n tabindex=\\\"1\\\"\\n (pointerdown)=\\\"mouseDownHandler($event)\\\"\\n (pointerup)=\\\"mouseUpHandler()\\\"\\n (pointermove)=\\\"mouseMoveHandler($event)\\\"\\n class=\\\"ax-canvas-element\\\"\\n #canvasElem\\n></canvas>\\n\\n@if (this.service.activeToolState() === 'crop') {\\n <ax-image-editor-cropper-window [showGrid]=\\\"showGrid()\\\" #f></ax-image-editor-cropper-window>\\n}\\n\", styles: [\"ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%;touch-action:none;overflow:hidden}ax-image-editor-view .ax-canvas-element{cursor:crosshair;background-color:#000}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\\n\"], dependencies: [{ kind: \"component\", type: AXImageEditorCropperWindowComponent, selector: \"ax-image-editor-cropper-window\", inputs: [\"showGrid\", \"size\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXImageEditorCropperWindowComponent], providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], template: \"<canvas\\n tabindex=\\\"1\\\"\\n (pointerdown)=\\\"mouseDownHandler($event)\\\"\\n (pointerup)=\\\"mouseUpHandler()\\\"\\n (pointermove)=\\\"mouseMoveHandler($event)\\\"\\n class=\\\"ax-canvas-element\\\"\\n #canvasElem\\n></canvas>\\n\\n@if (this.service.activeToolState() === 'crop') {\\n <ax-image-editor-cropper-window [showGrid]=\\\"showGrid()\\\" #f></ax-image-editor-cropper-window>\\n}\\n\", styles: [\"ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%;touch-action:none;overflow:hidden}ax-image-editor-view .ax-canvas-element{cursor:crosshair;background-color:#000}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFFWixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBVy9ELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBK0M3RCxjQUFjO0lBQ0osWUFBWTtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztJQUNKLGdCQUFnQixDQUFDLEtBQXVCO1FBQ2hELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0IsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFD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U0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxRyw0REFBNEQ7UUFDNUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3BFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUM1RixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFFN0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUN0RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FB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QUFtQzs7MkZBR2xDLDBCQUEwQjtrQkFUdEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLG1DQUFtQyxDQUFDLGFBQ25DLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNEJBQTRCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci9pbWFnZS1lZGl0b3ItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhJbWFnZUVkaXRvckNyb3BwZXJXaW5kb3dDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIGl0cyBjaGFuZ2UgZ3JpZCBkaXNwbGF5IHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd0dyaWQgPSBpbnB1dCh0cnVlKTtcbiAgLyoqXG4gICAqIEJhc2Ugc2l6ZSBpbiBwaXhlbHMgZm9yIHRoZSBpbml0aWFsIGNyb3BwZXIgd2luZG93IGRpbWVuc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBjcm9wcGVyU2l6ZSA9IGlucHV0PG51bWJlcj4oKTtcbiAgLyoqXG4gICAqIGl0cyBjaGFuZ2UgZ3JpZCBkaXNwbGF5IHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja1JhdGlvID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqXG4gICAqIGl0cyByZWNlaXZlIGltYWdlIHNyYy5cbiAgICovXG4gIHJlYWRvbmx5IHNyYyA9IGlucHV0PHN0cmluZz4oJycpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY2FudmFzRWxlbSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50Pj4oJ2NhbnZhc0VsZW0nKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNyb3BwZXJXaW5kb3cgPSB2aWV3Q2hpbGQ8QVhJbWFnZUVkaXRvckNyb3BwZXJXaW5kb3dDb21wb25lbnQ+KCdmJyk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjdHggPSBzaWduYWw8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihudWxsKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaXNNb3VzZURvd24gPSBzaWduYWwoZmFsc2UpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaXNEcmF3UmVjdGFuZ2xlQ3JlYXRlZCA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBwYXJlbnQgPSBpbmplY3QoQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaW1hZ2VFZGl0b3JIaXN0b3J5ID0gc2lnbmFsPEhUTUxJbWFnZUVsZW1lbnRbXT4oW10pO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlciA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpLmxlbmd0aCAtIDEpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVzaXplRXZlbnRMaXN0ZW5lcjtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpbWFnZUxvYWRFdmVudExpc3RlbmVyO1xuXG4gIHByaXZhdGUgb3JpZ2luYWxXaWR0aCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBvcmlnaW5hbEhlaWdodCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBzY2FsZSA9IHNpZ25hbCgwKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcmVzaXplV2luZG93KCkge1xuICAgIHRoaXMuY2FudmFzUmVzcG9uc2l2ZSh0aGlzLnNlcnZpY2UubmV3SW1hZ2UpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNhbnZhc1Jlc3BvbnNpdmUoaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQpIHtcbiAgICBjb25zdCBpbWFnZVdpZHRoID0gaW1hZ2Uud2lkdGg7XG4gICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XG5cbiAgICB0aGlzLm9yaWdpbmFsV2lkdGguc2V0KGltYWdlV2lkdGgpO1xuICAgIHRoaXMub3JpZ2luYWxIZWlnaHQuc2V0KGltYWdlSGVpZ2h0KTtcblxuICAgIGlmIChpbWFnZVdpZHRoID4gaW1hZ2VIZWlnaHQpIHtcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQud2lkdGggPSBpbWFnZVdpZHRoO1xuICAgICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQgPSBpbWFnZVdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gaW1hZ2VIZWlnaHQ7XG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCA9IGltYWdlSGVpZ2h0O1xuICAgIH1cblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAvL3JlY2FsY3VsYXRlIHdpZHRoIGFmdGVyIGNhbnZhcyBzaXplIGNoYW5nZVxuICAgICAgY29uc3QgcmVjYWxjdWxhdGVXaWR0aCA9ICh0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRDbGllbnRSZWN0cygpWzBdPy53aWR0aDtcblxuICAgICAgbGV0IHNjYWxlOiBudW1iZXI7XG4gICAgICBpZiAoaW1hZ2VXaWR0aCA+IGltYWdlSGVpZ2h0KSB7XG4gICAgICAgIHNjYWxlID0gdGhpcy5vcmlnaW5hbFdpZHRoKCkgLyByZWNhbGN1bGF0ZVdpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NhbGUgPSB0aGlzLm9yaWdpbmFsSGVpZ2h0KCkgLyByZWNhbGN1bGF0ZVdpZHRoO1xuICAgICAgfVxuICAgICAgdGhpcy5zY2FsZS5zZXQoc2NhbGUpO1xuXG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gcmVjYWxjdWxhdGVXaWR0aDtcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gcmVjYWxjdWxhdGVXaWR0aDtcblxuICAgICAgaWYgKGltYWdlV2lkdGggPiBpbWFnZUhlaWdodCkge1xuICAgICAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZShcbiAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICAwLFxuICAgICAgICAgIHJlY2FsY3VsYXRlV2lkdGggLyAyIC0gdGhpcy5vcmlnaW5hbEhlaWdodCgpIC8gc2NhbGUgLyAyLFxuICAgICAgICAgIHJlY2FsY3VsYXRlV2lkdGgsXG4gICAgICAgICAgdGhpcy5vcmlnaW5hbEhlaWdodCgpIC8gc2NhbGUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZShcbiAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICByZWNhbGN1bGF0ZVdpZHRoIC8gMiAtIHRoaXMub3JpZ2luYWxXaWR0aCgpIC8gc2NhbGUgLyAyLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgdGhpcy5vcmlnaW5hbFdpZHRoKCkgLyBzY2FsZSxcbiAgICAgICAgICByZWNhbGN1bGF0ZVdpZHRoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csICdyZXNpemUnLCB0aGlzLnJlc2l6ZVdpbmRvdy5iaW5kKHRoaXMpKTtcbiAgICAgIC8vc2V0IGNhbnZhcyBvcHRpb25zXG4gICAgICB0aGlzLmN0eC5zZXQodGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcsIHsgd2lsbFJlYWRGcmVxdWVudGx5OiB0cnVlIH0pKTtcbiAgICAgIHRoaXMuY3R4KCkubGluZUpvaW4gPSAncm91bmQnO1xuICAgICAgdGhpcy5jdHgoKS5saW5lQ2FwID0gJ3JvdW5kJztcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNldEluaXRpYWxJbWFnZSh0aGlzLnNyYygpKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZS51bmRvUHJlc3NlZCgpKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNlcnZpY2UucmVkb1ByZXNzZWQoKSkge1xuICAgICAgICB0aGlzLmltYWdlQ2hhbmdlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlLnJvdGF0ZSgpLnVzZXJJbnRlcmFjdCB8fCAhdGhpcy5jdHgoKSkgcmV0dXJuO1xuICAgICAgdGhpcy5yb3RhdGVJbWFnZSgpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSB0aGlzLmNyb3BwZXJTaXplKCk7XG4gICAgICBpZiAoc2l6ZSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5jcm9wcGVyU2l6ZS5zZXQoc2l6ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXNpemVFdmVudExpc3RlbmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbWFnZUxvYWRFdmVudExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxJbWFnZShzcmM6IHN0cmluZywgcmVwbGFjZUhpc3RvcnkgPSB0cnVlKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2Uuc3JjID0gc3JjO1xuICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICB0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlLCAnbG9hZCcsICgpID0+IHtcbiAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSA9IHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2U7XG4gICAgICB0aGlzLnNlcnZpY2UuaXNJbWFnZUxvYWQuc2V0KHRydWUpO1xuICAgICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UpO1xuICAgICAgaWYgKHJlcGxhY2VIaXN0b3J5KSB7XG4gICAgICAgIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5LnNldChbdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZV0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGltYWdlQ2hhbmdlZCgpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLnVuZG9QcmVzc2VkKCkgJiYgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCkgPj0gMSkge1xuICAgICAgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIDEpO1xuXG4gICAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2UgPSB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpW3RoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpXTtcbiAgICAgIHRoaXMuY2FudmFzUmVzcG9uc2l2ZSh0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpW3RoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VydmljZS5yZWRvUHJlc3NlZCgpICYmIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpIDwgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkoKS5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIudXBkYXRlKChwcmV2KSA9PiBwcmV2ICsgMSk7XG4gICAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2UgPSB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpW3RoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpXTtcbiAgICAgIHRoaXMuY2FudmFzUmVzcG9uc2l2ZSh0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpW3RoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXJ2aWNlLnVuZG9QcmVzc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZXJ2aWNlLnJlZG9QcmVzc2VkLnNldChmYWxzZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcGVuQ29uZmlnSGFuZGxlcihwZW5UeXBlOiAncGVuJyB8ICdoaWdobGlnaHQnKSB7XG4gICAgc3dpdGNoIChwZW5UeXBlKSB7XG4gICAgICBjYXNlICdwZW4nOlxuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMTtcbiAgICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xuICAgICAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IHRoaXMuc2VydmljZS5wZW5XaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hpZ2hsaWdodCc6XG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAwLjAwODtcbiAgICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5oaWdobGlnaHRDb2xvcigpO1xuICAgICAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IHRoaXMuc2VydmljZS5oaWdobGlnaHRXaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbW91c2VEb3duSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQodHJ1ZSk7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UucGVuVHlwZSgpKSByZXR1cm47XG5cbiAgICB0aGlzLnBlbkNvbmZpZ0hhbmRsZXIodGhpcy5zZXJ2aWNlLnBlblR5cGUoKSk7XG4gICAgdGhpcy5jdHgoKS5iZWdpblBhdGgoKTtcbiAgICB0aGlzLmN0eCgpLm1vdmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XG4gICAgdGhpcy5jdHgoKS5saW5lVG8oZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbW91c2VNb3ZlSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzTW91c2VEb3duKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5wZW5UeXBlKCkpIHJldHVybjtcbiAgICB0aGlzLmN0eCgpLmxpbmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XG4gICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBtb3VzZVVwSGFuZGxlcigpIHtcbiAgICB0aGlzLmlzTW91c2VEb3duLnNldChmYWxzZSk7XG4gICAgdGhpcy5jdHgoKS5jbG9zZVBhdGgoKTtcbiAgICB0aGlzLnNhdmVJbWFnZUNoYW5nZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgYXN5bmMgY3JvcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjcm9wcGVyID0gdGhpcy5jcm9wcGVyV2luZG93KCk7XG4gICAgaWYgKHRoaXMuc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSAhPT0gJ2Nyb3AnIHx8ICFjcm9wcGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3JvcFJlY3QgPSBjcm9wcGVyLmdldENyb3BwZXJBcmVhKCk7XG4gICAgY29uc3QgY2FudmFzUmVjdCA9IHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKVswXTtcbiAgICBjb25zdCBkeCA9IGNyb3BSZWN0LnggLSBjYW52YXNSZWN0Lng7XG4gICAgY29uc3QgZHkgPSBjcm9wUmVjdC55IC0gY2FudmFzUmVjdC55O1xuXG4gICAgY29uc3QgaW1hZ2VEYXRhID0gdGhpcy5jdHgoKS5nZXRJbWFnZURhdGEoZHgsIGR5LCBjcm9wUmVjdC53aWR0aCwgY3JvcFJlY3QuaGVpZ2h0KTtcbiAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gY3JvcFJlY3Qud2lkdGg7XG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQgPSBjcm9wUmVjdC5oZWlnaHQ7XG4gICAgdGhpcy5jdHgoKS5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCAwLCAwKTtcbiAgICBjb25zdCBjcm9wSW1hZ2UgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDEpO1xuXG4gICAgYXdhaXQgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnNldEluaXRpYWxJbWFnZShjcm9wSW1hZ2UsIGZhbHNlKTtcbiAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlLnNldChudWxsKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByb3RhdGVJbWFnZSgpIHtcbiAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMTtcbiAgICB0aGlzLmN0eCgpLnNhdmUoKTtcbiAgICB0aGlzLmN0eCgpLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCk7XG5cbiAgICAvLyBDYWxjdWxhdGUgc2NhbGUgZmFjdG9yIHRvIGZpdCByb3RhdGVkIGltYWdlIHdpdGhpbiBjYW52YXNcbiAgICBjb25zdCByb3RhdGlvbkFuZ2xlID0gKHRoaXMuc2VydmljZS5yb3RhdGUoKS5zdGF0ZSAqIE1hdGguUEkpIC8gMTgwO1xuICAgIGNvbnN0IGNvcyA9IE1hdGguYWJzKE1hdGguY29zKHJvdGF0aW9uQW5nbGUpKTtcbiAgICBjb25zdCBzaW4gPSBNYXRoLmFicyhNYXRoLnNpbihyb3RhdGlvbkFuZ2xlKSk7XG5cbiAgICBjb25zdCByb3RhdGVkV2lkdGggPSB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggKiBjb3MgKyB0aGlzLnNlcnZpY2UubmV3SW1hZ2UuaGVpZ2h0ICogc2luO1xuICAgIGNvbnN0IHJvdGF0ZWRIZWlnaHQgPSB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggKiBzaW4gKyB0aGlzLnNlcnZpY2UubmV3SW1hZ2UuaGVpZ2h0ICogY29zO1xuXG4gICAgY29uc3Qgc2NhbGVYID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCAvIHJvdGF0ZWRXaWR0aDtcbiAgICBjb25zdCBzY2FsZVkgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCAvIHJvdGF0ZWRIZWlnaHQ7XG4gICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihzY2FsZVgsIHNjYWxlWSk7XG5cbiAgICB0aGlzLmN0eCgpLnRyYW5zbGF0ZSh0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoIC8gMiwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQgLyAyKTtcbiAgICB0aGlzLmN0eCgpLnJvdGF0ZShyb3RhdGlvbkFuZ2xlKTtcbiAgICB0aGlzLmN0eCgpLnNjYWxlKHNjYWxlLCBzY2FsZSk7XG5cbiAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZSh0aGlzLnNlcnZpY2UubmV3SW1hZ2UsIC10aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggLyAyLCAtdGhpcy5zZXJ2aWNlLm5ld0ltYWdlLmhlaWdodCAvIDIpO1xuICAgIHRoaXMuY3R4KCkucmVzdG9yZSgpO1xuXG4gICAgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnNlcnZpY2Uucm90YXRlLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgcmV0dXJuIHsgc3RhdGU6IHByZXYuc3RhdGUsIHVzZXJJbnRlcmFjdDogZmFsc2UgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBhc3luYyBzYXZlSW1hZ2VDaGFuZ2UoKSB7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudDtcblxuICAgIGNvbnN0IG5ld0ltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgbmV3SW1hZ2UuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICBuZXdJbWFnZS5zcmMgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywgMSk7XG4gICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlID0gbmV3SW1hZ2U7XG4gICAgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgbmV3SW1hZ2VdKTtcblxuICAgIGNvbnN0IGNhbnZhc1RvQmxvYiA9ICh0eXBlOiBzdHJpbmcsIHF1YWxpdHk/OiBudW1iZXIpOiBQcm9taXNlPEJsb2I+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNhbnZhcy50b0Jsb2IoXG4gICAgICAgICAgKGJsb2IpID0+IHtcbiAgICAgICAgICAgIGlmIChibG9iKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUoYmxvYik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGB0b0Jsb2IgcmV0dXJuZWQgbnVsbCBmb3IgdHlwZSAke3R5cGV9YCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBxdWFsaXR5LFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGJsb2JzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgY2FudmFzVG9CbG9iKCdpbWFnZS9qcGVnJywgMSksXG4gICAgICBjYW52YXNUb0Jsb2IoJ2ltYWdlL3BuZycsIDEpLFxuICAgICAgY2FudmFzVG9CbG9iKCdpbWFnZS93ZWJwJywgMSksXG4gICAgXSk7XG5cbiAgICB0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iLnNldChibG9icyk7XG4gIH1cbn1cbiIsIjxjYW52YXNcbiAgdGFiaW5kZXg9XCIxXCJcbiAgKHBvaW50ZXJkb3duKT1cIm1vdXNlRG93bkhhbmRsZXIoJGV2ZW50KVwiXG4gIChwb2ludGVydXApPVwibW91c2VVcEhhbmRsZXIoKVwiXG4gIChwb2ludGVybW92ZSk9XCJtb3VzZU1vdmVIYW5kbGVyKCRldmVudClcIlxuICBjbGFzcz1cImF4LWNhbnZhcy1lbGVtZW50XCJcbiAgI2NhbnZhc0VsZW1cbj48L2NhbnZhcz5cblxuQGlmICh0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdjcm9wJykge1xuICA8YXgtaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93IFtzaG93R3JpZF09XCJzaG93R3JpZCgpXCIgI2Y+PC9heC1pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3c+XG59XG4iXX0=","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { Component, contentChild, effect, forwardRef, HostBinding, inject, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXImageEditorViewComponent } from '../image-editor-view/image-editor-view.component';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/**\n * paint container.\n * @category Components\n */\nexport class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n /** @ignore */\n this.service = inject(AXImageEditorService);\n this.imageEditorContainer = viewChild('f', ...(ngDevMode ? [{ debugName: \"imageEditorContainer\" }] : []));\n this.view = contentChild(AXImageEditorViewComponent, ...(ngDevMode ? [{ debugName: \"view\" }] : []));\n this.#eff = effect(() => {\n void this.service.imageBlob();\n if (this.service.imageBlob().length) {\n this.commitValue(this.service.imageBlob(), true);\n }\n else {\n this.commitValue(null);\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n /** Applies the current cropper selection. */\n async crop() {\n const oldValue = this.value;\n await this.view()?.crop();\n const blobs = this.service.imageBlob();\n if (blobs.length && this.value === oldValue) {\n this.emitOnValueChangedEvent(oldValue, blobs);\n }\n }\n get __hostClass() {\n if (this.disabled)\n return 'ax-state-disabled';\n return '';\n }\n get __hostName() {\n return this.name;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorContainerComponent, isStandalone: true, selector: \"ax-image-editor-container\", inputs: { look: \"look\", disabled: \"disabled\" }, outputs: { onValueChanged: \"onValueChanged\" }, host: { properties: { \"class\": \"this.__hostClass\", \"attr.name\": \"this.__hostName\" } }, providers: [\n AXImageEditorService,\n { provide: AXComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXValuableComponent, useExisting: AXImageEditorContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXImageEditorContainerComponent),\n multi: true,\n },\n ], queries: [{ propertyName: \"view\", first: true, predicate: AXImageEditorViewComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"imageEditorContainer\", first: true, predicate: [\"f\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@if (service.isImageLoad()) {\\n <div #f class=\\\"ax-editor-container ax-{{ look }}\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n\\n <ng-content select=\\\"ax-image-editor-view\\\"> </ng-content>\\n\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-error-container\\\"></div>\\n} @else {\\n <div class=\\\"ax-loading-spinner-container\\\">\\n <ax-loading-spinner [size]=\\\"16\\\" color=\\\"primary\\\" text=\\\"Loading Image ...\\\"></ax-loading-spinner>\\n </div>\\n}\\n<ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n@if (disabled) {\\n <div class=\\\"ax-disable-overlay\\\"></div>\\n}\\n\", styles: [\"ax-image-editor-container{width:fit-content;display:block;position:relative}ax-image-editor-container.ax-state-disabled{opacity:.5}ax-image-editor-container .ax-disable-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:not-allowed}ax-image-editor-container>.ax-editor-container{display:block;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}ax-image-editor-container ax-footer{width:100%}ax-image-editor-container ax-header{width:100%}ax-image-editor-container ax-header ax-toolbar{justify-content:space-between}ax-image-editor-container ax-header .ax-start-toolbar-divider{display:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-container', encapsulation: ViewEncapsulation.None, outputs: ['onValueChanged'], inputs: ['look', 'disabled'], providers: [\n AXImageEditorService,\n { provide: AXComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXValuableComponent, useExisting: AXImageEditorContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXImageEditorContainerComponent),\n multi: true,\n },\n ], imports: [AXDecoratorModule, AXLoadingSpinnerComponent], template: \"@if (service.isImageLoad()) {\\n <div #f class=\\\"ax-editor-container ax-{{ look }}\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n\\n <ng-content select=\\\"ax-image-editor-view\\\"> </ng-content>\\n\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-error-container\\\"></div>\\n} @else {\\n <div class=\\\"ax-loading-spinner-container\\\">\\n <ax-loading-spinner [size]=\\\"16\\\" color=\\\"primary\\\" text=\\\"Loading Image ...\\\"></ax-loading-spinner>\\n </div>\\n}\\n<ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n@if (disabled) {\\n <div class=\\\"ax-disable-overlay\\\"></div>\\n}\\n\", styles: [\"ax-image-editor-container{width:fit-content;display:block;position:relative}ax-image-editor-container.ax-state-disabled{opacity:.5}ax-image-editor-container .ax-disable-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:not-allowed}ax-image-editor-container>.ax-editor-container{display:block;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}ax-image-editor-container ax-footer{width:100%}ax-image-editor-container ax-header{width:100%}ax-image-editor-container ax-header ax-toolbar{justify-content:space-between}ax-image-editor-container ax-header .ax-start-toolbar-divider{display:none}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }], __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBRU4sVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUUvRDs7O0dBR0c7QUFxQkgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVB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VztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBT1IsVUFBVTtzQkFEckIsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxuICBNWExvb2tDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29udGVudENoaWxkLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogcGFpbnQgY29udGFpbmVyLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtaW1hZ2UtZWRpdG9yLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBvdXRwdXRzOiBbJ29uVmFsdWVDaGFuZ2VkJ10sXG4gIGlucHV0czogWydsb29rJywgJ2Rpc2FibGVkJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIEFYSW1hZ2VFZGl0b3JTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtBWERlY29yYXRvck1vZHVsZSwgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8QmxvYltdPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBpbWFnZUVkaXRvckNvbnRhaW5lciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignZicpO1xuXG4gIHZpZXcgPSBjb250ZW50Q2hpbGQ8QVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQ+KEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50KTtcblxuICAjZWZmID0gZWZmZWN0KCgpID0+IHtcbiAgICB2b2lkIHRoaXMuc2VydmljZS5pbWFnZUJsb2IoKTtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmltYWdlQmxvYigpLmxlbmd0aCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iKCksIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqIEFwcGxpZXMgdGhlIGN1cnJlbnQgY3JvcHBlciBzZWxlY3Rpb24uICovXG5cbiAgYXN5bmMgY3JvcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG5cbiAgICBhd2FpdCB0aGlzLnZpZXcoKT8uY3JvcCgpO1xuXG4gICAgY29uc3QgYmxvYnMgPSB0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iKCk7XG5cbiAgICBpZiAoYmxvYnMubGVuZ3RoICYmIHRoaXMudmFsdWUgPT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLmVtaXRPblZhbHVlQ2hhbmdlZEV2ZW50KG9sZFZhbHVlLCBibG9icyk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm4gJ2F4LXN0YXRlLWRpc2FibGVkJztcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmFtZScpXG4gIHByaXZhdGUgZ2V0IF9faG9zdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG59XG4iLCJAaWYgKHNlcnZpY2UuaXNJbWFnZUxvYWQoKSkge1xuICA8ZGl2ICNmIGNsYXNzPVwiYXgtZWRpdG9yLWNvbnRhaW5lciAgYXgte3sgbG9vayB9fVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWltYWdlLWVkaXRvci12aWV3XCI+IDwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiYXgtbG9hZGluZy1zcGlubmVyLWNvbnRhaW5lclwiPlxuICAgIDxheC1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiMTZcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiTG9hZGluZyBJbWFnZSAuLi5cIj48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgPC9kaXY+XG59XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuXG5AaWYgKGRpc2FibGVkKSB7XG4gIDxkaXYgY2xhc3M9XCJheC1kaXNhYmxlLW92ZXJsYXlcIj48L2Rpdj5cbn1cbiJdfQ==","export const IMAGE_EDITOR_ASPECT_RATIO_ACTIVE_SUFFIX = ':active';\nexport function parseAspectRatioItem(item) {\n if (item.endsWith(IMAGE_EDITOR_ASPECT_RATIO_ACTIVE_SUFFIX)) {\n return {\n ratio: item.slice(0, -IMAGE_EDITOR_ASPECT_RATIO_ACTIVE_SUFFIX.length),\n active: true,\n };\n }\n return { ratio: item, active: false };\n}\nexport function parseAspectRatios(items) {\n const ratios = [];\n let activeRatio = null;\n for (const item of items) {\n const { ratio, active } = parseAspectRatioItem(item);\n ratios.push(ratio);\n if (active && activeRatio === null) {\n activeRatio = ratio;\n }\n }\n return { ratios, activeRatio };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWFzcGVjdC1yYXRpby51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItYXNwZWN0LXJhdGlvLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQUcsU0FBUyxDQUFDO0FBRWpFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFZO0lBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsQ0FBQyxFQUFFLENBQUM7UUFDM0QsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLE1BQU0sQ0FBQztZQUNyRSxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBd0I7SUFJeEQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksV0FBVyxHQUFrQixJQUFJLENBQUM7SUFFdEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkIsSUFBSSxNQUFNLElBQUksV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25DLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSU1BR0VfRURJVE9SX0FTUEVDVF9SQVRJT19BQ1RJVkVfU1VGRklYID0gJzphY3RpdmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBc3BlY3RSYXRpb0l0ZW0oaXRlbTogc3RyaW5nKTogeyByYXRpbzogc3RyaW5nOyBhY3RpdmU6IGJvb2xlYW4gfSB7XG4gIGlmIChpdGVtLmVuZHNXaXRoKElNQUdFX0VESVRPUl9BU1BFQ1RfUkFUSU9fQUNUSVZFX1NVRkZJWCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF0aW86IGl0ZW0uc2xpY2UoMCwgLUlNQUdFX0VESVRPUl9BU1BFQ1RfUkFUSU9fQUNUSVZFX1NVRkZJWC5sZW5ndGgpLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyByYXRpbzogaXRlbSwgYWN0aXZlOiBmYWxzZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBc3BlY3RSYXRpb3MoaXRlbXM6IHJlYWRvbmx5IHN0cmluZ1tdKToge1xuICByYXRpb3M6IHN0cmluZ1tdO1xuICBhY3RpdmVSYXRpbzogc3RyaW5nIHwgbnVsbDtcbn0ge1xuICBjb25zdCByYXRpb3M6IHN0cmluZ1tdID0gW107XG4gIGxldCBhY3RpdmVSYXRpbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgY29uc3QgeyByYXRpbywgYWN0aXZlIH0gPSBwYXJzZUFzcGVjdFJhdGlvSXRlbShpdGVtKTtcbiAgICByYXRpb3MucHVzaChyYXRpbyk7XG5cbiAgICBpZiAoYWN0aXZlICYmIGFjdGl2ZVJhdGlvID09PSBudWxsKSB7XG4gICAgICBhY3RpdmVSYXRpbyA9IHJhdGlvO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHJhdGlvcywgYWN0aXZlUmF0aW8gfTtcbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { AXImageEditorService } from '../image-editor.service';\n/**\n * Base class for image editor tool trigger components.\n * @category Components\n */\nexport class AXImageEditorToolComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n setActive() {\n this.service.activateTool(this.tool);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRWxGOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsMEJBQTBCO0lBQWhEO1FBQ1ksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBT25ELENBQUM7SUFIQyxTQUFTO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UsIEFYSW1hZ2VFZGl0b3JUb29sIH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGltYWdlIGVkaXRvciB0b29sIHRyaWdnZXIgY29tcG9uZW50cy5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBhYnN0cmFjdCByZWFkb25seSB0b29sOiBBWEltYWdlRWRpdG9yVG9vbDtcblxuICBzZXRBY3RpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmFjdGl2YXRlVG9vbCh0aGlzLnRvb2wpO1xuICB9XG59XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, effect, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorContainerComponent } from '../../image-editor-container/image-editor-container.component';\nimport { parseAspectRatios } from '../../image-editor-aspect-ratio.util';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/**\n * Crop tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorCropComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'crop';\n this.container = inject(AXImageEditorContainerComponent);\n /** Aspect ratio presets. Append `:active` to mark the default ratio, e.g. `'2:1:active'`. */\n this.aspectRatio = input([], ...(ngDevMode ? [{ debugName: \"aspectRatio\" }] : []));\n /** Base size in pixels for the initial cropper window dimensions. */\n this.size = input(...(ngDevMode ? [undefined, { debugName: \"size\" }] : []));\n this.#syncSize = effect(() => {\n const size = this.size();\n if (size != null) {\n this.service.cropperSize.set(size);\n }\n }, ...(ngDevMode ? [{ debugName: \"#syncSize\" }] : []));\n this.#syncAspectRatio = effect(() => {\n const { activeRatio } = parseAspectRatios(this.aspectRatio());\n if (activeRatio) {\n this.service.cropperRatio.set(activeRatio);\n }\n }, ...(ngDevMode ? [{ debugName: \"#syncAspectRatio\" }] : []));\n }\n #syncSize;\n #syncAspectRatio;\n /** Applies the current cropper selection. */\n crop() {\n this.container.crop();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXImageEditorCropComponent, isStandalone: true, selector: \"ax-image-editor-crop\", inputs: { aspectRatio: { classPropertyName: \"aspectRatio\", publicName: \"aspectRatio\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'crop'\\\"\\n [color]=\\\"service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-crop', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AsyncPipe, AXTranslatorPipe, AXTooltipModule], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'crop'\\\"\\n [color]=\\\"service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUU1RTs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsMEJBQTBCO0lBUDFFOztRQVFXLFNBQUksR0FBRyxNQUFNLENBQUM7UUFFZixjQUFTLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFNUQsNkZBQTZGO1FBQzdGLGdCQUFXLEdBQUcsS0FBSyxDQUFXLEVBQUUsdURBQUMsQ0FBQztRQUVsQyxxRUFBcUU7UUFDckUsU0FBSSxHQUFHLEtBQUssMERBQVUsQ0FBQztRQUV2QixjQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxxREFBQyxDQUFDO1FBRUgscUJBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDLDREQUFDLENBQUM7S0FNSjtJQWxCQyxTQUFTLENBS047SUFFSCxnQkFBZ0IsQ0FLYjtJQUVILDZDQUE2QztJQUM3QyxJQUFJO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQTVCVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw4VUFGMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLENBQUMsaURDcEJoRiwwWUFXQSw0Q0RRWSxpQkFBaUIsMFVBQUUsaUJBQWlCLCtIQUErQixlQUFlLGtSQUE1QyxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBR2hFLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLGFBQ2xGLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNEJBQTRCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgcGFyc2VBc3BlY3RSYXRpb3MgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3ItYXNwZWN0LXJhdGlvLnV0aWwnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclRvb2xDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItdG9vbC5jb21wb25lbnQnO1xuXG4vKipcbiAqIENyb3AgdG9vbCB0cmlnZ2VyIGZvciB0aGUgaW1hZ2UgZWRpdG9yIHRvb2xiYXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY3JvcC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWEJ1dHRvbkNvbXBvbmVudCwgQVhEZWNvcmF0b3JNb2R1bGUsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCBleHRlbmRzIEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdG9vbCA9ICdjcm9wJztcblxuICBwcml2YXRlIGNvbnRhaW5lciA9IGluamVjdChBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KTtcblxuICAvKiogQXNwZWN0IHJhdGlvIHByZXNldHMuIEFwcGVuZCBgOmFjdGl2ZWAgdG8gbWFyayB0aGUgZGVmYXVsdCByYXRpbywgZS5nLiBgJzI6MTphY3RpdmUnYC4gKi9cbiAgYXNwZWN0UmF0aW8gPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuXG4gIC8qKiBCYXNlIHNpemUgaW4gcGl4ZWxzIGZvciB0aGUgaW5pdGlhbCBjcm9wcGVyIHdpbmRvdyBkaW1lbnNpb25zLiAqL1xuICBzaXplID0gaW5wdXQ8bnVtYmVyPigpO1xuXG4gICNzeW5jU2l6ZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZSgpO1xuICAgIGlmIChzaXplICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc2VydmljZS5jcm9wcGVyU2l6ZS5zZXQoc2l6ZSk7XG4gICAgfVxuICB9KTtcblxuICAjc3luY0FzcGVjdFJhdGlvID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IGFjdGl2ZVJhdGlvIH0gPSBwYXJzZUFzcGVjdFJhdGlvcyh0aGlzLmFzcGVjdFJhdGlvKCkpO1xuICAgIGlmIChhY3RpdmVSYXRpbykge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpby5zZXQoYWN0aXZlUmF0aW8pO1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqIEFwcGxpZXMgdGhlIGN1cnJlbnQgY3JvcHBlciBzZWxlY3Rpb24uICovXG4gIGNyb3AoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXIuY3JvcCgpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLmNyb3AnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJzZXJ2aWNlLnRvZ2dsZVRvb2woJ2Nyb3AnKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJzZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpID09PSAnY3JvcCdcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2Nyb3AnID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgY2xhc3M9XCJheC14c1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNyb3BcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/**\n * Highlight tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorHighlightComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'highlight';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorHighlightComponent, isStandalone: true, selector: \"ax-image-editor-highlight\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'highlight'\\\"\\n [color]=\\\"service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-highlight', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'highlight'\\\"\\n [color]=\\\"service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0L2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFNUU7OztHQUdHO0FBU0gsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLDBCQUEwQjtJQVIvRTs7UUFTVyxTQUFJLEdBQUcsV0FBVyxDQUFDO0tBQzdCOzhHQUZZLCtCQUErQjtrR0FBL0IsK0JBQStCLHdFQUYvQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxpRENuQnJGLGthQVdBLDRDRE1ZLGlCQUFpQiwwVUFBRSxpQkFBaUIsK0hBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFJaEUsK0JBQStCO2tCQVIzQyxTQUFTOytCQUNFLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQzVFLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxpQ0FBaUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50JztcblxuLyoqXG4gKiBIaWdobGlnaHQgdG9vbCB0cmlnZ2VyIGZvciB0aGUgaW1hZ2UgZWRpdG9yIHRvb2xiYXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yTW9kdWxlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCBleHRlbmRzIEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdG9vbCA9ICdoaWdobGlnaHQnO1xufVxuIiwiPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLmhpZ2hsaWdodCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cInNlcnZpY2UudG9nZ2xlVG9vbCgnaGlnaGxpZ2h0JylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2hpZ2hsaWdodCdcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2hpZ2hsaWdodCcgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICBjbGFzcz1cImF4LXhzXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24taGlnaGxpZ2h0XCI+PC9heC1pY29uPlxuPC9heC1idXR0b24+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\n/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorHistoryComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n UndoHandler() {\n this.service.undoPressed.set(true);\n }\n RedoHandler() {\n this.service.redoPressed.set(true);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorHistoryComponent, isStandalone: true, selector: \"ax-image-editor-history\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHistoryComponent }], ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.undo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"UndoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-undo\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.redo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"RedoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-redo\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHistoryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-history', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHistoryComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.undo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"UndoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-undo\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.redo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"RedoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-redo\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpc3RvcnkvaW1hZ2UtZWRpdG9yLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpc3RvcnkvaW1hZ2UtZWRpdG9yLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVsRTs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sNkJBQTZCO0lBUjFDO1FBU1ksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBUWxEO0lBTlcsV0FBVztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNTLFdBQVc7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OEdBUlUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsc0VBRjdCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLDBCQ25CbkYsOGNBaUJBLDRDREFZLGlCQUFpQiwwVUFBRSxpQkFBaUIsZ0lBQUUsa0JBQWtCLGtPQUErQixlQUFlLDBCQUE1QyxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBSXBGLDZCQUE2QjtrQkFSekMsU0FBUzsrQkFDRSx5QkFBeUIsaUJBRXBCLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLG1CQUNoRyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsK0JBQStCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVG9vbHRpcERpcmVjdGl2ZSwgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogcGFpbnQgbW9kZS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYQnV0dG9uQ29tcG9uZW50LCBBWERlY29yYXRvck1vZHVsZSwgQVhUb29sdGlwRGlyZWN0aXZlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpc3RvcnlDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JIaXN0b3J5Q29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBVbmRvSGFuZGxlcigpIHtcbiAgICB0aGlzLnNlcnZpY2UudW5kb1ByZXNzZWQuc2V0KHRydWUpO1xuICB9XG4gIHByb3RlY3RlZCBSZWRvSGFuZGxlcigpIHtcbiAgICB0aGlzLnNlcnZpY2UucmVkb1ByZXNzZWQuc2V0KHRydWUpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnVuZG8nIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJVbmRvSGFuZGxlcigpXCJcbiAgbG9vaz1cImJsYW5rXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tdW5kb1wiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuXG48YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJlZG8nIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJSZWRvSGFuZGxlcigpXCJcbiAgbG9vaz1cImJsYW5rXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tcmVkb1wiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/**\n * Pen tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorPenComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'pen';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorPenComponent, isStandalone: true, selector: \"ax-image-editor-pen\", providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'pen'\\\"\\n [color]=\\\"service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-pen', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'pen'\\\"\\n [color]=\\\"service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXBlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItcGVuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFNUU7OztHQUdHO0FBU0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDBCQUEwQjtJQVJ6RTs7UUFTVyxTQUFJLEdBQUcsS0FBSyxDQUFDO0tBQ3ZCOzhHQUZZLHlCQUF5QjtrR0FBekIseUJBQXlCLGtFQUZ6QixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxpRENuQi9FLG9ZQVdBLDRDRE1ZLGlCQUFpQiwwVUFBRSxpQkFBaUIsK0hBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFJaEUseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHFCQUFxQixpQkFFaEIsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQzVFLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVywyQkFBMkIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50JztcblxuLyoqXG4gKiBQZW4gdG9vbCB0cmlnZ2VyIGZvciB0aGUgaW1hZ2UgZWRpdG9yIHRvb2xiYXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItcGVuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yTW9kdWxlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCBleHRlbmRzIEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdG9vbCA9ICdwZW4nO1xufVxuIiwiPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLnBlbicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cInNlcnZpY2UudG9nZ2xlVG9vbCgncGVuJylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3BlbidcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3BlbicgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICBjbGFzcz1cImF4LXhzXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGVuXCI+PC9heC1pY29uPlxuPC9heC1idXR0b24+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\n/**\n * Rotate tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorRotateComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'rotate';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorRotateComponent, isStandalone: true, selector: \"ax-image-editor-rotate\", providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'rotate'\\\"\\n [color]=\\\"service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <i class=\\\"fa-solid fa-rotate\\\"></i>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-rotate', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXTooltipDirective, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'rotate'\\\"\\n [color]=\\\"service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <i class=\\\"fa-solid fa-rotate\\\"></i>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXJvdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3Itcm90YXRlL2ltYWdlLWVkaXRvci1yb3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRTVFOzs7R0FHRztBQVNILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSwwQkFBMEI7SUFSNUU7O1FBU1csU0FBSSxHQUFHLFFBQVEsQ0FBQztLQUMxQjs4R0FGWSw0QkFBNEI7a0dBQTVCLDRCQUE0QixxRUFGNUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUMsaURDbEJsRixvWUFXQSw0Q0RLWSxpQkFBaUIsMlVBQUUsa0JBQWtCLGtPQUErQixlQUFlLDBCQUE1QyxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBSWpFLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBRW5CLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLG1CQUM3RSx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWFRvb2x0aXBEaXJlY3RpdmUsIEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVG9vbENvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci10b29sLmNvbXBvbmVudCc7XG5cbi8qKlxuICogUm90YXRlIHRvb2wgdHJpZ2dlciBmb3IgdGhlIGltYWdlIGVkaXRvciB0b29sYmFyLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYQnV0dG9uQ29tcG9uZW50LCBBWFRvb2x0aXBEaXJlY3RpdmUsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IGV4dGVuZHMgQVhJbWFnZUVkaXRvclRvb2xDb21wb25lbnQge1xuICByZWFkb25seSB0b29sID0gJ3JvdGF0ZSc7XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJvdGF0ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cInNlcnZpY2UudG9nZ2xlVG9vbCgncm90YXRlJylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3JvdGF0ZSdcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3JvdGF0ZScgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICBjbGFzcz1cImF4LXhzXCJcbj5cbiAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGVcIj48L2k+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, computed, inject, input, output, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorContainerComponent } from '../../image-editor-container/image-editor-container.component';\nimport { parseAspectRatios } from '../../image-editor-aspect-ratio.util';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/** @ignore */\nexport class AXImageEditorCropOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n this.container = inject(AXImageEditorContainerComponent);\n this.cropPressed = output();\n this.aspectRatio = input([], ...(ngDevMode ? [{ debugName: \"aspectRatio\" }] : []));\n this.aspectRatios = computed(() => parseAspectRatios(this.aspectRatio()).ratios, ...(ngDevMode ? [{ debugName: \"aspectRatios\" }] : []));\n }\n cropButtonHandler() {\n this.cropPressed.emit();\n this.container.crop();\n }\n ratioHandler(r) {\n if (this.service.cropperRatio() === r) {\n this.service.cropperRatio.set(null);\n }\n else {\n this.service.cropperRatio.set(r);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorCropOptionsComponent, isStandalone: true, selector: \"ax-image-editor-crop-options\", inputs: { aspectRatio: { classPropertyName: \"aspectRatio\", publicName: \"aspectRatio\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cropPressed: \"cropPressed\" }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropOptionsComponent }], ngImport: i0, template: \"<div class=\\\"ax-image-editor-crop-ratios\\\">\\n @for (item of aspectRatios(); track item) {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === item\\\"\\n [color]=\\\"service.cropperRatio() === item ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler(item)\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"item\\\"\\n ></ax-button>\\n } @empty {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '1:1'\\\"\\n [color]=\\\"service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"1:1\\\"\\n ></ax-button>\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '16:9'\\\"\\n [color]=\\\"service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"16:9\\\"\\n ></ax-button>\\n }\\n</div>\\n\\n<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n color=\\\"primary\\\"\\n></ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-crop-options', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropOptionsComponent }], template: \"<div class=\\\"ax-image-editor-crop-ratios\\\">\\n @for (item of aspectRatios(); track item) {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === item\\\"\\n [color]=\\\"service.cropperRatio() === item ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler(item)\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"item\\\"\\n ></ax-button>\\n } @empty {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '1:1'\\\"\\n [color]=\\\"service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"1:1\\\"\\n ></ax-button>\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '16:9'\\\"\\n [color]=\\\"service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"16:9\\\"\\n ></ax-button>\\n }\\n</div>\\n\\n<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n color=\\\"primary\\\"\\n></ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3Atb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItY3JvcC9pbWFnZS1lZGl0b3ItY3JvcC1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFbEUsY0FBYztBQVFkLE1BQU0sT0FBTyxpQ0FBaUM7SUFQOUM7UUFRWSxZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFekMsY0FBUyxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRTVELGdCQUFXLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxLQUFLLENBQVcsRUFBRSx1REFBQyxDQUFDO1FBRXhCLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sd0RBQUMsQ0FBQztLQWN2RjtJQVpXLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLFlBQVksQ0FBQyxDQUEwQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDOzhHQXRCVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywwUUFGakMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGlDQUFpQyxFQUFFLENBQUMsMEJDZnZGLCtqQ0FpQ0EsNENEbkJZLGlCQUFpQixzVUFBRSxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBRzdDLGlDQUFpQztrQkFQN0MsU0FBUzsrQkFDRSw4QkFBOEIsaUJBRXpCLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsYUFDOUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxtQ0FBbUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgcGFyc2VBc3BlY3RSYXRpb3MgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3ItYXNwZWN0LXJhdGlvLnV0aWwnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcC1vcHRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Db21wb25lbnQsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yQ3JvcE9wdGlvbnNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDcm9wT3B0aW9uc0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBwcml2YXRlIGNvbnRhaW5lciA9IGluamVjdChBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KTtcblxuICBjcm9wUHJlc3NlZCA9IG91dHB1dCgpO1xuXG4gIGFzcGVjdFJhdGlvID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICBwcm90ZWN0ZWQgYXNwZWN0UmF0aW9zID0gY29tcHV0ZWQoKCkgPT4gcGFyc2VBc3BlY3RSYXRpb3ModGhpcy5hc3BlY3RSYXRpbygpKS5yYXRpb3MpO1xuXG4gIHByb3RlY3RlZCBjcm9wQnV0dG9uSGFuZGxlcigpIHtcbiAgICB0aGlzLmNyb3BQcmVzc2VkLmVtaXQoKTtcbiAgICB0aGlzLmNvbnRhaW5lci5jcm9wKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmF0aW9IYW5kbGVyKHI6ICcxOjEnIHwgJzE2OjknIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gcikge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpby5zZXQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8uc2V0KHIpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWltYWdlLWVkaXRvci1jcm9wLXJhdGlvc1wiPlxuICBAZm9yIChpdGVtIG9mIGFzcGVjdFJhdGlvcygpOyB0cmFjayBpdGVtKSB7XG4gICAgPGF4LWJ1dHRvblxuICAgICAgW3NlbGVjdGVkXT1cInNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09IGl0ZW1cIlxuICAgICAgW2NvbG9yXT1cInNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09IGl0ZW0gPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgKGNsaWNrKT1cInJhdGlvSGFuZGxlcihpdGVtKVwiXG4gICAgICBjbGFzcz1cImF4LWNyb3Atc2F2ZSBheC14c1wiXG4gICAgICBbdGV4dF09XCJpdGVtXCJcbiAgICA+PC9heC1idXR0b24+XG4gIH0gQGVtcHR5IHtcbiAgICA8YXgtYnV0dG9uXG4gICAgICBbc2VsZWN0ZWRdPVwic2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE6MSdcIlxuICAgICAgW2NvbG9yXT1cInNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxOjEnID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICAgIChjbGljayk9XCJyYXRpb0hhbmRsZXIoJzE6MScpXCJcbiAgICAgIGNsYXNzPVwiYXgtY3JvcC1zYXZlIGF4LXhzXCJcbiAgICAgIHRleHQ9XCIxOjFcIlxuICAgID48L2F4LWJ1dHRvbj5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbc2VsZWN0ZWRdPVwic2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknXCJcbiAgICAgIFtjb2xvcl09XCJzZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMTY6OScgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgKGNsaWNrKT1cInJhdGlvSGFuZGxlcignMTY6OScpXCJcbiAgICAgIGNsYXNzPVwiYXgtY3JvcC1zYXZlIGF4LXhzXCJcbiAgICAgIHRleHQ9XCIxNjo5XCJcbiAgICA+PC9heC1idXR0b24+XG4gIH1cbjwvZGl2PlxuXG48YXgtYnV0dG9uXG4gIChjbGljayk9XCJjcm9wQnV0dG9uSGFuZGxlcigpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgteHNcIlxuICBbdGV4dF09XCInQGFjb3JleDppbWFnZS1lZGl0b3IuY3JvcCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGNvbG9yPVwicHJpbWFyeVwiXG4+PC9heC1idXR0b24+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/** @ignore */\nexport class AXImageEditorHighlightOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n /** @ignore */\n this.selectedColor = signal(this.service.highlightColor(), ...(ngDevMode ? [{ debugName: \"selectedColor\" }] : []));\n /** @ignore */\n this.value = this.service.highlightWidth();\n }\n changeColorHandler(e) {\n this.service.highlightColor.set(e);\n this.selectedColor.set(e);\n }\n /** @ignore */\n valueHandler(e) {\n this.service.highlightWidth.set(e);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorHighlightOptionsComponent, isStandalone: true, selector: \"ax-image-editor-highlight-options\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightOptionsComponent }], ngImport: i0, template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\", dependencies: [{ kind: \"component\", type: AXColorBoxComponent, selector: \"ax-color-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"showBadge\", \"showValue\", \"showClearButton\", \"showIcon\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXRangeSliderComponent, selector: \"ax-range-slider\", inputs: [\"disabled\", \"readonly\", \"orientation\", \"color\", \"values\", \"mode\", \"min\", \"max\", \"step\", \"snap\", \"tooltipMode\", \"snapMode\", \"hasStep\", \"hasSnap\", \"hasLable\", \"hasTooltip\"], outputs: [\"valuesChange\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-highlight-options', encapsulation: ViewEncapsulation.None, imports: [\n AXColorBoxComponent,\n FormsModule,\n AXRangeSliderComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightOptionsComponent }], template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaWdobGlnaHQvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaWdobGlnaHQvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEUsY0FBYztBQWdCZCxNQUFNLE9BQU8sc0NBQXNDO0lBZm5EO1FBZ0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osa0JBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUseURBQUMsQ0FBQztRQUVoRSxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7S0FXakQ7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDOzhHQWpCVSxzQ0FBc0M7a0dBQXRDLHNDQUFzQyxnRkFGdEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHNDQUFzQyxFQUFFLENBQUMsMEJDeEI1Riw4WkFZQSw0Q0RJSSxtQkFBbUIsa1dBQ25CLFdBQVcsK1ZBQ1gsc0JBQXNCLDJRQUd0QixlQUFlLGtSQUZmLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCxzQ0FBc0M7a0JBZmxELFNBQVM7K0JBQ0UsbUNBQW1DLGlCQUU5QixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHdDQUF3QyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWENvbG9yQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbG9yLWJveCc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LW9wdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQ29sb3JCb3hDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhSYW5nZVNsaWRlckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpZ2hsaWdodE9wdGlvbnNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRPcHRpb25zQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbG9yID0gc2lnbmFsKHRoaXMuc2VydmljZS5oaWdobGlnaHRDb2xvcigpKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWUgPSB0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0V2lkdGgoKTtcblxuICBwcm90ZWN0ZWQgY2hhbmdlQ29sb3JIYW5kbGVyKGU6IHN0cmluZykge1xuICAgIHRoaXMuc2VydmljZS5oaWdobGlnaHRDb2xvci5zZXQoZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbG9yLnNldChlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB2YWx1ZUhhbmRsZXIoZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmhpZ2hsaWdodFdpZHRoLnNldChlKTtcbiAgfVxufVxuIiwiPGF4LWNvbG9yLWJveFxuICBbc2hvd1ZhbHVlXT1cImZhbHNlXCJcbiAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgW2F4VG9vbHRpcF09XCInQGFjb3JleDpwYWludC50b29scy5oaWdobGlnaHQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICBsb29rPVwibm9uZVwiXG4gIFtuZ01vZGVsXT1cInNlbGVjdGVkQ29sb3IoKVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNvbG9ySGFuZGxlcigkZXZlbnQpXCJcbj5cbjwvYXgtY29sb3ItYm94PlxuXG48YXgtcmFuZ2Utc2xpZGVyIFttaW5dPVwiMlwiIFttYXhdPVwiMjBcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVIYW5kbGVyKCRldmVudClcIj48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/** @ignore */\nexport class AXImageEditorPenOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n /** @ignore */\n this.value = this.service.penWidth();\n /** @ignore */\n this.selectedColor = signal(this.service.penColor(), ...(ngDevMode ? [{ debugName: \"selectedColor\" }] : []));\n }\n changeColorHandler(e) {\n this.service.penColor.set(e);\n this.selectedColor.set(e);\n }\n /** @ignore */\n valueHandler(e) {\n this.service.penWidth.set(e);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorPenOptionsComponent, isStandalone: true, selector: \"ax-image-editor-pen-options\", providers: [{ provide: AXComponent, useExisting: AXImageEditorPenOptionsComponent }], ngImport: i0, template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\", dependencies: [{ kind: \"component\", type: AXColorBoxComponent, selector: \"ax-color-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"showBadge\", \"showValue\", \"showClearButton\", \"showIcon\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXRangeSliderComponent, selector: \"ax-range-slider\", inputs: [\"disabled\", \"readonly\", \"orientation\", \"color\", \"values\", \"mode\", \"min\", \"max\", \"step\", \"snap\", \"tooltipMode\", \"snapMode\", \"hasStep\", \"hasSnap\", \"hasLable\", \"hasTooltip\"], outputs: [\"valuesChange\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-pen-options', encapsulation: ViewEncapsulation.None, imports: [\n AXColorBoxComponent,\n FormsModule,\n AXRangeSliderComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorPenOptionsComponent }], template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1wZW4vaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1wZW4vaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEUsY0FBYztBQWdCZCxNQUFNLE9BQU8sZ0NBQWdDO0lBZjdDO1FBZ0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFMUMsY0FBYztRQUNKLGtCQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLHlEQUFDLENBQUM7S0FXM0Q7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWpCVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywwRUFGaEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGdDQUFnQyxFQUFFLENBQUMsMEJDeEJ0Rix3WkFZQSw0Q0RJSSxtQkFBbUIsa1dBQ25CLFdBQVcsK1ZBQ1gsc0JBQXNCLDJRQUd0QixlQUFlLGtSQUZmLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCxnQ0FBZ0M7a0JBZjVDLFNBQVM7K0JBQ0UsNkJBQTZCLGlCQUV4QixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLGtDQUFrQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWENvbG9yQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbG9yLWJveCc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItcGVuLW9wdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQ29sb3JCb3hDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhSYW5nZVNsaWRlckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclBlbk9wdGlvbnNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JQZW5PcHRpb25zQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB2YWx1ZSA9IHRoaXMuc2VydmljZS5wZW5XaWR0aCgpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbG9yID0gc2lnbmFsKHRoaXMuc2VydmljZS5wZW5Db2xvcigpKTtcblxuICBwcm90ZWN0ZWQgY2hhbmdlQ29sb3JIYW5kbGVyKGU6IHN0cmluZykge1xuICAgIHRoaXMuc2VydmljZS5wZW5Db2xvci5zZXQoZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbG9yLnNldChlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB2YWx1ZUhhbmRsZXIoZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnBlbldpZHRoLnNldChlKTtcbiAgfVxufVxuIiwiPGF4LWNvbG9yLWJveFxuICBbc2hvd1ZhbHVlXT1cImZhbHNlXCJcbiAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgW2F4VG9vbHRpcF09XCInQGFjb3JleDpwYWludC50b29scy5wZW4nIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICBsb29rPVwibm9uZVwiXG4gIFtuZ01vZGVsXT1cInNlbGVjdGVkQ29sb3IoKVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNvbG9ySGFuZGxlcigkZXZlbnQpXCJcbj5cbjwvYXgtY29sb3ItYm94PlxuXG48YXgtcmFuZ2Utc2xpZGVyIFttaW5dPVwiMlwiIFttYXhdPVwiMjBcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVIYW5kbGVyKCRldmVudClcIj48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/** @ignore */\nexport class AXImageEditorRotateOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n rotateRightHandler() {\n this.service.rotate.set({ state: 90, userInteract: true });\n }\n rotateLeftHandler() {\n this.service.rotate.set({ state: -90, userInteract: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorRotateOptionsComponent, isStandalone: true, selector: \"ax-image-editor-rotate-options\", providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateOptionsComponent }], ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-left' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateLeftHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-left\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-right' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateRightHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-right\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-rotate-options', encapsulation: ViewEncapsulation.None, imports: [\n AXButtonComponent,\n AXTooltipDirective,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateOptionsComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-left' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateLeftHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-left\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-right' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateRightHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-right\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1yb3RhdGUvaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1yb3RhdGUvaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVsRSxjQUFjO0FBZ0JkLE1BQU0sT0FBTyxtQ0FBbUM7SUFmaEQ7UUFnQlksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBU2xEO0lBUFcsa0JBQWtCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs4R0FUVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw2RUFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsMEJDdkJ6Riw2ZkFpQkEsNENERkksaUJBQWlCLDJVQUNqQixrQkFBa0IsbU9BQ2xCLHdCQUF3QixxRUFHeEIsZUFBZSwwQkFGZixTQUFTLHlDQUNULGdCQUFnQjs7MkZBTVAsbUNBQW1DO2tCQWYvQyxTQUFTOytCQUNFLGdDQUFnQyxpQkFFM0IsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQ0FBcUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVG9vbHRpcERpcmVjdGl2ZSwgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3Itcm90YXRlLW9wdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhUb29sdGlwTW9kdWxlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JSb3RhdGVPcHRpb25zQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yUm90YXRlT3B0aW9uc0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcm90YXRlUmlnaHRIYW5kbGVyKCkge1xuICAgIHRoaXMuc2VydmljZS5yb3RhdGUuc2V0KHsgc3RhdGU6IDkwLCB1c2VySW50ZXJhY3Q6IHRydWUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcm90YXRlTGVmdEhhbmRsZXIoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnJvdGF0ZS5zZXQoeyBzdGF0ZTogLTkwLCB1c2VySW50ZXJhY3Q6IHRydWUgfSk7XG4gIH1cbn1cbiIsIjxheC1idXR0b25cbiAgW2F4VG9vbHRpcF09XCInQGFjb3JleDppbWFnZS1lZGl0b3Iucm90YXRlLWxlZnQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAoY2xpY2spPVwicm90YXRlTGVmdEhhbmRsZXIoKVwiXG4gIGxvb2s9XCJibGFua1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFycm93LXR1cm4tbGVmdFwiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuXG48YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJvdGF0ZS1yaWdodCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChjbGljayk9XCJyb3RhdGVSaWdodEhhbmRsZXIoKVwiXG4gIGxvb2s9XCJibGFua1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFycm93LXR1cm4tcmlnaHRcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, effect, inject, input, ViewEncapsulation, } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport { AXImageEditorCropOptionsComponent } from '../image-editor-crop/image-editor-crop-options.component';\nimport { AXImageEditorCropComponent } from '../image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorHighlightOptionsComponent } from '../image-editor-highlight/image-editor-highlight-options.component';\nimport { AXImageEditorHighlightComponent } from '../image-editor-highlight/image-editor-highlight.component';\nimport { AXImageEditorPenOptionsComponent } from '../image-editor-pen/image-editor-pen-options.component';\nimport { AXImageEditorPenComponent } from '../image-editor-pen/image-editor-pen.component';\nimport { AXImageEditorRotateOptionsComponent } from '../image-editor-rotate/image-editor-rotate-options.component';\nimport { AXImageEditorRotateComponent } from '../image-editor-rotate/image-editor-rotate.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/toolbar\";\n/**\n * Toolbar layout for configurable image editor tools.\n * @category Components\n */\nexport class AXImageEditorToolsBarComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n /**\n * Tool component reference to activate on load.\n */\n this.active = input(...(ngDevMode ? [undefined, { debugName: \"active\" }] : []));\n /** Hides the tools bar UI while keeping projected tools configurable. */\n this.hidden = input(false, ...(ngDevMode ? [{ debugName: \"hidden\" }] : []));\n this.penTool = contentChild(AXImageEditorPenComponent, ...(ngDevMode ? [{ debugName: \"penTool\" }] : []));\n this.highlightTool = contentChild(AXImageEditorHighlightComponent, ...(ngDevMode ? [{ debugName: \"highlightTool\" }] : []));\n this.cropTool = contentChild(AXImageEditorCropComponent, ...(ngDevMode ? [{ debugName: \"cropTool\" }] : []));\n this.rotateTool = contentChild(AXImageEditorRotateComponent, ...(ngDevMode ? [{ debugName: \"rotateTool\" }] : []));\n this.cropAspectRatio = computed(() => this.cropTool()?.aspectRatio() ?? [], ...(ngDevMode ? [{ debugName: \"cropAspectRatio\" }] : []));\n this.#activeEffect = effect(() => {\n this.active()?.setActive();\n }, ...(ngDevMode ? [{ debugName: \"#activeEffect\" }] : []));\n }\n #activeEffect;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolsBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorToolsBarComponent, isStandalone: true, selector: \"ax-image-editor-tools-bar\", inputs: { active: { classPropertyName: \"active\", publicName: \"active\", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: \"hidden\", publicName: \"hidden\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.ax-image-editor-tools-bar-hidden\": \"hidden()\" } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorToolsBarComponent }], queries: [{ propertyName: \"penTool\", first: true, predicate: AXImageEditorPenComponent, descendants: true, isSignal: true }, { propertyName: \"highlightTool\", first: true, predicate: AXImageEditorHighlightComponent, descendants: true, isSignal: true }, { propertyName: \"cropTool\", first: true, predicate: AXImageEditorCropComponent, descendants: true, isSignal: true }, { propertyName: \"rotateTool\", first: true, predicate: AXImageEditorRotateComponent, descendants: true, isSignal: true }], ngImport: i0, template: \"<ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-prefix class=\\\"ax-image-editor-tool-triggers\\\">\\n <ng-content\\n select=\\\"ax-image-editor-pen, ax-image-editor-highlight, ax-image-editor-crop, ax-image-editor-rotate\\\"\\n ></ng-content>\\n </ax-prefix>\\n\\n @if (service.activeToolState()) {\\n <ax-suffix class=\\\"ax-image-editor-tool-options\\\">\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n @if (penTool()) {\\n <ax-image-editor-pen-options></ax-image-editor-pen-options>\\n }\\n }\\n @case ('highlight') {\\n @if (highlightTool()) {\\n <ax-image-editor-highlight-options></ax-image-editor-highlight-options>\\n }\\n }\\n @case ('crop') {\\n @if (cropTool()) {\\n <ax-image-editor-crop-options [aspectRatio]=\\\"cropAspectRatio()\\\"></ax-image-editor-crop-options>\\n }\\n }\\n @case ('rotate') {\\n @if (rotateTool()) {\\n <ax-image-editor-rotate-options></ax-image-editor-rotate-options>\\n }\\n }\\n }\\n </ax-suffix>\\n }\\n</ax-toolbar>\\n\", styles: [\"ax-image-editor-tools-bar{display:block;width:100%}ax-image-editor-tools-bar.ax-image-editor-tools-bar-hidden{display:none}ax-image-editor-tools-bar .ax-main-toolbar{justify-content:space-between;padding:.5rem}ax-image-editor-tools-bar .ax-main-toolbar ax-divider{display:none}ax-image-editor-tools-bar .ax-main-toolbar>ax-suffix{flex:1;margin-left:auto}ax-image-editor-tools-bar .ax-image-editor-tool-triggers{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}ax-image-editor-tools-bar .ax-image-editor-tool-options{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex:1;min-width:0}ax-image-editor-tools-bar .ax-image-editor-crop-ratios{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.25rem}ax-image-editor-tools-bar ax-image-editor-pen-options,ax-image-editor-tools-bar ax-image-editor-highlight-options{display:flex;align-items:center;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-color-box,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-color-box{flex:0 0 auto}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider .ax-range-slider .ax-range-slider-handler,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-tools-bar ax-image-editor-crop-options{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-rotate-options{display:flex;align-items:center;gap:.25rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXToolBarModule }, { kind: \"component\", type: i2.AXToolBarComponent, selector: \"ax-toolbar\" }, { kind: \"component\", type: AXImageEditorPenOptionsComponent, selector: \"ax-image-editor-pen-options\" }, { kind: \"component\", type: AXImageEditorHighlightOptionsComponent, selector: \"ax-image-editor-highlight-options\" }, { kind: \"component\", type: AXImageEditorCropOptionsComponent, selector: \"ax-image-editor-crop-options\", inputs: [\"aspectRatio\"], outputs: [\"cropPressed\"] }, { kind: \"component\", type: AXImageEditorRotateOptionsComponent, selector: \"ax-image-editor-rotate-options\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolsBarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-tools-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[class.ax-image-editor-tools-bar-hidden]': 'hidden()',\n }, imports: [\n AXDecoratorModule,\n AXToolBarModule,\n AXImageEditorPenOptionsComponent,\n AXImageEditorHighlightOptionsComponent,\n AXImageEditorCropOptionsComponent,\n AXImageEditorRotateOptionsComponent,\n ], providers: [{ provide: AXComponent, useExisting: AXImageEditorToolsBarComponent }], template: \"<ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-prefix class=\\\"ax-image-editor-tool-triggers\\\">\\n <ng-content\\n select=\\\"ax-image-editor-pen, ax-image-editor-highlight, ax-image-editor-crop, ax-image-editor-rotate\\\"\\n ></ng-content>\\n </ax-prefix>\\n\\n @if (service.activeToolState()) {\\n <ax-suffix class=\\\"ax-image-editor-tool-options\\\">\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n @if (penTool()) {\\n <ax-image-editor-pen-options></ax-image-editor-pen-options>\\n }\\n }\\n @case ('highlight') {\\n @if (highlightTool()) {\\n <ax-image-editor-highlight-options></ax-image-editor-highlight-options>\\n }\\n }\\n @case ('crop') {\\n @if (cropTool()) {\\n <ax-image-editor-crop-options [aspectRatio]=\\\"cropAspectRatio()\\\"></ax-image-editor-crop-options>\\n }\\n }\\n @case ('rotate') {\\n @if (rotateTool()) {\\n <ax-image-editor-rotate-options></ax-image-editor-rotate-options>\\n }\\n }\\n }\\n </ax-suffix>\\n }\\n</ax-toolbar>\\n\", styles: [\"ax-image-editor-tools-bar{display:block;width:100%}ax-image-editor-tools-bar.ax-image-editor-tools-bar-hidden{display:none}ax-image-editor-tools-bar .ax-main-toolbar{justify-content:space-between;padding:.5rem}ax-image-editor-tools-bar .ax-main-toolbar ax-divider{display:none}ax-image-editor-tools-bar .ax-main-toolbar>ax-suffix{flex:1;margin-left:auto}ax-image-editor-tools-bar .ax-image-editor-tool-triggers{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}ax-image-editor-tools-bar .ax-image-editor-tool-options{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex:1;min-width:0}ax-image-editor-tools-bar .ax-image-editor-crop-ratios{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.25rem}ax-image-editor-tools-bar ax-image-editor-pen-options,ax-image-editor-tools-bar ax-image-editor-highlight-options{display:flex;align-items:center;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-color-box,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-color-box{flex:0 0 auto}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider .ax-range-slider .ax-range-slider-handler,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-tools-bar ax-image-editor-crop-options{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-rotate-options{display:flex;align-items:center;gap:.25rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyL2ltYWdlLWVkaXRvci10b29scy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDNUgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbkgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7QUFHcEc7OztHQUdHO0FBb0JILE1BQU0sT0FBTyw4QkFBOEI7SUFuQjNDO1FBb0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLDREQUE4QixDQUFDO1FBRTdDLHlFQUF5RTtRQUN6RSxXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssa0RBQUMsQ0FBQztRQUVaLFlBQU8sR0FBRyxZQUFZLENBQUMseUJBQXlCLG1EQUFDLENBQUM7UUFDbEQsa0JBQWEsR0FBRyxZQUFZLENBQUMsK0JBQStCLHlEQUFDLENBQUM7UUFDOUQsYUFBUSxHQUFHLFlBQVksQ0FBQywwQkFBMEIsb0RBQUMsQ0FBQztRQUNwRCxlQUFVLEdBQUcsWUFBWSxDQUFDLDRCQUE0QixzREFBQyxDQUFDO1FBRXhELG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLDJEQUFDLENBQUM7UUFFakYsa0JBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM3QixDQUFDLHlEQUFDLENBQUM7S0FDSjtJQUhDLGFBQWEsQ0FFVjs4R0FwQlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMFpBRjlCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw4QkFBOEIsRUFBRSxDQUFDLCtEQWFqRCx5QkFBeUIsZ0dBQ25CLCtCQUErQiwyRkFDcEMsMEJBQTBCLDZGQUN4Qiw0QkFBNEIsZ0VDN0RsRSx3bUNBa0NBLDB4RERJSSxpQkFBaUIscVBBQ2pCLGVBQWUsMkdBQ2YsZ0NBQWdDLHdFQUNoQyxzQ0FBc0MsOEVBQ3RDLGlDQUFpQyw0SEFDakMsbUNBQW1DOzsyRkFJMUIsOEJBQThCO2tCQW5CMUMsU0FBUzsrQkFDRSwyQkFBMkIsaUJBR3RCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osMENBQTBDLEVBQUUsVUFBVTtxQkFDdkQsV0FDUTt3QkFDUCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsZ0NBQWdDO3dCQUNoQyxzQ0FBc0M7d0JBQ3RDLGlDQUFpQzt3QkFDakMsbUNBQW1DO3FCQUNwQyxhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sQmFyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2xiYXInO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0L2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JQZW5PcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JQZW5Db21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItcGVuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JSb3RhdGVPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Itcm90YXRlL2ltYWdlLWVkaXRvci1yb3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50JztcblxuLyoqXG4gKiBUb29sYmFyIGxheW91dCBmb3IgY29uZmlndXJhYmxlIGltYWdlIGVkaXRvciB0b29scy5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci10b29scy1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmF4LWltYWdlLWVkaXRvci10b29scy1iYXItaGlkZGVuXSc6ICdoaWRkZW4oKScsXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRvb2xCYXJNb2R1bGUsXG4gICAgQVhJbWFnZUVkaXRvclBlbk9wdGlvbnNDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvckhpZ2hsaWdodE9wdGlvbnNDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvckNyb3BPcHRpb25zQ29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JSb3RhdGVPcHRpb25zQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclRvb2xzQmFyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbHNCYXJDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRvb2wgY29tcG9uZW50IHJlZmVyZW5jZSB0byBhY3RpdmF0ZSBvbiBsb2FkLlxuICAgKi9cbiAgYWN0aXZlID0gaW5wdXQ8QVhJbWFnZUVkaXRvclRvb2xDb21wb25lbnQ+KCk7XG5cbiAgLyoqIEhpZGVzIHRoZSB0b29scyBiYXIgVUkgd2hpbGUga2VlcGluZyBwcm9qZWN0ZWQgdG9vbHMgY29uZmlndXJhYmxlLiAqL1xuICBoaWRkZW4gPSBpbnB1dChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHBlblRvb2wgPSBjb250ZW50Q2hpbGQoQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCk7XG4gIHByb3RlY3RlZCBoaWdobGlnaHRUb29sID0gY29udGVudENoaWxkKEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQpO1xuICBwcm90ZWN0ZWQgY3JvcFRvb2wgPSBjb250ZW50Q2hpbGQoQVhJbWFnZUVkaXRvckNyb3BDb21wb25lbnQpO1xuICBwcm90ZWN0ZWQgcm90YXRlVG9vbCA9IGNvbnRlbnRDaGlsZChBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgY3JvcEFzcGVjdFJhdGlvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jcm9wVG9vbCgpPy5hc3BlY3RSYXRpbygpID8/IFtdKTtcblxuICAjYWN0aXZlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmFjdGl2ZSgpPy5zZXRBY3RpdmUoKTtcbiAgfSk7XG59XG4iLCI8YXgtdG9vbGJhciBjbGFzcz1cImF4LW1haW4tdG9vbGJhclwiPlxuICA8YXgtcHJlZml4IGNsYXNzPVwiYXgtaW1hZ2UtZWRpdG9yLXRvb2wtdHJpZ2dlcnNcIj5cbiAgICA8bmctY29udGVudFxuICAgICAgc2VsZWN0PVwiYXgtaW1hZ2UtZWRpdG9yLXBlbiwgYXgtaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodCwgYXgtaW1hZ2UtZWRpdG9yLWNyb3AsIGF4LWltYWdlLWVkaXRvci1yb3RhdGVcIlxuICAgID48L25nLWNvbnRlbnQ+XG4gIDwvYXgtcHJlZml4PlxuXG4gIEBpZiAoc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSkge1xuICAgIDxheC1zdWZmaXggY2xhc3M9XCJheC1pbWFnZS1lZGl0b3ItdG9vbC1vcHRpb25zXCI+XG4gICAgICBAc3dpdGNoIChzZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpKSB7XG4gICAgICAgIEBjYXNlICgncGVuJykge1xuICAgICAgICAgIEBpZiAocGVuVG9vbCgpKSB7XG4gICAgICAgICAgICA8YXgtaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zPjwvYXgtaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2hpZ2hsaWdodCcpIHtcbiAgICAgICAgICBAaWYgKGhpZ2hsaWdodFRvb2woKSkge1xuICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1oaWdobGlnaHQtb3B0aW9ucz48L2F4LWltYWdlLWVkaXRvci1oaWdobGlnaHQtb3B0aW9ucz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdjcm9wJykge1xuICAgICAgICAgIEBpZiAoY3JvcFRvb2woKSkge1xuICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMgW2FzcGVjdFJhdGlvXT1cImNyb3BBc3BlY3RSYXRpbygpXCI+PC9heC1pbWFnZS1lZGl0b3ItY3JvcC1vcHRpb25zPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ3JvdGF0ZScpIHtcbiAgICAgICAgICBAaWYgKHJvdGF0ZVRvb2woKSkge1xuICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1yb3RhdGUtb3B0aW9ucz48L2F4LWltYWdlLWVkaXRvci1yb3RhdGUtb3B0aW9ucz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2F4LXN1ZmZpeD5cbiAgfVxuPC9heC10b29sYmFyPlxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, input, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorCropComponent } from '../image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorHighlightComponent } from '../image-editor-highlight/image-editor-highlight.component';\nimport { AXImageEditorPenComponent } from '../image-editor-pen/image-editor-pen.component';\nimport { AXImageEditorRotateComponent } from '../image-editor-rotate/image-editor-rotate.component';\nimport { AXImageEditorToolsBarComponent } from '../image-editor-tools-bar/image-editor-tools-bar.component';\nimport * as i0 from \"@angular/core\";\n/**\n * Convenience wrapper that includes all image editor tools.\n * @category Components\n */\nexport class AXImageEditorToolSelectorComponent {\n constructor() {\n this.aspectRatio = input([], ...(ngDevMode ? [{ debugName: \"aspectRatio\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXImageEditorToolSelectorComponent, isStandalone: true, selector: \"ax-image-editor-tool-selector\", inputs: { aspectRatio: { classPropertyName: \"aspectRatio\", publicName: \"aspectRatio\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], ngImport: i0, template: \"<ax-image-editor-tools-bar>\\n <ax-image-editor-pen></ax-image-editor-pen>\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n <ax-image-editor-crop [aspectRatio]=\\\"aspectRatio()\\\"></ax-image-editor-crop>\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n</ax-image-editor-tools-bar>\\n\", dependencies: [{ kind: \"component\", type: AXImageEditorToolsBarComponent, selector: \"ax-image-editor-tools-bar\", inputs: [\"active\", \"hidden\"] }, { kind: \"component\", type: AXImageEditorPenComponent, selector: \"ax-image-editor-pen\" }, { kind: \"component\", type: AXImageEditorHighlightComponent, selector: \"ax-image-editor-highlight\" }, { kind: \"component\", type: AXImageEditorCropComponent, selector: \"ax-image-editor-crop\", inputs: [\"aspectRatio\", \"size\"] }, { kind: \"component\", type: AXImageEditorRotateComponent, selector: \"ax-image-editor-rotate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-tool-selector', encapsulation: ViewEncapsulation.None, imports: [\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorCropComponent,\n AXImageEditorRotateComponent,\n ], providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], template: \"<ax-image-editor-tools-bar>\\n <ax-image-editor-pen></ax-image-editor-pen>\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n <ax-image-editor-crop [aspectRatio]=\\\"aspectRatio()\\\"></ax-image-editor-crop>\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n</ax-image-editor-tools-bar>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQUU1Rzs7O0dBR0c7QUFjSCxNQUFNLE9BQU8sa0NBQWtDO0lBYi9DO1FBY0UsZ0JBQVcsR0FBRyxLQUFLLENBQVcsRUFBRSx1REFBQyxDQUFDO0tBQ25DOzhHQUZZLGtDQUFrQztrR0FBbEMsa0NBQWtDLGtPQUZsQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQywwQkN2QnhGLDZTQU1BLDRDRFdJLDhCQUE4QixvR0FDOUIseUJBQXlCLGdFQUN6QiwrQkFBK0Isc0VBQy9CLDBCQUEwQixrR0FDMUIsNEJBQTRCOzsyRkFJbkIsa0NBQWtDO2tCQWI5QyxTQUFTOytCQUNFLCtCQUErQixpQkFFMUIsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCw4QkFBOEI7d0JBQzlCLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQiwwQkFBMEI7d0JBQzFCLDRCQUE0QjtxQkFDN0IsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLG9DQUFvQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckNyb3BDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItY3JvcC9pbWFnZS1lZGl0b3ItY3JvcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1oaWdobGlnaHQvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1wZW4vaW1hZ2UtZWRpdG9yLXBlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclJvdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1yb3RhdGUvaW1hZ2UtZWRpdG9yLXJvdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclRvb2xzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ29udmVuaWVuY2Ugd3JhcHBlciB0aGF0IGluY2x1ZGVzIGFsbCBpbWFnZSBlZGl0b3IgdG9vbHMuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItdG9vbC1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItdG9vbC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBBWEltYWdlRWRpdG9yVG9vbHNCYXJDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCxcbiAgICBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IHtcbiAgYXNwZWN0UmF0aW8gPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xufVxuIiwiPGF4LWltYWdlLWVkaXRvci10b29scy1iYXI+XG4gIDxheC1pbWFnZS1lZGl0b3ItcGVuPjwvYXgtaW1hZ2UtZWRpdG9yLXBlbj5cbiAgPGF4LWltYWdlLWVkaXRvci1oaWdobGlnaHQ+PC9heC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0PlxuICA8YXgtaW1hZ2UtZWRpdG9yLWNyb3AgW2FzcGVjdFJhdGlvXT1cImFzcGVjdFJhdGlvKClcIj48L2F4LWltYWdlLWVkaXRvci1jcm9wPlxuICA8YXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZT48L2F4LWltYWdlLWVkaXRvci1yb3RhdGU+XG48L2F4LWltYWdlLWVkaXRvci10b29scy1iYXI+XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorContainerComponent } from './image-editor-container/image-editor-container.component';\nimport { AXImageEditorCropperWindowComponent } from './image-editor-cropper-window/image-editor-cropper-window.component';\nimport { AXImageEditorCropComponent } from './image-editor-tools/image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorHighlightComponent } from './image-editor-tools/image-editor-highlight/image-editor-highlight.component';\nimport { AXImageEditorHistoryComponent } from './image-editor-tools/image-editor-history/image-editor-history.component';\nimport { AXImageEditorPenComponent } from './image-editor-tools/image-editor-pen/image-editor-pen.component';\nimport { AXImageEditorRotateComponent } from './image-editor-tools/image-editor-rotate/image-editor-rotate.component';\nimport { AXImageEditorToolSelectorComponent } from './image-editor-tools/image-editor-tool-selector/image-editor-tool-selector.component';\nimport { AXImageEditorToolsBarComponent } from './image-editor-tools/image-editor-tools-bar/image-editor-tools-bar.component';\nimport { AXImageEditorViewComponent } from './image-editor-view/image-editor-view.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [\n AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent,\n];\nconst MODULES = [\n AXButtonModule,\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXDialogModule,\n];\nexport class AXImageEditorModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, imports: [AXButtonModule,\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXDialogModule, AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent], exports: [AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, imports: [MODULES, AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDL0gsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0ZBQXNGLENBQUM7QUFDMUksT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDOUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBRTdGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLDBCQUEwQjtJQUMxQiwrQkFBK0I7SUFDL0IsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QixrQ0FBa0M7SUFDbEMsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6QiwrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLG1DQUFtQztDQUNwQyxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUc7SUFDZCxjQUFjO0lBQ2QsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGNBQWM7Q0FDZixDQUFDO0FBT0YsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsWUFoQjlCLGNBQWM7WUFDZCxXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsY0FBYyxFQXJCZCwwQkFBMEI7WUFDMUIsK0JBQStCO1lBQy9CLDBCQUEwQjtZQUMxQiw2QkFBNkI7WUFDN0Isa0NBQWtDO1lBQ2xDLDhCQUE4QjtZQUM5Qix5QkFBeUI7WUFDekIsK0JBQStCO1lBQy9CLDRCQUE0QjtZQUM1QixtQ0FBbUMsYUFUbkMsMEJBQTBCO1lBQzFCLCtCQUErQjtZQUMvQiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLGtDQUFrQztZQUNsQyw4QkFBOEI7WUFDOUIseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7WUFDNUIsbUNBQW1DOytHQW9CeEIsbUJBQW1CLFlBSmpCLE9BQU8sRUF4QnBCLCtCQUErQjtZQUMvQiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLGtDQUFrQztZQUNsQyw4QkFBOEI7WUFDOUIseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7OzJGQXFCakIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb2xvckJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb2xvci1ib3gnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhSYW5nZVNsaWRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlzdG9yeUNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaXN0b3J5L2ltYWdlLWVkaXRvci1oaXN0b3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sc0JhckNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci10b29scy1iYXIvaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtcbiAgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9ySGlzdG9yeUNvbXBvbmVudCxcbiAgQVhJbWFnZUVkaXRvclRvb2xTZWxlY3RvckNvbXBvbmVudCxcbiAgQVhJbWFnZUVkaXRvclRvb2xzQmFyQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudCxcbl07XG5cbmNvbnN0IE1PRFVMRVMgPSBbXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgQVhSYW5nZVNsaWRlck1vZHVsZSxcbiAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gIEFYQ29sb3JCb3hNb2R1bGUsXG4gIEFYUG9wb3Zlck1vZHVsZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gIEFYTG9hZGluZ01vZHVsZSxcbiAgQVhEaWFsb2dNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtaW1hZ2UtZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2Fjb3JleC1jb21wb25lbnRzLWltYWdlLWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-image-editor.mjs","sources":["../tmp-esm2022/image-editor/lib/image-editor.service.js","../tmp-esm2022/image-editor/lib/image-editor-cropper-window/image-editor-cropper-window.component.js","../tmp-esm2022/image-editor/lib/image-editor-view/image-editor-view.component.js","../tmp-esm2022/image-editor/lib/image-editor-container/image-editor-container.component.js","../tmp-esm2022/image-editor/lib/image-editor-aspect-ratio.util.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-tool.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-highlight/image-editor-highlight.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-history/image-editor-history.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-pen/image-editor-pen.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-rotate/image-editor-rotate.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-highlight/image-editor-highlight-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-pen/image-editor-pen-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-rotate/image-editor-rotate-options.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-tools-bar/image-editor-tools-bar.component.js","../tmp-esm2022/image-editor/lib/image-editor-tools/image-editor-tool-selector/image-editor-tool-selector.component.js","../tmp-esm2022/image-editor/lib/image-editor.module.js","../tmp-esm2022/image-editor/acorex-components-image-editor.js"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXImageEditorService {\n constructor() {\n this.activeToolState = signal(null, ...(ngDevMode ? [{ debugName: \"activeToolState\" }] : []));\n this.penColor = signal('rgb(12, 12, 12)', ...(ngDevMode ? [{ debugName: \"penColor\" }] : []));\n this.highlightColor = signal('rgb(255, 210, 48)', ...(ngDevMode ? [{ debugName: \"highlightColor\" }] : []));\n this.penWidth = signal(10, ...(ngDevMode ? [{ debugName: \"penWidth\" }] : []));\n this.highlightWidth = signal(10, ...(ngDevMode ? [{ debugName: \"highlightWidth\" }] : []));\n this.penType = signal(null, ...(ngDevMode ? [{ debugName: \"penType\" }] : []));\n this.rotate = signal({ state: 0, userInteract: false }, ...(ngDevMode ? [{ debugName: \"rotate\" }] : []));\n this.isImageLoad = signal(false, ...(ngDevMode ? [{ debugName: \"isImageLoad\" }] : []));\n this.newImage = null;\n this.initialImage = null;\n this.imageBlob = signal([], ...(ngDevMode ? [{ debugName: \"imageBlob\" }] : []));\n this.undoPressed = signal(false, ...(ngDevMode ? [{ debugName: \"undoPressed\" }] : []));\n this.redoPressed = signal(false, ...(ngDevMode ? [{ debugName: \"redoPressed\" }] : []));\n this.cropperRatio = signal(null, ...(ngDevMode ? [{ debugName: \"cropperRatio\" }] : []));\n this.cropperSize = signal(150, ...(ngDevMode ? [{ debugName: \"cropperSize\" }] : []));\n }\n toggleTool(tool) {\n if (this.activeToolState() === tool) {\n this.activeToolState.set(null);\n return;\n }\n this.activateTool(tool);\n }\n activateTool(tool) {\n this.activeToolState.set(tool);\n if (tool === 'pen' || tool === 'highlight') {\n this.penType.set(tool);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRUUsb0JBQWUsR0FBRyxNQUFNLENBQW9CLElBQUksMkRBQUMsQ0FBQztRQUNsRCxhQUFRLEdBQUcsTUFBTSxDQUEwQyxpQkFBaUIsb0RBQUMsQ0FBQztRQUM5RSxtQkFBYyxHQUFHLE1BQU0sQ0FBMEMsbUJBQW1CLDBEQUFDLENBQUM7UUFDdEYsYUFBUSxHQUFHLE1BQU0sQ0FBUyxFQUFFLG9EQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxNQUFNLENBQVMsRUFBRSwwREFBQyxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxNQUFNLENBQXNCLElBQUksbURBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGtEQUFDLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGFBQVEsR0FBNEIsSUFBSSxDQUFDO1FBQ3pDLGlCQUFZLEdBQTRCLElBQUksQ0FBQztRQUM3QyxjQUFTLEdBQUcsTUFBTSxDQUFTLEVBQUUscURBQUMsQ0FBQztRQUMvQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUEwQixJQUFJLHdEQUFDLENBQUM7UUFDckQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyx1REFBQyxDQUFDO0tBa0IzQjtJQWhCQyxVQUFVLENBQUMsSUFBdUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBdUI7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzs4R0FoQ1Usb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhJbWFnZUVkaXRvclRvb2wgPSAncGVuJyB8ICdoaWdobGlnaHQnIHwgJ2Nyb3AnIHwgJ3JvdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yU2VydmljZSB7XG4gIGFjdGl2ZVRvb2xTdGF0ZSA9IHNpZ25hbDxBWEltYWdlRWRpdG9yVG9vbD4obnVsbCk7XG4gIHBlbkNvbG9yID0gc2lnbmFsPHN0cmluZyB8IENhbnZhc0dyYWRpZW50IHwgQ2FudmFzUGF0dGVybj4oJ3JnYigxMiwgMTIsIDEyKScpO1xuICBoaWdobGlnaHRDb2xvciA9IHNpZ25hbDxzdHJpbmcgfCBDYW52YXNHcmFkaWVudCB8IENhbnZhc1BhdHRlcm4+KCdyZ2IoMjU1LCAyMTAsIDQ4KScpO1xuICBwZW5XaWR0aCA9IHNpZ25hbDxudW1iZXI+KDEwKTtcbiAgaGlnaGxpZ2h0V2lkdGggPSBzaWduYWw8bnVtYmVyPigxMCk7XG4gIHBlblR5cGUgPSBzaWduYWw8J3BlbicgfCAnaGlnaGxpZ2h0Jz4obnVsbCk7XG4gIHJvdGF0ZSA9IHNpZ25hbCh7IHN0YXRlOiAwLCB1c2VySW50ZXJhY3Q6IGZhbHNlIH0pO1xuICBpc0ltYWdlTG9hZCA9IHNpZ25hbChmYWxzZSk7XG4gIG5ld0ltYWdlOiBIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIGluaXRpYWxJbWFnZTogSFRNTEltYWdlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBpbWFnZUJsb2IgPSBzaWduYWw8QmxvYltdPihbXSk7XG4gIHVuZG9QcmVzc2VkID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVkb1ByZXNzZWQgPSBzaWduYWwoZmFsc2UpO1xuICBjcm9wcGVyUmF0aW8gPSBzaWduYWw8JzE6MScgfCAnMTY6OScgfCBzdHJpbmc+KG51bGwpO1xuICBjcm9wcGVyU2l6ZSA9IHNpZ25hbCgxNTApO1xuXG4gIHRvZ2dsZVRvb2wodG9vbDogQVhJbWFnZUVkaXRvclRvb2wpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVUb29sU3RhdGUoKSA9PT0gdG9vbCkge1xuICAgICAgdGhpcy5hY3RpdmVUb29sU3RhdGUuc2V0KG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZhdGVUb29sKHRvb2wpO1xuICB9XG5cbiAgYWN0aXZhdGVUb29sKHRvb2w6IEFYSW1hZ2VFZGl0b3JUb29sKSB7XG4gICAgdGhpcy5hY3RpdmVUb29sU3RhdGUuc2V0KHRvb2wpO1xuXG4gICAgaWYgKHRvb2wgPT09ICdwZW4nIHx8IHRvb2wgPT09ICdoaWdobGlnaHQnKSB7XG4gICAgICB0aGlzLnBlblR5cGUuc2V0KHRvb2wpO1xuICAgIH1cbiAgfVxufVxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, NgZone, PLATFORM_ID, Renderer2, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorCropperWindowComponent {\n constructor() {\n this.showGrid = input(true, ...(ngDevMode ? [{ debugName: \"showGrid\" }] : []));\n /** Base size in pixels used to calculate the initial cropper window dimensions. */\n this.size = input(...(ngDevMode ? [undefined, { debugName: \"size\" }] : []));\n this.service = inject(AXImageEditorService);\n this.ngZone = inject(NgZone);\n this.selectedHandle = signal(null, ...(ngDevMode ? [{ debugName: \"selectedHandle\" }] : []));\n this.panState = signal(false, ...(ngDevMode ? [{ debugName: \"panState\" }] : []));\n this.elementRef = inject(ElementRef);\n this.cropperWindow = viewChild('r', ...(ngDevMode ? [{ debugName: \"cropperWindow\" }] : []));\n this.currentX = signal(-45, ...(ngDevMode ? [{ debugName: \"currentX\" }] : []));\n this.currentY = signal(-45, ...(ngDevMode ? [{ debugName: \"currentY\" }] : []));\n this.prevX = signal(0, ...(ngDevMode ? [{ debugName: \"prevX\" }] : []));\n this.prevY = signal(0, ...(ngDevMode ? [{ debugName: \"prevY\" }] : []));\n this.aspectWidth = signal(0, ...(ngDevMode ? [{ debugName: \"aspectWidth\" }] : []));\n this.aspectHeight = signal(0, ...(ngDevMode ? [{ debugName: \"aspectHeight\" }] : []));\n this.isMousePressed = signal(false, ...(ngDevMode ? [{ debugName: \"isMousePressed\" }] : []));\n this.renderer = inject(Renderer2);\n this.platformID = inject(PLATFORM_ID);\n this.#eff = effect(() => {\n const host = this.elementRef.nativeElement;\n let width;\n let height;\n const scale = this.size() ?? this.service.cropperSize();\n switch (this.service.cropperRatio()) {\n case '1:1':\n width = 1;\n height = 1;\n break;\n case '16:9':\n width = 1.777777777777778;\n height = 1;\n break;\n case null:\n width = 1;\n height = 1;\n break;\n default:\n [width, height] = this.service.cropperRatio().split(':').map(Number);\n }\n if (width >= height) {\n const aspect = width / height;\n width = aspect;\n height = 1;\n this.aspectWidth.set(aspect);\n this.aspectHeight.set(1);\n }\n else {\n const aspect = height / width;\n width = 1;\n height = aspect;\n this.aspectWidth.set(1);\n this.aspectHeight.set(aspect);\n }\n host.style.width = `${width * scale}px`;\n host.style.height = `${height * scale}px`;\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n this.#init = afterNextRender(() => {\n const host = this.elementRef.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n this.mouseMoveEvent = this.renderer.listen(document, 'pointermove', this.changeSizeHandler.bind(this));\n this.mouseUpEvent = this.renderer.listen(document, 'pointerup', this.clearSelector.bind(this));\n this.mouseDownEvent = this.renderer.listen(host, 'pointerdown', this.panDown.bind(this));\n this.mouseMoveEvent2 = this.renderer.listen(host, 'pointermove', this.panMove.bind(this));\n this.mouseUpEvent2 = this.renderer.listen(host, 'pointerup', this.panUp.bind(this));\n });\n });\n this.#positionChange = effect(() => {\n this.setPosition(this.currentX(), this.currentY());\n }, ...(ngDevMode ? [{ debugName: \"#positionChange\" }] : []));\n }\n #eff;\n #init;\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformID) && this.mouseMoveEvent) {\n this.mouseMoveEvent();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseUpEvent) {\n this.mouseUpEvent();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseDownEvent) {\n this.mouseDownEvent();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseMoveEvent2) {\n this.mouseMoveEvent2();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseUpEvent2) {\n this.mouseUpEvent2();\n }\n if (isPlatformBrowser(this.platformID) && this.mouseLeaveEvent) {\n this.mouseLeaveEvent();\n }\n }\n #positionChange;\n panMove(e) {\n if (!this.isMousePressed())\n return;\n if (this.selectedHandle())\n return;\n if (!this.panState())\n return;\n const currentX = e.clientX;\n const currentY = e.clientY;\n const deltaX = currentX - this.prevX();\n const deltaY = currentY - this.prevY();\n this.currentX.update((prev) => prev + deltaX);\n this.currentY.update((prev) => prev + deltaY);\n this.prevX.set(currentX);\n this.prevY.set(currentY);\n }\n panDown(e) {\n this.isMousePressed.set(true);\n if (this.selectedHandle())\n return;\n this.panState.set(true);\n this.prevX.set(e.clientX);\n this.prevY.set(e.clientY);\n }\n panUp() {\n this.isMousePressed.set(false);\n if (this.selectedHandle())\n return;\n this.panState.set(false);\n }\n getCropperArea() {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n setPosition(posX, posY) {\n const el = this.elementRef.nativeElement;\n el.style.transform = `translate(${posX}px, ${posY}px)`;\n }\n handleSelector(e, value) {\n if (this.panState())\n return;\n const host = this.elementRef.nativeElement;\n this.startX = e.clientX;\n this.startY = e.clientY;\n this.startWidth = host.offsetWidth;\n this.startHeight = host.offsetHeight;\n this.startLeft = host.offsetLeft;\n this.startTop = host.offsetTop;\n this.selectedHandle.set(value);\n }\n changeSizeHandler(e) {\n if (!this.isMousePressed())\n return;\n if (this.panState())\n return;\n if (!this.selectedHandle())\n return;\n const host = this.elementRef.nativeElement;\n const dy = e.clientY - this.startY;\n const dx = e.clientX - this.startX;\n let newWidth;\n let newHeight;\n const minSize = 20;\n switch (this.selectedHandle()) {\n case 'right':\n newWidth = Math.max(minSize, this.startWidth + dx);\n host.style.width = `${newWidth}px`;\n break;\n case 'top':\n newHeight = Math.max(minSize, this.startHeight - dy);\n host.style.height = `${newHeight}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n break;\n case 'left':\n newWidth = Math.max(minSize, this.startWidth - dx);\n host.style.width = `${newWidth}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n break;\n case 'bottom':\n newHeight = Math.max(minSize, this.startHeight + dy);\n host.style.height = `${newHeight}px`;\n break;\n case 'right-top':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = Math.max(minSize, this.startHeight - dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n break;\n case 'bottom-right':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth + dx);\n newHeight = Math.max(minSize, this.startHeight + dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n }\n break;\n case 'bottom-left':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = Math.max(minSize, this.startHeight + dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n }\n break;\n case 'left-top':\n if (this.service.cropperRatio()) {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = (newWidth * this.aspectHeight()) / this.aspectWidth();\n if (newHeight < minSize) {\n newHeight = minSize;\n newWidth = (newHeight * this.aspectWidth()) / this.aspectHeight();\n }\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n else {\n newWidth = Math.max(minSize, this.startWidth - dx);\n newHeight = Math.max(minSize, this.startHeight - dy);\n host.style.width = `${newWidth}px`;\n host.style.height = `${newHeight}px`;\n host.style.left = `${this.startLeft + (this.startWidth - newWidth)}px`;\n host.style.top = `${this.startTop + (this.startHeight - newHeight)}px`;\n }\n break;\n }\n }\n clearSelector() {\n if (this.panState())\n return;\n this.selectedHandle.set(null);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropperWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorCropperWindowComponent, isStandalone: true, selector: \"ax-image-editor-cropper-window\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropperWindowComponent }], viewQueries: [{ propertyName: \"cropperWindow\", first: true, predicate: [\"r\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<div [style.border]=\\\"!showGrid() ? '1px dashed white' : null\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!service.cropperRatio()) {\\n <div (pointerdown)=\\\"handleSelector($event, 'right')\\\" class=\\\"ax-image-right-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'top')\\\" class=\\\"ax-image-top-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left')\\\" class=\\\"ax-image-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom')\\\" class=\\\"ax-image-bottom-handle ax-handle-shape\\\"></div>\\n }\\n\\n <div (pointerdown)=\\\"handleSelector($event, 'right-top')\\\" class=\\\"ax-image-right-top-handle ax-handle-shape\\\"></div>\\n <div\\n (pointerdown)=\\\"handleSelector($event, 'bottom-right')\\\"\\n class=\\\"ax-image-bottom-right-handle ax-handle-shape\\\"\\n ></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom-left')\\\" class=\\\"ax-image-bottom-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left-top')\\\" class=\\\"ax-image-left-top-handle ax-handle-shape\\\"></div>\\n\\n @if (showGrid()) {\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-image-editor-cropper-window{position:absolute;top:45%;left:45%;-webkit-user-select:none;user-select:none;touch-action:none}ax-image-editor-cropper-window .ax-image-cropper-window-container{position:relative;height:100%;cursor:move;outline:rgba(0,0,0,.7) solid 100vmax;display:grid;grid-template-columns:repeat(3,1fr)}ax-image-editor-cropper-window .ax-image-cropper-window-container .ax-grid-item{border:1px dashed rgba(255,255,255,.5)}ax-image-editor-cropper-window .ax-handle-shape{width:1rem;height:1rem;border:1px dashed white;background-color:gray;position:absolute;-webkit-user-select:none;user-select:none}ax-image-editor-cropper-window .ax-image-right-top-handle{top:-.5rem;right:-.5rem;cursor:ne-resize}ax-image-editor-cropper-window .ax-image-bottom-right-handle{bottom:-.5rem;right:-.5rem;cursor:se-resize}ax-image-editor-cropper-window .ax-image-right-handle{right:-.5rem;top:calc(50% - .5rem);cursor:e-resize}ax-image-editor-cropper-window .ax-image-bottom-left-handle{bottom:-.5rem;left:-.5rem;cursor:sw-resize}ax-image-editor-cropper-window .ax-image-left-top-handle{top:-.5rem;left:-.5rem;cursor:nw-resize}ax-image-editor-cropper-window .ax-image-bottom-handle{bottom:-.5rem;right:calc(50% - .5rem);cursor:s-resize}ax-image-editor-cropper-window .ax-image-left-handle{left:-.5rem;top:calc(50% - .5rem);cursor:w-resize}ax-image-editor-cropper-window .ax-image-top-handle{top:-.5rem;right:calc(50% - .5rem);cursor:n-resize}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropperWindowComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-cropper-window', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropperWindowComponent }], template: \"<div [style.border]=\\\"!showGrid() ? '1px dashed white' : null\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!service.cropperRatio()) {\\n <div (pointerdown)=\\\"handleSelector($event, 'right')\\\" class=\\\"ax-image-right-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'top')\\\" class=\\\"ax-image-top-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left')\\\" class=\\\"ax-image-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom')\\\" class=\\\"ax-image-bottom-handle ax-handle-shape\\\"></div>\\n }\\n\\n <div (pointerdown)=\\\"handleSelector($event, 'right-top')\\\" class=\\\"ax-image-right-top-handle ax-handle-shape\\\"></div>\\n <div\\n (pointerdown)=\\\"handleSelector($event, 'bottom-right')\\\"\\n class=\\\"ax-image-bottom-right-handle ax-handle-shape\\\"\\n ></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'bottom-left')\\\" class=\\\"ax-image-bottom-left-handle ax-handle-shape\\\"></div>\\n <div (pointerdown)=\\\"handleSelector($event, 'left-top')\\\" class=\\\"ax-image-left-top-handle ax-handle-shape\\\"></div>\\n\\n @if (showGrid()) {\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n <div class=\\\"ax-grid-item\\\"></div>\\n }\\n</div>\\n\", styles: [\"ax-image-editor-cropper-window{position:absolute;top:45%;left:45%;-webkit-user-select:none;user-select:none;touch-action:none}ax-image-editor-cropper-window .ax-image-cropper-window-container{position:relative;height:100%;cursor:move;outline:rgba(0,0,0,.7) solid 100vmax;display:grid;grid-template-columns:repeat(3,1fr)}ax-image-editor-cropper-window .ax-image-cropper-window-container .ax-grid-item{border:1px dashed rgba(255,255,255,.5)}ax-image-editor-cropper-window .ax-handle-shape{width:1rem;height:1rem;border:1px dashed white;background-color:gray;position:absolute;-webkit-user-select:none;user-select:none}ax-image-editor-cropper-window .ax-image-right-top-handle{top:-.5rem;right:-.5rem;cursor:ne-resize}ax-image-editor-cropper-window .ax-image-bottom-right-handle{bottom:-.5rem;right:-.5rem;cursor:se-resize}ax-image-editor-cropper-window .ax-image-right-handle{right:-.5rem;top:calc(50% - .5rem);cursor:e-resize}ax-image-editor-cropper-window .ax-image-bottom-left-handle{bottom:-.5rem;left:-.5rem;cursor:sw-resize}ax-image-editor-cropper-window .ax-image-left-top-handle{top:-.5rem;left:-.5rem;cursor:nw-resize}ax-image-editor-cropper-window .ax-image-bottom-handle{bottom:-.5rem;right:calc(50% - .5rem);cursor:s-resize}ax-image-editor-cropper-window .ax-image-left-handle{left:-.5rem;top:calc(50% - .5rem);cursor:w-resize}ax-image-editor-cropper-window .ax-image-top-handle{top:-.5rem;right:calc(50% - .5rem);cursor:n-resize}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93L2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRS9EOzs7R0FHRztBQVNILE1BQU0sT0FBTyxtQ0FBbUM7SUFSaEQ7UUFTVyxhQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksb0RBQUMsQ0FBQztRQUVoQyxtRkFBbUY7UUFDMUUsU0FBSSxHQUFHLEtBQUssMERBQVUsQ0FBQztRQUV0QixZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixtQkFBYyxHQUFHLE1BQU0sQ0FBUyxJQUFJLDBEQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLG9EQUFDLENBQUM7UUFDekIsZUFBVSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLFNBQVMsQ0FBYSxHQUFHLHlEQUFDLENBQUM7UUFDN0MsYUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsb0RBQUMsQ0FBQztRQUN2QixhQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxvREFBQyxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxpREFBQyxDQUFDO1FBQ2xCLFVBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxpREFBQyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsdURBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLHdEQUFDLENBQUM7UUFDekIsbUJBQWMsR0FBRyxNQUFNLENBQUMsS0FBSywwREFBQyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVF6QyxTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQTRCLENBQUM7WUFDMUQsSUFBSSxLQUFhLENBQUM7WUFDbEIsSUFBSSxNQUFjLENBQUM7WUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFeEQsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLEtBQUssS0FBSztvQkFDUixLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNWLE1BQU0sR0FBRyxDQUFDLENBQUM7b0JBQ1gsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsS0FBSyxHQUFHLGlCQUFpQixDQUFDO29CQUMxQixNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUNYLE1BQU07Z0JBQ1IsS0FBSyxJQUFJO29CQUNQLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBQ1YsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDWCxNQUFNO2dCQUNSO29CQUNFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBRUQsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQzlCLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ2YsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQzlCLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ1YsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFLLElBQUksQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sR0FBRyxLQUFLLElBQUksQ0FBQztRQUM1QyxDQUFDLGdEQUFDLENBQUM7UUFFSCxVQUFLLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQTRCLENBQUM7WUFFMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMvRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDekYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUF1Qkgsb0JBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsMkRBQUMsQ0FBQztLQStLSjtJQTNQQyxJQUFJLENBdUNEO0lBRUgsS0FBSyxDQVVGO0lBRUgsV0FBVztRQUNULElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlLENBRVo7SUFFTyxPQUFPLENBQUMsQ0FBYTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUFFLE9BQU87UUFDbkMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQUUsT0FBTztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU87UUFFN0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzNCLE1BQU0sTUFBTSxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVTLE9BQU8sQ0FBQyxDQUFhO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUFFLE9BQU87UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsS0FBSztRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUFFLE9BQU87UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQTZCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNoRixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzVDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNEIsQ0FBQztRQUN4RCxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxhQUFhLElBQUksT0FBTyxJQUFJLEtBQUssQ0FBQztJQUN6RCxDQUFDO0lBU1MsY0FBYyxDQUFDLENBQWEsRUFBRSxLQUFhO1FBQ25ELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU87UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUE0QixDQUFDO1FBQzFELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFhO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQUUsT0FBTztRQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQUUsT0FBTztRQUVuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQTRCLENBQUM7UUFDMUQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ25DLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVuQyxJQUFJLFFBQWdCLENBQUM7UUFDckIsSUFBSSxTQUFpQixDQUFDO1FBRXRCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVuQixRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzlCLEtBQUssT0FBTztnQkFDVixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxRQUFRLElBQUksQ0FBQztnQkFDbkMsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxTQUFTLElBQUksQ0FBQztnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUN2RSxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLFFBQVEsSUFBSSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZFLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUM7Z0JBQ3JDLE1BQU07WUFDUixLQUFLLFdBQVc7Z0JBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7b0JBQ2hDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO29CQUNuRCxTQUFTLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNsRSxJQUFJLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQzt3QkFDeEIsU0FBUyxHQUFHLE9BQU8sQ0FBQzt3QkFDcEIsUUFBUSxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDcEUsQ0FBQztvQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLFFBQVEsSUFBSSxDQUFDO29CQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFNBQVMsSUFBSSxDQUFDO29CQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxJQUFJLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDekUsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztvQkFDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ25ELFNBQVMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ2xFLElBQUksU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixTQUFTLEdBQUcsT0FBTyxDQUFDO3dCQUNwQixRQUFRLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwRSxDQUFDO29CQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxJQUFJLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUM7Z0JBQ3ZDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxJQUFJLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUM7Z0JBQ3ZDLENBQUM7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssYUFBYTtnQkFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7b0JBQ2hDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO29CQUNuRCxTQUFTLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNsRSxJQUFJLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQzt3QkFDeEIsU0FBUyxHQUFHLE9BQU8sQ0FBQzt3QkFDcEIsUUFBUSxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDcEUsQ0FBQztvQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLFFBQVEsSUFBSSxDQUFDO29CQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFNBQVMsSUFBSSxDQUFDO29CQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxJQUFJLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDekUsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO29CQUNoQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsU0FBUyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDbEUsSUFBSSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUM7d0JBQ3hCLFNBQVMsR0FBRyxPQUFPLENBQUM7d0JBQ3BCLFFBQVEsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3BFLENBQUM7b0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxRQUFRLElBQUksQ0FBQztvQkFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxTQUFTLElBQUksQ0FBQztvQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxJQUFJLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUN6RSxDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQXRSVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQywrVUFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsOElDOUJ6Riw0K0NBNEJBOzsyRkRJYSxtQ0FBbUM7a0JBUi9DLFNBQVM7K0JBQ0UsZ0NBQWdDLGlCQUUzQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmw6ICcuL2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNyb3BwZXJXaW5kb3dDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc2hvd0dyaWQgPSBpbnB1dCh0cnVlKTtcblxuICAvKiogQmFzZSBzaXplIGluIHBpeGVscyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgaW5pdGlhbCBjcm9wcGVyIHdpbmRvdyBkaW1lbnNpb25zLiAqL1xuICByZWFkb25seSBzaXplID0gaW5wdXQ8bnVtYmVyPigpO1xuXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZEhhbmRsZSA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xuICBwcml2YXRlIHBhblN0YXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcm90ZWN0ZWQgY3JvcHBlcldpbmRvdyA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncicpO1xuICBwcml2YXRlIGN1cnJlbnRYID0gc2lnbmFsKC00NSk7XG4gIHByaXZhdGUgY3VycmVudFkgPSBzaWduYWwoLTQ1KTtcbiAgcHJpdmF0ZSBwcmV2WCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBwcmV2WSA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBhc3BlY3RXaWR0aCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBhc3BlY3RIZWlnaHQgPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgaXNNb3VzZVByZXNzZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSBtb3VzZU1vdmVFdmVudDogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZVVwRXZlbnQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VNb3ZlRXZlbnQyOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIG1vdXNlVXBFdmVudDI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VEb3duRXZlbnQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VMZWF2ZUV2ZW50OiAoKSA9PiB2b2lkO1xuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBsZXQgd2lkdGg6IG51bWJlcjtcbiAgICBsZXQgaGVpZ2h0OiBudW1iZXI7XG4gICAgY29uc3Qgc2NhbGUgPSB0aGlzLnNpemUoKSA/PyB0aGlzLnNlcnZpY2UuY3JvcHBlclNpemUoKTtcblxuICAgIHN3aXRjaCAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpKSB7XG4gICAgICBjYXNlICcxOjEnOlxuICAgICAgICB3aWR0aCA9IDE7XG4gICAgICAgIGhlaWdodCA9IDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMTY6OSc6XG4gICAgICAgIHdpZHRoID0gMS43Nzc3Nzc3Nzc3Nzc3Nzg7XG4gICAgICAgIGhlaWdodCA9IDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBudWxsOlxuICAgICAgICB3aWR0aCA9IDE7XG4gICAgICAgIGhlaWdodCA9IDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgW3dpZHRoLCBoZWlnaHRdID0gdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpLnNwbGl0KCc6JykubWFwKE51bWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHdpZHRoID49IGhlaWdodCkge1xuICAgICAgY29uc3QgYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgICB3aWR0aCA9IGFzcGVjdDtcbiAgICAgIGhlaWdodCA9IDE7XG4gICAgICB0aGlzLmFzcGVjdFdpZHRoLnNldChhc3BlY3QpO1xuICAgICAgdGhpcy5hc3BlY3RIZWlnaHQuc2V0KDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhc3BlY3QgPSBoZWlnaHQgLyB3aWR0aDtcbiAgICAgIHdpZHRoID0gMTtcbiAgICAgIGhlaWdodCA9IGFzcGVjdDtcbiAgICAgIHRoaXMuYXNwZWN0V2lkdGguc2V0KDEpO1xuICAgICAgdGhpcy5hc3BlY3RIZWlnaHQuc2V0KGFzcGVjdCk7XG4gICAgfVxuXG4gICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3dpZHRoICogc2NhbGV9cHhgO1xuICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0ICogc2NhbGV9cHhgO1xuICB9KTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5tb3VzZU1vdmVFdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGRvY3VtZW50LCAncG9pbnRlcm1vdmUnLCB0aGlzLmNoYW5nZVNpemVIYW5kbGVyLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tb3VzZVVwRXZlbnQgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihkb2N1bWVudCwgJ3BvaW50ZXJ1cCcsIHRoaXMuY2xlYXJTZWxlY3Rvci5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubW91c2VEb3duRXZlbnQgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihob3N0LCAncG9pbnRlcmRvd24nLCB0aGlzLnBhbkRvd24uYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50MiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVybW92ZScsIHRoaXMucGFuTW92ZS5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubW91c2VVcEV2ZW50MiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVydXAnLCB0aGlzLnBhblVwLmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTW92ZUV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VVcEV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlVXBFdmVudCgpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlRG93bkV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlRG93bkV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VNb3ZlRXZlbnQyKSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlVXBFdmVudDIpIHtcbiAgICAgIHRoaXMubW91c2VVcEV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTGVhdmVFdmVudCkge1xuICAgICAgdGhpcy5tb3VzZUxlYXZlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICAjcG9zaXRpb25DaGFuZ2UgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5jdXJyZW50WCgpLCB0aGlzLmN1cnJlbnRZKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcGFuTW92ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzTW91c2VQcmVzc2VkKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnBhblN0YXRlKCkpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRYID0gZS5jbGllbnRYO1xuICAgIGNvbnN0IGN1cnJlbnRZID0gZS5jbGllbnRZO1xuICAgIGNvbnN0IGRlbHRhWCA9IGN1cnJlbnRYIC0gdGhpcy5wcmV2WCgpO1xuICAgIGNvbnN0IGRlbHRhWSA9IGN1cnJlbnRZIC0gdGhpcy5wcmV2WSgpO1xuICAgIHRoaXMuY3VycmVudFgudXBkYXRlKChwcmV2KSA9PiBwcmV2ICsgZGVsdGFYKTtcbiAgICB0aGlzLmN1cnJlbnRZLnVwZGF0ZSgocHJldikgPT4gcHJldiArIGRlbHRhWSk7XG4gICAgdGhpcy5wcmV2WC5zZXQoY3VycmVudFgpO1xuICAgIHRoaXMucHJldlkuc2V0KGN1cnJlbnRZKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYW5Eb3duKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmlzTW91c2VQcmVzc2VkLnNldCh0cnVlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgdGhpcy5wYW5TdGF0ZS5zZXQodHJ1ZSk7XG4gICAgdGhpcy5wcmV2WC5zZXQoZS5jbGllbnRYKTtcbiAgICB0aGlzLnByZXZZLnNldChlLmNsaWVudFkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhblVwKCkge1xuICAgIHRoaXMuaXNNb3VzZVByZXNzZWQuc2V0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgdGhpcy5wYW5TdGF0ZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGdldENyb3BwZXJBcmVhKCkge1xuICAgIHJldHVybiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlcikge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3Bvc1h9cHgsICR7cG9zWX1weClgO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFg6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFk6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFdpZHRoOiBudW1iZXI7XG4gIHByaXZhdGUgc3RhcnRIZWlnaHQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydExlZnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFRvcDogbnVtYmVyO1xuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWxlY3RvcihlOiBNb3VzZUV2ZW50LCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucGFuU3RhdGUoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLnN0YXJ0WCA9IGUuY2xpZW50WDtcbiAgICB0aGlzLnN0YXJ0WSA9IGUuY2xpZW50WTtcbiAgICB0aGlzLnN0YXJ0V2lkdGggPSBob3N0Lm9mZnNldFdpZHRoO1xuICAgIHRoaXMuc3RhcnRIZWlnaHQgPSBob3N0Lm9mZnNldEhlaWdodDtcbiAgICB0aGlzLnN0YXJ0TGVmdCA9IGhvc3Qub2Zmc2V0TGVmdDtcbiAgICB0aGlzLnN0YXJ0VG9wID0gaG9zdC5vZmZzZXRUb3A7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRsZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoYW5nZVNpemVIYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNNb3VzZVByZXNzZWQoKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnBhblN0YXRlKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGR5ID0gZS5jbGllbnRZIC0gdGhpcy5zdGFydFk7XG4gICAgY29uc3QgZHggPSBlLmNsaWVudFggLSB0aGlzLnN0YXJ0WDtcblxuICAgIGxldCBuZXdXaWR0aDogbnVtYmVyO1xuICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlcjtcblxuICAgIGNvbnN0IG1pblNpemUgPSAyMDtcblxuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSB7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIG5ld1dpZHRoID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydFdpZHRoICsgZHgpO1xuICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRIZWlnaHQgLSBkeSk7XG4gICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0VG9wICsgKHRoaXMuc3RhcnRIZWlnaHQgLSBuZXdIZWlnaHQpfXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0V2lkdGggLSBkeCk7XG4gICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtuZXdXaWR0aH1weGA7XG4gICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgKHRoaXMuc3RhcnRXaWR0aCAtIG5ld1dpZHRoKX1weGA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydEhlaWdodCArIGR5KTtcbiAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtuZXdIZWlnaHR9cHhgO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0LXRvcCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCArIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSAobmV3V2lkdGggKiB0aGlzLmFzcGVjdEhlaWdodCgpKSAvIHRoaXMuYXNwZWN0V2lkdGgoKTtcbiAgICAgICAgICBpZiAobmV3SGVpZ2h0IDwgbWluU2l6ZSkge1xuICAgICAgICAgICAgbmV3SGVpZ2h0ID0gbWluU2l6ZTtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gKG5ld0hlaWdodCAqIHRoaXMuYXNwZWN0V2lkdGgoKSkgLyB0aGlzLmFzcGVjdEhlaWdodCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyAodGhpcy5zdGFydEhlaWdodCAtIG5ld0hlaWdodCl9cHhgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1dpZHRoID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydFdpZHRoICsgZHgpO1xuICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRIZWlnaHQgLSBkeSk7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke25ld1dpZHRofXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke25ld0hlaWdodH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0VG9wICsgKHRoaXMuc3RhcnRIZWlnaHQgLSBuZXdIZWlnaHQpfXB4YDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCArIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSAobmV3V2lkdGggKiB0aGlzLmFzcGVjdEhlaWdodCgpKSAvIHRoaXMuYXNwZWN0V2lkdGgoKTtcbiAgICAgICAgICBpZiAobmV3SGVpZ2h0IDwgbWluU2l6ZSkge1xuICAgICAgICAgICAgbmV3SGVpZ2h0ID0gbWluU2l6ZTtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gKG5ld0hlaWdodCAqIHRoaXMuYXNwZWN0V2lkdGgoKSkgLyB0aGlzLmFzcGVjdEhlaWdodCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCArIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0SGVpZ2h0ICsgZHkpO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtuZXdXaWR0aH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtuZXdIZWlnaHR9cHhgO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpKSB7XG4gICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0V2lkdGggLSBkeCk7XG4gICAgICAgICAgbmV3SGVpZ2h0ID0gKG5ld1dpZHRoICogdGhpcy5hc3BlY3RIZWlnaHQoKSkgLyB0aGlzLmFzcGVjdFdpZHRoKCk7XG4gICAgICAgICAgaWYgKG5ld0hlaWdodCA8IG1pblNpemUpIHtcbiAgICAgICAgICAgIG5ld0hlaWdodCA9IG1pblNpemU7XG4gICAgICAgICAgICBuZXdXaWR0aCA9IChuZXdIZWlnaHQgKiB0aGlzLmFzcGVjdFdpZHRoKCkpIC8gdGhpcy5hc3BlY3RIZWlnaHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke25ld1dpZHRofXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke25ld0hlaWdodH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyAodGhpcy5zdGFydFdpZHRoIC0gbmV3V2lkdGgpfXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCAtIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0SGVpZ2h0ICsgZHkpO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtuZXdXaWR0aH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtuZXdIZWlnaHR9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgKHRoaXMuc3RhcnRXaWR0aCAtIG5ld1dpZHRoKX1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0LXRvcCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KG1pblNpemUsIHRoaXMuc3RhcnRXaWR0aCAtIGR4KTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSAobmV3V2lkdGggKiB0aGlzLmFzcGVjdEhlaWdodCgpKSAvIHRoaXMuYXNwZWN0V2lkdGgoKTtcbiAgICAgICAgICBpZiAobmV3SGVpZ2h0IDwgbWluU2l6ZSkge1xuICAgICAgICAgICAgbmV3SGVpZ2h0ID0gbWluU2l6ZTtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gKG5ld0hlaWdodCAqIHRoaXMuYXNwZWN0V2lkdGgoKSkgLyB0aGlzLmFzcGVjdEhlaWdodCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmxlZnQgPSBgJHt0aGlzLnN0YXJ0TGVmdCArICh0aGlzLnN0YXJ0V2lkdGggLSBuZXdXaWR0aCl9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUudG9wID0gYCR7dGhpcy5zdGFydFRvcCArICh0aGlzLnN0YXJ0SGVpZ2h0IC0gbmV3SGVpZ2h0KX1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1heChtaW5TaXplLCB0aGlzLnN0YXJ0V2lkdGggLSBkeCk7XG4gICAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5tYXgobWluU2l6ZSwgdGhpcy5zdGFydEhlaWdodCAtIGR5KTtcbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7bmV3V2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmxlZnQgPSBgJHt0aGlzLnN0YXJ0TGVmdCArICh0aGlzLnN0YXJ0V2lkdGggLSBuZXdXaWR0aCl9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUudG9wID0gYCR7dGhpcy5zdGFydFRvcCArICh0aGlzLnN0YXJ0SGVpZ2h0IC0gbmV3SGVpZ2h0KX1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyU2VsZWN0b3IoKSB7XG4gICAgaWYgKHRoaXMucGFuU3RhdGUoKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kbGUuc2V0KG51bGwpO1xuICB9XG59XG4iLCI8ZGl2IFtzdHlsZS5ib3JkZXJdPVwiIXNob3dHcmlkKCkgPyAnMXB4IGRhc2hlZCB3aGl0ZScgOiBudWxsXCIgI3IgY2xhc3M9XCJheC1pbWFnZS1jcm9wcGVyLXdpbmRvdy1jb250YWluZXJcIj5cbiAgQGlmICghc2VydmljZS5jcm9wcGVyUmF0aW8oKSkge1xuICAgIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ3JpZ2h0JylcIiBjbGFzcz1cImF4LWltYWdlLXJpZ2h0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICd0b3AnKVwiIGNsYXNzPVwiYXgtaW1hZ2UtdG9wLWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdsZWZ0JylcIiBjbGFzcz1cImF4LWltYWdlLWxlZnQtaGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuICAgIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2JvdHRvbScpXCIgY2xhc3M9XCJheC1pbWFnZS1ib3R0b20taGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuICB9XG5cbiAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAncmlnaHQtdG9wJylcIiBjbGFzcz1cImF4LWltYWdlLXJpZ2h0LXRvcC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gIDxkaXZcbiAgICAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAnYm90dG9tLXJpZ2h0JylcIlxuICAgIGNsYXNzPVwiYXgtaW1hZ2UtYm90dG9tLXJpZ2h0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIlxuICA+PC9kaXY+XG4gIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2JvdHRvbS1sZWZ0JylcIiBjbGFzcz1cImF4LWltYWdlLWJvdHRvbS1sZWZ0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAnbGVmdC10b3AnKVwiIGNsYXNzPVwiYXgtaW1hZ2UtbGVmdC10b3AtaGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuXG4gIEBpZiAoc2hvd0dyaWQoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, input, linkedSignal, Renderer2, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { AXImageEditorContainerComponent } from '../image-editor-container/image-editor-container.component';\nimport { AXImageEditorCropperWindowComponent } from '../image-editor-cropper-window/image-editor-cropper-window.component';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\nexport class AXImageEditorViewComponent extends MXBaseComponent {\n /** @ignore */\n resizeWindow() {\n this.canvasResponsive(this.service.newImage);\n }\n /** @ignore */\n canvasResponsive(image) {\n const imageWidth = image.width;\n const imageHeight = image.height;\n this.originalWidth.set(imageWidth);\n this.originalHeight.set(imageHeight);\n if (imageWidth > imageHeight) {\n this.canvasElem().nativeElement.width = imageWidth;\n this.canvasElem().nativeElement.height = imageWidth;\n }\n else {\n this.canvasElem().nativeElement.width = imageHeight;\n this.canvasElem().nativeElement.height = imageHeight;\n }\n requestAnimationFrame(() => {\n //recalculate width after canvas size change\n const recalculateWidth = this.canvasElem().nativeElement.getClientRects()[0]?.width;\n let scale;\n if (imageWidth > imageHeight) {\n scale = this.originalWidth() / recalculateWidth;\n }\n else {\n scale = this.originalHeight() / recalculateWidth;\n }\n this.scale.set(scale);\n this.canvasElem().nativeElement.width = recalculateWidth;\n this.canvasElem().nativeElement.height = recalculateWidth;\n if (imageWidth > imageHeight) {\n this.ctx().drawImage(image, 0, recalculateWidth / 2 - this.originalHeight() / scale / 2, recalculateWidth, this.originalHeight() / scale);\n }\n else {\n this.ctx().drawImage(image, recalculateWidth / 2 - this.originalWidth() / scale / 2, 0, this.originalWidth() / scale, recalculateWidth);\n }\n });\n }\n /** @ignore */\n constructor() {\n super();\n /**\n * its change grid display state.\n */\n this.showGrid = input(true, ...(ngDevMode ? [{ debugName: \"showGrid\" }] : []));\n /**\n * Base size in pixels for the initial cropper window dimensions.\n */\n this.cropperSize = input(...(ngDevMode ? [undefined, { debugName: \"cropperSize\" }] : []));\n /**\n * its change grid display state.\n */\n this.lockRatio = signal(false, ...(ngDevMode ? [{ debugName: \"lockRatio\" }] : []));\n /**\n * its receive image src.\n */\n this.src = input('', ...(ngDevMode ? [{ debugName: \"src\" }] : []));\n /** @ignore */\n this.canvasElem = viewChild('canvasElem', ...(ngDevMode ? [{ debugName: \"canvasElem\" }] : []));\n /** @ignore */\n this.cropperWindow = viewChild('f', ...(ngDevMode ? [{ debugName: \"cropperWindow\" }] : []));\n /** @ignore */\n this.ctx = signal(null, ...(ngDevMode ? [{ debugName: \"ctx\" }] : []));\n /** @ignore */\n this.service = inject(AXImageEditorService);\n /** @ignore */\n this.isMouseDown = signal(false, ...(ngDevMode ? [{ debugName: \"isMouseDown\" }] : []));\n /** @ignore */\n this.isDrawRectangleCreated = signal(false, ...(ngDevMode ? [{ debugName: \"isDrawRectangleCreated\" }] : []));\n /** @ignore */\n this.parent = inject(AXImageEditorContainerComponent);\n /** @ignore */\n this.renderer = inject(Renderer2);\n /** @ignore */\n this.imageEditorHistory = signal([], ...(ngDevMode ? [{ debugName: \"imageEditorHistory\" }] : []));\n /** @ignore */\n this.imageEditorHistoryPointer = linkedSignal(() => this.imageEditorHistory().length - 1, ...(ngDevMode ? [{ debugName: \"imageEditorHistoryPointer\" }] : []));\n this.originalWidth = signal(0, ...(ngDevMode ? [{ debugName: \"originalWidth\" }] : []));\n this.originalHeight = signal(0, ...(ngDevMode ? [{ debugName: \"originalHeight\" }] : []));\n this.scale = signal(0, ...(ngDevMode ? [{ debugName: \"scale\" }] : []));\n afterNextRender(() => {\n this.resizeEventListener = this.renderer.listen(window, 'resize', this.resizeWindow.bind(this));\n //set canvas options\n this.ctx.set(this.canvasElem().nativeElement.getContext('2d', { willReadFrequently: true }));\n this.ctx().lineJoin = 'round';\n this.ctx().lineCap = 'round';\n });\n effect(() => {\n this.setInitialImage(this.src());\n });\n effect(() => {\n if (!this.service.undoPressed()) {\n this.imageChanged();\n }\n });\n effect(() => {\n if (!this.service.redoPressed()) {\n this.imageChanged();\n }\n });\n effect(() => {\n if (!this.service.rotate().userInteract || !this.ctx())\n return;\n this.rotateImage();\n });\n effect(() => {\n const size = this.cropperSize();\n if (size != null) {\n this.service.cropperSize.set(size);\n }\n });\n }\n /** @ignore */\n ngOnDestroy() {\n if (this.resizeEventListener) {\n this.resizeEventListener();\n }\n if (this.imageLoadEventListener) {\n this.imageLoadEventListener();\n }\n }\n setInitialImage(src, replaceHistory = true) {\n this.service.initialImage = new Image();\n this.service.initialImage.src = src;\n this.service.initialImage.crossOrigin = 'anonymous';\n this.imageLoadEventListener = this.renderer.listen(this.service.initialImage, 'load', () => {\n this.service.newImage = this.service.initialImage;\n this.service.isImageLoad.set(true);\n this.canvasResponsive(this.service.initialImage);\n if (replaceHistory) {\n this.imageEditorHistory.set([this.service.initialImage]);\n }\n else {\n this.imageEditorHistory.update((prev) => [...prev, this.service.initialImage]);\n }\n });\n }\n /** @ignore */\n imageChanged() {\n if (this.service.undoPressed() && this.imageEditorHistoryPointer() >= 1) {\n this.imageEditorHistoryPointer.update((prev) => prev - 1);\n this.service.newImage = this.imageEditorHistory()[this.imageEditorHistoryPointer()];\n this.canvasResponsive(this.imageEditorHistory()[this.imageEditorHistoryPointer()]);\n }\n if (this.service.redoPressed() && this.imageEditorHistoryPointer() < this.imageEditorHistory().length - 1) {\n this.imageEditorHistoryPointer.update((prev) => prev + 1);\n this.service.newImage = this.imageEditorHistory()[this.imageEditorHistoryPointer()];\n this.canvasResponsive(this.imageEditorHistory()[this.imageEditorHistoryPointer()]);\n }\n this.service.undoPressed.set(false);\n this.service.redoPressed.set(false);\n }\n /** @ignore */\n penConfigHandler(penType) {\n switch (penType) {\n case 'pen':\n this.ctx().globalAlpha = 1;\n this.ctx().strokeStyle = this.service.penColor();\n this.ctx().lineWidth = this.service.penWidth();\n break;\n case 'highlight':\n this.ctx().globalAlpha = 0.008;\n this.ctx().strokeStyle = this.service.highlightColor();\n this.ctx().lineWidth = this.service.highlightWidth();\n break;\n }\n }\n /** @ignore */\n mouseDownHandler(e) {\n this.isMouseDown.set(true);\n if (!this.service.penType())\n return;\n this.penConfigHandler(this.service.penType());\n this.ctx().beginPath();\n this.ctx().moveTo(e.offsetX, e.offsetY);\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n /** @ignore */\n mouseMoveHandler(e) {\n if (!this.isMouseDown())\n return;\n if (!this.service.penType())\n return;\n this.ctx().lineTo(e.offsetX, e.offsetY);\n this.ctx().stroke();\n }\n /** @ignore */\n mouseUpHandler() {\n this.isMouseDown.set(false);\n this.ctx().closePath();\n this.saveImageChange();\n }\n /** @ignore */\n async crop() {\n const cropper = this.cropperWindow();\n if (this.service.activeToolState() !== 'crop' || !cropper) {\n return;\n }\n const cropRect = cropper.getCropperArea();\n const canvas = this.canvasElem().nativeElement;\n const canvasRect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / canvasRect.width;\n const scaleY = canvas.height / canvasRect.height;\n const dx = (cropRect.x - canvasRect.x) * scaleX;\n const dy = (cropRect.y - canvasRect.y) * scaleY;\n const cropWidth = cropRect.width * scaleX;\n const cropHeight = cropRect.height * scaleY;\n const imageData = this.ctx().getImageData(Math.round(dx), Math.round(dy), Math.round(cropWidth), Math.round(cropHeight));\n canvas.width = Math.round(cropWidth);\n canvas.height = Math.round(cropHeight);\n this.ctx().putImageData(imageData, 0, 0);\n const cropImage = this.canvasElem().nativeElement.toDataURL('image/jpeg', 1);\n await this.saveImageChange();\n this.setInitialImage(cropImage, false);\n this.service.activeToolState.set(null);\n }\n /** @ignore */\n rotateImage() {\n this.ctx().globalAlpha = 1;\n this.ctx().save();\n this.ctx().clearRect(0, 0, this.canvasElem().nativeElement.width, this.canvasElem().nativeElement.height);\n // Calculate scale factor to fit rotated image within canvas\n const rotationAngle = (this.service.rotate().state * Math.PI) / 180;\n const cos = Math.abs(Math.cos(rotationAngle));\n const sin = Math.abs(Math.sin(rotationAngle));\n const rotatedWidth = this.service.newImage.width * cos + this.service.newImage.height * sin;\n const rotatedHeight = this.service.newImage.width * sin + this.service.newImage.height * cos;\n const scaleX = this.canvasElem().nativeElement.width / rotatedWidth;\n const scaleY = this.canvasElem().nativeElement.height / rotatedHeight;\n const scale = Math.min(scaleX, scaleY);\n this.ctx().translate(this.canvasElem().nativeElement.width / 2, this.canvasElem().nativeElement.height / 2);\n this.ctx().rotate(rotationAngle);\n this.ctx().scale(scale, scale);\n this.ctx().drawImage(this.service.newImage, -this.service.newImage.width / 2, -this.service.newImage.height / 2);\n this.ctx().restore();\n this.saveImageChange();\n this.service.rotate.update((prev) => {\n return { state: prev.state, userInteract: false };\n });\n }\n /** @ignore */\n async saveImageChange() {\n const canvas = this.canvasElem().nativeElement;\n const newImage = new Image();\n newImage.crossOrigin = 'anonymous';\n newImage.src = canvas.toDataURL('image/jpeg', 1);\n this.service.newImage = newImage;\n this.imageEditorHistory.update((prev) => [...prev, newImage]);\n const canvasToBlob = (type, quality) => {\n return new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n }\n else {\n reject(new Error(`toBlob returned null for type ${type}`));\n }\n }, type, quality);\n });\n };\n const blobs = await Promise.all([\n canvasToBlob('image/jpeg', 1),\n canvasToBlob('image/png', 1),\n canvasToBlob('image/webp', 1),\n ]);\n this.service.imageBlob.set(blobs);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorViewComponent, isStandalone: true, selector: \"ax-image-editor-view\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", isSignal: true, isRequired: false, transformFunction: null }, cropperSize: { classPropertyName: \"cropperSize\", publicName: \"cropperSize\", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: \"src\", publicName: \"src\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], viewQueries: [{ propertyName: \"canvasElem\", first: true, predicate: [\"canvasElem\"], descendants: true, isSignal: true }, { propertyName: \"cropperWindow\", first: true, predicate: [\"f\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<canvas\\n tabindex=\\\"1\\\"\\n (pointerdown)=\\\"mouseDownHandler($event)\\\"\\n (pointerup)=\\\"mouseUpHandler()\\\"\\n (pointermove)=\\\"mouseMoveHandler($event)\\\"\\n class=\\\"ax-canvas-element\\\"\\n #canvasElem\\n></canvas>\\n\\n@if (this.service.activeToolState() === 'crop') {\\n <ax-image-editor-cropper-window [showGrid]=\\\"showGrid()\\\" #f></ax-image-editor-cropper-window>\\n}\\n\", styles: [\"ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%;touch-action:none;overflow:hidden}ax-image-editor-view .ax-canvas-element{cursor:crosshair;background-color:#000}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\\n\"], dependencies: [{ kind: \"component\", type: AXImageEditorCropperWindowComponent, selector: \"ax-image-editor-cropper-window\", inputs: [\"showGrid\", \"size\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXImageEditorCropperWindowComponent], providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], template: \"<canvas\\n tabindex=\\\"1\\\"\\n (pointerdown)=\\\"mouseDownHandler($event)\\\"\\n (pointerup)=\\\"mouseUpHandler()\\\"\\n (pointermove)=\\\"mouseMoveHandler($event)\\\"\\n class=\\\"ax-canvas-element\\\"\\n #canvasElem\\n></canvas>\\n\\n@if (this.service.activeToolState() === 'crop') {\\n <ax-image-editor-cropper-window [showGrid]=\\\"showGrid()\\\" #f></ax-image-editor-cropper-window>\\n}\\n\", styles: [\"ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%;touch-action:none;overflow:hidden}ax-image-editor-view .ax-canvas-element{cursor:crosshair;background-color:#000}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFFWixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBVy9ELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBK0M3RCxjQUFjO0lBQ0osWUFBWTtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztJQUNKLGdCQUFnQixDQUFDLEtBQXVCO1FBQ2hELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0IsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFD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S0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM5QixZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUM3QixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUM1QixZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0ExVVUsMEJBQTBCO2tHQUExQiwwQkFBMEIsNGNBRjFCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLGdSQzNCaEYsaVhBWUEsMlhEY1ksbUNBQW1DOzsyRkFHbEMsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsbUNBQW1DLENBQUMsYUFDbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyw0QkFBNEIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93L2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yVmlld0NvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogaXRzIGNoYW5nZSBncmlkIGRpc3BsYXkgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBzaG93R3JpZCA9IGlucHV0KHRydWUpO1xuICAvKipcbiAgICogQmFzZSBzaXplIGluIHBpeGVscyBmb3IgdGhlIGluaXRpYWwgY3JvcHBlciB3aW5kb3cgZGltZW5zaW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGNyb3BwZXJTaXplID0gaW5wdXQ8bnVtYmVyPigpO1xuICAvKipcbiAgICogaXRzIGNoYW5nZSBncmlkIGRpc3BsYXkgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBsb2NrUmF0aW8gPSBzaWduYWwoZmFsc2UpO1xuICAvKipcbiAgICogaXRzIHJlY2VpdmUgaW1hZ2Ugc3JjLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjYW52YXNFbGVtID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+PignY2FudmFzRWxlbScpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY3JvcHBlcldpbmRvdyA9IHZpZXdDaGlsZDxBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudD4oJ2YnKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGN0eCA9IHNpZ25hbDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KG51bGwpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc01vdXNlRG93biA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc0RyYXdSZWN0YW5nbGVDcmVhdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBhcmVudCA9IGluamVjdChBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUVkaXRvckhpc3RvcnkgPSBzaWduYWw8SFRNTEltYWdlRWxlbWVudFtdPihbXSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KCkubGVuZ3RoIC0gMSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZXNpemVFdmVudExpc3RlbmVyO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGltYWdlTG9hZEV2ZW50TGlzdGVuZXI7XG5cbiAgcHJpdmF0ZSBvcmlnaW5hbFdpZHRoID0gc2lnbmFsKDApO1xuICBwcml2YXRlIG9yaWdpbmFsSGVpZ2h0ID0gc2lnbmFsKDApO1xuICBwcml2YXRlIHNjYWxlID0gc2lnbmFsKDApO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZXNpemVXaW5kb3coKSB7XG4gICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuc2VydmljZS5uZXdJbWFnZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY2FudmFzUmVzcG9uc2l2ZShpbWFnZTogSFRNTEltYWdlRWxlbWVudCkge1xuICAgIGNvbnN0IGltYWdlV2lkdGggPSBpbWFnZS53aWR0aDtcbiAgICBjb25zdCBpbWFnZUhlaWdodCA9IGltYWdlLmhlaWdodDtcblxuICAgIHRoaXMub3JpZ2luYWxXaWR0aC5zZXQoaW1hZ2VXaWR0aCk7XG4gICAgdGhpcy5vcmlnaW5hbEhlaWdodC5zZXQoaW1hZ2VIZWlnaHQpO1xuXG4gICAgaWYgKGltYWdlV2lkdGggPiBpbWFnZUhlaWdodCkge1xuICAgICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCA9IGltYWdlV2lkdGg7XG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCA9IGltYWdlV2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQud2lkdGggPSBpbWFnZUhlaWdodDtcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQ7XG4gICAgfVxuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIC8vcmVjYWxjdWxhdGUgd2lkdGggYWZ0ZXIgY2FudmFzIHNpemUgY2hhbmdlXG4gICAgICBjb25zdCByZWNhbGN1bGF0ZVdpZHRoID0gKHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldENsaWVudFJlY3RzKClbMF0/LndpZHRoO1xuXG4gICAgICBsZXQgc2NhbGU6IG51bWJlcjtcbiAgICAgIGlmIChpbWFnZVdpZHRoID4gaW1hZ2VIZWlnaHQpIHtcbiAgICAgICAgc2NhbGUgPSB0aGlzLm9yaWdpbmFsV2lkdGgoKSAvIHJlY2FsY3VsYXRlV2lkdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzY2FsZSA9IHRoaXMub3JpZ2luYWxIZWlnaHQoKSAvIHJlY2FsY3VsYXRlV2lkdGg7XG4gICAgICB9XG4gICAgICB0aGlzLnNjYWxlLnNldChzY2FsZSk7XG5cbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQud2lkdGggPSByZWNhbGN1bGF0ZVdpZHRoO1xuICAgICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQgPSByZWNhbGN1bGF0ZVdpZHRoO1xuXG4gICAgICBpZiAoaW1hZ2VXaWR0aCA+IGltYWdlSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuY3R4KCkuZHJhd0ltYWdlKFxuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgcmVjYWxjdWxhdGVXaWR0aCAvIDIgLSB0aGlzLm9yaWdpbmFsSGVpZ2h0KCkgLyBzY2FsZSAvIDIsXG4gICAgICAgICAgcmVjYWxjdWxhdGVXaWR0aCxcbiAgICAgICAgICB0aGlzLm9yaWdpbmFsSGVpZ2h0KCkgLyBzY2FsZSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3R4KCkuZHJhd0ltYWdlKFxuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIHJlY2FsY3VsYXRlV2lkdGggLyAyIC0gdGhpcy5vcmlnaW5hbFdpZHRoKCkgLyBzY2FsZSAvIDIsXG4gICAgICAgICAgMCxcbiAgICAgICAgICB0aGlzLm9yaWdpbmFsV2lkdGgoKSAvIHNjYWxlLFxuICAgICAgICAgIHJlY2FsY3VsYXRlV2lkdGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMucmVzaXplRXZlbnRMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHdpbmRvdywgJ3Jlc2l6ZScsIHRoaXMucmVzaXplV2luZG93LmJpbmQodGhpcykpO1xuICAgICAgLy9zZXQgY2FudmFzIG9wdGlvbnNcbiAgICAgIHRoaXMuY3R4LnNldCh0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmdldENvbnRleHQoJzJkJywgeyB3aWxsUmVhZEZyZXF1ZW50bHk6IHRydWUgfSkpO1xuICAgICAgdGhpcy5jdHgoKS5saW5lSm9pbiA9ICdyb3VuZCc7XG4gICAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSAncm91bmQnO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0SW5pdGlhbEltYWdlKHRoaXMuc3JjKCkpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlLnVuZG9QcmVzc2VkKCkpIHtcbiAgICAgICAgdGhpcy5pbWFnZUNoYW5nZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZS5yZWRvUHJlc3NlZCgpKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNlcnZpY2Uucm90YXRlKCkudXNlckludGVyYWN0IHx8ICF0aGlzLmN0eCgpKSByZXR1cm47XG4gICAgICB0aGlzLnJvdGF0ZUltYWdlKCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuY3JvcHBlclNpemUoKTtcbiAgICAgIGlmIChzaXplICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNyb3BwZXJTaXplLnNldChzaXplKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucmVzaXplRXZlbnRMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuaW1hZ2VMb2FkRXZlbnRMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbEltYWdlKHNyYzogc3RyaW5nLCByZXBsYWNlSGlzdG9yeSA9IHRydWUpIHtcbiAgICB0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZS5zcmMgPSBzcmM7XG4gICAgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZS5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xuICAgIHRoaXMuaW1hZ2VMb2FkRXZlbnRMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UsICdsb2FkJywgKCkgPT4ge1xuICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlID0gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZTtcbiAgICAgIHRoaXMuc2VydmljZS5pc0ltYWdlTG9hZC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmNhbnZhc1Jlc3BvbnNpdmUodGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSk7XG4gICAgICBpZiAocmVwbGFjZUhpc3RvcnkpIHtcbiAgICAgICAgdGhpcy5pbWFnZUVkaXRvckhpc3Rvcnkuc2V0KFt0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeS51cGRhdGUoKHByZXYpID0+IFsuLi5wcmV2LCB0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaW1hZ2VDaGFuZ2VkKCkge1xuICAgIGlmICh0aGlzLnNlcnZpY2UudW5kb1ByZXNzZWQoKSAmJiB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIoKSA+PSAxKSB7XG4gICAgICB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIudXBkYXRlKChwcmV2KSA9PiBwcmV2IC0gMSk7XG5cbiAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSA9IHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KClbdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCldO1xuICAgICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KClbdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCldKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZXJ2aWNlLnJlZG9QcmVzc2VkKCkgJiYgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCkgPCB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpLmxlbmd0aCAtIDEpIHtcbiAgICAgIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlci51cGRhdGUoKHByZXYpID0+IHByZXYgKyAxKTtcbiAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSA9IHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KClbdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCldO1xuICAgICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KClbdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCldKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlcnZpY2UudW5kb1ByZXNzZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlcnZpY2UucmVkb1ByZXNzZWQuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBwZW5Db25maWdIYW5kbGVyKHBlblR5cGU6ICdwZW4nIHwgJ2hpZ2hsaWdodCcpIHtcbiAgICBzd2l0Y2ggKHBlblR5cGUpIHtcbiAgICAgIGNhc2UgJ3Blbic6XG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAxO1xuICAgICAgICB0aGlzLmN0eCgpLnN0cm9rZVN0eWxlID0gdGhpcy5zZXJ2aWNlLnBlbkNvbG9yKCk7XG4gICAgICAgIHRoaXMuY3R4KCkubGluZVdpZHRoID0gdGhpcy5zZXJ2aWNlLnBlbldpZHRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGlnaGxpZ2h0JzpcbiAgICAgICAgdGhpcy5jdHgoKS5nbG9iYWxBbHBoYSA9IDAuMDA4O1xuICAgICAgICB0aGlzLmN0eCgpLnN0cm9rZVN0eWxlID0gdGhpcy5zZXJ2aWNlLmhpZ2hsaWdodENvbG9yKCk7XG4gICAgICAgIHRoaXMuY3R4KCkubGluZVdpZHRoID0gdGhpcy5zZXJ2aWNlLmhpZ2hsaWdodFdpZHRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBtb3VzZURvd25IYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmlzTW91c2VEb3duLnNldCh0cnVlKTtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5wZW5UeXBlKCkpIHJldHVybjtcblxuICAgIHRoaXMucGVuQ29uZmlnSGFuZGxlcih0aGlzLnNlcnZpY2UucGVuVHlwZSgpKTtcbiAgICB0aGlzLmN0eCgpLmJlZ2luUGF0aCgpO1xuICAgIHRoaXMuY3R4KCkubW92ZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcbiAgICB0aGlzLmN0eCgpLmxpbmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XG4gICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBtb3VzZU1vdmVIYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24oKSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5zZXJ2aWNlLnBlblR5cGUoKSkgcmV0dXJuO1xuICAgIHRoaXMuY3R4KCkubGluZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcbiAgICB0aGlzLmN0eCgpLnN0cm9rZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG1vdXNlVXBIYW5kbGVyKCkge1xuICAgIHRoaXMuaXNNb3VzZURvd24uc2V0KGZhbHNlKTtcbiAgICB0aGlzLmN0eCgpLmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuc2F2ZUltYWdlQ2hhbmdlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBhc3luYyBjcm9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNyb3BwZXIgPSB0aGlzLmNyb3BwZXJXaW5kb3coKTtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpICE9PSAnY3JvcCcgfHwgIWNyb3BwZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjcm9wUmVjdCA9IGNyb3BwZXIuZ2V0Q3JvcHBlckFyZWEoKTtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGNhbnZhc1JlY3QgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc2NhbGVYID0gY2FudmFzLndpZHRoIC8gY2FudmFzUmVjdC53aWR0aDtcbiAgICBjb25zdCBzY2FsZVkgPSBjYW52YXMuaGVpZ2h0IC8gY2FudmFzUmVjdC5oZWlnaHQ7XG4gICAgY29uc3QgZHggPSAoY3JvcFJlY3QueCAtIGNhbnZhc1JlY3QueCkgKiBzY2FsZVg7XG4gICAgY29uc3QgZHkgPSAoY3JvcFJlY3QueSAtIGNhbnZhc1JlY3QueSkgKiBzY2FsZVk7XG4gICAgY29uc3QgY3JvcFdpZHRoID0gY3JvcFJlY3Qud2lkdGggKiBzY2FsZVg7XG4gICAgY29uc3QgY3JvcEhlaWdodCA9IGNyb3BSZWN0LmhlaWdodCAqIHNjYWxlWTtcblxuICAgIGNvbnN0IGltYWdlRGF0YSA9IHRoaXMuY3R4KCkuZ2V0SW1hZ2VEYXRhKFxuICAgICAgTWF0aC5yb3VuZChkeCksXG4gICAgICBNYXRoLnJvdW5kKGR5KSxcbiAgICAgIE1hdGgucm91bmQoY3JvcFdpZHRoKSxcbiAgICAgIE1hdGgucm91bmQoY3JvcEhlaWdodCksXG4gICAgKTtcbiAgICBjYW52YXMud2lkdGggPSBNYXRoLnJvdW5kKGNyb3BXaWR0aCk7XG4gICAgY2FudmFzLmhlaWdodCA9IE1hdGgucm91bmQoY3JvcEhlaWdodCk7XG4gICAgdGhpcy5jdHgoKS5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCAwLCAwKTtcbiAgICBjb25zdCBjcm9wSW1hZ2UgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDEpO1xuXG4gICAgYXdhaXQgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnNldEluaXRpYWxJbWFnZShjcm9wSW1hZ2UsIGZhbHNlKTtcbiAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlLnNldChudWxsKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByb3RhdGVJbWFnZSgpIHtcbiAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMTtcbiAgICB0aGlzLmN0eCgpLnNhdmUoKTtcbiAgICB0aGlzLmN0eCgpLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCk7XG5cbiAgICAvLyBDYWxjdWxhdGUgc2NhbGUgZmFjdG9yIHRvIGZpdCByb3RhdGVkIGltYWdlIHdpdGhpbiBjYW52YXNcbiAgICBjb25zdCByb3RhdGlvbkFuZ2xlID0gKHRoaXMuc2VydmljZS5yb3RhdGUoKS5zdGF0ZSAqIE1hdGguUEkpIC8gMTgwO1xuICAgIGNvbnN0IGNvcyA9IE1hdGguYWJzKE1hdGguY29zKHJvdGF0aW9uQW5nbGUpKTtcbiAgICBjb25zdCBzaW4gPSBNYXRoLmFicyhNYXRoLnNpbihyb3RhdGlvbkFuZ2xlKSk7XG5cbiAgICBjb25zdCByb3RhdGVkV2lkdGggPSB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggKiBjb3MgKyB0aGlzLnNlcnZpY2UubmV3SW1hZ2UuaGVpZ2h0ICogc2luO1xuICAgIGNvbnN0IHJvdGF0ZWRIZWlnaHQgPSB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggKiBzaW4gKyB0aGlzLnNlcnZpY2UubmV3SW1hZ2UuaGVpZ2h0ICogY29zO1xuXG4gICAgY29uc3Qgc2NhbGVYID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCAvIHJvdGF0ZWRXaWR0aDtcbiAgICBjb25zdCBzY2FsZVkgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCAvIHJvdGF0ZWRIZWlnaHQ7XG4gICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihzY2FsZVgsIHNjYWxlWSk7XG5cbiAgICB0aGlzLmN0eCgpLnRyYW5zbGF0ZSh0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoIC8gMiwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQgLyAyKTtcbiAgICB0aGlzLmN0eCgpLnJvdGF0ZShyb3RhdGlvbkFuZ2xlKTtcbiAgICB0aGlzLmN0eCgpLnNjYWxlKHNjYWxlLCBzY2FsZSk7XG5cbiAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZSh0aGlzLnNlcnZpY2UubmV3SW1hZ2UsIC10aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggLyAyLCAtdGhpcy5zZXJ2aWNlLm5ld0ltYWdlLmhlaWdodCAvIDIpO1xuICAgIHRoaXMuY3R4KCkucmVzdG9yZSgpO1xuXG4gICAgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnNlcnZpY2Uucm90YXRlLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgcmV0dXJuIHsgc3RhdGU6IHByZXYuc3RhdGUsIHVzZXJJbnRlcmFjdDogZmFsc2UgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBhc3luYyBzYXZlSW1hZ2VDaGFuZ2UoKSB7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudDtcblxuICAgIGNvbnN0IG5ld0ltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgbmV3SW1hZ2UuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICBuZXdJbWFnZS5zcmMgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywgMSk7XG4gICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlID0gbmV3SW1hZ2U7XG4gICAgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgbmV3SW1hZ2VdKTtcblxuICAgIGNvbnN0IGNhbnZhc1RvQmxvYiA9ICh0eXBlOiBzdHJpbmcsIHF1YWxpdHk/OiBudW1iZXIpOiBQcm9taXNlPEJsb2I+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNhbnZhcy50b0Jsb2IoXG4gICAgICAgICAgKGJsb2IpID0+IHtcbiAgICAgICAgICAgIGlmIChibG9iKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUoYmxvYik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGB0b0Jsb2IgcmV0dXJuZWQgbnVsbCBmb3IgdHlwZSAke3R5cGV9YCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBxdWFsaXR5LFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGJsb2JzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgY2FudmFzVG9CbG9iKCdpbWFnZS9qcGVnJywgMSksXG4gICAgICBjYW52YXNUb0Jsb2IoJ2ltYWdlL3BuZycsIDEpLFxuICAgICAgY2FudmFzVG9CbG9iKCdpbWFnZS93ZWJwJywgMSksXG4gICAgXSk7XG5cbiAgICB0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iLnNldChibG9icyk7XG4gIH1cbn1cbiIsIjxjYW52YXNcbiAgdGFiaW5kZXg9XCIxXCJcbiAgKHBvaW50ZXJkb3duKT1cIm1vdXNlRG93bkhhbmRsZXIoJGV2ZW50KVwiXG4gIChwb2ludGVydXApPVwibW91c2VVcEhhbmRsZXIoKVwiXG4gIChwb2ludGVybW92ZSk9XCJtb3VzZU1vdmVIYW5kbGVyKCRldmVudClcIlxuICBjbGFzcz1cImF4LWNhbnZhcy1lbGVtZW50XCJcbiAgI2NhbnZhc0VsZW1cbj48L2NhbnZhcz5cblxuQGlmICh0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdjcm9wJykge1xuICA8YXgtaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93IFtzaG93R3JpZF09XCJzaG93R3JpZCgpXCIgI2Y+PC9heC1pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3c+XG59XG4iXX0=","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { Component, contentChild, effect, forwardRef, HostBinding, inject, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXImageEditorViewComponent } from '../image-editor-view/image-editor-view.component';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/**\n * paint container.\n * @category Components\n */\nexport class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n /** @ignore */\n this.service = inject(AXImageEditorService);\n this.imageEditorContainer = viewChild('f', ...(ngDevMode ? [{ debugName: \"imageEditorContainer\" }] : []));\n this.view = contentChild(AXImageEditorViewComponent, ...(ngDevMode ? [{ debugName: \"view\" }] : []));\n this.#eff = effect(() => {\n void this.service.imageBlob();\n if (this.service.imageBlob().length) {\n this.commitValue(this.service.imageBlob(), true);\n }\n else {\n this.commitValue(null);\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n /** Applies the current cropper selection. */\n async crop() {\n const oldValue = this.value;\n await this.view()?.crop();\n const blobs = this.service.imageBlob();\n if (blobs.length && this.value === oldValue) {\n this.commitValue(blobs, true);\n }\n }\n get __hostClass() {\n if (this.disabled)\n return 'ax-state-disabled';\n return '';\n }\n get __hostName() {\n return this.name;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorContainerComponent, isStandalone: true, selector: \"ax-image-editor-container\", inputs: { look: \"look\", disabled: \"disabled\" }, outputs: { onValueChanged: \"onValueChanged\" }, host: { properties: { \"class\": \"this.__hostClass\", \"attr.name\": \"this.__hostName\" } }, providers: [\n AXImageEditorService,\n { provide: AXComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXValuableComponent, useExisting: AXImageEditorContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXImageEditorContainerComponent),\n multi: true,\n },\n ], queries: [{ propertyName: \"view\", first: true, predicate: AXImageEditorViewComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"imageEditorContainer\", first: true, predicate: [\"f\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@if (service.isImageLoad()) {\\n <div #f class=\\\"ax-editor-container ax-{{ look }}\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n\\n <ng-content select=\\\"ax-image-editor-view\\\"> </ng-content>\\n\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-error-container\\\"></div>\\n} @else {\\n <div class=\\\"ax-loading-spinner-container\\\">\\n <ax-loading-spinner [size]=\\\"16\\\" color=\\\"primary\\\" text=\\\"Loading Image ...\\\"></ax-loading-spinner>\\n </div>\\n}\\n<ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n@if (disabled) {\\n <div class=\\\"ax-disable-overlay\\\"></div>\\n}\\n\", styles: [\"ax-image-editor-container{width:fit-content;display:block;position:relative}ax-image-editor-container.ax-state-disabled{opacity:.5}ax-image-editor-container .ax-disable-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:not-allowed}ax-image-editor-container>.ax-editor-container{display:block;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}ax-image-editor-container ax-footer{width:100%}ax-image-editor-container ax-header{width:100%}ax-image-editor-container ax-header ax-toolbar{justify-content:space-between}ax-image-editor-container ax-header .ax-start-toolbar-divider{display:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-container', encapsulation: ViewEncapsulation.None, outputs: ['onValueChanged'], inputs: ['look', 'disabled'], providers: [\n AXImageEditorService,\n { provide: AXComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXImageEditorContainerComponent },\n { provide: AXValuableComponent, useExisting: AXImageEditorContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXImageEditorContainerComponent),\n multi: true,\n },\n ], imports: [AXDecoratorModule, AXLoadingSpinnerComponent], template: \"@if (service.isImageLoad()) {\\n <div #f class=\\\"ax-editor-container ax-{{ look }}\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n\\n <ng-content select=\\\"ax-image-editor-view\\\"> </ng-content>\\n\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-error-container\\\"></div>\\n} @else {\\n <div class=\\\"ax-loading-spinner-container\\\">\\n <ax-loading-spinner [size]=\\\"16\\\" color=\\\"primary\\\" text=\\\"Loading Image ...\\\"></ax-loading-spinner>\\n </div>\\n}\\n<ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n@if (disabled) {\\n <div class=\\\"ax-disable-overlay\\\"></div>\\n}\\n\", styles: [\"ax-image-editor-container{width:fit-content;display:block;position:relative}ax-image-editor-container.ax-state-disabled{opacity:.5}ax-image-editor-container .ax-disable-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:not-allowed}ax-image-editor-container>.ax-editor-container{display:block;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}ax-image-editor-container ax-footer{width:100%}ax-image-editor-container ax-header{width:100%}ax-image-editor-container ax-header ax-toolbar{justify-content:space-between}ax-image-editor-container ax-header .ax-start-toolbar-divider{display:none}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }], __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBRU4sVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUUvRDs7O0dBR0c7QUFxQkgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVB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c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQU9SLFVBQVU7c0JBRHJCLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXZpZXcvaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IGNvbnRhaW5lci5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxuICBpbnB1dHM6IFsnbG9vaycsICdkaXNhYmxlZCddLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWEltYWdlRWRpdG9yU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbQVhEZWNvcmF0b3JNb2R1bGUsIEFYTG9hZGluZ1NwaW5uZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50PEJsb2JbXT4sIE1YTG9va0NvbXBvbmVudCkge1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG5cbiAgaW1hZ2VFZGl0b3JDb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2YnKTtcblxuICB2aWV3ID0gY29udGVudENoaWxkPEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50PihBWEltYWdlRWRpdG9yVmlld0NvbXBvbmVudCk7XG5cbiAgI2VmZiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdm9pZCB0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iKCk7XG4gICAgaWYgKHRoaXMuc2VydmljZS5pbWFnZUJsb2IoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5zZXJ2aWNlLmltYWdlQmxvYigpLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKiBBcHBsaWVzIHRoZSBjdXJyZW50IGNyb3BwZXIgc2VsZWN0aW9uLiAqL1xuXG4gIGFzeW5jIGNyb3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgYXdhaXQgdGhpcy52aWV3KCk/LmNyb3AoKTtcblxuICAgIGNvbnN0IGJsb2JzID0gdGhpcy5zZXJ2aWNlLmltYWdlQmxvYigpO1xuXG4gICAgaWYgKGJsb2JzLmxlbmd0aCAmJiB0aGlzLnZhbHVlID09PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShibG9icywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm4gJ2F4LXN0YXRlLWRpc2FibGVkJztcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmFtZScpXG4gIHByaXZhdGUgZ2V0IF9faG9zdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG59XG4iLCJAaWYgKHNlcnZpY2UuaXNJbWFnZUxvYWQoKSkge1xuICA8ZGl2ICNmIGNsYXNzPVwiYXgtZWRpdG9yLWNvbnRhaW5lciAgYXgte3sgbG9vayB9fVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWltYWdlLWVkaXRvci12aWV3XCI+IDwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiYXgtbG9hZGluZy1zcGlubmVyLWNvbnRhaW5lclwiPlxuICAgIDxheC1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiMTZcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiTG9hZGluZyBJbWFnZSAuLi5cIj48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgPC9kaXY+XG59XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuXG5AaWYgKGRpc2FibGVkKSB7XG4gIDxkaXYgY2xhc3M9XCJheC1kaXNhYmxlLW92ZXJsYXlcIj48L2Rpdj5cbn1cbiJdfQ==","export const IMAGE_EDITOR_ASPECT_RATIO_ACTIVE_SUFFIX = ':active';\nexport function parseAspectRatioItem(item) {\n if (item.endsWith(IMAGE_EDITOR_ASPECT_RATIO_ACTIVE_SUFFIX)) {\n return {\n ratio: item.slice(0, -IMAGE_EDITOR_ASPECT_RATIO_ACTIVE_SUFFIX.length),\n active: true,\n };\n }\n return { ratio: item, active: false };\n}\nexport function parseAspectRatios(items) {\n const ratios = [];\n let activeRatio = null;\n for (const item of items) {\n const { ratio, active } = parseAspectRatioItem(item);\n ratios.push(ratio);\n if (active && activeRatio === null) {\n activeRatio = ratio;\n }\n }\n return { ratios, activeRatio };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWFzcGVjdC1yYXRpby51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItYXNwZWN0LXJhdGlvLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQUcsU0FBUyxDQUFDO0FBRWpFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFZO0lBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsQ0FBQyxFQUFFLENBQUM7UUFDM0QsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLE1BQU0sQ0FBQztZQUNyRSxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBd0I7SUFJeEQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksV0FBVyxHQUFrQixJQUFJLENBQUM7SUFFdEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkIsSUFBSSxNQUFNLElBQUksV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25DLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSU1BR0VfRURJVE9SX0FTUEVDVF9SQVRJT19BQ1RJVkVfU1VGRklYID0gJzphY3RpdmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBc3BlY3RSYXRpb0l0ZW0oaXRlbTogc3RyaW5nKTogeyByYXRpbzogc3RyaW5nOyBhY3RpdmU6IGJvb2xlYW4gfSB7XG4gIGlmIChpdGVtLmVuZHNXaXRoKElNQUdFX0VESVRPUl9BU1BFQ1RfUkFUSU9fQUNUSVZFX1NVRkZJWCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF0aW86IGl0ZW0uc2xpY2UoMCwgLUlNQUdFX0VESVRPUl9BU1BFQ1RfUkFUSU9fQUNUSVZFX1NVRkZJWC5sZW5ndGgpLFxuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyByYXRpbzogaXRlbSwgYWN0aXZlOiBmYWxzZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBc3BlY3RSYXRpb3MoaXRlbXM6IHJlYWRvbmx5IHN0cmluZ1tdKToge1xuICByYXRpb3M6IHN0cmluZ1tdO1xuICBhY3RpdmVSYXRpbzogc3RyaW5nIHwgbnVsbDtcbn0ge1xuICBjb25zdCByYXRpb3M6IHN0cmluZ1tdID0gW107XG4gIGxldCBhY3RpdmVSYXRpbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgY29uc3QgeyByYXRpbywgYWN0aXZlIH0gPSBwYXJzZUFzcGVjdFJhdGlvSXRlbShpdGVtKTtcbiAgICByYXRpb3MucHVzaChyYXRpbyk7XG5cbiAgICBpZiAoYWN0aXZlICYmIGFjdGl2ZVJhdGlvID09PSBudWxsKSB7XG4gICAgICBhY3RpdmVSYXRpbyA9IHJhdGlvO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHJhdGlvcywgYWN0aXZlUmF0aW8gfTtcbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { AXImageEditorService } from '../image-editor.service';\n/**\n * Base class for image editor tool trigger components.\n * @category Components\n */\nexport class AXImageEditorToolComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n setActive() {\n this.service.activateTool(this.tool);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRWxGOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsMEJBQTBCO0lBQWhEO1FBQ1ksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBT25ELENBQUM7SUFIQyxTQUFTO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UsIEFYSW1hZ2VFZGl0b3JUb29sIH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGltYWdlIGVkaXRvciB0b29sIHRyaWdnZXIgY29tcG9uZW50cy5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBhYnN0cmFjdCByZWFkb25seSB0b29sOiBBWEltYWdlRWRpdG9yVG9vbDtcblxuICBzZXRBY3RpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmFjdGl2YXRlVG9vbCh0aGlzLnRvb2wpO1xuICB9XG59XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, effect, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorContainerComponent } from '../../image-editor-container/image-editor-container.component';\nimport { parseAspectRatios } from '../../image-editor-aspect-ratio.util';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/**\n * Crop tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorCropComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'crop';\n this.container = inject(AXImageEditorContainerComponent);\n /** Aspect ratio presets. Append `:active` to mark the default ratio, e.g. `'2:1:active'`. */\n this.aspectRatio = input([], ...(ngDevMode ? [{ debugName: \"aspectRatio\" }] : []));\n /** Base size in pixels for the initial cropper window dimensions. */\n this.size = input(...(ngDevMode ? [undefined, { debugName: \"size\" }] : []));\n this.#syncSize = effect(() => {\n const size = this.size();\n if (size != null) {\n this.service.cropperSize.set(size);\n }\n }, ...(ngDevMode ? [{ debugName: \"#syncSize\" }] : []));\n this.#syncAspectRatio = effect(() => {\n const { activeRatio } = parseAspectRatios(this.aspectRatio());\n if (activeRatio) {\n this.service.cropperRatio.set(activeRatio);\n }\n }, ...(ngDevMode ? [{ debugName: \"#syncAspectRatio\" }] : []));\n }\n #syncSize;\n #syncAspectRatio;\n /** Applies the current cropper selection. */\n crop() {\n this.container.crop();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXImageEditorCropComponent, isStandalone: true, selector: \"ax-image-editor-crop\", inputs: { aspectRatio: { classPropertyName: \"aspectRatio\", publicName: \"aspectRatio\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'crop'\\\"\\n [color]=\\\"service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-crop', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AsyncPipe, AXTranslatorPipe, AXTooltipModule], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'crop'\\\"\\n [color]=\\\"service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUU1RTs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsMEJBQTBCO0lBUDFFOztRQVFXLFNBQUksR0FBRyxNQUFNLENBQUM7UUFFZixjQUFTLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFNUQsNkZBQTZGO1FBQzdGLGdCQUFXLEdBQUcsS0FBSyxDQUFXLEVBQUUsdURBQUMsQ0FBQztRQUVsQyxxRUFBcUU7UUFDckUsU0FBSSxHQUFHLEtBQUssMERBQVUsQ0FBQztRQUV2QixjQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxxREFBQyxDQUFDO1FBRUgscUJBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDLDREQUFDLENBQUM7S0FNSjtJQWxCQyxTQUFTLENBS047SUFFSCxnQkFBZ0IsQ0FLYjtJQUVILDZDQUE2QztJQUM3QyxJQUFJO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQTVCVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw4VUFGMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLENBQUMsaURDcEJoRiwwWUFXQSw0Q0RRWSxpQkFBaUIsMFVBQUUsaUJBQWlCLCtIQUErQixlQUFlLGtSQUE1QyxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBR2hFLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLGFBQ2xGLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNEJBQTRCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgcGFyc2VBc3BlY3RSYXRpb3MgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3ItYXNwZWN0LXJhdGlvLnV0aWwnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclRvb2xDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItdG9vbC5jb21wb25lbnQnO1xuXG4vKipcbiAqIENyb3AgdG9vbCB0cmlnZ2VyIGZvciB0aGUgaW1hZ2UgZWRpdG9yIHRvb2xiYXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY3JvcC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWEJ1dHRvbkNvbXBvbmVudCwgQVhEZWNvcmF0b3JNb2R1bGUsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCBleHRlbmRzIEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdG9vbCA9ICdjcm9wJztcblxuICBwcml2YXRlIGNvbnRhaW5lciA9IGluamVjdChBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KTtcblxuICAvKiogQXNwZWN0IHJhdGlvIHByZXNldHMuIEFwcGVuZCBgOmFjdGl2ZWAgdG8gbWFyayB0aGUgZGVmYXVsdCByYXRpbywgZS5nLiBgJzI6MTphY3RpdmUnYC4gKi9cbiAgYXNwZWN0UmF0aW8gPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuXG4gIC8qKiBCYXNlIHNpemUgaW4gcGl4ZWxzIGZvciB0aGUgaW5pdGlhbCBjcm9wcGVyIHdpbmRvdyBkaW1lbnNpb25zLiAqL1xuICBzaXplID0gaW5wdXQ8bnVtYmVyPigpO1xuXG4gICNzeW5jU2l6ZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZSgpO1xuICAgIGlmIChzaXplICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc2VydmljZS5jcm9wcGVyU2l6ZS5zZXQoc2l6ZSk7XG4gICAgfVxuICB9KTtcblxuICAjc3luY0FzcGVjdFJhdGlvID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IGFjdGl2ZVJhdGlvIH0gPSBwYXJzZUFzcGVjdFJhdGlvcyh0aGlzLmFzcGVjdFJhdGlvKCkpO1xuICAgIGlmIChhY3RpdmVSYXRpbykge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpby5zZXQoYWN0aXZlUmF0aW8pO1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqIEFwcGxpZXMgdGhlIGN1cnJlbnQgY3JvcHBlciBzZWxlY3Rpb24uICovXG4gIGNyb3AoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXIuY3JvcCgpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLmNyb3AnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJzZXJ2aWNlLnRvZ2dsZVRvb2woJ2Nyb3AnKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJzZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpID09PSAnY3JvcCdcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2Nyb3AnID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgY2xhc3M9XCJheC14c1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNyb3BcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/**\n * Highlight tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorHighlightComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'highlight';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorHighlightComponent, isStandalone: true, selector: \"ax-image-editor-highlight\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'highlight'\\\"\\n [color]=\\\"service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-highlight', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'highlight'\\\"\\n [color]=\\\"service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0L2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFNUU7OztHQUdHO0FBU0gsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLDBCQUEwQjtJQVIvRTs7UUFTVyxTQUFJLEdBQUcsV0FBVyxDQUFDO0tBQzdCOzhHQUZZLCtCQUErQjtrR0FBL0IsK0JBQStCLHdFQUYvQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxpRENuQnJGLGthQVdBLDRDRE1ZLGlCQUFpQiwwVUFBRSxpQkFBaUIsK0hBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFJaEUsK0JBQStCO2tCQVIzQyxTQUFTOytCQUNFLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQzVFLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxpQ0FBaUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50JztcblxuLyoqXG4gKiBIaWdobGlnaHQgdG9vbCB0cmlnZ2VyIGZvciB0aGUgaW1hZ2UgZWRpdG9yIHRvb2xiYXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yTW9kdWxlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCBleHRlbmRzIEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdG9vbCA9ICdoaWdobGlnaHQnO1xufVxuIiwiPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLmhpZ2hsaWdodCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cInNlcnZpY2UudG9nZ2xlVG9vbCgnaGlnaGxpZ2h0JylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2hpZ2hsaWdodCdcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2hpZ2hsaWdodCcgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICBjbGFzcz1cImF4LXhzXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24taGlnaGxpZ2h0XCI+PC9heC1pY29uPlxuPC9heC1idXR0b24+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\n/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorHistoryComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n UndoHandler() {\n this.service.undoPressed.set(true);\n }\n RedoHandler() {\n this.service.redoPressed.set(true);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorHistoryComponent, isStandalone: true, selector: \"ax-image-editor-history\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHistoryComponent }], ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.undo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"UndoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-undo\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.redo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"RedoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-redo\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHistoryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-history', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHistoryComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.undo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"UndoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-undo\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.redo' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"RedoHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-redo\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpc3RvcnkvaW1hZ2UtZWRpdG9yLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpc3RvcnkvaW1hZ2UtZWRpdG9yLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVsRTs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sNkJBQTZCO0lBUjFDO1FBU1ksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBUWxEO0lBTlcsV0FBVztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNTLFdBQVc7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OEdBUlUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsc0VBRjdCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLDBCQ25CbkYsOGNBaUJBLDRDREFZLGlCQUFpQiwwVUFBRSxpQkFBaUIsZ0lBQUUsa0JBQWtCLGtPQUErQixlQUFlLDBCQUE1QyxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBSXBGLDZCQUE2QjtrQkFSekMsU0FBUzsrQkFDRSx5QkFBeUIsaUJBRXBCLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLG1CQUNoRyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsK0JBQStCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVG9vbHRpcERpcmVjdGl2ZSwgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogcGFpbnQgbW9kZS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYQnV0dG9uQ29tcG9uZW50LCBBWERlY29yYXRvck1vZHVsZSwgQVhUb29sdGlwRGlyZWN0aXZlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpc3RvcnlDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JIaXN0b3J5Q29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBVbmRvSGFuZGxlcigpIHtcbiAgICB0aGlzLnNlcnZpY2UudW5kb1ByZXNzZWQuc2V0KHRydWUpO1xuICB9XG4gIHByb3RlY3RlZCBSZWRvSGFuZGxlcigpIHtcbiAgICB0aGlzLnNlcnZpY2UucmVkb1ByZXNzZWQuc2V0KHRydWUpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnVuZG8nIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJVbmRvSGFuZGxlcigpXCJcbiAgbG9vaz1cImJsYW5rXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tdW5kb1wiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuXG48YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJlZG8nIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJSZWRvSGFuZGxlcigpXCJcbiAgbG9vaz1cImJsYW5rXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tcmVkb1wiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/**\n * Pen tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorPenComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'pen';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorPenComponent, isStandalone: true, selector: \"ax-image-editor-pen\", providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'pen'\\\"\\n [color]=\\\"service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-pen', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'pen'\\\"\\n [color]=\\\"service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXBlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItcGVuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFNUU7OztHQUdHO0FBU0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDBCQUEwQjtJQVJ6RTs7UUFTVyxTQUFJLEdBQUcsS0FBSyxDQUFDO0tBQ3ZCOzhHQUZZLHlCQUF5QjtrR0FBekIseUJBQXlCLGtFQUZ6QixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxpRENuQi9FLG9ZQVdBLDRDRE1ZLGlCQUFpQiwwVUFBRSxpQkFBaUIsK0hBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFJaEUseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHFCQUFxQixpQkFFaEIsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQzVFLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVywyQkFBMkIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50JztcblxuLyoqXG4gKiBQZW4gdG9vbCB0cmlnZ2VyIGZvciB0aGUgaW1hZ2UgZWRpdG9yIHRvb2xiYXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItcGVuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yTW9kdWxlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCBleHRlbmRzIEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdG9vbCA9ICdwZW4nO1xufVxuIiwiPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLnBlbicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cInNlcnZpY2UudG9nZ2xlVG9vbCgncGVuJylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3BlbidcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3BlbicgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICBjbGFzcz1cImF4LXhzXCJcbj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGVuXCI+PC9heC1pY29uPlxuPC9heC1idXR0b24+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorToolComponent } from '../image-editor-tool.component';\nimport * as i0 from \"@angular/core\";\n/**\n * Rotate tool trigger for the image editor toolbar.\n * @category Components\n */\nexport class AXImageEditorRotateComponent extends AXImageEditorToolComponent {\n constructor() {\n super(...arguments);\n this.tool = 'rotate';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorRotateComponent, isStandalone: true, selector: \"ax-image-editor-rotate\", providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'rotate'\\\"\\n [color]=\\\"service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <i class=\\\"fa-solid fa-rotate\\\"></i>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-rotate', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXTooltipDirective, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"service.toggleTool('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"service.activeToolState() === 'rotate'\\\"\\n [color]=\\\"service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\n class=\\\"ax-xs\\\"\\n>\\n <i class=\\\"fa-solid fa-rotate\\\"></i>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXJvdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3Itcm90YXRlL2ltYWdlLWVkaXRvci1yb3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRTVFOzs7R0FHRztBQVNILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSwwQkFBMEI7SUFSNUU7O1FBU1csU0FBSSxHQUFHLFFBQVEsQ0FBQztLQUMxQjs4R0FGWSw0QkFBNEI7a0dBQTVCLDRCQUE0QixxRUFGNUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUMsaURDbEJsRixvWUFXQSw0Q0RLWSxpQkFBaUIsMlVBQUUsa0JBQWtCLGtPQUErQixlQUFlLDBCQUE1QyxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBSWpFLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBRW5CLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLG1CQUM3RSx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWFRvb2x0aXBEaXJlY3RpdmUsIEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVG9vbENvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci10b29sLmNvbXBvbmVudCc7XG5cbi8qKlxuICogUm90YXRlIHRvb2wgdHJpZ2dlciBmb3IgdGhlIGltYWdlIGVkaXRvciB0b29sYmFyLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYQnV0dG9uQ29tcG9uZW50LCBBWFRvb2x0aXBEaXJlY3RpdmUsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IGV4dGVuZHMgQVhJbWFnZUVkaXRvclRvb2xDb21wb25lbnQge1xuICByZWFkb25seSB0b29sID0gJ3JvdGF0ZSc7XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJvdGF0ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cInNlcnZpY2UudG9nZ2xlVG9vbCgncm90YXRlJylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3JvdGF0ZSdcIlxuICBbY29sb3JdPVwic2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3JvdGF0ZScgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICBjbGFzcz1cImF4LXhzXCJcbj5cbiAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGVcIj48L2k+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, computed, inject, input, output, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorContainerComponent } from '../../image-editor-container/image-editor-container.component';\nimport { parseAspectRatios } from '../../image-editor-aspect-ratio.util';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/** @ignore */\nexport class AXImageEditorCropOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n this.container = inject(AXImageEditorContainerComponent);\n this.cropPressed = output();\n this.aspectRatio = input([], ...(ngDevMode ? [{ debugName: \"aspectRatio\" }] : []));\n this.aspectRatios = computed(() => parseAspectRatios(this.aspectRatio()).ratios, ...(ngDevMode ? [{ debugName: \"aspectRatios\" }] : []));\n }\n cropButtonHandler() {\n this.cropPressed.emit();\n this.container.crop();\n }\n ratioHandler(r) {\n if (this.service.cropperRatio() === r) {\n this.service.cropperRatio.set(null);\n }\n else {\n this.service.cropperRatio.set(r);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorCropOptionsComponent, isStandalone: true, selector: \"ax-image-editor-crop-options\", inputs: { aspectRatio: { classPropertyName: \"aspectRatio\", publicName: \"aspectRatio\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cropPressed: \"cropPressed\" }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropOptionsComponent }], ngImport: i0, template: \"<div class=\\\"ax-image-editor-crop-ratios\\\">\\n @for (item of aspectRatios(); track item) {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === item\\\"\\n [color]=\\\"service.cropperRatio() === item ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler(item)\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"item\\\"\\n ></ax-button>\\n } @empty {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '1:1'\\\"\\n [color]=\\\"service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"1:1\\\"\\n ></ax-button>\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '16:9'\\\"\\n [color]=\\\"service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"16:9\\\"\\n ></ax-button>\\n }\\n</div>\\n\\n<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n color=\\\"primary\\\"\\n></ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorCropOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-crop-options', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropOptionsComponent }], template: \"<div class=\\\"ax-image-editor-crop-ratios\\\">\\n @for (item of aspectRatios(); track item) {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === item\\\"\\n [color]=\\\"service.cropperRatio() === item ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler(item)\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"item\\\"\\n ></ax-button>\\n } @empty {\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '1:1'\\\"\\n [color]=\\\"service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"1:1\\\"\\n ></ax-button>\\n <ax-button\\n [selected]=\\\"service.cropperRatio() === '16:9'\\\"\\n [color]=\\\"service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n text=\\\"16:9\\\"\\n ></ax-button>\\n }\\n</div>\\n\\n<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-xs\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n color=\\\"primary\\\"\\n></ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3Atb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItY3JvcC9pbWFnZS1lZGl0b3ItY3JvcC1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFbEUsY0FBYztBQVFkLE1BQU0sT0FBTyxpQ0FBaUM7SUFQOUM7UUFRWSxZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFekMsY0FBUyxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRTVELGdCQUFXLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxLQUFLLENBQVcsRUFBRSx1REFBQyxDQUFDO1FBRXhCLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sd0RBQUMsQ0FBQztLQWN2RjtJQVpXLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLFlBQVksQ0FBQyxDQUEwQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDOzhHQXRCVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywwUUFGakMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGlDQUFpQyxFQUFFLENBQUMsMEJDZnZGLCtqQ0FpQ0EsNENEbkJZLGlCQUFpQixzVUFBRSxTQUFTLHlDQUFFLGdCQUFnQjs7MkZBRzdDLGlDQUFpQztrQkFQN0MsU0FBUzsrQkFDRSw4QkFBOEIsaUJBRXpCLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsYUFDOUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxtQ0FBbUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgcGFyc2VBc3BlY3RSYXRpb3MgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3ItYXNwZWN0LXJhdGlvLnV0aWwnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcC1vcHRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Db21wb25lbnQsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yQ3JvcE9wdGlvbnNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDcm9wT3B0aW9uc0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBwcml2YXRlIGNvbnRhaW5lciA9IGluamVjdChBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KTtcblxuICBjcm9wUHJlc3NlZCA9IG91dHB1dCgpO1xuXG4gIGFzcGVjdFJhdGlvID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICBwcm90ZWN0ZWQgYXNwZWN0UmF0aW9zID0gY29tcHV0ZWQoKCkgPT4gcGFyc2VBc3BlY3RSYXRpb3ModGhpcy5hc3BlY3RSYXRpbygpKS5yYXRpb3MpO1xuXG4gIHByb3RlY3RlZCBjcm9wQnV0dG9uSGFuZGxlcigpIHtcbiAgICB0aGlzLmNyb3BQcmVzc2VkLmVtaXQoKTtcbiAgICB0aGlzLmNvbnRhaW5lci5jcm9wKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmF0aW9IYW5kbGVyKHI6ICcxOjEnIHwgJzE2OjknIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gcikge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpby5zZXQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8uc2V0KHIpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWltYWdlLWVkaXRvci1jcm9wLXJhdGlvc1wiPlxuICBAZm9yIChpdGVtIG9mIGFzcGVjdFJhdGlvcygpOyB0cmFjayBpdGVtKSB7XG4gICAgPGF4LWJ1dHRvblxuICAgICAgW3NlbGVjdGVkXT1cInNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09IGl0ZW1cIlxuICAgICAgW2NvbG9yXT1cInNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09IGl0ZW0gPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgKGNsaWNrKT1cInJhdGlvSGFuZGxlcihpdGVtKVwiXG4gICAgICBjbGFzcz1cImF4LWNyb3Atc2F2ZSBheC14c1wiXG4gICAgICBbdGV4dF09XCJpdGVtXCJcbiAgICA+PC9heC1idXR0b24+XG4gIH0gQGVtcHR5IHtcbiAgICA8YXgtYnV0dG9uXG4gICAgICBbc2VsZWN0ZWRdPVwic2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE6MSdcIlxuICAgICAgW2NvbG9yXT1cInNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxOjEnID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICAgIChjbGljayk9XCJyYXRpb0hhbmRsZXIoJzE6MScpXCJcbiAgICAgIGNsYXNzPVwiYXgtY3JvcC1zYXZlIGF4LXhzXCJcbiAgICAgIHRleHQ9XCIxOjFcIlxuICAgID48L2F4LWJ1dHRvbj5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbc2VsZWN0ZWRdPVwic2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknXCJcbiAgICAgIFtjb2xvcl09XCJzZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMTY6OScgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgKGNsaWNrKT1cInJhdGlvSGFuZGxlcignMTY6OScpXCJcbiAgICAgIGNsYXNzPVwiYXgtY3JvcC1zYXZlIGF4LXhzXCJcbiAgICAgIHRleHQ9XCIxNjo5XCJcbiAgICA+PC9heC1idXR0b24+XG4gIH1cbjwvZGl2PlxuXG48YXgtYnV0dG9uXG4gIChjbGljayk9XCJjcm9wQnV0dG9uSGFuZGxlcigpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgteHNcIlxuICBbdGV4dF09XCInQGFjb3JleDppbWFnZS1lZGl0b3IuY3JvcCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGNvbG9yPVwicHJpbWFyeVwiXG4+PC9heC1idXR0b24+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/** @ignore */\nexport class AXImageEditorHighlightOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n /** @ignore */\n this.selectedColor = signal(this.service.highlightColor(), ...(ngDevMode ? [{ debugName: \"selectedColor\" }] : []));\n /** @ignore */\n this.value = this.service.highlightWidth();\n }\n changeColorHandler(e) {\n this.service.highlightColor.set(e);\n this.selectedColor.set(e);\n }\n /** @ignore */\n valueHandler(e) {\n this.service.highlightWidth.set(e);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorHighlightOptionsComponent, isStandalone: true, selector: \"ax-image-editor-highlight-options\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightOptionsComponent }], ngImport: i0, template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\", dependencies: [{ kind: \"component\", type: AXColorBoxComponent, selector: \"ax-color-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"showBadge\", \"showValue\", \"showClearButton\", \"showIcon\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXRangeSliderComponent, selector: \"ax-range-slider\", inputs: [\"disabled\", \"readonly\", \"orientation\", \"color\", \"values\", \"mode\", \"min\", \"max\", \"step\", \"snap\", \"tooltipMode\", \"snapMode\", \"hasStep\", \"hasSnap\", \"hasLable\", \"hasTooltip\"], outputs: [\"valuesChange\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorHighlightOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-highlight-options', encapsulation: ViewEncapsulation.None, imports: [\n AXColorBoxComponent,\n FormsModule,\n AXRangeSliderComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightOptionsComponent }], template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaWdobGlnaHQvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaWdobGlnaHQvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEUsY0FBYztBQWdCZCxNQUFNLE9BQU8sc0NBQXNDO0lBZm5EO1FBZ0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osa0JBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUseURBQUMsQ0FBQztRQUVoRSxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7S0FXakQ7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDOzhHQWpCVSxzQ0FBc0M7a0dBQXRDLHNDQUFzQyxnRkFGdEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHNDQUFzQyxFQUFFLENBQUMsMEJDeEI1Riw4WkFZQSw0Q0RJSSxtQkFBbUIsa1dBQ25CLFdBQVcsK1ZBQ1gsc0JBQXNCLDJRQUd0QixlQUFlLGtSQUZmLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCxzQ0FBc0M7a0JBZmxELFNBQVM7K0JBQ0UsbUNBQW1DLGlCQUU5QixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHdDQUF3QyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWENvbG9yQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbG9yLWJveCc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LW9wdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQ29sb3JCb3hDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhSYW5nZVNsaWRlckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpZ2hsaWdodE9wdGlvbnNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRPcHRpb25zQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbG9yID0gc2lnbmFsKHRoaXMuc2VydmljZS5oaWdobGlnaHRDb2xvcigpKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWUgPSB0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0V2lkdGgoKTtcblxuICBwcm90ZWN0ZWQgY2hhbmdlQ29sb3JIYW5kbGVyKGU6IHN0cmluZykge1xuICAgIHRoaXMuc2VydmljZS5oaWdobGlnaHRDb2xvci5zZXQoZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbG9yLnNldChlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB2YWx1ZUhhbmRsZXIoZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmhpZ2hsaWdodFdpZHRoLnNldChlKTtcbiAgfVxufVxuIiwiPGF4LWNvbG9yLWJveFxuICBbc2hvd1ZhbHVlXT1cImZhbHNlXCJcbiAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgW2F4VG9vbHRpcF09XCInQGFjb3JleDpwYWludC50b29scy5oaWdobGlnaHQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICBsb29rPVwibm9uZVwiXG4gIFtuZ01vZGVsXT1cInNlbGVjdGVkQ29sb3IoKVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNvbG9ySGFuZGxlcigkZXZlbnQpXCJcbj5cbjwvYXgtY29sb3ItYm94PlxuXG48YXgtcmFuZ2Utc2xpZGVyIFttaW5dPVwiMlwiIFttYXhdPVwiMjBcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVIYW5kbGVyKCRldmVudClcIj48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/tooltip\";\n/** @ignore */\nexport class AXImageEditorPenOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n /** @ignore */\n this.value = this.service.penWidth();\n /** @ignore */\n this.selectedColor = signal(this.service.penColor(), ...(ngDevMode ? [{ debugName: \"selectedColor\" }] : []));\n }\n changeColorHandler(e) {\n this.service.penColor.set(e);\n this.selectedColor.set(e);\n }\n /** @ignore */\n valueHandler(e) {\n this.service.penWidth.set(e);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorPenOptionsComponent, isStandalone: true, selector: \"ax-image-editor-pen-options\", providers: [{ provide: AXComponent, useExisting: AXImageEditorPenOptionsComponent }], ngImport: i0, template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\", dependencies: [{ kind: \"component\", type: AXColorBoxComponent, selector: \"ax-color-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"showBadge\", \"showValue\", \"showClearButton\", \"showIcon\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXRangeSliderComponent, selector: \"ax-range-slider\", inputs: [\"disabled\", \"readonly\", \"orientation\", \"color\", \"values\", \"mode\", \"min\", \"max\", \"step\", \"snap\", \"tooltipMode\", \"snapMode\", \"hasStep\", \"hasSnap\", \"hasLable\", \"hasTooltip\"], outputs: [\"valuesChange\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i2.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorPenOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-pen-options', encapsulation: ViewEncapsulation.None, imports: [\n AXColorBoxComponent,\n FormsModule,\n AXRangeSliderComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorPenOptionsComponent }], template: \"<ax-color-box\\n [showValue]=\\\"false\\\"\\n [showIcon]=\\\"false\\\"\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n look=\\\"none\\\"\\n [ngModel]=\\\"selectedColor()\\\"\\n (ngModelChange)=\\\"changeColorHandler($event)\\\"\\n>\\n</ax-color-box>\\n\\n<ax-range-slider [min]=\\\"2\\\" [max]=\\\"20\\\" [(ngModel)]=\\\"value\\\" (ngModelChange)=\\\"valueHandler($event)\\\"></ax-range-slider>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1wZW4vaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1wZW4vaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEUsY0FBYztBQWdCZCxNQUFNLE9BQU8sZ0NBQWdDO0lBZjdDO1FBZ0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFMUMsY0FBYztRQUNKLGtCQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLHlEQUFDLENBQUM7S0FXM0Q7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWpCVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywwRUFGaEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGdDQUFnQyxFQUFFLENBQUMsMEJDeEJ0Rix3WkFZQSw0Q0RJSSxtQkFBbUIsa1dBQ25CLFdBQVcsK1ZBQ1gsc0JBQXNCLDJRQUd0QixlQUFlLGtSQUZmLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCxnQ0FBZ0M7a0JBZjVDLFNBQVM7K0JBQ0UsNkJBQTZCLGlCQUV4QixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLGtDQUFrQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWENvbG9yQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbG9yLWJveCc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItcGVuLW9wdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQ29sb3JCb3hDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhSYW5nZVNsaWRlckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclBlbk9wdGlvbnNDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JQZW5PcHRpb25zQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB2YWx1ZSA9IHRoaXMuc2VydmljZS5wZW5XaWR0aCgpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbG9yID0gc2lnbmFsKHRoaXMuc2VydmljZS5wZW5Db2xvcigpKTtcblxuICBwcm90ZWN0ZWQgY2hhbmdlQ29sb3JIYW5kbGVyKGU6IHN0cmluZykge1xuICAgIHRoaXMuc2VydmljZS5wZW5Db2xvci5zZXQoZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbG9yLnNldChlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB2YWx1ZUhhbmRsZXIoZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnBlbldpZHRoLnNldChlKTtcbiAgfVxufVxuIiwiPGF4LWNvbG9yLWJveFxuICBbc2hvd1ZhbHVlXT1cImZhbHNlXCJcbiAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgW2F4VG9vbHRpcF09XCInQGFjb3JleDpwYWludC50b29scy5wZW4nIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICBsb29rPVwibm9uZVwiXG4gIFtuZ01vZGVsXT1cInNlbGVjdGVkQ29sb3IoKVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNvbG9ySGFuZGxlcigkZXZlbnQpXCJcbj5cbjwvYXgtY29sb3ItYm94PlxuXG48YXgtcmFuZ2Utc2xpZGVyIFttaW5dPVwiMlwiIFttYXhdPVwiMjBcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVIYW5kbGVyKCRldmVudClcIj48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport * as i0 from \"@angular/core\";\n/** @ignore */\nexport class AXImageEditorRotateOptionsComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n rotateRightHandler() {\n this.service.rotate.set({ state: 90, userInteract: true });\n }\n rotateLeftHandler() {\n this.service.rotate.set({ state: -90, userInteract: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXImageEditorRotateOptionsComponent, isStandalone: true, selector: \"ax-image-editor-rotate-options\", providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateOptionsComponent }], ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-left' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateLeftHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-left\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-right' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateRightHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-right\\\"></ax-icon>\\n</ax-button>\\n\", dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorRotateOptionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-rotate-options', encapsulation: ViewEncapsulation.None, imports: [\n AXButtonComponent,\n AXTooltipDirective,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateOptionsComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-left' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateLeftHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-left\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate-right' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (click)=\\\"rotateRightHandler()\\\"\\n look=\\\"blank\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-arrow-turn-right\\\"></ax-icon>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1yb3RhdGUvaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1yb3RhdGUvaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVsRSxjQUFjO0FBZ0JkLE1BQU0sT0FBTyxtQ0FBbUM7SUFmaEQ7UUFnQlksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBU2xEO0lBUFcsa0JBQWtCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs4R0FUVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw2RUFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsMEJDdkJ6Riw2ZkFpQkEsNENERkksaUJBQWlCLDJVQUNqQixrQkFBa0IsbU9BQ2xCLHdCQUF3QixxRUFHeEIsZUFBZSwwQkFGZixTQUFTLHlDQUNULGdCQUFnQjs7MkZBTVAsbUNBQW1DO2tCQWYvQyxTQUFTOytCQUNFLGdDQUFnQyxpQkFFM0IsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQ0FBcUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVG9vbHRpcERpcmVjdGl2ZSwgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3Itcm90YXRlLW9wdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXJvdGF0ZS1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhUb29sdGlwTW9kdWxlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JSb3RhdGVPcHRpb25zQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yUm90YXRlT3B0aW9uc0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcm90YXRlUmlnaHRIYW5kbGVyKCkge1xuICAgIHRoaXMuc2VydmljZS5yb3RhdGUuc2V0KHsgc3RhdGU6IDkwLCB1c2VySW50ZXJhY3Q6IHRydWUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcm90YXRlTGVmdEhhbmRsZXIoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnJvdGF0ZS5zZXQoeyBzdGF0ZTogLTkwLCB1c2VySW50ZXJhY3Q6IHRydWUgfSk7XG4gIH1cbn1cbiIsIjxheC1idXR0b25cbiAgW2F4VG9vbHRpcF09XCInQGFjb3JleDppbWFnZS1lZGl0b3Iucm90YXRlLWxlZnQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAoY2xpY2spPVwicm90YXRlTGVmdEhhbmRsZXIoKVwiXG4gIGxvb2s9XCJibGFua1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFycm93LXR1cm4tbGVmdFwiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuXG48YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJvdGF0ZS1yaWdodCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChjbGljayk9XCJyb3RhdGVSaWdodEhhbmRsZXIoKVwiXG4gIGxvb2s9XCJibGFua1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFycm93LXR1cm4tcmlnaHRcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, effect, inject, input, ViewEncapsulation, } from '@angular/core';\nimport { AXImageEditorService } from '../../image-editor.service';\nimport { AXImageEditorCropOptionsComponent } from '../image-editor-crop/image-editor-crop-options.component';\nimport { AXImageEditorCropComponent } from '../image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorHighlightOptionsComponent } from '../image-editor-highlight/image-editor-highlight-options.component';\nimport { AXImageEditorHighlightComponent } from '../image-editor-highlight/image-editor-highlight.component';\nimport { AXImageEditorPenOptionsComponent } from '../image-editor-pen/image-editor-pen-options.component';\nimport { AXImageEditorPenComponent } from '../image-editor-pen/image-editor-pen.component';\nimport { AXImageEditorRotateOptionsComponent } from '../image-editor-rotate/image-editor-rotate-options.component';\nimport { AXImageEditorRotateComponent } from '../image-editor-rotate/image-editor-rotate.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/toolbar\";\n/**\n * Toolbar layout for configurable image editor tools.\n * @category Components\n */\nexport class AXImageEditorToolsBarComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n /**\n * Tool component reference to activate on load.\n */\n this.active = input(...(ngDevMode ? [undefined, { debugName: \"active\" }] : []));\n /** Hides the tools bar UI while keeping projected tools configurable. */\n this.hidden = input(false, ...(ngDevMode ? [{ debugName: \"hidden\" }] : []));\n this.penTool = contentChild(AXImageEditorPenComponent, ...(ngDevMode ? [{ debugName: \"penTool\" }] : []));\n this.highlightTool = contentChild(AXImageEditorHighlightComponent, ...(ngDevMode ? [{ debugName: \"highlightTool\" }] : []));\n this.cropTool = contentChild(AXImageEditorCropComponent, ...(ngDevMode ? [{ debugName: \"cropTool\" }] : []));\n this.rotateTool = contentChild(AXImageEditorRotateComponent, ...(ngDevMode ? [{ debugName: \"rotateTool\" }] : []));\n this.cropAspectRatio = computed(() => this.cropTool()?.aspectRatio() ?? [], ...(ngDevMode ? [{ debugName: \"cropAspectRatio\" }] : []));\n this.#activeEffect = effect(() => {\n this.active()?.setActive();\n }, ...(ngDevMode ? [{ debugName: \"#activeEffect\" }] : []));\n }\n #activeEffect;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolsBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXImageEditorToolsBarComponent, isStandalone: true, selector: \"ax-image-editor-tools-bar\", inputs: { active: { classPropertyName: \"active\", publicName: \"active\", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: \"hidden\", publicName: \"hidden\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.ax-image-editor-tools-bar-hidden\": \"hidden()\" } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorToolsBarComponent }], queries: [{ propertyName: \"penTool\", first: true, predicate: AXImageEditorPenComponent, descendants: true, isSignal: true }, { propertyName: \"highlightTool\", first: true, predicate: AXImageEditorHighlightComponent, descendants: true, isSignal: true }, { propertyName: \"cropTool\", first: true, predicate: AXImageEditorCropComponent, descendants: true, isSignal: true }, { propertyName: \"rotateTool\", first: true, predicate: AXImageEditorRotateComponent, descendants: true, isSignal: true }], ngImport: i0, template: \"<ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-prefix class=\\\"ax-image-editor-tool-triggers\\\">\\n <ng-content\\n select=\\\"ax-image-editor-pen, ax-image-editor-highlight, ax-image-editor-crop, ax-image-editor-rotate\\\"\\n ></ng-content>\\n </ax-prefix>\\n\\n @if (service.activeToolState()) {\\n <ax-suffix class=\\\"ax-image-editor-tool-options\\\">\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n @if (penTool()) {\\n <ax-image-editor-pen-options></ax-image-editor-pen-options>\\n }\\n }\\n @case ('highlight') {\\n @if (highlightTool()) {\\n <ax-image-editor-highlight-options></ax-image-editor-highlight-options>\\n }\\n }\\n @case ('crop') {\\n @if (cropTool()) {\\n <ax-image-editor-crop-options [aspectRatio]=\\\"cropAspectRatio()\\\"></ax-image-editor-crop-options>\\n }\\n }\\n @case ('rotate') {\\n @if (rotateTool()) {\\n <ax-image-editor-rotate-options></ax-image-editor-rotate-options>\\n }\\n }\\n }\\n </ax-suffix>\\n }\\n</ax-toolbar>\\n\", styles: [\"ax-image-editor-tools-bar{display:block;width:100%}ax-image-editor-tools-bar.ax-image-editor-tools-bar-hidden{display:none}ax-image-editor-tools-bar .ax-main-toolbar{justify-content:space-between;padding:.5rem}ax-image-editor-tools-bar .ax-main-toolbar ax-divider{display:none}ax-image-editor-tools-bar .ax-main-toolbar>ax-suffix{flex:1;margin-left:auto}ax-image-editor-tools-bar .ax-image-editor-tool-triggers{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}ax-image-editor-tools-bar .ax-image-editor-tool-options{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex:1;min-width:0}ax-image-editor-tools-bar .ax-image-editor-crop-ratios{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.25rem}ax-image-editor-tools-bar ax-image-editor-pen-options,ax-image-editor-tools-bar ax-image-editor-highlight-options{display:flex;align-items:center;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-color-box,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-color-box{flex:0 0 auto}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider .ax-range-slider .ax-range-slider-handler,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-tools-bar ax-image-editor-crop-options{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-rotate-options{display:flex;align-items:center;gap:.25rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXToolBarModule }, { kind: \"component\", type: i2.AXToolBarComponent, selector: \"ax-toolbar\" }, { kind: \"component\", type: AXImageEditorPenOptionsComponent, selector: \"ax-image-editor-pen-options\" }, { kind: \"component\", type: AXImageEditorHighlightOptionsComponent, selector: \"ax-image-editor-highlight-options\" }, { kind: \"component\", type: AXImageEditorCropOptionsComponent, selector: \"ax-image-editor-crop-options\", inputs: [\"aspectRatio\"], outputs: [\"cropPressed\"] }, { kind: \"component\", type: AXImageEditorRotateOptionsComponent, selector: \"ax-image-editor-rotate-options\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolsBarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-tools-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[class.ax-image-editor-tools-bar-hidden]': 'hidden()',\n }, imports: [\n AXDecoratorModule,\n AXToolBarModule,\n AXImageEditorPenOptionsComponent,\n AXImageEditorHighlightOptionsComponent,\n AXImageEditorCropOptionsComponent,\n AXImageEditorRotateOptionsComponent,\n ], providers: [{ provide: AXComponent, useExisting: AXImageEditorToolsBarComponent }], template: \"<ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-prefix class=\\\"ax-image-editor-tool-triggers\\\">\\n <ng-content\\n select=\\\"ax-image-editor-pen, ax-image-editor-highlight, ax-image-editor-crop, ax-image-editor-rotate\\\"\\n ></ng-content>\\n </ax-prefix>\\n\\n @if (service.activeToolState()) {\\n <ax-suffix class=\\\"ax-image-editor-tool-options\\\">\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n @if (penTool()) {\\n <ax-image-editor-pen-options></ax-image-editor-pen-options>\\n }\\n }\\n @case ('highlight') {\\n @if (highlightTool()) {\\n <ax-image-editor-highlight-options></ax-image-editor-highlight-options>\\n }\\n }\\n @case ('crop') {\\n @if (cropTool()) {\\n <ax-image-editor-crop-options [aspectRatio]=\\\"cropAspectRatio()\\\"></ax-image-editor-crop-options>\\n }\\n }\\n @case ('rotate') {\\n @if (rotateTool()) {\\n <ax-image-editor-rotate-options></ax-image-editor-rotate-options>\\n }\\n }\\n }\\n </ax-suffix>\\n }\\n</ax-toolbar>\\n\", styles: [\"ax-image-editor-tools-bar{display:block;width:100%}ax-image-editor-tools-bar.ax-image-editor-tools-bar-hidden{display:none}ax-image-editor-tools-bar .ax-main-toolbar{justify-content:space-between;padding:.5rem}ax-image-editor-tools-bar .ax-main-toolbar ax-divider{display:none}ax-image-editor-tools-bar .ax-main-toolbar>ax-suffix{flex:1;margin-left:auto}ax-image-editor-tools-bar .ax-image-editor-tool-triggers{display:flex;align-items:center;justify-content:flex-start;gap:.5rem}ax-image-editor-tools-bar .ax-image-editor-tool-options{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex:1;min-width:0}ax-image-editor-tools-bar .ax-image-editor-crop-ratios{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.25rem}ax-image-editor-tools-bar ax-image-editor-pen-options,ax-image-editor-tools-bar ax-image-editor-highlight-options{display:flex;align-items:center;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-color-box,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-color-box{flex:0 0 auto}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-tools-bar ax-image-editor-pen-options ax-range-slider .ax-range-slider .ax-range-slider-handler,ax-image-editor-tools-bar ax-image-editor-highlight-options ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-tools-bar ax-image-editor-crop-options{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}ax-image-editor-tools-bar ax-image-editor-rotate-options{display:flex;align-items:center;gap:.25rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyL2ltYWdlLWVkaXRvci10b29scy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDNUgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbkgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7QUFHcEc7OztHQUdHO0FBb0JILE1BQU0sT0FBTyw4QkFBOEI7SUFuQjNDO1FBb0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLDREQUE4QixDQUFDO1FBRTdDLHlFQUF5RTtRQUN6RSxXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssa0RBQUMsQ0FBQztRQUVaLFlBQU8sR0FBRyxZQUFZLENBQUMseUJBQXlCLG1EQUFDLENBQUM7UUFDbEQsa0JBQWEsR0FBRyxZQUFZLENBQUMsK0JBQStCLHlEQUFDLENBQUM7UUFDOUQsYUFBUSxHQUFHLFlBQVksQ0FBQywwQkFBMEIsb0RBQUMsQ0FBQztRQUNwRCxlQUFVLEdBQUcsWUFBWSxDQUFDLDRCQUE0QixzREFBQyxDQUFDO1FBRXhELG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLDJEQUFDLENBQUM7UUFFakYsa0JBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM3QixDQUFDLHlEQUFDLENBQUM7S0FDSjtJQUhDLGFBQWEsQ0FFVjs4R0FwQlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMFpBRjlCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw4QkFBOEIsRUFBRSxDQUFDLCtEQWFqRCx5QkFBeUIsZ0dBQ25CLCtCQUErQiwyRkFDcEMsMEJBQTBCLDZGQUN4Qiw0QkFBNEIsZ0VDN0RsRSx3bUNBa0NBLDB4RERJSSxpQkFBaUIscVBBQ2pCLGVBQWUsMkdBQ2YsZ0NBQWdDLHdFQUNoQyxzQ0FBc0MsOEVBQ3RDLGlDQUFpQyw0SEFDakMsbUNBQW1DOzsyRkFJMUIsOEJBQThCO2tCQW5CMUMsU0FBUzsrQkFDRSwyQkFBMkIsaUJBR3RCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osMENBQTBDLEVBQUUsVUFBVTtxQkFDdkQsV0FDUTt3QkFDUCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsZ0NBQWdDO3dCQUNoQyxzQ0FBc0M7d0JBQ3RDLGlDQUFpQzt3QkFDakMsbUNBQW1DO3FCQUNwQyxhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sQmFyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2xiYXInO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0L2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JQZW5PcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JQZW5Db21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItcGVuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JSb3RhdGVPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Itcm90YXRlL2ltYWdlLWVkaXRvci1yb3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2wuY29tcG9uZW50JztcblxuLyoqXG4gKiBUb29sYmFyIGxheW91dCBmb3IgY29uZmlndXJhYmxlIGltYWdlIGVkaXRvciB0b29scy5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci10b29scy1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmF4LWltYWdlLWVkaXRvci10b29scy1iYXItaGlkZGVuXSc6ICdoaWRkZW4oKScsXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRvb2xCYXJNb2R1bGUsXG4gICAgQVhJbWFnZUVkaXRvclBlbk9wdGlvbnNDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvckhpZ2hsaWdodE9wdGlvbnNDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvckNyb3BPcHRpb25zQ29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JSb3RhdGVPcHRpb25zQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclRvb2xzQmFyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbHNCYXJDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRvb2wgY29tcG9uZW50IHJlZmVyZW5jZSB0byBhY3RpdmF0ZSBvbiBsb2FkLlxuICAgKi9cbiAgYWN0aXZlID0gaW5wdXQ8QVhJbWFnZUVkaXRvclRvb2xDb21wb25lbnQ+KCk7XG5cbiAgLyoqIEhpZGVzIHRoZSB0b29scyBiYXIgVUkgd2hpbGUga2VlcGluZyBwcm9qZWN0ZWQgdG9vbHMgY29uZmlndXJhYmxlLiAqL1xuICBoaWRkZW4gPSBpbnB1dChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHBlblRvb2wgPSBjb250ZW50Q2hpbGQoQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCk7XG4gIHByb3RlY3RlZCBoaWdobGlnaHRUb29sID0gY29udGVudENoaWxkKEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQpO1xuICBwcm90ZWN0ZWQgY3JvcFRvb2wgPSBjb250ZW50Q2hpbGQoQVhJbWFnZUVkaXRvckNyb3BDb21wb25lbnQpO1xuICBwcm90ZWN0ZWQgcm90YXRlVG9vbCA9IGNvbnRlbnRDaGlsZChBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgY3JvcEFzcGVjdFJhdGlvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jcm9wVG9vbCgpPy5hc3BlY3RSYXRpbygpID8/IFtdKTtcblxuICAjYWN0aXZlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmFjdGl2ZSgpPy5zZXRBY3RpdmUoKTtcbiAgfSk7XG59XG4iLCI8YXgtdG9vbGJhciBjbGFzcz1cImF4LW1haW4tdG9vbGJhclwiPlxuICA8YXgtcHJlZml4IGNsYXNzPVwiYXgtaW1hZ2UtZWRpdG9yLXRvb2wtdHJpZ2dlcnNcIj5cbiAgICA8bmctY29udGVudFxuICAgICAgc2VsZWN0PVwiYXgtaW1hZ2UtZWRpdG9yLXBlbiwgYXgtaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodCwgYXgtaW1hZ2UtZWRpdG9yLWNyb3AsIGF4LWltYWdlLWVkaXRvci1yb3RhdGVcIlxuICAgID48L25nLWNvbnRlbnQ+XG4gIDwvYXgtcHJlZml4PlxuXG4gIEBpZiAoc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSkge1xuICAgIDxheC1zdWZmaXggY2xhc3M9XCJheC1pbWFnZS1lZGl0b3ItdG9vbC1vcHRpb25zXCI+XG4gICAgICBAc3dpdGNoIChzZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpKSB7XG4gICAgICAgIEBjYXNlICgncGVuJykge1xuICAgICAgICAgIEBpZiAocGVuVG9vbCgpKSB7XG4gICAgICAgICAgICA8YXgtaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zPjwvYXgtaW1hZ2UtZWRpdG9yLXBlbi1vcHRpb25zPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2hpZ2hsaWdodCcpIHtcbiAgICAgICAgICBAaWYgKGhpZ2hsaWdodFRvb2woKSkge1xuICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1oaWdobGlnaHQtb3B0aW9ucz48L2F4LWltYWdlLWVkaXRvci1oaWdobGlnaHQtb3B0aW9ucz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdjcm9wJykge1xuICAgICAgICAgIEBpZiAoY3JvcFRvb2woKSkge1xuICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1jcm9wLW9wdGlvbnMgW2FzcGVjdFJhdGlvXT1cImNyb3BBc3BlY3RSYXRpbygpXCI+PC9heC1pbWFnZS1lZGl0b3ItY3JvcC1vcHRpb25zPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ3JvdGF0ZScpIHtcbiAgICAgICAgICBAaWYgKHJvdGF0ZVRvb2woKSkge1xuICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1yb3RhdGUtb3B0aW9ucz48L2F4LWltYWdlLWVkaXRvci1yb3RhdGUtb3B0aW9ucz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2F4LXN1ZmZpeD5cbiAgfVxuPC9heC10b29sYmFyPlxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, input, ViewEncapsulation } from '@angular/core';\nimport { AXImageEditorCropComponent } from '../image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorHighlightComponent } from '../image-editor-highlight/image-editor-highlight.component';\nimport { AXImageEditorPenComponent } from '../image-editor-pen/image-editor-pen.component';\nimport { AXImageEditorRotateComponent } from '../image-editor-rotate/image-editor-rotate.component';\nimport { AXImageEditorToolsBarComponent } from '../image-editor-tools-bar/image-editor-tools-bar.component';\nimport * as i0 from \"@angular/core\";\n/**\n * Convenience wrapper that includes all image editor tools.\n * @category Components\n */\nexport class AXImageEditorToolSelectorComponent {\n constructor() {\n this.aspectRatio = input([], ...(ngDevMode ? [{ debugName: \"aspectRatio\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXImageEditorToolSelectorComponent, isStandalone: true, selector: \"ax-image-editor-tool-selector\", inputs: { aspectRatio: { classPropertyName: \"aspectRatio\", publicName: \"aspectRatio\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], ngImport: i0, template: \"<ax-image-editor-tools-bar>\\n <ax-image-editor-pen></ax-image-editor-pen>\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n <ax-image-editor-crop [aspectRatio]=\\\"aspectRatio()\\\"></ax-image-editor-crop>\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n</ax-image-editor-tools-bar>\\n\", dependencies: [{ kind: \"component\", type: AXImageEditorToolsBarComponent, selector: \"ax-image-editor-tools-bar\", inputs: [\"active\", \"hidden\"] }, { kind: \"component\", type: AXImageEditorPenComponent, selector: \"ax-image-editor-pen\" }, { kind: \"component\", type: AXImageEditorHighlightComponent, selector: \"ax-image-editor-highlight\" }, { kind: \"component\", type: AXImageEditorCropComponent, selector: \"ax-image-editor-crop\", inputs: [\"aspectRatio\", \"size\"] }, { kind: \"component\", type: AXImageEditorRotateComponent, selector: \"ax-image-editor-rotate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorToolSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-tool-selector', encapsulation: ViewEncapsulation.None, imports: [\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorCropComponent,\n AXImageEditorRotateComponent,\n ], providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], template: \"<ax-image-editor-tools-bar>\\n <ax-image-editor-pen></ax-image-editor-pen>\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n <ax-image-editor-crop [aspectRatio]=\\\"aspectRatio()\\\"></ax-image-editor-crop>\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n</ax-image-editor-tools-bar>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQUU1Rzs7O0dBR0c7QUFjSCxNQUFNLE9BQU8sa0NBQWtDO0lBYi9DO1FBY0UsZ0JBQVcsR0FBRyxLQUFLLENBQVcsRUFBRSx1REFBQyxDQUFDO0tBQ25DOzhHQUZZLGtDQUFrQztrR0FBbEMsa0NBQWtDLGtPQUZsQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQywwQkN2QnhGLDZTQU1BLDRDRFdJLDhCQUE4QixvR0FDOUIseUJBQXlCLGdFQUN6QiwrQkFBK0Isc0VBQy9CLDBCQUEwQixrR0FDMUIsNEJBQTRCOzsyRkFJbkIsa0NBQWtDO2tCQWI5QyxTQUFTOytCQUNFLCtCQUErQixpQkFFMUIsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCw4QkFBOEI7d0JBQzlCLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQiwwQkFBMEI7d0JBQzFCLDRCQUE0QjtxQkFDN0IsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLG9DQUFvQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckNyb3BDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItY3JvcC9pbWFnZS1lZGl0b3ItY3JvcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1oaWdobGlnaHQvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1wZW4vaW1hZ2UtZWRpdG9yLXBlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclJvdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci1yb3RhdGUvaW1hZ2UtZWRpdG9yLXJvdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclRvb2xzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci9pbWFnZS1lZGl0b3ItdG9vbHMtYmFyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ29udmVuaWVuY2Ugd3JhcHBlciB0aGF0IGluY2x1ZGVzIGFsbCBpbWFnZSBlZGl0b3IgdG9vbHMuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItdG9vbC1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItdG9vbC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBBWEltYWdlRWRpdG9yVG9vbHNCYXJDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCxcbiAgICBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IHtcbiAgYXNwZWN0UmF0aW8gPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xufVxuIiwiPGF4LWltYWdlLWVkaXRvci10b29scy1iYXI+XG4gIDxheC1pbWFnZS1lZGl0b3ItcGVuPjwvYXgtaW1hZ2UtZWRpdG9yLXBlbj5cbiAgPGF4LWltYWdlLWVkaXRvci1oaWdobGlnaHQ+PC9heC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0PlxuICA8YXgtaW1hZ2UtZWRpdG9yLWNyb3AgW2FzcGVjdFJhdGlvXT1cImFzcGVjdFJhdGlvKClcIj48L2F4LWltYWdlLWVkaXRvci1jcm9wPlxuICA8YXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZT48L2F4LWltYWdlLWVkaXRvci1yb3RhdGU+XG48L2F4LWltYWdlLWVkaXRvci10b29scy1iYXI+XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXImageEditorContainerComponent } from './image-editor-container/image-editor-container.component';\nimport { AXImageEditorCropperWindowComponent } from './image-editor-cropper-window/image-editor-cropper-window.component';\nimport { AXImageEditorCropComponent } from './image-editor-tools/image-editor-crop/image-editor-crop.component';\nimport { AXImageEditorHighlightComponent } from './image-editor-tools/image-editor-highlight/image-editor-highlight.component';\nimport { AXImageEditorHistoryComponent } from './image-editor-tools/image-editor-history/image-editor-history.component';\nimport { AXImageEditorPenComponent } from './image-editor-tools/image-editor-pen/image-editor-pen.component';\nimport { AXImageEditorRotateComponent } from './image-editor-tools/image-editor-rotate/image-editor-rotate.component';\nimport { AXImageEditorToolSelectorComponent } from './image-editor-tools/image-editor-tool-selector/image-editor-tool-selector.component';\nimport { AXImageEditorToolsBarComponent } from './image-editor-tools/image-editor-tools-bar/image-editor-tools-bar.component';\nimport { AXImageEditorViewComponent } from './image-editor-view/image-editor-view.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [\n AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent,\n];\nconst MODULES = [\n AXButtonModule,\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXDialogModule,\n];\nexport class AXImageEditorModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, imports: [AXButtonModule,\n FormsModule,\n AXRangeSliderModule,\n AXSelectBoxModule,\n AXColorBoxModule,\n AXPopoverModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXDialogModule, AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent], exports: [AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, imports: [MODULES, AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorToolsBarComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXImageEditorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDL0gsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0ZBQXNGLENBQUM7QUFDMUksT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDOUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBRTdGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLDBCQUEwQjtJQUMxQiwrQkFBK0I7SUFDL0IsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QixrQ0FBa0M7SUFDbEMsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6QiwrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLG1DQUFtQztDQUNwQyxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUc7SUFDZCxjQUFjO0lBQ2QsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGNBQWM7Q0FDZixDQUFDO0FBT0YsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsWUFoQjlCLGNBQWM7WUFDZCxXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsY0FBYyxFQXJCZCwwQkFBMEI7WUFDMUIsK0JBQStCO1lBQy9CLDBCQUEwQjtZQUMxQiw2QkFBNkI7WUFDN0Isa0NBQWtDO1lBQ2xDLDhCQUE4QjtZQUM5Qix5QkFBeUI7WUFDekIsK0JBQStCO1lBQy9CLDRCQUE0QjtZQUM1QixtQ0FBbUMsYUFUbkMsMEJBQTBCO1lBQzFCLCtCQUErQjtZQUMvQiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLGtDQUFrQztZQUNsQyw4QkFBOEI7WUFDOUIseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7WUFDNUIsbUNBQW1DOytHQW9CeEIsbUJBQW1CLFlBSmpCLE9BQU8sRUF4QnBCLCtCQUErQjtZQUMvQiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLGtDQUFrQztZQUNsQyw4QkFBOEI7WUFDOUIseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7OzJGQXFCakIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb2xvckJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb2xvci1ib3gnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhSYW5nZVNsaWRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlzdG9yeUNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaXN0b3J5L2ltYWdlLWVkaXRvci1oaXN0b3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sc0JhckNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci10b29scy1iYXIvaW1hZ2UtZWRpdG9yLXRvb2xzLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtcbiAgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9ySGlzdG9yeUNvbXBvbmVudCxcbiAgQVhJbWFnZUVkaXRvclRvb2xTZWxlY3RvckNvbXBvbmVudCxcbiAgQVhJbWFnZUVkaXRvclRvb2xzQmFyQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudCxcbl07XG5cbmNvbnN0IE1PRFVMRVMgPSBbXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgQVhSYW5nZVNsaWRlck1vZHVsZSxcbiAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gIEFYQ29sb3JCb3hNb2R1bGUsXG4gIEFYUG9wb3Zlck1vZHVsZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gIEFYTG9hZGluZ01vZHVsZSxcbiAgQVhEaWFsb2dNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtaW1hZ2UtZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2Fjb3JleC1jb21wb25lbnRzLWltYWdlLWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2"],"mappings":"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"}