@acorex/components 20.1.37 → 20.1.39

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.
Files changed (31) hide show
  1. package/button-group/index.d.ts +2 -1
  2. package/decorators/index.d.ts +2 -2
  3. package/fesm2022/acorex-components-button-group.mjs +5 -3
  4. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  5. package/fesm2022/acorex-components-decorators.mjs +3 -3
  6. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  7. package/fesm2022/acorex-components-image-editor.mjs +75 -58
  8. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  9. package/fesm2022/acorex-components-map.mjs +5 -4
  10. package/fesm2022/acorex-components-map.mjs.map +1 -1
  11. package/fesm2022/acorex-components-menu.mjs +4 -4
  12. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  13. package/fesm2022/{acorex-components-modal-acorex-components-modal-DTUAOsgv.mjs → acorex-components-modal-acorex-components-modal-Bqiz74D1.mjs} +2 -2
  14. package/fesm2022/{acorex-components-modal-acorex-components-modal-DTUAOsgv.mjs.map → acorex-components-modal-acorex-components-modal-Bqiz74D1.mjs.map} +1 -1
  15. package/fesm2022/{acorex-components-modal-modal-content.component-Co2yaRpp.mjs → acorex-components-modal-modal-content.component-B-FWjSBZ.mjs} +4 -4
  16. package/fesm2022/acorex-components-modal-modal-content.component-B-FWjSBZ.mjs.map +1 -0
  17. package/fesm2022/acorex-components-modal.mjs +1 -1
  18. package/fesm2022/acorex-components-query-builder.mjs +1 -1
  19. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  20. package/fesm2022/acorex-components-rrule.mjs +220 -100
  21. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  22. package/fesm2022/acorex-components-selection-list-2.mjs +2 -2
  23. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  24. package/fesm2022/acorex-components-wysiwyg.mjs +13 -2
  25. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  26. package/image-editor/index.d.ts +6 -10
  27. package/map/index.d.ts +2 -1
  28. package/package.json +9 -9
  29. package/rrule/index.d.ts +40 -17
  30. package/wysiwyg/index.d.ts +3 -0
  31. package/fesm2022/acorex-components-modal-modal-content.component-Co2yaRpp.mjs.map +0 -1
