@acorex/components 22.2.9 → 22.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-audio-wave.mjs +2 -2
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-combo-box.mjs +12 -2
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
- package/fesm2022/{acorex-components-conversation-acorex-components-conversation-CJ2TAxPI.mjs → acorex-components-conversation-acorex-components-conversation-CXf00kvo.mjs} +68 -19
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-CXf00kvo.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-veZdIY3W.mjs → acorex-components-conversation-picker-rename-file-dialog.component-DZINTie8.mjs} +2 -2
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-veZdIY3W.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-DZINTie8.mjs.map} +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +1 -1
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +36 -6
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +87 -8
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +20 -2
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +225 -20
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-combo-box.d.ts +4 -0
- package/types/acorex-components-conversation.d.ts +5 -0
- package/types/acorex-components-decorators.d.ts +13 -1
- package/types/acorex-components-image-editor.d.ts +15 -0
- package/types/acorex-components-lookup.d.ts +4 -0
- package/types/acorex-components-tabs.d.ts +91 -17
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-CJ2TAxPI.mjs.map +0 -1
|
@@ -82,6 +82,34 @@ class AXImageEditorService {
|
|
|
82
82
|
}
|
|
83
83
|
this.redoPressed.set(true);
|
|
84
84
|
}
|
|
85
|
+
/** Handles Ctrl/Cmd+Z and Ctrl/Cmd+Y history shortcuts. Returns true when handled. */
|
|
86
|
+
handleHistoryShortcut(event) {
|
|
87
|
+
const modifier = event.ctrlKey || event.metaKey;
|
|
88
|
+
if (!modifier) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
const isUndo = event.code === 'KeyZ' && !event.shiftKey;
|
|
92
|
+
const isRedo = event.code === 'KeyY' || (event.code === 'KeyZ' && event.shiftKey);
|
|
93
|
+
if (isUndo) {
|
|
94
|
+
if (!this.canUndo()) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
event.stopPropagation();
|
|
99
|
+
this.undo();
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
if (isRedo) {
|
|
103
|
+
if (!this.canRedo()) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
event.stopPropagation();
|
|
108
|
+
this.redo();
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
85
113
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXImageEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
86
114
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXImageEditorService }); }
|
|
87
115
|
}
|
|
@@ -682,7 +710,19 @@ class AXImageEditorViewComponent extends MXBaseComponent {
|
|
|
682
710
|
ctx.stroke();
|
|
683
711
|
}
|
|
684
712
|
/** @ignore */
|
|
713
|
+
historyKeyDown(event) {
|
|
714
|
+
if (this.parent.disabled) {
|
|
715
|
+
return;
|
|
716
|
+
}
|
|
717
|
+
this.service.handleHistoryShortcut(event);
|
|
718
|
+
}
|
|
719
|
+
/** @ignore */
|
|
720
|
+
focusCanvas() {
|
|
721
|
+
this.canvasElem()?.nativeElement.focus({ preventScroll: true });
|
|
722
|
+
}
|
|
723
|
+
/** @ignore */
|
|
685
724
|
mouseDownHandler(event) {
|
|
725
|
+
this.focusCanvas();
|
|
686
726
|
if (!this.isDrawTool() || this.parent.disabled) {
|
|
687
727
|
return;
|
|
688
728
|
}
|
|
@@ -856,11 +896,11 @@ class AXImageEditorViewComponent extends MXBaseComponent {
|
|
|
856
896
|
}
|
|
857
897
|
}
|
|
858
898
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXImageEditorViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
859
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXImageEditorViewComponent, isStandalone: true, selector: "ax-image-editor-view", inputs: { showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, cropperSize: { classPropertyName: "cropperSize", publicName: "cropperSize", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["canvasElem"], descendants: true, isSignal: true }, { propertyName: "cropperWindow", first: true, predicate: ["f"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-image-editor-stage\">\n <canvas\n tabindex=\"0\"\n (pointerdown)=\"mouseDownHandler($event)\"\n (pointerup)=\"mouseUpHandler($event)\"\n (pointercancel)=\"mouseUpHandler($event)\"\n (pointermove)=\"mouseMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n ></canvas>\n\n @if (service.activeToolState() === 'crop') {\n <ax-image-editor-cropper-window [showGrid]=\"showGrid()\" #f></ax-image-editor-cropper-window>\n }\n</div>\n", styles: ["@layer components{ax-image-editor-view{position:relative;display:flex;width:100%;touch-action:none;align-items:center;justify-content:center;overflow:hidden;background-color:var(--color-white, #fff)}ax-image-editor-view .ax-image-editor-stage{position:relative;display:inline-flex;max-height:100%;max-width:100%;align-items:center;justify-content:center}ax-image-editor-view .ax-canvas-element{max-height:100%;max-width:100%;cursor:crosshair;background-color:var(--color-black, #000);touch-action:none}ax-image-editor-view .ax-crop-save{position:absolute;top:calc(var(--spacing, .25rem) * 0);right:calc(var(--spacing, .25rem) * 0);margin:calc(var(--spacing, .25rem) * 4)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXImageEditorCropperWindowComponent, selector: "ax-image-editor-cropper-window", inputs: ["showGrid", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
899
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXImageEditorViewComponent, isStandalone: true, selector: "ax-image-editor-view", inputs: { showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, cropperSize: { classPropertyName: "cropperSize", publicName: "cropperSize", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["canvasElem"], descendants: true, isSignal: true }, { propertyName: "cropperWindow", first: true, predicate: ["f"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-image-editor-stage\">\n <canvas\n tabindex=\"0\"\n (pointerdown)=\"mouseDownHandler($event)\"\n (pointerup)=\"mouseUpHandler($event)\"\n (pointercancel)=\"mouseUpHandler($event)\"\n (pointermove)=\"mouseMoveHandler($event)\"\n (keydown)=\"historyKeyDown($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n ></canvas>\n\n @if (service.activeToolState() === 'crop') {\n <ax-image-editor-cropper-window [showGrid]=\"showGrid()\" #f></ax-image-editor-cropper-window>\n }\n</div>\n", styles: ["@layer components{ax-image-editor-view{position:relative;display:flex;width:100%;touch-action:none;align-items:center;justify-content:center;overflow:hidden;background-color:var(--color-white, #fff)}ax-image-editor-view .ax-image-editor-stage{position:relative;display:inline-flex;max-height:100%;max-width:100%;align-items:center;justify-content:center}ax-image-editor-view .ax-canvas-element{max-height:100%;max-width:100%;cursor:crosshair;background-color:var(--color-black, #000);touch-action:none}ax-image-editor-view .ax-crop-save{position:absolute;top:calc(var(--spacing, .25rem) * 0);right:calc(var(--spacing, .25rem) * 0);margin:calc(var(--spacing, .25rem) * 4)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXImageEditorCropperWindowComponent, selector: "ax-image-editor-cropper-window", inputs: ["showGrid", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
860
900
|
}
|
|
861
901
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXImageEditorViewComponent, decorators: [{
|
|
862
902
|
type: Component,
|
|
863
|
-
args: [{ selector: 'ax-image-editor-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXImageEditorCropperWindowComponent], providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], template: "<div class=\"ax-image-editor-stage\">\n <canvas\n tabindex=\"0\"\n (pointerdown)=\"mouseDownHandler($event)\"\n (pointerup)=\"mouseUpHandler($event)\"\n (pointercancel)=\"mouseUpHandler($event)\"\n (pointermove)=\"mouseMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n ></canvas>\n\n @if (service.activeToolState() === 'crop') {\n <ax-image-editor-cropper-window [showGrid]=\"showGrid()\" #f></ax-image-editor-cropper-window>\n }\n</div>\n", styles: ["@layer components{ax-image-editor-view{position:relative;display:flex;width:100%;touch-action:none;align-items:center;justify-content:center;overflow:hidden;background-color:var(--color-white, #fff)}ax-image-editor-view .ax-image-editor-stage{position:relative;display:inline-flex;max-height:100%;max-width:100%;align-items:center;justify-content:center}ax-image-editor-view .ax-canvas-element{max-height:100%;max-width:100%;cursor:crosshair;background-color:var(--color-black, #000);touch-action:none}ax-image-editor-view .ax-crop-save{position:absolute;top:calc(var(--spacing, .25rem) * 0);right:calc(var(--spacing, .25rem) * 0);margin:calc(var(--spacing, .25rem) * 4)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
903
|
+
args: [{ selector: 'ax-image-editor-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXImageEditorCropperWindowComponent], providers: [{ provide: AXComponent, useExisting: AXImageEditorViewComponent }], template: "<div class=\"ax-image-editor-stage\">\n <canvas\n tabindex=\"0\"\n (pointerdown)=\"mouseDownHandler($event)\"\n (pointerup)=\"mouseUpHandler($event)\"\n (pointercancel)=\"mouseUpHandler($event)\"\n (pointermove)=\"mouseMoveHandler($event)\"\n (keydown)=\"historyKeyDown($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n ></canvas>\n\n @if (service.activeToolState() === 'crop') {\n <ax-image-editor-cropper-window [showGrid]=\"showGrid()\" #f></ax-image-editor-cropper-window>\n }\n</div>\n", styles: ["@layer components{ax-image-editor-view{position:relative;display:flex;width:100%;touch-action:none;align-items:center;justify-content:center;overflow:hidden;background-color:var(--color-white, #fff)}ax-image-editor-view .ax-image-editor-stage{position:relative;display:inline-flex;max-height:100%;max-width:100%;align-items:center;justify-content:center}ax-image-editor-view .ax-canvas-element{max-height:100%;max-width:100%;cursor:crosshair;background-color:var(--color-black, #000);touch-action:none}ax-image-editor-view .ax-crop-save{position:absolute;top:calc(var(--spacing, .25rem) * 0);right:calc(var(--spacing, .25rem) * 0);margin:calc(var(--spacing, .25rem) * 4)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
864
904
|
}], ctorParameters: () => [], propDecorators: { showGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGrid", required: false }] }], cropperSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "cropperSize", required: false }] }], src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], canvasElem: [{ type: i0.ViewChild, args: ['canvasElem', { isSignal: true }] }], cropperWindow: [{ type: i0.ViewChild, args: ['f', { isSignal: true }] }] } });
|
|
865
905
|
|
|
866
906
|
/**
|
|
@@ -869,9 +909,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
869
909
|
*/
|
|
870
910
|
class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
|
|
871
911
|
constructor() {
|
|
872
|
-
super(
|
|
912
|
+
super();
|
|
873
913
|
/** @ignore */
|
|
874
914
|
this.service = inject(AXImageEditorService);
|
|
915
|
+
this.host = inject((ElementRef));
|
|
916
|
+
this.destroyRef = inject(DestroyRef);
|
|
875
917
|
this.imageEditorContainer = viewChild('f', /* @ts-ignore */
|
|
876
918
|
...(ngDevMode ? [{ debugName: "imageEditorContainer" }] : /* istanbul ignore next */ []));
|
|
877
919
|
this.view = contentChild(AXImageEditorViewComponent, /* @ts-ignore */
|
|
@@ -886,8 +928,17 @@ class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent
|
|
|
886
928
|
}
|
|
887
929
|
}, /* @ts-ignore */
|
|
888
930
|
...(ngDevMode ? [{ debugName: "#syncValue" }] : /* istanbul ignore next */ []));
|
|
931
|
+
afterNextRender(() => {
|
|
932
|
+
const onKeyDown = (event) => this.handleHistoryShortcut(event);
|
|
933
|
+
document.addEventListener('keydown', onKeyDown, true);
|
|
934
|
+
this.destroyRef.onDestroy(() => document.removeEventListener('keydown', onKeyDown, true));
|
|
935
|
+
});
|
|
889
936
|
}
|
|
890
937
|
#syncValue;
|
|
938
|
+
/** @ignore */
|
|
939
|
+
focusEditor() {
|
|
940
|
+
this.host.nativeElement.focus({ preventScroll: true });
|
|
941
|
+
}
|
|
891
942
|
/** Applies the current cropper selection. */
|
|
892
943
|
async crop() {
|
|
893
944
|
const oldValue = this.value;
|
|
@@ -897,6 +948,32 @@ class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent
|
|
|
897
948
|
this.commitValue(blobs, true);
|
|
898
949
|
}
|
|
899
950
|
}
|
|
951
|
+
/** @ignore */
|
|
952
|
+
onEditorPointerDown(event) {
|
|
953
|
+
const target = event.target;
|
|
954
|
+
if (target instanceof Element && target.closest('canvas.ax-canvas-element')) {
|
|
955
|
+
return;
|
|
956
|
+
}
|
|
957
|
+
this.focusEditor();
|
|
958
|
+
}
|
|
959
|
+
/** @ignore */
|
|
960
|
+
handleHistoryShortcut(event) {
|
|
961
|
+
if (this.disabled) {
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
const root = this.host.nativeElement;
|
|
965
|
+
const activeElement = document.activeElement;
|
|
966
|
+
const isInsideEditor = root.contains(activeElement) || event.composedPath().some((node) => node === root);
|
|
967
|
+
if (!isInsideEditor) {
|
|
968
|
+
return;
|
|
969
|
+
}
|
|
970
|
+
const target = (event.target ?? activeElement);
|
|
971
|
+
if (target instanceof HTMLElement &&
|
|
972
|
+
(target.isContentEditable || target.closest('input, textarea, select, [contenteditable="true"]'))) {
|
|
973
|
+
return;
|
|
974
|
+
}
|
|
975
|
+
this.service.handleHistoryShortcut(event);
|
|
976
|
+
}
|
|
900
977
|
/** Encodes the current canvas into JPEG, PNG, and WebP blobs. */
|
|
901
978
|
async commitChanges() {
|
|
902
979
|
const view = this.view();
|
|
@@ -908,8 +985,8 @@ class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent
|
|
|
908
985
|
}
|
|
909
986
|
return view.commitChanges();
|
|
910
987
|
}
|
|
911
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXImageEditorContainerComponent, deps:
|
|
912
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXImageEditorContainerComponent, isStandalone: true, selector: "ax-image-editor-container", inputs: { look: "look", disabled: "disabled" }, outputs: { onValueChanged: "onValueChanged" }, host: { properties: { "class.ax-state-disabled": "disabled", "attr.name": "name" } }, providers: [
|
|
988
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXImageEditorContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
989
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXImageEditorContainerComponent, isStandalone: true, selector: "ax-image-editor-container", inputs: { look: "look", disabled: "disabled" }, outputs: { onValueChanged: "onValueChanged" }, host: { attributes: { "tabindex": "-1" }, listeners: { "keydown": "handleHistoryShortcut($event)" }, properties: { "class.ax-state-disabled": "disabled", "attr.name": "name" } }, providers: [
|
|
913
990
|
AXImageEditorService,
|
|
914
991
|
{ provide: AXComponent, useExisting: AXImageEditorContainerComponent },
|
|
915
992
|
{ provide: AXFocusableComponent, useExisting: AXImageEditorContainerComponent },
|
|
@@ -919,13 +996,15 @@ class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent
|
|
|
919
996
|
useExisting: forwardRef(() => AXImageEditorContainerComponent),
|
|
920
997
|
multi: true,
|
|
921
998
|
},
|
|
922
|
-
], 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: "<div
|
|
999
|
+
], 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: "<div\n #f\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-image-editor-pending]=\"!service.isImageLoad()\"\n (pointerdown)=\"onEditorPointerDown($event)\"\n>\n <ng-content select=\"ax-header\"></ng-content>\n\n <ng-content select=\"ax-image-editor-view\"> </ng-content>\n\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n\n@if (!service.isImageLoad()) {\n @if (service.loadError()) {\n <div class=\"ax-error-container\">{{ '@acorex:image-editor.load-error' | translate | async }}</div>\n } @else {\n <div class=\"ax-loading-spinner-container\">\n <ax-loading-spinner\n [size]=\"16\"\n color=\"primary\"\n [text]=\"('@acorex:image-editor.loading' | translate | async) || ''\"\n ></ax-loading-spinner>\n </div>\n }\n}\n\n<div class=\"ax-error-container\"></div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n\n@if (disabled) {\n <div class=\"ax-disable-overlay\"></div>\n}\n", styles: ["@layer components{ax-image-editor-container{position:relative;display:block;width:fit-content}ax-image-editor-container.ax-state-disabled{opacity:50%}ax-image-editor-container .ax-disable-overlay{position:absolute;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:100%;width:100%;cursor:not-allowed}ax-image-editor-container>.ax-editor-container{display:block;height:auto!important;padding:calc(var(--spacing, .25rem) * 0)}ax-image-editor-container>.ax-editor-container.ax-image-editor-pending{position:absolute;height:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * 0);overflow:hidden;opacity:0%}ax-image-editor-container .ax-loading-spinner-container,ax-image-editor-container .ax-error-container{display:flex;min-height:calc(var(--spacing, .25rem) * 40);align-items:center;justify-content:center;padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center}ax-image-editor-container ax-footer{width:100%}ax-image-editor-container ax-header{width:100%}ax-image-editor-container ax-header ax-toolbar{justify-content:space-between}ax-image-editor-container ax-header .ax-start-toolbar-divider{display:none}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
923
1000
|
}
|
|
924
1001
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXImageEditorContainerComponent, decorators: [{
|
|
925
1002
|
type: Component,
|
|
926
1003
|
args: [{ selector: 'ax-image-editor-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, outputs: ['onValueChanged'], inputs: ['look', 'disabled'], host: {
|
|
927
1004
|
'[class.ax-state-disabled]': 'disabled',
|
|
928
1005
|
'[attr.name]': 'name',
|
|
1006
|
+
tabindex: '-1',
|
|
1007
|
+
'(keydown)': 'handleHistoryShortcut($event)',
|
|
929
1008
|
}, providers: [
|
|
930
1009
|
AXImageEditorService,
|
|
931
1010
|
{ provide: AXComponent, useExisting: AXImageEditorContainerComponent },
|
|
@@ -936,8 +1015,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
936
1015
|
useExisting: forwardRef(() => AXImageEditorContainerComponent),
|
|
937
1016
|
multi: true,
|
|
938
1017
|
},
|
|
939
|
-
], imports: [AXDecoratorModule, AXLoadingSpinnerComponent, AsyncPipe, AXTranslatorPipe], template: "<div
|
|
940
|
-
}], propDecorators: { imageEditorContainer: [{ type: i0.ViewChild, args: ['f', { isSignal: true }] }], view: [{ type: i0.ContentChild, args: [i0.forwardRef(() => AXImageEditorViewComponent), { isSignal: true }] }] } });
|
|
1018
|
+
], imports: [AXDecoratorModule, AXLoadingSpinnerComponent, AsyncPipe, AXTranslatorPipe], template: "<div\n #f\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-image-editor-pending]=\"!service.isImageLoad()\"\n (pointerdown)=\"onEditorPointerDown($event)\"\n>\n <ng-content select=\"ax-header\"></ng-content>\n\n <ng-content select=\"ax-image-editor-view\"> </ng-content>\n\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n\n@if (!service.isImageLoad()) {\n @if (service.loadError()) {\n <div class=\"ax-error-container\">{{ '@acorex:image-editor.load-error' | translate | async }}</div>\n } @else {\n <div class=\"ax-loading-spinner-container\">\n <ax-loading-spinner\n [size]=\"16\"\n color=\"primary\"\n [text]=\"('@acorex:image-editor.loading' | translate | async) || ''\"\n ></ax-loading-spinner>\n </div>\n }\n}\n\n<div class=\"ax-error-container\"></div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n\n@if (disabled) {\n <div class=\"ax-disable-overlay\"></div>\n}\n", styles: ["@layer components{ax-image-editor-container{position:relative;display:block;width:fit-content}ax-image-editor-container.ax-state-disabled{opacity:50%}ax-image-editor-container .ax-disable-overlay{position:absolute;top:calc(var(--spacing, .25rem) * 0);left:calc(var(--spacing, .25rem) * 0);height:100%;width:100%;cursor:not-allowed}ax-image-editor-container>.ax-editor-container{display:block;height:auto!important;padding:calc(var(--spacing, .25rem) * 0)}ax-image-editor-container>.ax-editor-container.ax-image-editor-pending{position:absolute;height:calc(var(--spacing, .25rem) * 0);width:calc(var(--spacing, .25rem) * 0);overflow:hidden;opacity:0%}ax-image-editor-container .ax-loading-spinner-container,ax-image-editor-container .ax-error-container{display:flex;min-height:calc(var(--spacing, .25rem) * 40);align-items:center;justify-content:center;padding-inline:calc(var(--spacing, .25rem) * 4);text-align:center}ax-image-editor-container ax-footer{width:100%}ax-image-editor-container ax-header{width:100%}ax-image-editor-container ax-header ax-toolbar{justify-content:space-between}ax-image-editor-container ax-header .ax-start-toolbar-divider{display:none}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1019
|
+
}], ctorParameters: () => [], propDecorators: { imageEditorContainer: [{ type: i0.ViewChild, args: ['f', { isSignal: true }] }], view: [{ type: i0.ContentChild, args: [i0.forwardRef(() => AXImageEditorViewComponent), { isSignal: true }] }] } });
|
|
941
1020
|
|
|
942
1021
|
const IMAGE_EDITOR_ASPECT_RATIO_ACTIVE_SUFFIX = ':active';
|
|
943
1022
|
function parseAspectRatioItem(item) {
|