@@ -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-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-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-tool-selector/image-editor-tool-selector.component.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-tools/image-editor-history/image-editor-history.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 = signal(null, ...(ngDevMode ? [{ debugName: \"newImage\" }] : []));\n this.initialImage = signal(null, ...(ngDevMode ? [{ debugName: \"initialImage\" }] : []));\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 }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRUUsb0JBQWUsR0FBRyxNQUFNLENBQXNELElBQUksMkRBQUMsQ0FBQztRQUNwRixhQUFRLEdBQUcsTUFBTSxDQUEwQyxpQkFBaUIsb0RBQUMsQ0FBQztRQUM5RSxtQkFBYyxHQUFHLE1BQU0sQ0FBMEMsbUJBQW1CLDBEQUFDLENBQUM7UUFDdEYsYUFBUSxHQUFHLE1BQU0sQ0FBUyxFQUFFLG9EQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxNQUFNLENBQVMsRUFBRSwwREFBQyxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxNQUFNLENBQXNCLElBQUksbURBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGtEQUFDLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQTBCLElBQUksb0RBQUMsQ0FBQztRQUNqRCxpQkFBWSxHQUFHLE1BQU0sQ0FBMEIsSUFBSSx3REFBQyxDQUFDO1FBQ3JELGNBQVMsR0FBRyxNQUFNLENBQVMsRUFBRSxxREFBQyxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssdURBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7UUFDNUIsaUJBQVksR0FBRyxNQUFNLENBQWlCLElBQUksd0RBQUMsQ0FBQztLQUM3Qzs4R0FmWSxvQkFBb0I7a0hBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclNlcnZpY2Uge1xuICBhY3RpdmVUb29sU3RhdGUgPSBzaWduYWw8J3BlbicgfCAnaGlnaGxpZ2h0JyB8ICdjcm9wJyB8ICdyb3RhdGUnIHwgJ2hpc3RvcnknPihudWxsKTtcbiAgcGVuQ29sb3IgPSBzaWduYWw8c3RyaW5nIHwgQ2FudmFzR3JhZGllbnQgfCBDYW52YXNQYXR0ZXJuPigncmdiKDEyLCAxMiwgMTIpJyk7XG4gIGhpZ2hsaWdodENvbG9yID0gc2lnbmFsPHN0cmluZyB8IENhbnZhc0dyYWRpZW50IHwgQ2FudmFzUGF0dGVybj4oJ3JnYigyNTUsIDIxMCwgNDgpJyk7XG4gIHBlbldpZHRoID0gc2lnbmFsPG51bWJlcj4oMTApO1xuICBoaWdobGlnaHRXaWR0aCA9IHNpZ25hbDxudW1iZXI+KDEwKTtcbiAgcGVuVHlwZSA9IHNpZ25hbDwncGVuJyB8ICdoaWdobGlnaHQnPihudWxsKTtcbiAgcm90YXRlID0gc2lnbmFsKHsgc3RhdGU6IDAsIHVzZXJJbnRlcmFjdDogZmFsc2UgfSk7XG4gIGlzSW1hZ2VMb2FkID0gc2lnbmFsKGZhbHNlKTtcbiAgbmV3SW1hZ2UgPSBzaWduYWw8SFRNTEltYWdlRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBpbml0aWFsSW1hZ2UgPSBzaWduYWw8SFRNTEltYWdlRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBpbWFnZUJsb2IgPSBzaWduYWw8QmxvYltdPihbXSk7XG4gIHVuZG9QcmVzc2VkID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVkb1ByZXNzZWQgPSBzaWduYWwoZmFsc2UpO1xuICBjcm9wcGVyUmF0aW8gPSBzaWduYWw8JzE6MScgfCAnMTY6OSc+KG51bGwpO1xufVxuIl19","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, inject, output, 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 AXImageEditorCropComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n this.cropPressed = output();\n }\n cropButtonHandler() {\n this.cropPressed.emit();\n }\n ratioHandler(r) {\n if (this.service.cropperRatio()) {\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.2.4\", ngImport: i0, type: AXImageEditorCropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorCropComponent, isStandalone: true, selector: \"ax-image-editor-crop\", outputs: { cropPressed: \"cropPressed\" }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], ngImport: i0, template: \"<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n></ax-button>\\n\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '1:1' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"1:1\\\"\\n></ax-button>\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '16:9' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"16:9\\\"\\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.2.4\", ngImport: i0, type: AXImageEditorCropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-crop', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], template: \"<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n></ax-button>\\n\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '1:1' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"1:1\\\"\\n></ax-button>\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '16:9' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"16:9\\\"\\n></ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBQ2xFOzs7R0FHRztBQVFILE1BQU0sT0FBTywwQkFBMEI7SUFQdkM7UUFRWSxZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsZ0JBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQztLQWF4QjtJQVhXLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxZQUFZLENBQUMsQ0FBaUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDOzhHQWZVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDRHQUYxQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQywwQkNmaEYsd3FCQW9CQSw0Q0ROWSxpQkFBaUIsc1VBQUUsU0FBUyx5Q0FBRSxnQkFBZ0I7OzJGQUc3QywwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usc0JBQXNCLGlCQUVqQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLGFBQzlDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNEJBQTRCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY3JvcC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWEJ1dHRvbkNvbXBvbmVudCwgQXN5bmNQaXBlLCBBWFRyYW5zbGF0b3JQaXBlXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBjcm9wUHJlc3NlZCA9IG91dHB1dCgpO1xuXG4gIHByb3RlY3RlZCBjcm9wQnV0dG9uSGFuZGxlcigpIHtcbiAgICB0aGlzLmNyb3BQcmVzc2VkLmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByYXRpb0hhbmRsZXIocjogJzE6MScgfCAnMTY6OScpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpby5zZXQocik7XG4gICAgfVxuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIChjbGljayk9XCJjcm9wQnV0dG9uSGFuZGxlcigpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgtc21cIlxuICBbdGV4dF09XCInQGFjb3JleDppbWFnZS1lZGl0b3IuY3JvcCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4+PC9heC1idXR0b24+XG5cbjxheC1idXR0b25cbiAgW3NlbGVjdGVkXT1cInRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE6MScgPyB0cnVlIDogZmFsc2VcIlxuICBbY29sb3JdPVwidGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJyA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXG4gIChjbGljayk9XCJyYXRpb0hhbmRsZXIoJzE6MScpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgtc21cIlxuICB0ZXh0PVwiMToxXCJcbj48L2F4LWJ1dHRvbj5cbjxheC1idXR0b25cbiAgW3NlbGVjdGVkXT1cInRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknID8gdHJ1ZSA6IGZhbHNlXCJcbiAgW2NvbG9yXT1cInRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgKGNsaWNrKT1cInJhdGlvSGFuZGxlcignMTY6OScpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgtc21cIlxuICB0ZXh0PVwiMTY6OVwiXG4+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/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorHighlightComponent {\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.2.4\", ngImport: i0, type: AXImageEditorHighlightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorHighlightComponent, isStandalone: true, selector: \"ax-image-editor-highlight\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], 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\", styles: [\"ax-image-editor-highlight{display:flex}ax-image-editor-highlight ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-highlight ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\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.2.4\", ngImport: i0, type: AXImageEditorHighlightComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-highlight', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], 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\", styles: [\"ax-image-editor-highlight{display:flex}ax-image-editor-highlight ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-highlight ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0L2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEU7OztHQUdHO0FBd0JILE1BQU0sT0FBTywrQkFBK0I7SUF2QjVDO1FBd0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osa0JBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUseURBQUMsQ0FBQztRQUVoRSxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7S0FXakQ7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDOzhHQWpCVSwrQkFBK0I7a0dBQS9CLCtCQUErQix3RUFGL0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLENBQUMsMEJDcENyRiw4WkFZQSw2U0RPWSxtQkFBbUIsa1dBQUUsV0FBVywrVkFBRSxzQkFBc0IsMlFBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFtQnBGLCtCQUErQjtrQkF2QjNDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUV0QixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQ2hHLHVCQUF1QixDQUFDLE1BQU0sYUFnQnBDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsaUNBQWlDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQ29sb3JCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sb3ItYm94JztcbmltcG9ydCB7IEFYUmFuZ2VTbGlkZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyJztcblxuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhDb2xvckJveENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFYUmFuZ2VTbGlkZXJDb21wb25lbnQsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlczogYFxuICAgIGF4LWltYWdlLWVkaXRvci1oaWdobGlnaHQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGF4LXJhbmdlLXNsaWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB3aWR0aDogMTByZW07XG4gICAgICAgIC5heC1yYW5nZS1zbGlkZXIge1xuICAgICAgICAgIC5heC1yYW5nZS1zbGlkZXItaGFuZGxlciB7XG4gICAgICAgICAgICB3aWR0aDogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb2xvciA9IHNpZ25hbCh0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0Q29sb3IoKSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHZhbHVlID0gdGhpcy5zZXJ2aWNlLmhpZ2hsaWdodFdpZHRoKCk7XG5cbiAgcHJvdGVjdGVkIGNoYW5nZUNvbG9ySGFuZGxlcihlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0Q29sb3Iuc2V0KGUpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvci5zZXQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWVIYW5kbGVyKGU6IG51bWJlcikge1xuICAgIHRoaXMuc2VydmljZS5oaWdobGlnaHRXaWR0aC5zZXQoZSk7XG4gIH1cbn1cbiIsIjxheC1jb2xvci1ib3hcbiAgW3Nob3dWYWx1ZV09XCJmYWxzZVwiXG4gIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6cGFpbnQudG9vbHMuaGlnaGxpZ2h0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgbG9vaz1cIm5vbmVcIlxuICBbbmdNb2RlbF09XCJzZWxlY3RlZENvbG9yKClcIlxuICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvckhhbmRsZXIoJGV2ZW50KVwiXG4+XG48L2F4LWNvbG9yLWJveD5cblxuPGF4LXJhbmdlLXNsaWRlciBbbWluXT1cIjJcIiBbbWF4XT1cIjIwXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlSGFuZGxlcigkZXZlbnQpXCI+PC9heC1yYW5nZS1zbGlkZXI+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/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorPenComponent {\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.2.4\", ngImport: i0, type: AXImageEditorPenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorPenComponent, isStandalone: true, selector: \"ax-image-editor-pen\", providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], 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\", styles: [\"ax-image-editor-pen{display:flex}ax-image-editor-pen ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-pen ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\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.2.4\", ngImport: i0, type: AXImageEditorPenComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-pen', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], 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\", styles: [\"ax-image-editor-pen{display:flex}ax-image-editor-pen ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-pen ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXBlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItcGVuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEU7OztHQUdHO0FBd0JILE1BQU0sT0FBTyx5QkFBeUI7SUF2QnRDO1FBd0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFMUMsY0FBYztRQUNKLGtCQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLHlEQUFDLENBQUM7S0FXM0Q7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWpCVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixrRUFGekIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFLENBQUMsMEJDcEMvRSx3WkFZQSwyUkRPWSxtQkFBbUIsa1dBQUUsV0FBVywrVkFBRSxzQkFBc0IsMlFBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFtQnBGLHlCQUF5QjtrQkF2QnJDLFNBQVM7K0JBQ0UscUJBQXFCLGlCQUVoQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQ2hHLHVCQUF1QixDQUFDLE1BQU0sYUFnQnBDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsMkJBQTJCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQ29sb3JCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sb3ItYm94JztcbmltcG9ydCB7IEFYUmFuZ2VTbGlkZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyJztcblxuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItcGVuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhDb2xvckJveENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFYUmFuZ2VTbGlkZXJDb21wb25lbnQsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlczogYFxuICAgIGF4LWltYWdlLWVkaXRvci1wZW4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGF4LXJhbmdlLXNsaWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB3aWR0aDogMTByZW07XG4gICAgICAgIC5heC1yYW5nZS1zbGlkZXIge1xuICAgICAgICAgIC5heC1yYW5nZS1zbGlkZXItaGFuZGxlciB7XG4gICAgICAgICAgICB3aWR0aDogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWUgPSB0aGlzLnNlcnZpY2UucGVuV2lkdGgoKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb2xvciA9IHNpZ25hbCh0aGlzLnNlcnZpY2UucGVuQ29sb3IoKSk7XG5cbiAgcHJvdGVjdGVkIGNoYW5nZUNvbG9ySGFuZGxlcihlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UucGVuQ29sb3Iuc2V0KGUpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvci5zZXQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWVIYW5kbGVyKGU6IG51bWJlcikge1xuICAgIHRoaXMuc2VydmljZS5wZW5XaWR0aC5zZXQoZSk7XG4gIH1cbn1cbiIsIjxheC1jb2xvci1ib3hcbiAgW3Nob3dWYWx1ZV09XCJmYWxzZVwiXG4gIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6cGFpbnQudG9vbHMucGVuJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgbG9vaz1cIm5vbmVcIlxuICBbbmdNb2RlbF09XCJzZWxlY3RlZENvbG9yKClcIlxuICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvckhhbmRsZXIoJGV2ZW50KVwiXG4+XG48L2F4LWNvbG9yLWJveD5cblxuPGF4LXJhbmdlLXNsaWRlciBbbWluXT1cIjJcIiBbbWF4XT1cIjIwXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlSGFuZGxlcigkZXZlbnQpXCI+PC9heC1yYW5nZS1zbGlkZXI+XG4iXX0=","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/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorRotateComponent {\n constructor() {\n /** @ignore */\n this.service = inject(AXImageEditorService);\n }\n /** @ignore */\n rotateRightHandler() {\n this.service.rotate.set({ state: 90, userInteract: true });\n }\n /** @ignore */\n rotateLeftHandler() {\n this.service.rotate.set({ state: -90, userInteract: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorRotateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorRotateComponent, isStandalone: true, selector: \"ax-image-editor-rotate\", providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], 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.2.4\", ngImport: i0, type: AXImageEditorRotateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-rotate', encapsulation: ViewEncapsulation.None, imports: [\n AXButtonComponent,\n AXTooltipDirective,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXJvdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3Itcm90YXRlL2ltYWdlLWVkaXRvci1yb3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVsRTs7O0dBR0c7QUFnQkgsTUFBTSxPQUFPLDRCQUE0QjtJQWZ6QztRQWdCRSxjQUFjO1FBQ0osWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBV2xEO0lBVEMsY0FBYztJQUNKLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxjQUFjO0lBQ0osaUJBQWlCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDOzhHQVpVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHFFQUY1QixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQywwQkMxQmxGLDZmQWlCQSw0Q0RDSSxpQkFBaUIsMlVBQ2pCLGtCQUFrQixtT0FDbEIsd0JBQXdCLHFFQUd4QixlQUFlLDBCQUZmLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCw0QkFBNEI7a0JBZnhDLFNBQVM7K0JBQ0Usd0JBQXdCLGlCQUVuQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDhCQUE4QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwRGlyZWN0aXZlLCBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBwYWludCBtb2RlLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhUb29sdGlwTW9kdWxlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQge1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJvdGF0ZVJpZ2h0SGFuZGxlcigpIHtcbiAgICB0aGlzLnNlcnZpY2Uucm90YXRlLnNldCh7IHN0YXRlOiA5MCwgdXNlckludGVyYWN0OiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJvdGF0ZUxlZnRIYW5kbGVyKCkge1xuICAgIHRoaXMuc2VydmljZS5yb3RhdGUuc2V0KHsgc3RhdGU6IC05MCwgdXNlckludGVyYWN0OiB0cnVlIH0pO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJvdGF0ZS1sZWZ0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgKGNsaWNrKT1cInJvdGF0ZUxlZnRIYW5kbGVyKClcIlxuICBsb29rPVwiYmxhbmtcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hcnJvdy10dXJuLWxlZnRcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OmltYWdlLWVkaXRvci5yb3RhdGUtcmlnaHQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAoY2xpY2spPVwicm90YXRlUmlnaHRIYW5kbGVyKClcIlxuICBsb29rPVwiYmxhbmtcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hcnJvdy10dXJuLXJpZ2h0XCI+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 { 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 AXImageEditorToolSelectorComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n changeToolHandler(tool) {\n if (this.service.activeToolState() === tool) {\n this.service.activeToolState.set(null);\n return;\n }\n this.service.activeToolState.set(tool);\n if (tool === 'pen' || tool === 'highlight') {\n this.service.penType.set(tool);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorToolSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorToolSelectorComponent, isStandalone: true, selector: \"ax-image-editor-tool-selector\", providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'pen' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'highlight' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'crop' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'rotate' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\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: \"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\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorToolSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-tool-selector', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective, AsyncPipe, AXTranslatorPipe, AXTooltipModule], providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'pen' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'highlight' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'crop' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'rotate' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\n>\\n <i class=\\\"fa-solid fa-rotate\\\"></i>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVsRTs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0NBQWtDO0lBUC9DO1FBUVksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBY2xEO0lBWlcsaUJBQWlCLENBQUMsSUFBNkM7UUFDdkUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzs4R0FkVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyw0RUFGbEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsMEJDbEJ4Rix3a0RBMkNBLDRDRDFCWSxpQkFBaUIsMFVBQUUsaUJBQWlCLGdJQUFFLGtCQUFrQixrT0FBK0IsZUFBZSwwQkFBNUMsU0FBUyx5Q0FBRSxnQkFBZ0I7OzJGQUdwRixrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsK0JBQStCLGlCQUUxQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxhQUN0RyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLG9DQUFvQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFRvb2x0aXBEaXJlY3RpdmUsIEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogcGFpbnQgbW9kZS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYQnV0dG9uQ29tcG9uZW50LCBBWERlY29yYXRvck1vZHVsZSwgQVhUb29sdGlwRGlyZWN0aXZlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjaGFuZ2VUb29sSGFuZGxlcih0b29sOiAncGVuJyB8ICdoaWdobGlnaHQnIHwgJ2Nyb3AnIHwgJ3JvdGF0ZScpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpID09PSB0b29sKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlLnNldChudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlLnNldCh0b29sKTtcblxuICAgIGlmICh0b29sID09PSAncGVuJyB8fCB0b29sID09PSAnaGlnaGxpZ2h0Jykge1xuICAgICAgdGhpcy5zZXJ2aWNlLnBlblR5cGUuc2V0KHRvb2wpO1xuICAgIH1cbiAgfVxufVxuIiwiPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLnBlbicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cImNoYW5nZVRvb2xIYW5kbGVyKCdwZW4nKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdwZW4nID8gdHJ1ZSA6IGZhbHNlXCJcbiAgW2NvbG9yXT1cInRoaXMuc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3BlbicgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wZW5cIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLmhpZ2hsaWdodCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cImNoYW5nZVRvb2xIYW5kbGVyKCdoaWdobGlnaHQnKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdoaWdobGlnaHQnID8gdHJ1ZSA6IGZhbHNlXCJcbiAgW2NvbG9yXT1cInRoaXMuc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2hpZ2hsaWdodCcgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1oaWdobGlnaHRcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OmltYWdlLWVkaXRvci5jcm9wJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgKG9uQ2xpY2spPVwiY2hhbmdlVG9vbEhhbmRsZXIoJ2Nyb3AnKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdjcm9wJyA/IHRydWUgOiBmYWxzZVwiXG4gIFtjb2xvcl09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdjcm9wJyA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNyb3BcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OmltYWdlLWVkaXRvci5yb3RhdGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJjaGFuZ2VUb29sSGFuZGxlcigncm90YXRlJylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwidGhpcy5zZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpID09PSAncm90YXRlJyA/IHRydWUgOiBmYWxzZVwiXG4gIFtjb2xvcl09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdyb3RhdGUnID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbj5cbiAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGVcIj48L2k+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { CommonModule, 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\";\nimport * as i1 from \"@angular/common\";\n/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorCropperWindowComponent {\n constructor() {\n this.showGrid = input(true, ...(ngDevMode ? [{ debugName: \"showGrid\" }] : []));\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.renderer = inject(Renderer2);\n this.platformID = inject(PLATFORM_ID);\n this.#eff = effect(() => {\n const host = this.elementRef.nativeElement;\n if (this.service.cropperRatio() === '1:1') {\n host.style.width = `${150}px`;\n host.style.height = `${150}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.width = `${266.6}px`;\n host.style.height = `${150}px`;\n }\n else {\n host.style.width = `${150}px`;\n host.style.height = `${150}px`;\n }\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 this.mouseLeaveEvent = this.renderer.listen(host, 'pointerleave', this.panUp.bind(this));\n });\n });\n this.#positionChange = effect(() => {\n this.setPosition(this.currentX(), this.currentY());\n }, ...(ngDevMode ? [{ debugName: \"#positionChange\" }] : []));\n this.edgeCase = false;\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.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 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 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.panState())\n return;\n if (!this.selectedHandle())\n return;\n const host = this.elementRef.nativeElement;\n const rect = host.getBoundingClientRect();\n const dy = e.clientY - this.startY;\n const dx = e.clientX - this.startX;\n if (rect.width < 20 || rect.height < 20) {\n this.edgeCase = true;\n return;\n }\n switch (this.selectedHandle()) {\n case 'right':\n host.style.width = `${e.movementX + rect.width}px`;\n break;\n case 'top':\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n break;\n case 'left':\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n break;\n case 'bottom':\n host.style.height = `${rect.height + e.movementY}px`;\n break;\n case 'right-top':\n if (this.service.cropperRatio() === '1:1') {\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n host.style.width = `${this.startHeight - dy}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n host.style.width = `${(this.startHeight - dy) * 1.77}px`;\n }\n else {\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n host.style.width = `${e.movementX + rect.width}px`;\n }\n break;\n case 'bottom-right':\n if (this.service.cropperRatio() === '1:1') {\n host.style.width = `${e.movementX + rect.width}px`;\n host.style.height = `${e.movementX + rect.width}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.height = `${e.movementX + rect.height}px`;\n host.style.width = `${(e.movementX + rect.height) * 1.77}px`;\n }\n else {\n host.style.height = `${rect.height + e.movementY}px`;\n host.style.width = `${e.movementX + rect.width}px`;\n }\n break;\n case 'bottom-left':\n if (this.service.cropperRatio() === '1:1') {\n host.style.height = `${this.startWidth - dx}px`;\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.height = `${(this.startWidth - dx) / 1.77}px`;\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n }\n else {\n host.style.height = `${rect.height + e.movementY}px`;\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n }\n break;\n case 'left-top':\n if (this.service.cropperRatio() === '1:1') {\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n host.style.height = `${this.startWidth - dx}px`;\n host.style.top = `${this.startLeft + dx}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n host.style.height = `${(this.startWidth - dx) / 1.77}px`;\n host.style.top = `${this.startLeft + dx}px`;\n }\n else {\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n }\n }\n }\n clearSelector() {\n if (this.panState())\n return;\n const host = this.elementRef.nativeElement;\n if (this.edgeCase) {\n host.style.height = `20px`;\n host.style.width = `20px`;\n this.edgeCase = false;\n }\n this.selectedHandle.set(null);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorCropperWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.4\", type: AXImageEditorCropperWindowComponent, isStandalone: true, selector: \"ax-image-editor-cropper-window\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", 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 [ngStyle]=\\\"!showGrid() && { border: '1px dashed white' }\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!this.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\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorCropperWindowComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-cropper-window', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropperWindowComponent }], template: \"<div [ngStyle]=\\\"!showGrid() && { border: '1px dashed white' }\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!this.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93L2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFL0Q7OztHQUdHO0FBVUgsTUFBTSxPQUFPLG1DQUFtQztJQVRoRDtRQVVXLGFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxvREFBQyxDQUFDO1FBRXRCLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLG1CQUFjLEdBQUcsTUFBTSxDQUFTLElBQUksMERBQUMsQ0FB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RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogcGFpbnQgbW9kZS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZVVybDogJy4vaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNyb3BwZXJXaW5kb3dDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc2hvd0dyaWQgPSBpbnB1dCh0cnVlKTtcblxuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG4gIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRIYW5kbGUgPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgcHJpdmF0ZSBwYW5TdGF0ZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJvdGVjdGVkIGNyb3BwZXJXaW5kb3cgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3InKTtcbiAgcHJpdmF0ZSBjdXJyZW50WCA9IHNpZ25hbCgtNDUpO1xuICBwcml2YXRlIGN1cnJlbnRZID0gc2lnbmFsKC00NSk7XG4gIHByaXZhdGUgcHJldlggPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgcHJldlkgPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHBsYXRmb3JtSUQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIG1vdXNlTW92ZUV2ZW50OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIG1vdXNlVXBFdmVudDogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZU1vdmVFdmVudDI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VVcEV2ZW50MjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZURvd25FdmVudDogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZUxlYXZlRXZlbnQ6ICgpID0+IHZvaWQ7XG5cbiAgI2VmZiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxOjEnKSB7XG4gICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7MTUwfXB4YDtcbiAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7MTUwfXB4YDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknKSB7XG4gICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7MjY2LjZ9cHhgO1xuICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHsxNTB9cHhgO1xuICAgIH0gZWxzZSB7XG4gICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7MTUwfXB4YDtcbiAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7MTUwfXB4YDtcbiAgICB9XG4gIH0pO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50ID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZG9jdW1lbnQsICdwb2ludGVybW92ZScsIHRoaXMuY2hhbmdlU2l6ZUhhbmRsZXIuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1vdXNlVXBFdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGRvY3VtZW50LCAncG9pbnRlcnVwJywgdGhpcy5jbGVhclNlbGVjdG9yLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tb3VzZURvd25FdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVyZG93bicsIHRoaXMucGFuRG93bi5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubW91c2VNb3ZlRXZlbnQyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oaG9zdCwgJ3BvaW50ZXJtb3ZlJywgdGhpcy5wYW5Nb3ZlLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tb3VzZVVwRXZlbnQyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oaG9zdCwgJ3BvaW50ZXJ1cCcsIHRoaXMucGFuVXAuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1vdXNlTGVhdmVFdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVybGVhdmUnLCB0aGlzLnBhblVwLmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTW92ZUV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VVcEV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlVXBFdmVudCgpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlRG93bkV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlRG93bkV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VNb3ZlRXZlbnQyKSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlVXBFdmVudDIpIHtcbiAgICAgIHRoaXMubW91c2VVcEV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTGVhdmVFdmVudCkge1xuICAgICAgdGhpcy5tb3VzZUxlYXZlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICAjcG9zaXRpb25DaGFuZ2UgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5jdXJyZW50WCgpLCB0aGlzLmN1cnJlbnRZKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcGFuTW92ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5wYW5TdGF0ZSgpKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50WCA9IGUuY2xpZW50WDtcbiAgICBjb25zdCBjdXJyZW50WSA9IGUuY2xpZW50WTtcbiAgICBjb25zdCBkZWx0YVggPSBjdXJyZW50WCAtIHRoaXMucHJldlgoKTtcbiAgICBjb25zdCBkZWx0YVkgPSBjdXJyZW50WSAtIHRoaXMucHJldlkoKTtcbiAgICB0aGlzLmN1cnJlbnRYLnVwZGF0ZSgocHJldikgPT4gcHJldiArIGRlbHRhWCk7XG4gICAgdGhpcy5jdXJyZW50WS51cGRhdGUoKHByZXYpID0+IHByZXYgKyBkZWx0YVkpO1xuICAgIHRoaXMucHJldlguc2V0KGN1cnJlbnRYKTtcbiAgICB0aGlzLnByZXZZLnNldChjdXJyZW50WSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFuRG93bihlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuICAgIHRoaXMucGFuU3RhdGUuc2V0KHRydWUpO1xuICAgIHRoaXMucHJldlguc2V0KGUuY2xpZW50WCk7XG4gICAgdGhpcy5wcmV2WS5zZXQoZS5jbGllbnRZKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYW5VcCgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgdGhpcy5wYW5TdGF0ZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGdldENyb3BwZXJBcmVhKCkge1xuICAgIHJldHVybiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlcikge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3Bvc1h9cHgsICR7cG9zWX1weClgO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFg6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFk6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFdpZHRoOiBudW1iZXI7XG4gIHByaXZhdGUgc3RhcnRIZWlnaHQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydExlZnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFRvcDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgZWRnZUNhc2UgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGhhbmRsZVNlbGVjdG9yKGU6IE1vdXNlRXZlbnQsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5wYW5TdGF0ZSgpKSByZXR1cm47XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuc3RhcnRYID0gZS5jbGllbnRYO1xuICAgIHRoaXMuc3RhcnRZID0gZS5jbGllbnRZO1xuICAgIHRoaXMuc3RhcnRXaWR0aCA9IGhvc3Qub2Zmc2V0V2lkdGg7XG4gICAgdGhpcy5zdGFydEhlaWdodCA9IGhvc3Qub2Zmc2V0SGVpZ2h0O1xuICAgIHRoaXMuc3RhcnRMZWZ0ID0gaG9zdC5vZmZzZXRMZWZ0O1xuICAgIHRoaXMuc3RhcnRUb3AgPSBob3N0Lm9mZnNldFRvcDtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZGxlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhbmdlU2l6ZUhhbmRsZXIoZTogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLnBhblN0YXRlKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHJlY3QgPSBob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgZHkgPSBlLmNsaWVudFkgLSB0aGlzLnN0YXJ0WTtcbiAgICBjb25zdCBkeCA9IGUuY2xpZW50WCAtIHRoaXMuc3RhcnRYO1xuXG4gICAgaWYgKHJlY3Qud2lkdGggPCAyMCB8fCByZWN0LmhlaWdodCA8IDIwKSB7XG4gICAgICB0aGlzLmVkZ2VDYXNlID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkge1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7ZS5tb3ZlbWVudFggKyByZWN0LndpZHRofXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuc3RhcnRIZWlnaHQgLSBkeX1weGA7XG4gICAgICAgIGhvc3Quc3R5bGUudG9wID0gYCR7dGhpcy5zdGFydFRvcCArIGR5fXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuc3RhcnRXaWR0aCAtIGR4fXB4YDtcbiAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtyZWN0LmhlaWdodCArIGUubW92ZW1lbnRZfXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodC10b3AnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJykge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5zdGFydEhlaWdodCAtIGR5fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyBkeX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuc3RhcnRIZWlnaHQgLSBkeX1weGA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMTY6OScpIHtcbiAgICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuc3RhcnRIZWlnaHQgLSBkeX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0VG9wICsgZHl9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHsodGhpcy5zdGFydEhlaWdodCAtIGR5KSAqIDEuNzd9cHhgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5zdGFydEhlaWdodCAtIGR5fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyBkeX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke2UubW92ZW1lbnRYICsgcmVjdC53aWR0aH1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJykge1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtlLm1vdmVtZW50WCArIHJlY3Qud2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7ZS5tb3ZlbWVudFggKyByZWN0LndpZHRofXB4YDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxNjo5Jykge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7ZS5tb3ZlbWVudFggKyByZWN0LmhlaWdodH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAkeyhlLm1vdmVtZW50WCArIHJlY3QuaGVpZ2h0KSAqIDEuNzd9cHhgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7cmVjdC5oZWlnaHQgKyBlLm1vdmVtZW50WX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke2UubW92ZW1lbnRYICsgcmVjdC53aWR0aH1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tbGVmdCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxOjEnKSB7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuc3RhcnRXaWR0aCAtIGR4fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmxlZnQgPSBgJHt0aGlzLnN0YXJ0TGVmdCArIGR4fXB4YDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxNjo5Jykge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7KHRoaXMuc3RhcnRXaWR0aCAtIGR4KSAvIDEuNzd9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtyZWN0LmhlaWdodCArIGUubW92ZW1lbnRZfXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7dGhpcy5zdGFydFdpZHRoIC0gZHh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgZHh9cHhgO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdC10b3AnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJykge1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0TGVmdCArIGR4fXB4YDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxNjo5Jykge1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHsodGhpcy5zdGFydFdpZHRoIC0gZHgpIC8gMS43N31weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0TGVmdCArIGR4fXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7dGhpcy5zdGFydFdpZHRoIC0gZHh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgZHh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5zdGFydEhlaWdodCAtIGR5fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyBkeX1weGA7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJTZWxlY3RvcigpIHtcbiAgICBpZiAodGhpcy5wYW5TdGF0ZSgpKSByZXR1cm47XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuZWRnZUNhc2UpIHtcbiAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYDIwcHhgO1xuICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAyMHB4YDtcbiAgICAgIHRoaXMuZWRnZUNhc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkSGFuZGxlLnNldChudWxsKTtcbiAgfVxufVxuIiwiPGRpdiBbbmdTdHlsZV09XCIhc2hvd0dyaWQoKSAmJiB7IGJvcmRlcjogJzFweCBkYXNoZWQgd2hpdGUnIH1cIiAjciBjbGFzcz1cImF4LWltYWdlLWNyb3BwZXItd2luZG93LWNvbnRhaW5lclwiPlxuICBAaWYgKCF0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdyaWdodCcpXCIgY2xhc3M9XCJheC1pbWFnZS1yaWdodC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gICAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAndG9wJylcIiBjbGFzcz1cImF4LWltYWdlLXRvcC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gICAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAnbGVmdCcpXCIgY2xhc3M9XCJheC1pbWFnZS1sZWZ0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdib3R0b20nKVwiIGNsYXNzPVwiYXgtaW1hZ2UtYm90dG9tLWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgfVxuXG4gIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ3JpZ2h0LXRvcCcpXCIgY2xhc3M9XCJheC1pbWFnZS1yaWdodC10b3AtaGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuICA8ZGl2XG4gICAgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2JvdHRvbS1yaWdodCcpXCJcbiAgICBjbGFzcz1cImF4LWltYWdlLWJvdHRvbS1yaWdodC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCJcbiAgPjwvZGl2PlxuICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdib3R0b20tbGVmdCcpXCIgY2xhc3M9XCJheC1pbWFnZS1ib3R0b20tbGVmdC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2xlZnQtdG9wJylcIiBjbGFzcz1cImF4LWltYWdlLWxlZnQtdG9wLWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cblxuICBAaWYgKHNob3dHcmlkKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, effect, HostBinding, 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 if (!this.parent.imageEditorContainer())\n return;\n const parentWidth = this.parent.imageEditorContainer().nativeElement.clientWidth;\n const imageWidth = this.service.initialImage().width;\n if (parentWidth < imageWidth) {\n this.getHostElement().style.width = `${parentWidth}px`;\n this.getHostElement().style.height = `${parentWidth * this.imageAspect()}px`;\n this.canvasElem().nativeElement.width = parentWidth;\n this.canvasElem().nativeElement.height = parentWidth * this.imageAspect();\n this.ctx().drawImage(image, 0, 0, parentWidth, parentWidth * this.imageAspect());\n }\n else {\n this.getHostElement().style.width = `${imageWidth}px`;\n this.getHostElement().style.height = `${imageWidth / this.imageAspect()}px`;\n this.canvasElem().nativeElement.width = imageWidth;\n this.canvasElem().nativeElement.height = imageWidth / this.imageAspect();\n this.ctx().drawImage(image, 0, 0, imageWidth, imageWidth / this.imageAspect());\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 * 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.imageAspect = computed(() => {\n return this.service.initialImage().width / this.service.initialImage().height;\n }, ...(ngDevMode ? [{ debugName: \"imageAspect\" }] : []));\n /** @ignore */\n this.imageEditorHistory = signal([], ...(ngDevMode ? [{ debugName: \"imageEditorHistory\" }] : []));\n /** @ignore */\n this.imageEditorHistoryPointer = linkedSignal(() => this.imageEditorHistory().length - 1);\n afterNextRender(() => {\n this.resizeEventListener = this.renderer.listen(window, 'resize', this.resizeWindow.bind(this));\n //load image\n this.service.initialImage.set(new Image());\n this.service.initialImage().src = this.src();\n this.service.initialImage().crossOrigin = 'anonymous';\n this.imageLoadEventListener = this.renderer.listen(this.service.initialImage(), 'load', this.imageLoaded.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 if (this.parent.imageEditorContainer() && this.service.isImageLoad()) {\n this.canvasResponsive(this.service.initialImage());\n }\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 }\n /** @ignore */\n ngOnDestroy() {\n if (this.resizeEventListener) {\n this.resizeEventListener();\n }\n if (this.imageLoadEventListener) {\n this.imageLoadEventListener();\n }\n }\n /** @ignore */\n imageLoaded() {\n this.imageEditorHistory.set([this.service.initialImage()]);\n this.service.newImage.set(this.service.initialImage());\n this.service.isImageLoad.set(true);\n }\n /** @ignore */\n imageChanged() {\n if (this.service.undoPressed() && this.imageEditorHistoryPointer() >= 1) {\n this.imageEditorHistoryPointer.update((prev) => prev - 1);\n this.service.newImage.set(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.set(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 getBoundingCanvasHandler() {\n return this.canvasElem().nativeElement.getBoundingClientRect();\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 cropButtonHandler() {\n const cropRect = this.cropperWindow().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 this.saveImageChange();\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 this.ctx().translate(this.service.newImage().width / 2, this.service.newImage().height / 2);\n this.ctx().rotate((this.service.rotate().state * Math.PI) / 180);\n this.ctx().drawImage(this.service.newImage(), -this.service.newImage().width / 2, -this.service.newImage().height / 2, this.service.newImage().width, this.service.newImage().height);\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 saveImageChange() {\n const newImage = new Image();\n newImage.crossOrigin = 'anonymous';\n newImage.src = this.canvasElem().nativeElement.toDataURL('image/jpeg', 1);\n this.service.newImage.set(newImage);\n this.imageEditorHistory.update((prev) => [...prev, newImage]);\n const tempBlob = [];\n this.canvasElem().nativeElement.toBlob((blob) => {\n tempBlob.push(blob);\n }, 'image/jpeg', 1);\n this.canvasElem().nativeElement.toBlob((blob) => {\n tempBlob.push(blob);\n }, 'image/png', 1);\n this.canvasElem().nativeElement.toBlob((blob) => {\n tempBlob.push(blob);\n }, 'image/webp', 1);\n this.service.imageBlob.set(tempBlob);\n }\n /** @ignore */\n get __hostStyle() {\n return `width: ${this.service.initialImage()?.width}px; height: ${this.service.initialImage()?.height}px`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.4\", type: AXImageEditorViewComponent, isStandalone: true, selector: \"ax-image-editor-view\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: \"src\", publicName: \"src\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"style\": \"this.__hostStyle\" } }, 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}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\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", 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}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { __hostStyle: [{\n type: HostBinding,\n args: ['style']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsWUFBWSxFQUVaLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUMzSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFXL0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7SUEyQzdELGNBQWM7SUFDSixZQUFZO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWM7SUFDSixnQkFBZ0IsQ0FBQyxLQUF1QjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFB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QixDQUFDLEVBQ0QsV0FBVyxFQUNYLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQ3BDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsRUFDRCxZQUFZLEVBQ1osQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNZLFdBQVc7UUFDckIsT0FBTyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7SUFDNUcsQ0FBQzs4R0FqUlUsMEJBQTBCO2tHQUExQiwwQkFBMEIseVhBRjFCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLGdSQzdCaEYsaVhBWUEscVdEZ0JZLG1DQUFtQzs7MkZBR2xDLDBCQUEwQjtrQkFUdEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLG1DQUFtQyxDQUFDLGFBQ25DLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNEJBQTRCLEVBQUUsQ0FBQzt3REFpUmxFLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93L2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yVmlld0NvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogaXRzIGNoYW5nZSBncmlkIGRpc3BsYXkgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBzaG93R3JpZCA9IGlucHV0KHRydWUpO1xuICAvKipcbiAgICogaXRzIGNoYW5nZSBncmlkIGRpc3BsYXkgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBsb2NrUmF0aW8gPSBzaWduYWwoZmFsc2UpO1xuICAvKipcbiAgICogaXRzIHJlY2VpdmUgaW1hZ2Ugc3JjLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjYW52YXNFbGVtID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+PignY2FudmFzRWxlbScpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY3JvcHBlcldpbmRvdyA9IHZpZXdDaGlsZDxBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudD4oJ2YnKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGN0eCA9IHNpZ25hbDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KG51bGwpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc01vdXNlRG93biA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc0RyYXdSZWN0YW5nbGVDcmVhdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBhcmVudCA9IGluamVjdChBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUFzcGVjdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLndpZHRoIC8gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLmhlaWdodDtcbiAgfSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUVkaXRvckhpc3RvcnkgPSBzaWduYWw8SFRNTEltYWdlRWxlbWVudFtdPihbXSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KCkubGVuZ3RoIC0gMSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZXNpemVFdmVudExpc3RlbmVyO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGltYWdlTG9hZEV2ZW50TGlzdGVuZXI7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlc2l6ZVdpbmRvdygpIHtcbiAgICB0aGlzLmNhbnZhc1Jlc3BvbnNpdmUodGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNhbnZhc1Jlc3BvbnNpdmUoaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQpIHtcbiAgICBpZiAoIXRoaXMucGFyZW50LmltYWdlRWRpdG9yQ29udGFpbmVyKCkpIHJldHVybjtcblxuICAgIGNvbnN0IHBhcmVudFdpZHRoID0gKHRoaXMucGFyZW50LmltYWdlRWRpdG9yQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudCkuY2xpZW50V2lkdGg7XG4gICAgY29uc3QgaW1hZ2VXaWR0aCA9IHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UoKS53aWR0aDtcblxuICAgIGlmIChwYXJlbnRXaWR0aCA8IGltYWdlV2lkdGgpIHtcbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS53aWR0aCA9IGAke3BhcmVudFdpZHRofXB4YDtcbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS5oZWlnaHQgPSBgJHtwYXJlbnRXaWR0aCAqIHRoaXMuaW1hZ2VBc3BlY3QoKX1weGA7XG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gcGFyZW50V2lkdGg7XG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCA9IHBhcmVudFdpZHRoICogdGhpcy5pbWFnZUFzcGVjdCgpO1xuICAgICAgdGhpcy5jdHgoKS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIHBhcmVudFdpZHRoLCBwYXJlbnRXaWR0aCAqIHRoaXMuaW1hZ2VBc3BlY3QoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS53aWR0aCA9IGAke2ltYWdlV2lkdGh9cHhgO1xuICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLmhlaWdodCA9IGAke2ltYWdlV2lkdGggLyB0aGlzLmltYWdlQXNwZWN0KCl9cHhgO1xuICAgICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCA9IGltYWdlV2lkdGg7XG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCA9IGltYWdlV2lkdGggLyB0aGlzLmltYWdlQXNwZWN0KCk7XG4gICAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2VXaWR0aCwgaW1hZ2VXaWR0aCAvIHRoaXMuaW1hZ2VBc3BlY3QoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNpemVFdmVudExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4od2luZG93LCAncmVzaXplJywgdGhpcy5yZXNpemVXaW5kb3cuYmluZCh0aGlzKSk7XG4gICAgICAvL2xvYWQgaW1hZ2VcbiAgICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2Uuc2V0KG5ldyBJbWFnZSgpKTtcbiAgICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UoKS5zcmMgPSB0aGlzLnNyYygpO1xuICAgICAgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XG4gICAgICB0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLFxuICAgICAgICAnbG9hZCcsXG4gICAgICAgIHRoaXMuaW1hZ2VMb2FkZWQuYmluZCh0aGlzKSxcbiAgICAgICk7XG4gICAgICAvL3NldCBjYW52YXMgb3B0aW9uc1xuICAgICAgdGhpcy5jdHguc2V0KHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnLCB7IHdpbGxSZWFkRnJlcXVlbnRseTogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLmN0eCgpLmxpbmVKb2luID0gJ3JvdW5kJztcbiAgICAgIHRoaXMuY3R4KCkubGluZUNhcCA9ICdyb3VuZCc7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucGFyZW50LmltYWdlRWRpdG9yQ29udGFpbmVyKCkgJiYgdGhpcy5zZXJ2aWNlLmlzSW1hZ2VMb2FkKCkpIHtcbiAgICAgICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UoKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNlcnZpY2UudW5kb1ByZXNzZWQoKSkge1xuICAgICAgICB0aGlzLmltYWdlQ2hhbmdlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlLnJlZG9QcmVzc2VkKCkpIHtcbiAgICAgICAgdGhpcy5pbWFnZUNoYW5nZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZS5yb3RhdGUoKS51c2VySW50ZXJhY3QgfHwgIXRoaXMuY3R4KCkpIHJldHVybjtcbiAgICAgIHRoaXMucm90YXRlSW1hZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucmVzaXplRXZlbnRMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuaW1hZ2VMb2FkRXZlbnRMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUxvYWRlZCgpIHtcbiAgICB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeS5zZXQoW3RoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UoKV0pO1xuICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZS5zZXQodGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpKTtcbiAgICB0aGlzLnNlcnZpY2UuaXNJbWFnZUxvYWQuc2V0KHRydWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGltYWdlQ2hhbmdlZCgpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLnVuZG9QcmVzc2VkKCkgJiYgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCkgPj0gMSkge1xuICAgICAgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIDEpO1xuXG4gICAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uuc2V0KHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KClbdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCldKTtcbiAgICAgIHRoaXMuY2FudmFzUmVzcG9uc2l2ZSh0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpW3RoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VydmljZS5yZWRvUHJlc3NlZCgpICYmIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpIDwgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkoKS5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIudXBkYXRlKChwcmV2KSA9PiBwcmV2ICsgMSk7XG4gICAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uuc2V0KHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KClbdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyKCldKTtcbiAgICAgIHRoaXMuY2FudmFzUmVzcG9uc2l2ZSh0aGlzLmltYWdlRWRpdG9ySGlzdG9yeSgpW3RoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXJ2aWNlLnVuZG9QcmVzc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZXJ2aWNlLnJlZG9QcmVzc2VkLnNldChmYWxzZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcGVuQ29uZmlnSGFuZGxlcihwZW5UeXBlOiAncGVuJyB8ICdoaWdobGlnaHQnKSB7XG4gICAgc3dpdGNoIChwZW5UeXBlKSB7XG4gICAgICBjYXNlICdwZW4nOlxuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMTtcbiAgICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xuICAgICAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IHRoaXMuc2VydmljZS5wZW5XaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hpZ2hsaWdodCc6XG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAwLjAwODtcbiAgICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5oaWdobGlnaHRDb2xvcigpO1xuICAgICAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IHRoaXMuc2VydmljZS5oaWdobGlnaHRXaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCkge1xuICAgIHJldHVybiB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG1vdXNlRG93bkhhbmRsZXIoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaXNNb3VzZURvd24uc2V0KHRydWUpO1xuICAgIGlmICghdGhpcy5zZXJ2aWNlLnBlblR5cGUoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5wZW5Db25maWdIYW5kbGVyKHRoaXMuc2VydmljZS5wZW5UeXBlKCkpO1xuICAgIHRoaXMuY3R4KCkuYmVnaW5QYXRoKCk7XG4gICAgdGhpcy5jdHgoKS5tb3ZlVG8oZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkubGluZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcbiAgICB0aGlzLmN0eCgpLnN0cm9rZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG1vdXNlTW92ZUhhbmRsZXIoZTogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc01vdXNlRG93bigpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UucGVuVHlwZSgpKSByZXR1cm47XG4gICAgdGhpcy5jdHgoKS5saW5lVG8oZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbW91c2VVcEhhbmRsZXIoKSB7XG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY3R4KCkuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGNyb3BCdXR0b25IYW5kbGVyKCkge1xuICAgIGNvbnN0IGNyb3BSZWN0ID0gdGhpcy5jcm9wcGVyV2luZG93KCkuZ2V0Q3JvcHBlckFyZWEoKTtcbiAgICBjb25zdCBjYW52YXNSZWN0ID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRDbGllbnRSZWN0cygpWzBdO1xuICAgIGNvbnN0IGR4ID0gY3JvcFJlY3QueCAtIGNhbnZhc1JlY3QueDtcbiAgICBjb25zdCBkeSA9IGNyb3BSZWN0LnkgLSBjYW52YXNSZWN0Lnk7XG5cbiAgICBjb25zdCBpbWFnZURhdGEgPSB0aGlzLmN0eCgpLmdldEltYWdlRGF0YShkeCwgZHksIGNyb3BSZWN0LndpZHRoLCBjcm9wUmVjdC5oZWlnaHQpO1xuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQud2lkdGggPSBjcm9wUmVjdC53aWR0aDtcbiAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCA9IGNyb3BSZWN0LmhlaWdodDtcbiAgICB0aGlzLmN0eCgpLnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDApO1xuICAgIHRoaXMuc2F2ZUltYWdlQ2hhbmdlKCk7XG4gICAgdGhpcy5zZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZS5zZXQobnVsbCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcm90YXRlSW1hZ2UoKSB7XG4gICAgdGhpcy5jdHgoKS5nbG9iYWxBbHBoYSA9IDE7XG4gICAgdGhpcy5jdHgoKS5zYXZlKCk7XG4gICAgdGhpcy5jdHgoKS5jbGVhclJlY3QoMCwgMCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQpO1xuICAgIHRoaXMuY3R4KCkudHJhbnNsYXRlKHRoaXMuc2VydmljZS5uZXdJbWFnZSgpLndpZHRoIC8gMiwgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkuaGVpZ2h0IC8gMik7XG4gICAgdGhpcy5jdHgoKS5yb3RhdGUoKHRoaXMuc2VydmljZS5yb3RhdGUoKS5zdGF0ZSAqIE1hdGguUEkpIC8gMTgwKTtcbiAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZShcbiAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSgpLFxuICAgICAgLXRoaXMuc2VydmljZS5uZXdJbWFnZSgpLndpZHRoIC8gMixcbiAgICAgIC10aGlzLnNlcnZpY2UubmV3SW1hZ2UoKS5oZWlnaHQgLyAyLFxuICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkud2lkdGgsXG4gICAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2UoKS5oZWlnaHQsXG4gICAgKTtcbiAgICB0aGlzLmN0eCgpLnJlc3RvcmUoKTtcblxuICAgIHRoaXMuc2F2ZUltYWdlQ2hhbmdlKCk7XG4gICAgdGhpcy5zZXJ2aWNlLnJvdGF0ZS51cGRhdGUoKHByZXYpID0+IHtcbiAgICAgIHJldHVybiB7IHN0YXRlOiBwcmV2LnN0YXRlLCB1c2VySW50ZXJhY3Q6IGZhbHNlIH07XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2F2ZUltYWdlQ2hhbmdlKCkge1xuICAgIGNvbnN0IG5ld0ltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgbmV3SW1hZ2UuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICBuZXdJbWFnZS5zcmMgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDEpO1xuICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZS5zZXQobmV3SW1hZ2UpO1xuICAgIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5LnVwZGF0ZSgocHJldikgPT4gWy4uLnByZXYsIG5ld0ltYWdlXSk7XG5cbiAgICBjb25zdCB0ZW1wQmxvYiA9IFtdO1xuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9CbG9iKFxuICAgICAgKGJsb2IpID0+IHtcbiAgICAgICAgdGVtcEJsb2IucHVzaChibG9iKTtcbiAgICAgIH0sXG4gICAgICAnaW1hZ2UvanBlZycsXG4gICAgICAxLFxuICAgICk7XG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC50b0Jsb2IoXG4gICAgICAoYmxvYikgPT4ge1xuICAgICAgICB0ZW1wQmxvYi5wdXNoKGJsb2IpO1xuICAgICAgfSxcbiAgICAgICdpbWFnZS9wbmcnLFxuICAgICAgMSxcbiAgICApO1xuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9CbG9iKFxuICAgICAgKGJsb2IpID0+IHtcbiAgICAgICAgdGVtcEJsb2IucHVzaChibG9iKTtcbiAgICAgIH0sXG4gICAgICAnaW1hZ2Uvd2VicCcsXG4gICAgICAxLFxuICAgICk7XG4gICAgdGhpcy5zZXJ2aWNlLmltYWdlQmxvYi5zZXQodGVtcEJsb2IpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXG4gIHByaXZhdGUgZ2V0IF9faG9zdFN0eWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB3aWR0aDogJHt0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlKCk/LndpZHRofXB4OyBoZWlnaHQ6ICR7dGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpPy5oZWlnaHR9cHhgO1xuICB9XG59XG4iLCI8Y2FudmFzXG4gIHRhYmluZGV4PVwiMVwiXG4gIChwb2ludGVyZG93bik9XCJtb3VzZURvd25IYW5kbGVyKCRldmVudClcIlxuICAocG9pbnRlcnVwKT1cIm1vdXNlVXBIYW5kbGVyKClcIlxuICAocG9pbnRlcm1vdmUpPVwibW91c2VNb3ZlSGFuZGxlcigkZXZlbnQpXCJcbiAgY2xhc3M9XCJheC1jYW52YXMtZWxlbWVudFwiXG4gICNjYW52YXNFbGVtXG4+PC9jYW52YXM+XG5cbkBpZiAodGhpcy5zZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpID09PSAnY3JvcCcpIHtcbiAgPGF4LWltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdyBbc2hvd0dyaWRdPVwic2hvd0dyaWQoKVwiICNmPjwvYXgtaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93PlxufVxuIl19","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { Component, contentChild, forwardRef, HostBinding, inject, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\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 { 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 { AXImageEditorViewComponent } from '../image-editor-view/image-editor-view.component';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/toolbar\";\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 }\n /**\n * Saves the current edited image and commits the value to the component.\n * If the image has been modified, it commits the image blob array. If no changes were made, it commits null.\n *\n * @returns void - No return value. The edited image is saved and the onValueChanged event is emitted.\n */\n save() {\n if (this.service.initialImage() !== this.service.newImage()) {\n this.commitValue(this.service.imageBlob(), true);\n }\n else {\n this.commitValue(null);\n }\n }\n cropButtonHandler() {\n this.view().cropButtonHandler();\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.2.4\", ngImport: i0, type: AXImageEditorContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.4\", 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 @if (service.activeToolState()) {\\n <ax-toolbar class=\\\"ax-secondary-toolbar\\\">\\n <ax-prefix>\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n <ax-image-editor-pen></ax-image-editor-pen>\\n }\\n @case ('crop') {\\n <ax-image-editor-crop (cropPressed)=\\\"cropButtonHandler()\\\"></ax-image-editor-crop>\\n }\\n @case ('highlight') {\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n }\\n @case ('rotate') {\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n }\\n }\\n </ax-prefix>\\n </ax-toolbar>\\n }\\n\\n <ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-content>\\n <ax-image-editor-tool-selector></ax-image-editor-tool-selector>\\n </ax-content>\\n </ax-toolbar>\\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-main-toolbar{justify-content:center;padding:.2rem}ax-image-editor-container .ax-secondary-toolbar{padding:.2rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-surface));justify-content:center}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: 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: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"ngmodule\", type: AXToolBarModule }, { kind: \"component\", type: i2.AXToolBarComponent, selector: \"ax-toolbar\" }, { kind: \"component\", type: AXImageEditorCropComponent, selector: \"ax-image-editor-crop\", outputs: [\"cropPressed\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: AXImageEditorToolSelectorComponent, selector: \"ax-image-editor-tool-selector\" }, { kind: \"component\", type: AXImageEditorPenComponent, selector: \"ax-image-editor-pen\" }, { kind: \"component\", type: AXImageEditorHighlightComponent, selector: \"ax-image-editor-highlight\" }, { kind: \"component\", type: AXImageEditorRotateComponent, selector: \"ax-image-editor-rotate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", 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: [\n AXDecoratorModule,\n AXLoadingSpinnerComponent,\n AXToolBarModule,\n AXImageEditorCropComponent,\n AXButtonModule,\n AXImageEditorToolSelectorComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n ], 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 @if (service.activeToolState()) {\\n <ax-toolbar class=\\\"ax-secondary-toolbar\\\">\\n <ax-prefix>\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n <ax-image-editor-pen></ax-image-editor-pen>\\n }\\n @case ('crop') {\\n <ax-image-editor-crop (cropPressed)=\\\"cropButtonHandler()\\\"></ax-image-editor-crop>\\n }\\n @case ('highlight') {\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n }\\n @case ('rotate') {\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n }\\n }\\n </ax-prefix>\\n </ax-toolbar>\\n }\\n\\n <ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-content>\\n <ax-image-editor-tool-selector></ax-image-editor-tool-selector>\\n </ax-content>\\n </ax-toolbar>\\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-main-toolbar{justify-content:center;padding:.2rem}ax-image-editor-container .ax-secondary-toolbar{padding:.2rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-surface));justify-content:center}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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrRUFBK0Us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QyxDQUFDOzRCQUM5RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixXQUNRO3dCQUNQLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsY0FBYzt3QkFDZCxrQ0FBa0M7d0JBQ2xDLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQiw0QkFBNEI7cUJBQzdCOzhCQTZCRyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFPUixVQUFVO3NCQURyQixXQUFXO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbXBvbmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQsXG4gIE1YTG9va0NvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFRvb2xCYXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbGJhcic7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaWdobGlnaHQvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItcGVuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yL2ltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBwYWludCBjb250YWluZXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIG91dHB1dHM6IFsnb25WYWx1ZUNoYW5nZWQnXSxcbiAgaW5wdXRzOiBbJ2xvb2snLCAnZGlzYWJsZWQnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhJbWFnZUVkaXRvclNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYTG9hZGluZ1NwaW5uZXJDb21wb25lbnQsXG4gICAgQVhUb29sQmFyTW9kdWxlLFxuICAgIEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50LFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYSW1hZ2VFZGl0b3JUb29sU2VsZWN0b3JDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCxcbiAgICBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8QmxvYltdPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBpbWFnZUVkaXRvckNvbnRhaW5lciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignZicpO1xuXG4gIHZpZXcgPSBjb250ZW50Q2hpbGQ8QVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQ+KEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50KTtcblxuICAvKipcbiAgICogU2F2ZXMgdGhlIGN1cnJlbnQgZWRpdGVkIGltYWdlIGFuZCBjb21taXRzIHRoZSB2YWx1ZSB0byB0aGUgY29tcG9uZW50LlxuICAgKiBJZiB0aGUgaW1hZ2UgaGFzIGJlZW4gbW9kaWZpZWQsIGl0IGNvbW1pdHMgdGhlIGltYWdlIGJsb2IgYXJyYXkuIElmIG5vIGNoYW5nZXMgd2VyZSBtYWRlLCBpdCBjb21taXRzIG51bGwuXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWQgLSBObyByZXR1cm4gdmFsdWUuIFRoZSBlZGl0ZWQgaW1hZ2UgaXMgc2F2ZWQgYW5kIHRoZSBvblZhbHVlQ2hhbmdlZCBldmVudCBpcyBlbWl0dGVkLlxuICAgKi9cbiAgc2F2ZSgpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpICE9PSB0aGlzLnNlcnZpY2UubmV3SW1hZ2UoKSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iKCksIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjcm9wQnV0dG9uSGFuZGxlcigpIHtcbiAgICB0aGlzLnZpZXcoKS5jcm9wQnV0dG9uSGFuZGxlcigpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm4gJ2F4LXN0YXRlLWRpc2FibGVkJztcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmFtZScpXG4gIHByaXZhdGUgZ2V0IF9faG9zdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG59XG4iLCJAaWYgKHNlcnZpY2UuaXNJbWFnZUxvYWQoKSkge1xuICA8ZGl2ICNmIGNsYXNzPVwiYXgtZWRpdG9yLWNvbnRhaW5lciAgYXgte3sgbG9vayB9fVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWltYWdlLWVkaXRvci12aWV3XCI+IDwvbmctY29udGVudD5cblxuICAgIEBpZiAoc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSkge1xuICAgICAgPGF4LXRvb2xiYXIgY2xhc3M9XCJheC1zZWNvbmRhcnktdG9vbGJhclwiPlxuICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgIEBzd2l0Y2ggKHNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkpIHtcbiAgICAgICAgICAgIEBjYXNlICgncGVuJykge1xuICAgICAgICAgICAgICA8YXgtaW1hZ2UtZWRpdG9yLXBlbj48L2F4LWltYWdlLWVkaXRvci1wZW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ2Nyb3AnKSB7XG4gICAgICAgICAgICAgIDxheC1pbWFnZS1lZGl0b3ItY3JvcCAoY3JvcFByZXNzZWQpPVwiY3JvcEJ1dHRvbkhhbmRsZXIoKVwiPjwvYXgtaW1hZ2UtZWRpdG9yLWNyb3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ2hpZ2hsaWdodCcpIHtcbiAgICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1oaWdobGlnaHQ+PC9heC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCdyb3RhdGUnKSB7XG4gICAgICAgICAgICAgIDxheC1pbWFnZS1lZGl0b3Itcm90YXRlPjwvYXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPC9heC10b29sYmFyPlxuICAgIH1cblxuICAgIDxheC10b29sYmFyIGNsYXNzPVwiYXgtbWFpbi10b29sYmFyXCI+XG4gICAgICA8YXgtY29udGVudD5cbiAgICAgICAgPGF4LWltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yPjwvYXgtaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3I+XG4gICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgPC9heC10b29sYmFyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LWVycm9yLWNvbnRhaW5lclwiPjwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJheC1sb2FkaW5nLXNwaW5uZXItY29udGFpbmVyXCI+XG4gICAgPGF4LWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCIxNlwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJMb2FkaW5nIEltYWdlIC4uLlwiPjwvYXgtbG9hZGluZy1zcGlubmVyPlxuICA8L2Rpdj5cbn1cbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPiA8L25nLWNvbnRlbnQ+XG5cbkBpZiAoZGlzYWJsZWQpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWRpc2FibGUtb3ZlcmxheVwiPjwvZGl2PlxufVxuIl19","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.2.4\", ngImport: i0, type: AXImageEditorHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", 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.2.4\", 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 { 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 { 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 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.2.4\", ngImport: i0, type: AXImageEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.2.4\", 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 AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent], exports: [AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDL0gsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0ZBQXNGLENBQUM7QUFDMUksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBRTdGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLDBCQUEwQjtJQUMxQiwrQkFBK0I7SUFDL0IsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QixrQ0FBa0M7SUFDbEMseUJBQXlCO0lBQ3pCLCtCQUErQjtJQUMvQiw0QkFBNEI7SUFDNUIsbUNBQW1DO0NBQ3BDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRztJQUNkLGNBQWM7SUFDZCxXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsY0FBYztDQUNmLENBQUM7QUFPRixNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQWhCOUIsY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixjQUFjLEVBcEJkLDBCQUEwQjtZQUMxQiwrQkFBK0I7WUFDL0IsMEJBQTBCO1lBQzFCLDZCQUE2QjtZQUM3QixrQ0FBa0M7WUFDbEMseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7WUFDNUIsbUNBQW1DLGFBUm5DLDBCQUEwQjtZQUMxQiwrQkFBK0I7WUFDL0IsMEJBQTBCO1lBQzFCLDZCQUE2QjtZQUM3QixrQ0FBa0M7WUFDbEMseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7WUFDNUIsbUNBQW1DOytHQW9CeEIsbUJBQW1CLFlBSmpCLE9BQU8sRUFBSyxTQUFTOzsyRkFJdkIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb2xvckJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb2xvci1ib3gnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhSYW5nZVNsaWRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlzdG9yeUNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaXN0b3J5L2ltYWdlLWVkaXRvci1oaXN0b3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQnO1xuXG5jb25zdCBDT01QT05FTlQgPSBbXG4gIEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCxcbiAgQVhJbWFnZUVkaXRvckhpc3RvcnlDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JUb29sU2VsZWN0b3JDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JQZW5Db21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50LFxuXTtcblxuY29uc3QgTU9EVUxFUyA9IFtcbiAgQVhCdXR0b25Nb2R1bGUsXG4gIEZvcm1zTW9kdWxlLFxuICBBWFJhbmdlU2xpZGVyTW9kdWxlLFxuICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgQVhDb2xvckJveE1vZHVsZSxcbiAgQVhQb3BvdmVyTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuICBBWERpYWxvZ01vZHVsZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTLCAuLi5DT01QT05FTlRdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvck1vZHVsZSB7fVxuIl19","/**\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-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-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-tool-selector/image-editor-tool-selector.component.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-tools/image-editor-history/image-editor-history.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 }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRUUsb0JBQWUsR0FBRyxNQUFNLENBQXNELElBQUksMkRBQUMsQ0FBQztRQUNwRixhQUFRLEdBQUcsTUFBTSxDQUEwQyxpQkFBaUIsb0RBQUMsQ0FBQztRQUM5RSxtQkFBYyxHQUFHLE1BQU0sQ0FBMEMsbUJBQW1CLDBEQUFDLENBQUM7UUFDdEYsYUFBUSxHQUFHLE1BQU0sQ0FBUyxFQUFFLG9EQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxNQUFNLENBQVMsRUFBRSwwREFBQyxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxNQUFNLENBQXNCLElBQUksbURBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGtEQUFDLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGFBQVEsR0FBNEIsSUFBSSxDQUFDO1FBQ3pDLGlCQUFZLEdBQTRCLElBQUksQ0FBQztRQUM3QyxjQUFTLEdBQUcsTUFBTSxDQUFTLEVBQUUscURBQUMsQ0FBQztRQUMvQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUFpQixJQUFJLHdEQUFDLENBQUM7S0FDN0M7OEdBZlksb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIHtcbiAgYWN0aXZlVG9vbFN0YXRlID0gc2lnbmFsPCdwZW4nIHwgJ2hpZ2hsaWdodCcgfCAnY3JvcCcgfCAncm90YXRlJyB8ICdoaXN0b3J5Jz4obnVsbCk7XG4gIHBlbkNvbG9yID0gc2lnbmFsPHN0cmluZyB8IENhbnZhc0dyYWRpZW50IHwgQ2FudmFzUGF0dGVybj4oJ3JnYigxMiwgMTIsIDEyKScpO1xuICBoaWdobGlnaHRDb2xvciA9IHNpZ25hbDxzdHJpbmcgfCBDYW52YXNHcmFkaWVudCB8IENhbnZhc1BhdHRlcm4+KCdyZ2IoMjU1LCAyMTAsIDQ4KScpO1xuICBwZW5XaWR0aCA9IHNpZ25hbDxudW1iZXI+KDEwKTtcbiAgaGlnaGxpZ2h0V2lkdGggPSBzaWduYWw8bnVtYmVyPigxMCk7XG4gIHBlblR5cGUgPSBzaWduYWw8J3BlbicgfCAnaGlnaGxpZ2h0Jz4obnVsbCk7XG4gIHJvdGF0ZSA9IHNpZ25hbCh7IHN0YXRlOiAwLCB1c2VySW50ZXJhY3Q6IGZhbHNlIH0pO1xuICBpc0ltYWdlTG9hZCA9IHNpZ25hbChmYWxzZSk7XG4gIG5ld0ltYWdlOiBIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIGluaXRpYWxJbWFnZTogSFRNTEltYWdlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBpbWFnZUJsb2IgPSBzaWduYWw8QmxvYltdPihbXSk7XG4gIHVuZG9QcmVzc2VkID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVkb1ByZXNzZWQgPSBzaWduYWwoZmFsc2UpO1xuICBjcm9wcGVyUmF0aW8gPSBzaWduYWw8JzE6MScgfCAnMTY6OSc+KG51bGwpO1xufVxuIl19","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, inject, output, 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 AXImageEditorCropComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n this.cropPressed = output();\n }\n cropButtonHandler() {\n this.cropPressed.emit();\n }\n ratioHandler(r) {\n if (this.service.cropperRatio()) {\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.2.4\", ngImport: i0, type: AXImageEditorCropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorCropComponent, isStandalone: true, selector: \"ax-image-editor-crop\", outputs: { cropPressed: \"cropPressed\" }, providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], ngImport: i0, template: \"<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n></ax-button>\\n\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '1:1' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"1:1\\\"\\n></ax-button>\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '16:9' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"16:9\\\"\\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.2.4\", ngImport: i0, type: AXImageEditorCropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-crop', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropComponent }], template: \"<ax-button\\n (click)=\\\"cropButtonHandler()\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n [text]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n></ax-button>\\n\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '1:1' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '1:1' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('1:1')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"1:1\\\"\\n></ax-button>\\n<ax-button\\n [selected]=\\\"this.service.cropperRatio() === '16:9' ? true : false\\\"\\n [color]=\\\"this.service.cropperRatio() === '16:9' ? 'primary' : 'default'\\\"\\n (click)=\\\"ratioHandler('16:9')\\\"\\n class=\\\"ax-crop-save ax-sm\\\"\\n text=\\\"16:9\\\"\\n></ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBQ2xFOzs7R0FHRztBQVFILE1BQU0sT0FBTywwQkFBMEI7SUFQdkM7UUFRWSxZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsZ0JBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQztLQWF4QjtJQVhXLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxZQUFZLENBQUMsQ0FBaUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDOzhHQWZVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDRHQUYxQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQywwQkNmaEYsd3FCQW9CQSw0Q0ROWSxpQkFBaUIsc1VBQUUsU0FBUyx5Q0FBRSxnQkFBZ0I7OzJGQUc3QywwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usc0JBQXNCLGlCQUVqQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLGFBQzlDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNEJBQTRCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItY3JvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY3JvcC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWEJ1dHRvbkNvbXBvbmVudCwgQXN5bmNQaXBlLCBBWFRyYW5zbGF0b3JQaXBlXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JDcm9wQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICBjcm9wUHJlc3NlZCA9IG91dHB1dCgpO1xuXG4gIHByb3RlY3RlZCBjcm9wQnV0dG9uSGFuZGxlcigpIHtcbiAgICB0aGlzLmNyb3BQcmVzc2VkLmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByYXRpb0hhbmRsZXIocjogJzE6MScgfCAnMTY6OScpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpby5zZXQocik7XG4gICAgfVxuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIChjbGljayk9XCJjcm9wQnV0dG9uSGFuZGxlcigpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgtc21cIlxuICBbdGV4dF09XCInQGFjb3JleDppbWFnZS1lZGl0b3IuY3JvcCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4+PC9heC1idXR0b24+XG5cbjxheC1idXR0b25cbiAgW3NlbGVjdGVkXT1cInRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE6MScgPyB0cnVlIDogZmFsc2VcIlxuICBbY29sb3JdPVwidGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJyA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXG4gIChjbGljayk9XCJyYXRpb0hhbmRsZXIoJzE6MScpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgtc21cIlxuICB0ZXh0PVwiMToxXCJcbj48L2F4LWJ1dHRvbj5cbjxheC1idXR0b25cbiAgW3NlbGVjdGVkXT1cInRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknID8gdHJ1ZSA6IGZhbHNlXCJcbiAgW2NvbG9yXT1cInRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgKGNsaWNrKT1cInJhdGlvSGFuZGxlcignMTY6OScpXCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgtc21cIlxuICB0ZXh0PVwiMTY6OVwiXG4+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/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorHighlightComponent {\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.2.4\", ngImport: i0, type: AXImageEditorHighlightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorHighlightComponent, isStandalone: true, selector: \"ax-image-editor-highlight\", providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], 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\", styles: [\"ax-image-editor-highlight{display:flex}ax-image-editor-highlight ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-highlight ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\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.2.4\", ngImport: i0, type: AXImageEditorHighlightComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-highlight', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorHighlightComponent }], 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\", styles: [\"ax-image-editor-highlight{display:flex}ax-image-editor-highlight ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-highlight ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0L2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEU7OztHQUdHO0FBd0JILE1BQU0sT0FBTywrQkFBK0I7SUF2QjVDO1FBd0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osa0JBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUseURBQUMsQ0FBQztRQUVoRSxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7S0FXakQ7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDOzhHQWpCVSwrQkFBK0I7a0dBQS9CLCtCQUErQix3RUFGL0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLENBQUMsMEJDcENyRiw4WkFZQSw2U0RPWSxtQkFBbUIsa1dBQUUsV0FBVywrVkFBRSxzQkFBc0IsMlFBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFtQnBGLCtCQUErQjtrQkF2QjNDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUV0QixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQ2hHLHVCQUF1QixDQUFDLE1BQU0sYUFnQnBDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsaUNBQWlDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQ29sb3JCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sb3ItYm94JztcbmltcG9ydCB7IEFYUmFuZ2VTbGlkZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyJztcblxuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1oaWdobGlnaHQuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhDb2xvckJveENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFYUmFuZ2VTbGlkZXJDb21wb25lbnQsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlczogYFxuICAgIGF4LWltYWdlLWVkaXRvci1oaWdobGlnaHQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGF4LXJhbmdlLXNsaWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB3aWR0aDogMTByZW07XG4gICAgICAgIC5heC1yYW5nZS1zbGlkZXIge1xuICAgICAgICAgIC5heC1yYW5nZS1zbGlkZXItaGFuZGxlciB7XG4gICAgICAgICAgICB3aWR0aDogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvckhpZ2hsaWdodENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb2xvciA9IHNpZ25hbCh0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0Q29sb3IoKSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHZhbHVlID0gdGhpcy5zZXJ2aWNlLmhpZ2hsaWdodFdpZHRoKCk7XG5cbiAgcHJvdGVjdGVkIGNoYW5nZUNvbG9ySGFuZGxlcihlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0Q29sb3Iuc2V0KGUpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvci5zZXQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWVIYW5kbGVyKGU6IG51bWJlcikge1xuICAgIHRoaXMuc2VydmljZS5oaWdobGlnaHRXaWR0aC5zZXQoZSk7XG4gIH1cbn1cbiIsIjxheC1jb2xvci1ib3hcbiAgW3Nob3dWYWx1ZV09XCJmYWxzZVwiXG4gIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6cGFpbnQudG9vbHMuaGlnaGxpZ2h0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgbG9vaz1cIm5vbmVcIlxuICBbbmdNb2RlbF09XCJzZWxlY3RlZENvbG9yKClcIlxuICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvckhhbmRsZXIoJGV2ZW50KVwiXG4+XG48L2F4LWNvbG9yLWJveD5cblxuPGF4LXJhbmdlLXNsaWRlciBbbWluXT1cIjJcIiBbbWF4XT1cIjIwXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlSGFuZGxlcigkZXZlbnQpXCI+PC9heC1yYW5nZS1zbGlkZXI+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/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorPenComponent {\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.2.4\", ngImport: i0, type: AXImageEditorPenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorPenComponent, isStandalone: true, selector: \"ax-image-editor-pen\", providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], 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\", styles: [\"ax-image-editor-pen{display:flex}ax-image-editor-pen ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-pen ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\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.2.4\", ngImport: i0, type: AXImageEditorPenComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-pen', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent, AsyncPipe, AXTranslatorPipe, AXTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorPenComponent }], 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\", styles: [\"ax-image-editor-pen{display:flex}ax-image-editor-pen ax-range-slider{padding:.5rem .75rem;width:10rem}ax-image-editor-pen ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXBlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3ItcGVuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFbEU7OztHQUdHO0FBd0JILE1BQU0sT0FBTyx5QkFBeUI7SUF2QnRDO1FBd0JZLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0osVUFBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFMUMsY0FBYztRQUNKLGtCQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLHlEQUFDLENBQUM7S0FXM0Q7SUFUVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVksQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWpCVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixrRUFGekIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFLENBQUMsMEJDcEMvRSx3WkFZQSwyUkRPWSxtQkFBbUIsa1dBQUUsV0FBVywrVkFBRSxzQkFBc0IsMlFBQStCLGVBQWUsa1JBQTVDLFNBQVMseUNBQUUsZ0JBQWdCOzsyRkFtQnBGLHlCQUF5QjtrQkF2QnJDLFNBQVM7K0JBQ0UscUJBQXFCLGlCQUVoQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQ2hHLHVCQUF1QixDQUFDLE1BQU0sYUFnQnBDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsMkJBQTJCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQ29sb3JCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sb3ItYm94JztcbmltcG9ydCB7IEFYUmFuZ2VTbGlkZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyJztcblxuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1pbWFnZS1lZGl0b3ItcGVuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci1wZW4uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhDb2xvckJveENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEFYUmFuZ2VTbGlkZXJDb21wb25lbnQsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZSwgQVhUb29sdGlwTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlczogYFxuICAgIGF4LWltYWdlLWVkaXRvci1wZW4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGF4LXJhbmdlLXNsaWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB3aWR0aDogMTByZW07XG4gICAgICAgIC5heC1yYW5nZS1zbGlkZXIge1xuICAgICAgICAgIC5heC1yYW5nZS1zbGlkZXItaGFuZGxlciB7XG4gICAgICAgICAgICB3aWR0aDogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclBlbkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWUgPSB0aGlzLnNlcnZpY2UucGVuV2lkdGgoKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb2xvciA9IHNpZ25hbCh0aGlzLnNlcnZpY2UucGVuQ29sb3IoKSk7XG5cbiAgcHJvdGVjdGVkIGNoYW5nZUNvbG9ySGFuZGxlcihlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UucGVuQ29sb3Iuc2V0KGUpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvci5zZXQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWVIYW5kbGVyKGU6IG51bWJlcikge1xuICAgIHRoaXMuc2VydmljZS5wZW5XaWR0aC5zZXQoZSk7XG4gIH1cbn1cbiIsIjxheC1jb2xvci1ib3hcbiAgW3Nob3dWYWx1ZV09XCJmYWxzZVwiXG4gIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6cGFpbnQudG9vbHMucGVuJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgbG9vaz1cIm5vbmVcIlxuICBbbmdNb2RlbF09XCJzZWxlY3RlZENvbG9yKClcIlxuICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvckhhbmRsZXIoJGV2ZW50KVwiXG4+XG48L2F4LWNvbG9yLWJveD5cblxuPGF4LXJhbmdlLXNsaWRlciBbbWluXT1cIjJcIiBbbWF4XT1cIjIwXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlSGFuZGxlcigkZXZlbnQpXCI+PC9heC1yYW5nZS1zbGlkZXI+XG4iXX0=","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/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorRotateComponent {\n constructor() {\n /** @ignore */\n this.service = inject(AXImageEditorService);\n }\n /** @ignore */\n rotateRightHandler() {\n this.service.rotate.set({ state: 90, userInteract: true });\n }\n /** @ignore */\n rotateLeftHandler() {\n this.service.rotate.set({ state: -90, userInteract: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorRotateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorRotateComponent, isStandalone: true, selector: \"ax-image-editor-rotate\", providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], 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.2.4\", ngImport: i0, type: AXImageEditorRotateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-rotate', encapsulation: ViewEncapsulation.None, imports: [\n AXButtonComponent,\n AXTooltipDirective,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXImageEditorRotateComponent }], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXJvdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3Itcm90YXRlL2ltYWdlLWVkaXRvci1yb3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVsRTs7O0dBR0c7QUFnQkgsTUFBTSxPQUFPLDRCQUE0QjtJQWZ6QztRQWdCRSxjQUFjO1FBQ0osWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBV2xEO0lBVEMsY0FBYztJQUNKLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxjQUFjO0lBQ0osaUJBQWlCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDOzhHQVpVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHFFQUY1QixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQywwQkMxQmxGLDZmQWlCQSw0Q0RDSSxpQkFBaUIsMlVBQ2pCLGtCQUFrQixtT0FDbEIsd0JBQXdCLHFFQUd4QixlQUFlLDBCQUZmLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCw0QkFBNEI7a0JBZnhDLFNBQVM7K0JBQ0Usd0JBQXdCLGlCQUVuQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDhCQUE4QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwRGlyZWN0aXZlLCBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2ltYWdlLWVkaXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBwYWludCBtb2RlLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhUb29sdGlwTW9kdWxlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQge1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJvdGF0ZVJpZ2h0SGFuZGxlcigpIHtcbiAgICB0aGlzLnNlcnZpY2Uucm90YXRlLnNldCh7IHN0YXRlOiA5MCwgdXNlckludGVyYWN0OiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJvdGF0ZUxlZnRIYW5kbGVyKCkge1xuICAgIHRoaXMuc2VydmljZS5yb3RhdGUuc2V0KHsgc3RhdGU6IC05MCwgdXNlckludGVyYWN0OiB0cnVlIH0pO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uXG4gIFtheFRvb2x0aXBdPVwiJ0BhY29yZXg6aW1hZ2UtZWRpdG9yLnJvdGF0ZS1sZWZ0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgKGNsaWNrKT1cInJvdGF0ZUxlZnRIYW5kbGVyKClcIlxuICBsb29rPVwiYmxhbmtcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hcnJvdy10dXJuLWxlZnRcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OmltYWdlLWVkaXRvci5yb3RhdGUtcmlnaHQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAoY2xpY2spPVwicm90YXRlUmlnaHRIYW5kbGVyKClcIlxuICBsb29rPVwiYmxhbmtcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hcnJvdy10dXJuLXJpZ2h0XCI+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 { 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 AXImageEditorToolSelectorComponent {\n constructor() {\n this.service = inject(AXImageEditorService);\n }\n changeToolHandler(tool) {\n if (this.service.activeToolState() === tool) {\n this.service.activeToolState.set(null);\n return;\n }\n this.service.activeToolState.set(tool);\n if (tool === 'pen' || tool === 'highlight') {\n this.service.penType.set(tool);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorToolSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", type: AXImageEditorToolSelectorComponent, isStandalone: true, selector: \"ax-image-editor-tool-selector\", providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], ngImport: i0, template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'pen' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'highlight' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'crop' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'rotate' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\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: \"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\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorToolSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-tool-selector', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective, AsyncPipe, AXTranslatorPipe, AXTooltipModule], providers: [{ provide: AXComponent, useExisting: AXImageEditorToolSelectorComponent }], template: \"<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.pen' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('pen')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'pen' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'pen' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-pen\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:paint.tools.highlight' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('highlight')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'highlight' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'highlight' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-highlight\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.crop' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('crop')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'crop' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'crop' ? 'primary' : 'default'\\\"\\n>\\n <ax-icon class=\\\"ax-icon ax-icon-crop\\\"></ax-icon>\\n</ax-button>\\n\\n<ax-button\\n [axTooltip]=\\\"'@acorex:image-editor.rotate' | translate | async\\\"\\n axTooltipPlacement=\\\"top\\\"\\n (onClick)=\\\"changeToolHandler('rotate')\\\"\\n look=\\\"blank\\\"\\n [selected]=\\\"this.service.activeToolState() === 'rotate' ? true : false\\\"\\n [color]=\\\"this.service.activeToolState() === 'rotate' ? 'primary' : 'default'\\\"\\n>\\n <i class=\\\"fa-solid fa-rotate\\\"></i>\\n</ax-button>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVsRTs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0NBQWtDO0lBUC9DO1FBUVksWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBY2xEO0lBWlcsaUJBQWlCLENBQUMsSUFBNkM7UUFDdkUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzs4R0FkVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyw0RUFGbEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsMEJDbEJ4Rix3a0RBMkNBLDRDRDFCWSxpQkFBaUIsMFVBQUUsaUJBQWlCLGdJQUFFLGtCQUFrQixrT0FBK0IsZUFBZSwwQkFBNUMsU0FBUyx5Q0FBRSxnQkFBZ0I7OzJGQUdwRixrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsK0JBQStCLGlCQUUxQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxhQUN0RyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLG9DQUFvQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFRvb2x0aXBEaXJlY3RpdmUsIEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogcGFpbnQgbW9kZS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYQnV0dG9uQ29tcG9uZW50LCBBWERlY29yYXRvck1vZHVsZSwgQVhUb29sdGlwRGlyZWN0aXZlLCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGUsIEFYVG9vbHRpcE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjaGFuZ2VUb29sSGFuZGxlcih0b29sOiAncGVuJyB8ICdoaWdobGlnaHQnIHwgJ2Nyb3AnIHwgJ3JvdGF0ZScpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpID09PSB0b29sKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlLnNldChudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlLnNldCh0b29sKTtcblxuICAgIGlmICh0b29sID09PSAncGVuJyB8fCB0b29sID09PSAnaGlnaGxpZ2h0Jykge1xuICAgICAgdGhpcy5zZXJ2aWNlLnBlblR5cGUuc2V0KHRvb2wpO1xuICAgIH1cbiAgfVxufVxuIiwiPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLnBlbicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cImNoYW5nZVRvb2xIYW5kbGVyKCdwZW4nKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdwZW4nID8gdHJ1ZSA6IGZhbHNlXCJcbiAgW2NvbG9yXT1cInRoaXMuc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ3BlbicgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wZW5cIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OnBhaW50LnRvb2xzLmhpZ2hsaWdodCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gIGF4VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gIChvbkNsaWNrKT1cImNoYW5nZVRvb2xIYW5kbGVyKCdoaWdobGlnaHQnKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdoaWdobGlnaHQnID8gdHJ1ZSA6IGZhbHNlXCJcbiAgW2NvbG9yXT1cInRoaXMuc2VydmljZS5hY3RpdmVUb29sU3RhdGUoKSA9PT0gJ2hpZ2hsaWdodCcgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1oaWdobGlnaHRcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OmltYWdlLWVkaXRvci5jcm9wJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgYXhUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgKG9uQ2xpY2spPVwiY2hhbmdlVG9vbEhhbmRsZXIoJ2Nyb3AnKVwiXG4gIGxvb2s9XCJibGFua1wiXG4gIFtzZWxlY3RlZF09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdjcm9wJyA/IHRydWUgOiBmYWxzZVwiXG4gIFtjb2xvcl09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdjcm9wJyA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXG4+XG4gIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNyb3BcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cblxuPGF4LWJ1dHRvblxuICBbYXhUb29sdGlwXT1cIidAYWNvcmV4OmltYWdlLWVkaXRvci5yb3RhdGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAob25DbGljayk9XCJjaGFuZ2VUb29sSGFuZGxlcigncm90YXRlJylcIlxuICBsb29rPVwiYmxhbmtcIlxuICBbc2VsZWN0ZWRdPVwidGhpcy5zZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpID09PSAncm90YXRlJyA/IHRydWUgOiBmYWxzZVwiXG4gIFtjb2xvcl09XCJ0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdyb3RhdGUnID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbj5cbiAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGVcIj48L2k+XG48L2F4LWJ1dHRvbj5cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { CommonModule, 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\";\nimport * as i1 from \"@angular/common\";\n/**\n * paint mode.\n * @category Components\n */\nexport class AXImageEditorCropperWindowComponent {\n constructor() {\n this.showGrid = input(true, ...(ngDevMode ? [{ debugName: \"showGrid\" }] : []));\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.renderer = inject(Renderer2);\n this.platformID = inject(PLATFORM_ID);\n this.#eff = effect(() => {\n const host = this.elementRef.nativeElement;\n if (this.service.cropperRatio() === '1:1') {\n host.style.width = `${150}px`;\n host.style.height = `${150}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.width = `${266.6}px`;\n host.style.height = `${150}px`;\n }\n else {\n host.style.width = `${150}px`;\n host.style.height = `${150}px`;\n }\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 this.mouseLeaveEvent = this.renderer.listen(host, 'pointerleave', this.panUp.bind(this));\n });\n });\n this.#positionChange = effect(() => {\n this.setPosition(this.currentX(), this.currentY());\n }, ...(ngDevMode ? [{ debugName: \"#positionChange\" }] : []));\n this.edgeCase = false;\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.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 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 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.panState())\n return;\n if (!this.selectedHandle())\n return;\n const host = this.elementRef.nativeElement;\n const rect = host.getBoundingClientRect();\n const dy = e.clientY - this.startY;\n const dx = e.clientX - this.startX;\n if (rect.width < 20 || rect.height < 20) {\n this.edgeCase = true;\n return;\n }\n switch (this.selectedHandle()) {\n case 'right':\n host.style.width = `${e.movementX + rect.width}px`;\n break;\n case 'top':\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n break;\n case 'left':\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n break;\n case 'bottom':\n host.style.height = `${rect.height + e.movementY}px`;\n break;\n case 'right-top':\n if (this.service.cropperRatio() === '1:1') {\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n host.style.width = `${this.startHeight - dy}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n host.style.width = `${(this.startHeight - dy) * 1.77}px`;\n }\n else {\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n host.style.width = `${e.movementX + rect.width}px`;\n }\n break;\n case 'bottom-right':\n if (this.service.cropperRatio() === '1:1') {\n host.style.width = `${e.movementX + rect.width}px`;\n host.style.height = `${e.movementX + rect.width}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.height = `${e.movementX + rect.height}px`;\n host.style.width = `${(e.movementX + rect.height) * 1.77}px`;\n }\n else {\n host.style.height = `${rect.height + e.movementY}px`;\n host.style.width = `${e.movementX + rect.width}px`;\n }\n break;\n case 'bottom-left':\n if (this.service.cropperRatio() === '1:1') {\n host.style.height = `${this.startWidth - dx}px`;\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.height = `${(this.startWidth - dx) / 1.77}px`;\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n }\n else {\n host.style.height = `${rect.height + e.movementY}px`;\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n }\n break;\n case 'left-top':\n if (this.service.cropperRatio() === '1:1') {\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n host.style.height = `${this.startWidth - dx}px`;\n host.style.top = `${this.startLeft + dx}px`;\n }\n else if (this.service.cropperRatio() === '16:9') {\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n host.style.height = `${(this.startWidth - dx) / 1.77}px`;\n host.style.top = `${this.startLeft + dx}px`;\n }\n else {\n host.style.width = `${this.startWidth - dx}px`;\n host.style.left = `${this.startLeft + dx}px`;\n host.style.height = `${this.startHeight - dy}px`;\n host.style.top = `${this.startTop + dy}px`;\n }\n }\n }\n clearSelector() {\n if (this.panState())\n return;\n const host = this.elementRef.nativeElement;\n if (this.edgeCase) {\n host.style.height = `20px`;\n host.style.width = `20px`;\n this.edgeCase = false;\n }\n this.selectedHandle.set(null);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorCropperWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.4\", type: AXImageEditorCropperWindowComponent, isStandalone: true, selector: \"ax-image-editor-cropper-window\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", 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 [ngStyle]=\\\"!showGrid() && { border: '1px dashed white' }\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!this.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\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorCropperWindowComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-image-editor-cropper-window', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], providers: [{ provide: AXComponent, useExisting: AXImageEditorCropperWindowComponent }], template: \"<div [ngStyle]=\\\"!showGrid() && { border: '1px dashed white' }\\\" #r class=\\\"ax-image-cropper-window-container\\\">\\n @if (!this.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93L2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFL0Q7OztHQUdHO0FBVUgsTUFBTSxPQUFPLG1DQUFtQztJQVRoRDtRQVVXLGFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxvREFBQyxDQUFDO1FBRXRCLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLG1CQUFjLEdBQUcsTUFBTSxDQUFTLElBQUksMERBQUMsQ0FB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RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogcGFpbnQgbW9kZS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZVVybDogJy4vaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNyb3BwZXJXaW5kb3dDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc2hvd0dyaWQgPSBpbnB1dCh0cnVlKTtcblxuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG4gIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRIYW5kbGUgPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgcHJpdmF0ZSBwYW5TdGF0ZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJvdGVjdGVkIGNyb3BwZXJXaW5kb3cgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3InKTtcbiAgcHJpdmF0ZSBjdXJyZW50WCA9IHNpZ25hbCgtNDUpO1xuICBwcml2YXRlIGN1cnJlbnRZID0gc2lnbmFsKC00NSk7XG4gIHByaXZhdGUgcHJldlggPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgcHJldlkgPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHBsYXRmb3JtSUQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIG1vdXNlTW92ZUV2ZW50OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIG1vdXNlVXBFdmVudDogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZU1vdmVFdmVudDI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VVcEV2ZW50MjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZURvd25FdmVudDogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZUxlYXZlRXZlbnQ6ICgpID0+IHZvaWQ7XG5cbiAgI2VmZiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxOjEnKSB7XG4gICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7MTUwfXB4YDtcbiAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7MTUwfXB4YDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VydmljZS5jcm9wcGVyUmF0aW8oKSA9PT0gJzE2OjknKSB7XG4gICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7MjY2LjZ9cHhgO1xuICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHsxNTB9cHhgO1xuICAgIH0gZWxzZSB7XG4gICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7MTUwfXB4YDtcbiAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7MTUwfXB4YDtcbiAgICB9XG4gIH0pO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50ID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZG9jdW1lbnQsICdwb2ludGVybW92ZScsIHRoaXMuY2hhbmdlU2l6ZUhhbmRsZXIuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1vdXNlVXBFdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGRvY3VtZW50LCAncG9pbnRlcnVwJywgdGhpcy5jbGVhclNlbGVjdG9yLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tb3VzZURvd25FdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVyZG93bicsIHRoaXMucGFuRG93bi5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubW91c2VNb3ZlRXZlbnQyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oaG9zdCwgJ3BvaW50ZXJtb3ZlJywgdGhpcy5wYW5Nb3ZlLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tb3VzZVVwRXZlbnQyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oaG9zdCwgJ3BvaW50ZXJ1cCcsIHRoaXMucGFuVXAuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1vdXNlTGVhdmVFdmVudCA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdwb2ludGVybGVhdmUnLCB0aGlzLnBhblVwLmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTW92ZUV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VVcEV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlVXBFdmVudCgpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlRG93bkV2ZW50KSB7XG4gICAgICB0aGlzLm1vdXNlRG93bkV2ZW50KCk7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMubW91c2VNb3ZlRXZlbnQyKSB7XG4gICAgICB0aGlzLm1vdXNlTW92ZUV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlVXBFdmVudDIpIHtcbiAgICAgIHRoaXMubW91c2VVcEV2ZW50MigpO1xuICAgIH1cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSAmJiB0aGlzLm1vdXNlTGVhdmVFdmVudCkge1xuICAgICAgdGhpcy5tb3VzZUxlYXZlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICAjcG9zaXRpb25DaGFuZ2UgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5jdXJyZW50WCgpLCB0aGlzLmN1cnJlbnRZKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcGFuTW92ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5wYW5TdGF0ZSgpKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50WCA9IGUuY2xpZW50WDtcbiAgICBjb25zdCBjdXJyZW50WSA9IGUuY2xpZW50WTtcbiAgICBjb25zdCBkZWx0YVggPSBjdXJyZW50WCAtIHRoaXMucHJldlgoKTtcbiAgICBjb25zdCBkZWx0YVkgPSBjdXJyZW50WSAtIHRoaXMucHJldlkoKTtcbiAgICB0aGlzLmN1cnJlbnRYLnVwZGF0ZSgocHJldikgPT4gcHJldiArIGRlbHRhWCk7XG4gICAgdGhpcy5jdXJyZW50WS51cGRhdGUoKHByZXYpID0+IHByZXYgKyBkZWx0YVkpO1xuICAgIHRoaXMucHJldlguc2V0KGN1cnJlbnRYKTtcbiAgICB0aGlzLnByZXZZLnNldChjdXJyZW50WSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFuRG93bihlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuICAgIHRoaXMucGFuU3RhdGUuc2V0KHRydWUpO1xuICAgIHRoaXMucHJldlguc2V0KGUuY2xpZW50WCk7XG4gICAgdGhpcy5wcmV2WS5zZXQoZS5jbGllbnRZKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYW5VcCgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEhhbmRsZSgpKSByZXR1cm47XG4gICAgdGhpcy5wYW5TdGF0ZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGdldENyb3BwZXJBcmVhKCkge1xuICAgIHJldHVybiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlcikge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3Bvc1h9cHgsICR7cG9zWX1weClgO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFg6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFk6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFdpZHRoOiBudW1iZXI7XG4gIHByaXZhdGUgc3RhcnRIZWlnaHQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydExlZnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydFRvcDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgZWRnZUNhc2UgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGhhbmRsZVNlbGVjdG9yKGU6IE1vdXNlRXZlbnQsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5wYW5TdGF0ZSgpKSByZXR1cm47XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuc3RhcnRYID0gZS5jbGllbnRYO1xuICAgIHRoaXMuc3RhcnRZID0gZS5jbGllbnRZO1xuICAgIHRoaXMuc3RhcnRXaWR0aCA9IGhvc3Qub2Zmc2V0V2lkdGg7XG4gICAgdGhpcy5zdGFydEhlaWdodCA9IGhvc3Qub2Zmc2V0SGVpZ2h0O1xuICAgIHRoaXMuc3RhcnRMZWZ0ID0gaG9zdC5vZmZzZXRMZWZ0O1xuICAgIHRoaXMuc3RhcnRUb3AgPSBob3N0Lm9mZnNldFRvcDtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZGxlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhbmdlU2l6ZUhhbmRsZXIoZTogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLnBhblN0YXRlKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHJlY3QgPSBob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgZHkgPSBlLmNsaWVudFkgLSB0aGlzLnN0YXJ0WTtcbiAgICBjb25zdCBkeCA9IGUuY2xpZW50WCAtIHRoaXMuc3RhcnRYO1xuXG4gICAgaWYgKHJlY3Qud2lkdGggPCAyMCB8fCByZWN0LmhlaWdodCA8IDIwKSB7XG4gICAgICB0aGlzLmVkZ2VDYXNlID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRIYW5kbGUoKSkge1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7ZS5tb3ZlbWVudFggKyByZWN0LndpZHRofXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuc3RhcnRIZWlnaHQgLSBkeX1weGA7XG4gICAgICAgIGhvc3Quc3R5bGUudG9wID0gYCR7dGhpcy5zdGFydFRvcCArIGR5fXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuc3RhcnRXaWR0aCAtIGR4fXB4YDtcbiAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtyZWN0LmhlaWdodCArIGUubW92ZW1lbnRZfXB4YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodC10b3AnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJykge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5zdGFydEhlaWdodCAtIGR5fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyBkeX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuc3RhcnRIZWlnaHQgLSBkeX1weGA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMTY6OScpIHtcbiAgICAgICAgICBob3N0LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuc3RhcnRIZWlnaHQgLSBkeX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0VG9wICsgZHl9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHsodGhpcy5zdGFydEhlaWdodCAtIGR5KSAqIDEuNzd9cHhgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5zdGFydEhlaWdodCAtIGR5fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyBkeX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke2UubW92ZW1lbnRYICsgcmVjdC53aWR0aH1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJykge1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHtlLm1vdmVtZW50WCArIHJlY3Qud2lkdGh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7ZS5tb3ZlbWVudFggKyByZWN0LndpZHRofXB4YDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxNjo5Jykge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7ZS5tb3ZlbWVudFggKyByZWN0LmhlaWdodH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAkeyhlLm1vdmVtZW50WCArIHJlY3QuaGVpZ2h0KSAqIDEuNzd9cHhgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7cmVjdC5oZWlnaHQgKyBlLm1vdmVtZW50WX1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke2UubW92ZW1lbnRYICsgcmVjdC53aWR0aH1weGA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tbGVmdCc6XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxOjEnKSB7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuc3RhcnRXaWR0aCAtIGR4fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLmxlZnQgPSBgJHt0aGlzLnN0YXJ0TGVmdCArIGR4fXB4YDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxNjo5Jykge1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7KHRoaXMuc3RhcnRXaWR0aCAtIGR4KSAvIDEuNzd9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHtyZWN0LmhlaWdodCArIGUubW92ZW1lbnRZfXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7dGhpcy5zdGFydFdpZHRoIC0gZHh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgZHh9cHhgO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdC10b3AnOlxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BwZXJSYXRpbygpID09PSAnMToxJykge1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0TGVmdCArIGR4fXB4YDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkgPT09ICcxNjo5Jykge1xuICAgICAgICAgIGhvc3Quc3R5bGUud2lkdGggPSBgJHt0aGlzLnN0YXJ0V2lkdGggLSBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5sZWZ0ID0gYCR7dGhpcy5zdGFydExlZnQgKyBkeH1weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS5oZWlnaHQgPSBgJHsodGhpcy5zdGFydFdpZHRoIC0gZHgpIC8gMS43N31weGA7XG4gICAgICAgICAgaG9zdC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0YXJ0TGVmdCArIGR4fXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBob3N0LnN0eWxlLndpZHRoID0gYCR7dGhpcy5zdGFydFdpZHRoIC0gZHh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUubGVmdCA9IGAke3RoaXMuc3RhcnRMZWZ0ICsgZHh9cHhgO1xuICAgICAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5zdGFydEhlaWdodCAtIGR5fXB4YDtcbiAgICAgICAgICBob3N0LnN0eWxlLnRvcCA9IGAke3RoaXMuc3RhcnRUb3AgKyBkeX1weGA7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJTZWxlY3RvcigpIHtcbiAgICBpZiAodGhpcy5wYW5TdGF0ZSgpKSByZXR1cm47XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuZWRnZUNhc2UpIHtcbiAgICAgIGhvc3Quc3R5bGUuaGVpZ2h0ID0gYDIwcHhgO1xuICAgICAgaG9zdC5zdHlsZS53aWR0aCA9IGAyMHB4YDtcbiAgICAgIHRoaXMuZWRnZUNhc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkSGFuZGxlLnNldChudWxsKTtcbiAgfVxufVxuIiwiPGRpdiBbbmdTdHlsZV09XCIhc2hvd0dyaWQoKSAmJiB7IGJvcmRlcjogJzFweCBkYXNoZWQgd2hpdGUnIH1cIiAjciBjbGFzcz1cImF4LWltYWdlLWNyb3BwZXItd2luZG93LWNvbnRhaW5lclwiPlxuICBAaWYgKCF0aGlzLnNlcnZpY2UuY3JvcHBlclJhdGlvKCkpIHtcbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdyaWdodCcpXCIgY2xhc3M9XCJheC1pbWFnZS1yaWdodC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gICAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAndG9wJylcIiBjbGFzcz1cImF4LWltYWdlLXRvcC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gICAgPGRpdiAocG9pbnRlcmRvd24pPVwiaGFuZGxlU2VsZWN0b3IoJGV2ZW50LCAnbGVmdCcpXCIgY2xhc3M9XCJheC1pbWFnZS1sZWZ0LWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdib3R0b20nKVwiIGNsYXNzPVwiYXgtaW1hZ2UtYm90dG9tLWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cbiAgfVxuXG4gIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ3JpZ2h0LXRvcCcpXCIgY2xhc3M9XCJheC1pbWFnZS1yaWdodC10b3AtaGFuZGxlIGF4LWhhbmRsZS1zaGFwZVwiPjwvZGl2PlxuICA8ZGl2XG4gICAgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2JvdHRvbS1yaWdodCcpXCJcbiAgICBjbGFzcz1cImF4LWltYWdlLWJvdHRvbS1yaWdodC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCJcbiAgPjwvZGl2PlxuICA8ZGl2IChwb2ludGVyZG93bik9XCJoYW5kbGVTZWxlY3RvcigkZXZlbnQsICdib3R0b20tbGVmdCcpXCIgY2xhc3M9XCJheC1pbWFnZS1ib3R0b20tbGVmdC1oYW5kbGUgYXgtaGFuZGxlLXNoYXBlXCI+PC9kaXY+XG4gIDxkaXYgKHBvaW50ZXJkb3duKT1cImhhbmRsZVNlbGVjdG9yKCRldmVudCwgJ2xlZnQtdG9wJylcIiBjbGFzcz1cImF4LWltYWdlLWxlZnQtdG9wLWhhbmRsZSBheC1oYW5kbGUtc2hhcGVcIj48L2Rpdj5cblxuICBAaWYgKHNob3dHcmlkKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZC1pdGVtXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQtaXRlbVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkLWl0ZW1cIj48L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=","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 this.canvasElem().nativeElement.style.width = '100%';\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 * 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);\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 }\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 cropButtonHandler() {\n const cropRect = this.cropperWindow().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 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 saveImageChange() {\n const newImage = new Image();\n newImage.crossOrigin = 'anonymous';\n newImage.src = this.canvasElem().nativeElement.toDataURL('image/jpeg', 1);\n this.service.newImage = newImage;\n this.imageEditorHistory.update((prev) => [...prev, newImage]);\n const tempBlob = [];\n this.canvasElem().nativeElement.toBlob((blob) => {\n tempBlob.push(blob);\n }, 'image/jpeg', 1);\n this.canvasElem().nativeElement.toBlob((blob) => {\n tempBlob.push(blob);\n }, 'image/png', 1);\n this.canvasElem().nativeElement.toBlob((blob) => {\n tempBlob.push(blob);\n }, 'image/webp', 1);\n this.service.imageBlob.set(tempBlob);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.4\", type: AXImageEditorViewComponent, isStandalone: true, selector: \"ax-image-editor-view\", inputs: { showGrid: { classPropertyName: \"showGrid\", publicName: \"showGrid\", 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\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFFWixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBVy9ELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBMkM3RCxjQUFjO0lBQ0osWUFBWTtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztJQUNKLGdCQUFnQixDQUFDLEtBQXVCO1FBQ2hELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0IsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFD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TSxDQUNwQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLEVBQ0QsV0FBVyxFQUNYLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQ3BDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsRUFDRCxZQUFZLEVBQ1osQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0EvU1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsa1VBRjFCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLGdSQzNCaEYsaVhBWUEsMlhEY1ksbUNBQW1DOzsyRkFHbEMsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsbUNBQW1DLENBQUMsYUFDbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyw0QkFBNEIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93L2ltYWdlLWVkaXRvci1jcm9wcGVyLXdpbmRvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yVmlld0NvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogaXRzIGNoYW5nZSBncmlkIGRpc3BsYXkgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBzaG93R3JpZCA9IGlucHV0KHRydWUpO1xuICAvKipcbiAgICogaXRzIGNoYW5nZSBncmlkIGRpc3BsYXkgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBsb2NrUmF0aW8gPSBzaWduYWwoZmFsc2UpO1xuICAvKipcbiAgICogaXRzIHJlY2VpdmUgaW1hZ2Ugc3JjLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjYW52YXNFbGVtID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+PignY2FudmFzRWxlbScpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY3JvcHBlcldpbmRvdyA9IHZpZXdDaGlsZDxBWEltYWdlRWRpdG9yQ3JvcHBlcldpbmRvd0NvbXBvbmVudD4oJ2YnKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGN0eCA9IHNpZ25hbDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KG51bGwpO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWEltYWdlRWRpdG9yU2VydmljZSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc01vdXNlRG93biA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc0RyYXdSZWN0YW5nbGVDcmVhdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBhcmVudCA9IGluamVjdChBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50KTtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUVkaXRvckhpc3RvcnkgPSBzaWduYWw8SFRNTEltYWdlRWxlbWVudFtdPihbXSk7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KCkubGVuZ3RoIC0gMSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZXNpemVFdmVudExpc3RlbmVyO1xuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGltYWdlTG9hZEV2ZW50TGlzdGVuZXI7XG5cbiAgcHJpdmF0ZSBvcmlnaW5hbFdpZHRoID0gc2lnbmFsKDApO1xuICBwcml2YXRlIG9yaWdpbmFsSGVpZ2h0ID0gc2lnbmFsKDApO1xuICBwcml2YXRlIHNjYWxlID0gc2lnbmFsKDApO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZXNpemVXaW5kb3coKSB7XG4gICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuc2VydmljZS5uZXdJbWFnZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY2FudmFzUmVzcG9uc2l2ZShpbWFnZTogSFRNTEltYWdlRWxlbWVudCkge1xuICAgIGNvbnN0IGltYWdlV2lkdGggPSBpbWFnZS53aWR0aDtcbiAgICBjb25zdCBpbWFnZUhlaWdodCA9IGltYWdlLmhlaWdodDtcblxuICAgIHRoaXMub3JpZ2luYWxXaWR0aC5zZXQoaW1hZ2VXaWR0aCk7XG4gICAgdGhpcy5vcmlnaW5hbEhlaWdodC5zZXQoaW1hZ2VIZWlnaHQpO1xuXG4gICAgaWYgKGltYWdlV2lkdGggPiBpbWFnZUhlaWdodCkge1xuICAgICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCA9IGltYWdlV2lkdGg7XG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCA9IGltYWdlV2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQud2lkdGggPSBpbWFnZUhlaWdodDtcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQ7XG4gICAgfVxuXG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9ICcxMDAlJztcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAvL3JlY2FsY3VsYXRlIHdpZHRoIGFmdGVyIGNhbnZhcyBzaXplIGNoYW5nZVxuICAgICAgY29uc3QgcmVjYWxjdWxhdGVXaWR0aCA9ICh0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRDbGllbnRSZWN0cygpWzBdPy53aWR0aDtcblxuICAgICAgbGV0IHNjYWxlOiBudW1iZXI7XG4gICAgICBpZiAoaW1hZ2VXaWR0aCA+IGltYWdlSGVpZ2h0KSB7XG4gICAgICAgIHNjYWxlID0gdGhpcy5vcmlnaW5hbFdpZHRoKCkgLyByZWNhbGN1bGF0ZVdpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NhbGUgPSB0aGlzLm9yaWdpbmFsSGVpZ2h0KCkgLyByZWNhbGN1bGF0ZVdpZHRoO1xuICAgICAgfVxuICAgICAgdGhpcy5zY2FsZS5zZXQoc2NhbGUpO1xuXG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gcmVjYWxjdWxhdGVXaWR0aDtcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gcmVjYWxjdWxhdGVXaWR0aDtcblxuICAgICAgaWYgKGltYWdlV2lkdGggPiBpbWFnZUhlaWdodCkge1xuICAgICAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZShcbiAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICAwLFxuICAgICAgICAgIHJlY2FsY3VsYXRlV2lkdGggLyAyIC0gdGhpcy5vcmlnaW5hbEhlaWdodCgpIC8gc2NhbGUgLyAyLFxuICAgICAgICAgIHJlY2FsY3VsYXRlV2lkdGgsXG4gICAgICAgICAgdGhpcy5vcmlnaW5hbEhlaWdodCgpIC8gc2NhbGUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZShcbiAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICByZWNhbGN1bGF0ZVdpZHRoIC8gMiAtIHRoaXMub3JpZ2luYWxXaWR0aCgpIC8gc2NhbGUgLyAyLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgdGhpcy5vcmlnaW5hbFdpZHRoKCkgLyBzY2FsZSxcbiAgICAgICAgICByZWNhbGN1bGF0ZVdpZHRoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csICdyZXNpemUnLCB0aGlzLnJlc2l6ZVdpbmRvdy5iaW5kKHRoaXMpKTtcbiAgICAgIC8vc2V0IGNhbnZhcyBvcHRpb25zXG4gICAgICB0aGlzLmN0eC5zZXQodGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcsIHsgd2lsbFJlYWRGcmVxdWVudGx5OiB0cnVlIH0pKTtcbiAgICAgIHRoaXMuY3R4KCkubGluZUpvaW4gPSAncm91bmQnO1xuICAgICAgdGhpcy5jdHgoKS5saW5lQ2FwID0gJ3JvdW5kJztcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNldEluaXRpYWxJbWFnZSh0aGlzLnNyYygpKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZS51bmRvUHJlc3NlZCgpKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VDaGFuZ2VkKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNlcnZpY2UucmVkb1ByZXNzZWQoKSkge1xuICAgICAgICB0aGlzLmltYWdlQ2hhbmdlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlLnJvdGF0ZSgpLnVzZXJJbnRlcmFjdCB8fCAhdGhpcy5jdHgoKSkgcmV0dXJuO1xuICAgICAgdGhpcy5yb3RhdGVJbWFnZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzaXplRXZlbnRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5yZXNpemVFdmVudExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW1hZ2VMb2FkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5pbWFnZUxvYWRFdmVudExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbml0aWFsSW1hZ2Uoc3JjOiBzdHJpbmcsIHJlcGxhY2VIaXN0b3J5ID0gdHJ1ZSkge1xuICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICB0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlLnNyYyA9IHNyYztcbiAgICB0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XG4gICAgdGhpcy5pbWFnZUxvYWRFdmVudExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSwgJ2xvYWQnLCAoKSA9PiB7XG4gICAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2UgPSB0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmlzSW1hZ2VMb2FkLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuY2FudmFzUmVzcG9uc2l2ZSh0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlKTtcbiAgICAgIGlmIChyZXBsYWNlSGlzdG9yeSkge1xuICAgICAgICB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeS5zZXQoW3RoaXMuc2VydmljZS5pbml0aWFsSW1hZ2VdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5LnVwZGF0ZSgocHJldikgPT4gWy4uLnByZXYsIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2VdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbWFnZUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMuc2VydmljZS51bmRvUHJlc3NlZCgpICYmIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlcigpID49IDEpIHtcbiAgICAgIHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5UG9pbnRlci51cGRhdGUoKHByZXYpID0+IHByZXYgLSAxKTtcblxuICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlID0gdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkoKVt0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIoKV07XG4gICAgICB0aGlzLmNhbnZhc1Jlc3BvbnNpdmUodGhpcy5pbWFnZUVkaXRvckhpc3RvcnkoKVt0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIoKV0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlcnZpY2UucmVkb1ByZXNzZWQoKSAmJiB0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIoKSA8IHRoaXMuaW1hZ2VFZGl0b3JIaXN0b3J5KCkubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnlQb2ludGVyLnVwZGF0ZSgocHJldikgPT4gcHJldiArIDEpO1xuICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlID0gdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkoKVt0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIoKV07XG4gICAgICB0aGlzLmNhbnZhc1Jlc3BvbnNpdmUodGhpcy5pbWFnZUVkaXRvckhpc3RvcnkoKVt0aGlzLmltYWdlRWRpdG9ySGlzdG9yeVBvaW50ZXIoKV0pO1xuICAgIH1cblxuICAgIHRoaXMuc2VydmljZS51bmRvUHJlc3NlZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2VydmljZS5yZWRvUHJlc3NlZC5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBlbkNvbmZpZ0hhbmRsZXIocGVuVHlwZTogJ3BlbicgfCAnaGlnaGxpZ2h0Jykge1xuICAgIHN3aXRjaCAocGVuVHlwZSkge1xuICAgICAgY2FzZSAncGVuJzpcbiAgICAgICAgdGhpcy5jdHgoKS5nbG9iYWxBbHBoYSA9IDE7XG4gICAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlU3R5bGUgPSB0aGlzLnNlcnZpY2UucGVuQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UucGVuV2lkdGgoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaWdobGlnaHQnOlxuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMC4wMDg7XG4gICAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlU3R5bGUgPSB0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0Q29sb3IoKTtcbiAgICAgICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UuaGlnaGxpZ2h0V2lkdGgoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG1vdXNlRG93bkhhbmRsZXIoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaXNNb3VzZURvd24uc2V0KHRydWUpO1xuICAgIGlmICghdGhpcy5zZXJ2aWNlLnBlblR5cGUoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5wZW5Db25maWdIYW5kbGVyKHRoaXMuc2VydmljZS5wZW5UeXBlKCkpO1xuICAgIHRoaXMuY3R4KCkuYmVnaW5QYXRoKCk7XG4gICAgdGhpcy5jdHgoKS5tb3ZlVG8oZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkubGluZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcbiAgICB0aGlzLmN0eCgpLnN0cm9rZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG1vdXNlTW92ZUhhbmRsZXIoZTogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc01vdXNlRG93bigpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UucGVuVHlwZSgpKSByZXR1cm47XG4gICAgdGhpcy5jdHgoKS5saW5lVG8oZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbW91c2VVcEhhbmRsZXIoKSB7XG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY3R4KCkuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGNyb3BCdXR0b25IYW5kbGVyKCkge1xuICAgIGNvbnN0IGNyb3BSZWN0ID0gdGhpcy5jcm9wcGVyV2luZG93KCkuZ2V0Q3JvcHBlckFyZWEoKTtcbiAgICBjb25zdCBjYW52YXNSZWN0ID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRDbGllbnRSZWN0cygpWzBdO1xuICAgIGNvbnN0IGR4ID0gY3JvcFJlY3QueCAtIGNhbnZhc1JlY3QueDtcbiAgICBjb25zdCBkeSA9IGNyb3BSZWN0LnkgLSBjYW52YXNSZWN0Lnk7XG5cbiAgICBjb25zdCBpbWFnZURhdGEgPSB0aGlzLmN0eCgpLmdldEltYWdlRGF0YShkeCwgZHksIGNyb3BSZWN0LndpZHRoLCBjcm9wUmVjdC5oZWlnaHQpO1xuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQud2lkdGggPSBjcm9wUmVjdC53aWR0aDtcbiAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCA9IGNyb3BSZWN0LmhlaWdodDtcbiAgICB0aGlzLmN0eCgpLnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDApO1xuICAgIGNvbnN0IGNyb3BJbWFnZSA9IHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywgMSk7XG5cbiAgICB0aGlzLnNldEluaXRpYWxJbWFnZShjcm9wSW1hZ2UsIGZhbHNlKTtcbiAgICB0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlLnNldChudWxsKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByb3RhdGVJbWFnZSgpIHtcbiAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMTtcbiAgICB0aGlzLmN0eCgpLnNhdmUoKTtcbiAgICB0aGlzLmN0eCgpLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCk7XG5cbiAgICAvLyBDYWxjdWxhdGUgc2NhbGUgZmFjdG9yIHRvIGZpdCByb3RhdGVkIGltYWdlIHdpdGhpbiBjYW52YXNcbiAgICBjb25zdCByb3RhdGlvbkFuZ2xlID0gKHRoaXMuc2VydmljZS5yb3RhdGUoKS5zdGF0ZSAqIE1hdGguUEkpIC8gMTgwO1xuICAgIGNvbnN0IGNvcyA9IE1hdGguYWJzKE1hdGguY29zKHJvdGF0aW9uQW5nbGUpKTtcbiAgICBjb25zdCBzaW4gPSBNYXRoLmFicyhNYXRoLnNpbihyb3RhdGlvbkFuZ2xlKSk7XG5cbiAgICBjb25zdCByb3RhdGVkV2lkdGggPSB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggKiBjb3MgKyB0aGlzLnNlcnZpY2UubmV3SW1hZ2UuaGVpZ2h0ICogc2luO1xuICAgIGNvbnN0IHJvdGF0ZWRIZWlnaHQgPSB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggKiBzaW4gKyB0aGlzLnNlcnZpY2UubmV3SW1hZ2UuaGVpZ2h0ICogY29zO1xuXG4gICAgY29uc3Qgc2NhbGVYID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCAvIHJvdGF0ZWRXaWR0aDtcbiAgICBjb25zdCBzY2FsZVkgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCAvIHJvdGF0ZWRIZWlnaHQ7XG4gICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihzY2FsZVgsIHNjYWxlWSk7XG5cbiAgICB0aGlzLmN0eCgpLnRyYW5zbGF0ZSh0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoIC8gMiwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQgLyAyKTtcbiAgICB0aGlzLmN0eCgpLnJvdGF0ZShyb3RhdGlvbkFuZ2xlKTtcbiAgICB0aGlzLmN0eCgpLnNjYWxlKHNjYWxlLCBzY2FsZSk7XG5cbiAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZSh0aGlzLnNlcnZpY2UubmV3SW1hZ2UsIC10aGlzLnNlcnZpY2UubmV3SW1hZ2Uud2lkdGggLyAyLCAtdGhpcy5zZXJ2aWNlLm5ld0ltYWdlLmhlaWdodCAvIDIpO1xuICAgIHRoaXMuY3R4KCkucmVzdG9yZSgpO1xuXG4gICAgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnNlcnZpY2Uucm90YXRlLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgcmV0dXJuIHsgc3RhdGU6IHByZXYuc3RhdGUsIHVzZXJJbnRlcmFjdDogZmFsc2UgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzYXZlSW1hZ2VDaGFuZ2UoKSB7XG4gICAgY29uc3QgbmV3SW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICBuZXdJbWFnZS5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xuICAgIG5ld0ltYWdlLnNyYyA9IHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywgMSk7XG4gICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlID0gbmV3SW1hZ2U7XG4gICAgdGhpcy5pbWFnZUVkaXRvckhpc3RvcnkudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgbmV3SW1hZ2VdKTtcblxuICAgIGNvbnN0IHRlbXBCbG9iID0gW107XG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC50b0Jsb2IoXG4gICAgICAoYmxvYikgPT4ge1xuICAgICAgICB0ZW1wQmxvYi5wdXNoKGJsb2IpO1xuICAgICAgfSxcbiAgICAgICdpbWFnZS9qcGVnJyxcbiAgICAgIDEsXG4gICAgKTtcbiAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvQmxvYihcbiAgICAgIChibG9iKSA9PiB7XG4gICAgICAgIHRlbXBCbG9iLnB1c2goYmxvYik7XG4gICAgICB9LFxuICAgICAgJ2ltYWdlL3BuZycsXG4gICAgICAxLFxuICAgICk7XG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC50b0Jsb2IoXG4gICAgICAoYmxvYikgPT4ge1xuICAgICAgICB0ZW1wQmxvYi5wdXNoKGJsb2IpO1xuICAgICAgfSxcbiAgICAgICdpbWFnZS93ZWJwJyxcbiAgICAgIDEsXG4gICAgKTtcbiAgICB0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iLnNldCh0ZW1wQmxvYik7XG4gIH1cbn1cbiIsIjxjYW52YXNcbiAgdGFiaW5kZXg9XCIxXCJcbiAgKHBvaW50ZXJkb3duKT1cIm1vdXNlRG93bkhhbmRsZXIoJGV2ZW50KVwiXG4gIChwb2ludGVydXApPVwibW91c2VVcEhhbmRsZXIoKVwiXG4gIChwb2ludGVybW92ZSk9XCJtb3VzZU1vdmVIYW5kbGVyKCRldmVudClcIlxuICBjbGFzcz1cImF4LWNhbnZhcy1lbGVtZW50XCJcbiAgI2NhbnZhc0VsZW1cbj48L2NhbnZhcz5cblxuQGlmICh0aGlzLnNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkgPT09ICdjcm9wJykge1xuICA8YXgtaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93IFtzaG93R3JpZF09XCJzaG93R3JpZCgpXCIgI2Y+PC9heC1pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3c+XG59XG4iXX0=","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { Component, contentChild, forwardRef, HostBinding, inject, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\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 { 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 { AXImageEditorViewComponent } from '../image-editor-view/image-editor-view.component';\nimport { AXImageEditorService } from '../image-editor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/toolbar\";\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 }\n /**\n * Saves the current edited image and commits the value to the component.\n * If the image has been modified, it commits the image blob array. If no changes were made, it commits null.\n *\n * @returns void - No return value. The edited image is saved and the onValueChanged event is emitted.\n */\n save() {\n if (this.service.initialImage !== this.service.newImage) {\n this.commitValue(this.service.imageBlob(), true);\n }\n else {\n this.commitValue(null);\n }\n }\n cropButtonHandler() {\n this.view().cropButtonHandler();\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.2.4\", ngImport: i0, type: AXImageEditorContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.2.4\", 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 @if (service.activeToolState()) {\\n <ax-toolbar class=\\\"ax-secondary-toolbar\\\">\\n <ax-prefix>\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n <ax-image-editor-pen></ax-image-editor-pen>\\n }\\n @case ('crop') {\\n <ax-image-editor-crop (cropPressed)=\\\"cropButtonHandler()\\\"></ax-image-editor-crop>\\n }\\n @case ('highlight') {\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n }\\n @case ('rotate') {\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n }\\n }\\n </ax-prefix>\\n </ax-toolbar>\\n }\\n\\n <ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-content>\\n <ax-image-editor-tool-selector></ax-image-editor-tool-selector>\\n </ax-content>\\n </ax-toolbar>\\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-main-toolbar{justify-content:center;padding:.2rem}ax-image-editor-container .ax-secondary-toolbar{padding:.2rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-surface));justify-content:center}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: 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: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"ngmodule\", type: AXToolBarModule }, { kind: \"component\", type: i2.AXToolBarComponent, selector: \"ax-toolbar\" }, { kind: \"component\", type: AXImageEditorCropComponent, selector: \"ax-image-editor-crop\", outputs: [\"cropPressed\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: AXImageEditorToolSelectorComponent, selector: \"ax-image-editor-tool-selector\" }, { kind: \"component\", type: AXImageEditorPenComponent, selector: \"ax-image-editor-pen\" }, { kind: \"component\", type: AXImageEditorHighlightComponent, selector: \"ax-image-editor-highlight\" }, { kind: \"component\", type: AXImageEditorRotateComponent, selector: \"ax-image-editor-rotate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", 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: [\n AXDecoratorModule,\n AXLoadingSpinnerComponent,\n AXToolBarModule,\n AXImageEditorCropComponent,\n AXButtonModule,\n AXImageEditorToolSelectorComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n ], 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 @if (service.activeToolState()) {\\n <ax-toolbar class=\\\"ax-secondary-toolbar\\\">\\n <ax-prefix>\\n @switch (service.activeToolState()) {\\n @case ('pen') {\\n <ax-image-editor-pen></ax-image-editor-pen>\\n }\\n @case ('crop') {\\n <ax-image-editor-crop (cropPressed)=\\\"cropButtonHandler()\\\"></ax-image-editor-crop>\\n }\\n @case ('highlight') {\\n <ax-image-editor-highlight></ax-image-editor-highlight>\\n }\\n @case ('rotate') {\\n <ax-image-editor-rotate></ax-image-editor-rotate>\\n }\\n }\\n </ax-prefix>\\n </ax-toolbar>\\n }\\n\\n <ax-toolbar class=\\\"ax-main-toolbar\\\">\\n <ax-content>\\n <ax-image-editor-tool-selector></ax-image-editor-tool-selector>\\n </ax-content>\\n </ax-toolbar>\\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-main-toolbar{justify-content:center;padding:.2rem}ax-image-editor-container .ax-secondary-toolbar{padding:.2rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-surface));justify-content:center}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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci1jb250YWluZXIvaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrRUFBK0Us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QzlELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLFdBQ1E7d0JBQ1AsaUJBQWlCO3dCQUNqQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLGtDQUFrQzt3QkFDbEMseUJBQXlCO3dCQUN6QiwrQkFBK0I7d0JBQy9CLDRCQUE0QjtxQkFDN0I7OEJBNkJHLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQU9SLFVBQVU7c0JBRHJCLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVG9vbEJhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sYmFyJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvckNyb3BDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWNyb3AvaW1hZ2UtZWRpdG9yLWNyb3AuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1wZW4vaW1hZ2UtZWRpdG9yLXBlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclJvdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWVkaXRvci10b29scy9pbWFnZS1lZGl0b3Itcm90YXRlL2ltYWdlLWVkaXRvci1yb3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JUb29sU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLXZpZXcvaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW1hZ2UtZWRpdG9yLnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IGNvbnRhaW5lci5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxuICBpbnB1dHM6IFsnbG9vaycsICdkaXNhYmxlZCddLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWEltYWdlRWRpdG9yU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCxcbiAgICBBWFRvb2xCYXJNb2R1bGUsXG4gICAgQVhJbWFnZUVkaXRvckNyb3BDb21wb25lbnQsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhJbWFnZUVkaXRvclRvb2xTZWxlY3RvckNvbXBvbmVudCxcbiAgICBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50LFxuICAgIEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQsXG4gICAgQVhJbWFnZUVkaXRvclJvdGF0ZUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxCbG9iW10+LCBNWExvb2tDb21wb25lbnQpIHtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhJbWFnZUVkaXRvclNlcnZpY2UpO1xuXG4gIGltYWdlRWRpdG9yQ29udGFpbmVyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdmJyk7XG5cbiAgdmlldyA9IGNvbnRlbnRDaGlsZDxBWEltYWdlRWRpdG9yVmlld0NvbXBvbmVudD4oQVhJbWFnZUVkaXRvclZpZXdDb21wb25lbnQpO1xuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgY3VycmVudCBlZGl0ZWQgaW1hZ2UgYW5kIGNvbW1pdHMgdGhlIHZhbHVlIHRvIHRoZSBjb21wb25lbnQuXG4gICAqIElmIHRoZSBpbWFnZSBoYXMgYmVlbiBtb2RpZmllZCwgaXQgY29tbWl0cyB0aGUgaW1hZ2UgYmxvYiBhcnJheS4gSWYgbm8gY2hhbmdlcyB3ZXJlIG1hZGUsIGl0IGNvbW1pdHMgbnVsbC5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gVGhlIGVkaXRlZCBpbWFnZSBpcyBzYXZlZCBhbmQgdGhlIG9uVmFsdWVDaGFuZ2VkIGV2ZW50IGlzIGVtaXR0ZWQuXG4gICAqL1xuICBzYXZlKCkge1xuICAgIGlmICh0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlICE9PSB0aGlzLnNlcnZpY2UubmV3SW1hZ2UpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5zZXJ2aWNlLmltYWdlQmxvYigpLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JvcEJ1dHRvbkhhbmRsZXIoKSB7XG4gICAgdGhpcy52aWV3KCkuY3JvcEJ1dHRvbkhhbmRsZXIoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuICdheC1zdGF0ZS1kaXNhYmxlZCc7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm5hbWUnKVxuICBwcml2YXRlIGdldCBfX2hvc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxufVxuIiwiQGlmIChzZXJ2aWNlLmlzSW1hZ2VMb2FkKCkpIHtcbiAgPGRpdiAjZiBjbGFzcz1cImF4LWVkaXRvci1jb250YWluZXIgIGF4LXt7IGxvb2sgfX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1pbWFnZS1lZGl0b3Itdmlld1wiPiA8L25nLWNvbnRlbnQ+XG5cbiAgICBAaWYgKHNlcnZpY2UuYWN0aXZlVG9vbFN0YXRlKCkpIHtcbiAgICAgIDxheC10b29sYmFyIGNsYXNzPVwiYXgtc2Vjb25kYXJ5LXRvb2xiYXJcIj5cbiAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICBAc3dpdGNoIChzZXJ2aWNlLmFjdGl2ZVRvb2xTdGF0ZSgpKSB7XG4gICAgICAgICAgICBAY2FzZSAoJ3BlbicpIHtcbiAgICAgICAgICAgICAgPGF4LWltYWdlLWVkaXRvci1wZW4+PC9heC1pbWFnZS1lZGl0b3ItcGVuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCdjcm9wJykge1xuICAgICAgICAgICAgICA8YXgtaW1hZ2UtZWRpdG9yLWNyb3AgKGNyb3BQcmVzc2VkKT1cImNyb3BCdXR0b25IYW5kbGVyKClcIj48L2F4LWltYWdlLWVkaXRvci1jcm9wPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCdoaWdobGlnaHQnKSB7XG4gICAgICAgICAgICAgIDxheC1pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0PjwvYXgtaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgncm90YXRlJykge1xuICAgICAgICAgICAgICA8YXgtaW1hZ2UtZWRpdG9yLXJvdGF0ZT48L2F4LWltYWdlLWVkaXRvci1yb3RhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDwvYXgtdG9vbGJhcj5cbiAgICB9XG5cbiAgICA8YXgtdG9vbGJhciBjbGFzcz1cImF4LW1haW4tdG9vbGJhclwiPlxuICAgICAgPGF4LWNvbnRlbnQ+XG4gICAgICAgIDxheC1pbWFnZS1lZGl0b3ItdG9vbC1zZWxlY3Rvcj48L2F4LWltYWdlLWVkaXRvci10b29sLXNlbGVjdG9yPlxuICAgICAgPC9heC1jb250ZW50PlxuICAgIDwvYXgtdG9vbGJhcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiYXgtbG9hZGluZy1zcGlubmVyLWNvbnRhaW5lclwiPlxuICAgIDxheC1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiMTZcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiTG9hZGluZyBJbWFnZSAuLi5cIj48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgPC9kaXY+XG59XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuXG5AaWYgKGRpc2FibGVkKSB7XG4gIDxkaXYgY2xhc3M9XCJheC1kaXNhYmxlLW92ZXJsYXlcIj48L2Rpdj5cbn1cbiJdfQ==","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.2.4\", ngImport: i0, type: AXImageEditorHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.4\", 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.2.4\", 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 { 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 { 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 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.2.4\", ngImport: i0, type: AXImageEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.2.4\", 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 AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent], exports: [AXImageEditorViewComponent,\n AXImageEditorContainerComponent,\n AXImageEditorCropComponent,\n AXImageEditorHistoryComponent,\n AXImageEditorToolSelectorComponent,\n AXImageEditorPenComponent,\n AXImageEditorHighlightComponent,\n AXImageEditorRotateComponent,\n AXImageEditorCropperWindowComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.2.4\", ngImport: i0, type: AXImageEditorModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9saWIvaW1hZ2UtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDL0gsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0ZBQXNGLENBQUM7QUFDMUksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBRTdGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLDBCQUEwQjtJQUMxQiwrQkFBK0I7SUFDL0IsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QixrQ0FBa0M7SUFDbEMseUJBQXlCO0lBQ3pCLCtCQUErQjtJQUMvQiw0QkFBNEI7SUFDNUIsbUNBQW1DO0NBQ3BDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRztJQUNkLGNBQWM7SUFDZCxXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsY0FBYztDQUNmLENBQUM7QUFPRixNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQWhCOUIsY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixjQUFjLEVBcEJkLDBCQUEwQjtZQUMxQiwrQkFBK0I7WUFDL0IsMEJBQTBCO1lBQzFCLDZCQUE2QjtZQUM3QixrQ0FBa0M7WUFDbEMseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7WUFDNUIsbUNBQW1DLGFBUm5DLDBCQUEwQjtZQUMxQiwrQkFBK0I7WUFDL0IsMEJBQTBCO1lBQzFCLDZCQUE2QjtZQUM3QixrQ0FBa0M7WUFDbEMseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQiw0QkFBNEI7WUFDNUIsbUNBQW1DOytHQW9CeEIsbUJBQW1CLFlBSmpCLE9BQU8sRUFBSyxTQUFTOzsyRkFJdkIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb2xvckJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb2xvci1ib3gnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhSYW5nZVNsaWRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItY3JvcHBlci13aW5kb3cvaW1hZ2UtZWRpdG9yLWNyb3BwZXItd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1jcm9wL2ltYWdlLWVkaXRvci1jcm9wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLWhpZ2hsaWdodC9pbWFnZS1lZGl0b3ItaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9ySGlzdG9yeUNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtZWRpdG9yLXRvb2xzL2ltYWdlLWVkaXRvci1oaXN0b3J5L2ltYWdlLWVkaXRvci1oaXN0b3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUGVuQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXBlbi9pbWFnZS1lZGl0b3ItcGVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yUm90YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXJvdGF0ZS9pbWFnZS1lZGl0b3Itcm90YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEltYWdlRWRpdG9yVG9vbFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3ItdG9vbHMvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IvaW1hZ2UtZWRpdG9yLXRvb2wtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQnO1xuXG5jb25zdCBDT01QT05FTlQgPSBbXG4gIEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yQ29udGFpbmVyQ29tcG9uZW50LFxuICBBWEltYWdlRWRpdG9yQ3JvcENvbXBvbmVudCxcbiAgQVhJbWFnZUVkaXRvckhpc3RvcnlDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JUb29sU2VsZWN0b3JDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JQZW5Db21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JIaWdobGlnaHRDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JSb3RhdGVDb21wb25lbnQsXG4gIEFYSW1hZ2VFZGl0b3JDcm9wcGVyV2luZG93Q29tcG9uZW50LFxuXTtcblxuY29uc3QgTU9EVUxFUyA9IFtcbiAgQVhCdXR0b25Nb2R1bGUsXG4gIEZvcm1zTW9kdWxlLFxuICBBWFJhbmdlU2xpZGVyTW9kdWxlLFxuICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgQVhDb2xvckJveE1vZHVsZSxcbiAgQVhQb3BvdmVyTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuICBBWERpYWxvZ01vZHVsZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTLCAuLi5DT01QT05FTlRdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZUVkaXRvck1vZHVsZSB7fVxuIl19","/**\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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"}