@acorex/components 22.0.0-next.9 → 22.0.1-next.0
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/combo-box/README.md +35 -0
- package/emoji/README.md +3 -0
- package/emojipicker/README.md +3 -0
- package/fesm2022/acorex-components-accordion.mjs +4 -4
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +1 -0
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +2 -2
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +291 -267
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-bubble.mjs +71 -0
- package/fesm2022/acorex-components-bubble.mjs.map +1 -0
- package/fesm2022/acorex-components-button-group.mjs +12 -5
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +6 -6
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +328 -127
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +2 -2
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-combo-box.mjs +973 -0
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs +19058 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-DDkiZfPb.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs +50 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs +87 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs +65 -0
- package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CH3Q6Hry.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation.mjs +1 -22920
- package/fesm2022/acorex-components-conversation.mjs.map +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-data-pager.mjs +4 -4
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +310 -90
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +14 -16
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +61 -32
- package/fesm2022/acorex-components-datetime-input.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 +57 -11
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +7 -4
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +2 -2
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +4 -4
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-emoji.mjs +74 -0
- package/fesm2022/acorex-components-emoji.mjs.map +1 -0
- package/fesm2022/acorex-components-emojipicker.mjs +425 -0
- package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
- package/fesm2022/acorex-components-fab.mjs +5 -5
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-file-viewer.mjs +359 -109
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +22 -6
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +238 -36
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-highlight.mjs +80 -0
- package/fesm2022/acorex-components-highlight.mjs.map +1 -0
- package/fesm2022/acorex-components-image-editor.mjs +686 -416
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
- package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-kanban.mjs +1 -1
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +2 -2
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +2 -2
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +59 -42
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +3505 -0
- package/fesm2022/acorex-components-lookup.mjs.map +1 -0
- package/fesm2022/acorex-components-map.mjs +9 -2
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +322 -79
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-message-status.mjs +71 -0
- package/fesm2022/acorex-components-message-status.mjs.map +1 -0
- package/fesm2022/acorex-components-message-time.mjs +36 -0
- package/fesm2022/acorex-components-message-time.mjs.map +1 -0
- package/fesm2022/acorex-components-message.mjs +120 -0
- package/fesm2022/acorex-components-message.mjs.map +1 -0
- package/fesm2022/acorex-components-notification.mjs +13 -6
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +30 -29
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +1 -1
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +3 -3
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +40 -6
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +4 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +2 -2
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +2 -2
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-reaction.mjs +144 -0
- package/fesm2022/acorex-components-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-rest-api-generator.mjs +5 -5
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +1 -1
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +5 -5
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +12 -22
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +55 -18
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +3 -4
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +2 -2
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +510 -74
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +2 -2
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +2 -2
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +9 -2
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +2 -2
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +86 -6
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +76 -6
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/highlight/README.md +13 -0
- package/inline-reaction/README.md +3 -0
- package/lookup/README.md +74 -0
- package/message/README.md +3 -0
- package/message-status/README.md +3 -0
- package/message-time/README.md +3 -0
- package/package.json +51 -16
- package/reaction/README.md +3 -0
- package/select-box/README.md +5 -0
- package/types/acorex-components-action-sheet.d.ts +9 -1
- package/types/acorex-components-audio-wave.d.ts +132 -73
- package/types/acorex-components-bubble.d.ts +31 -0
- package/types/acorex-components-button-group.d.ts +4 -0
- package/types/acorex-components-button.d.ts +1 -1
- package/types/acorex-components-calendar.d.ts +41 -9
- package/types/acorex-components-combo-box.d.ts +310 -0
- package/types/acorex-components-conversation.d.ts +1806 -1790
- package/types/acorex-components-data-table.d.ts +74 -12
- package/types/acorex-components-datetime-box.d.ts +2 -0
- package/types/acorex-components-datetime-input.d.ts +24 -5
- package/types/acorex-components-decorators.d.ts +14 -1
- package/types/acorex-components-dialog.d.ts +9 -0
- package/types/acorex-components-emoji.d.ts +42 -0
- package/types/acorex-components-emojipicker.d.ts +146 -0
- package/types/acorex-components-file-viewer.d.ts +48 -4
- package/types/acorex-components-grid-layout-builder.d.ts +34 -2
- package/types/acorex-components-highlight.d.ts +31 -0
- package/types/acorex-components-image-editor.d.ts +68 -48
- package/types/acorex-components-inline-reaction.d.ts +52 -0
- package/types/acorex-components-loading-dialog.d.ts +12 -4
- package/types/acorex-components-lookup.d.ts +962 -0
- package/types/acorex-components-map.d.ts +5 -0
- package/types/acorex-components-menu.d.ts +43 -7
- package/types/acorex-components-message-status.d.ts +23 -0
- package/types/acorex-components-message-time.d.ts +19 -0
- package/types/acorex-components-message.d.ts +59 -0
- package/types/acorex-components-notification.d.ts +11 -1
- package/types/acorex-components-number-box.d.ts +3 -1
- package/types/acorex-components-popover.d.ts +12 -1
- package/types/acorex-components-popup.d.ts +9 -1
- package/types/acorex-components-reaction.d.ts +85 -0
- package/types/acorex-components-scheduler.d.ts +2 -4
- package/types/acorex-components-select-box.d.ts +21 -4
- package/types/acorex-components-selection-list.d.ts +1 -1
- package/types/acorex-components-tabs.d.ts +148 -19
- package/types/acorex-components-toast.d.ts +10 -1
- package/types/acorex-components-tree-view.d.ts +39 -2
- package/types/acorex-components-wysiwyg.d.ts +13 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs +0 -106
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs.map +0 -1
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs +0 -223
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs.map +0 -1
- package/fesm2022/acorex-components-flow-chart.mjs +0 -735
- package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
- package/fesm2022/acorex-components-query-builder.mjs +0 -267
- package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +0 -168
- package/fesm2022/acorex-components-selection-list-2.mjs.map +0 -1
- package/flow-chart/README.md +0 -3
- package/query-builder/README.md +0 -3
- package/selection-list-2/README.md +0 -3
- package/types/acorex-components-flow-chart.d.ts +0 -187
- package/types/acorex-components-query-builder.d.ts +0 -52
- package/types/acorex-components-selection-list-2.d.ts +0 -52
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnDestroy, TemplateRef, Type, Provider } from '@angular/core';
|
|
3
|
+
import { AXMenuItem } from '@acorex/components/menu';
|
|
3
4
|
import { AXComponentContent, AXComponentInputs } from '@acorex/core/components';
|
|
4
5
|
import { Subject } from 'rxjs';
|
|
5
|
-
import { AXStyleColorType, AXComponentClosedPromise } from '@acorex/cdk/common';
|
|
6
|
+
import { AXStyleColorType, AXClickEvent, AXComponentClosedPromise } from '@acorex/cdk/common';
|
|
6
7
|
import * as _acorex_core_file from '@acorex/core/file';
|
|
7
8
|
import { AXFileTypeExtensionHint, AXFileType, AXFileTypeViewComponent } from '@acorex/core/file';
|
|
8
9
|
import { SafeResourceUrl } from '@angular/platform-browser';
|
|
@@ -43,6 +44,16 @@ declare function resolveFileViewerFileType(item: AXFileViewerItem): string;
|
|
|
43
44
|
/** Builds an extension hint from item metadata. */
|
|
44
45
|
declare function buildFileViewerExtensionHint(item: AXFileViewerItem): AXFileTypeExtensionHint | undefined;
|
|
45
46
|
|
|
47
|
+
interface AXFileViewerHeaderActionClickEvent {
|
|
48
|
+
sender: AXFileViewerContainerComponent;
|
|
49
|
+
nativeEvent: Event;
|
|
50
|
+
canceled: boolean;
|
|
51
|
+
item: {
|
|
52
|
+
name?: string;
|
|
53
|
+
text: string;
|
|
54
|
+
data?: unknown;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
46
57
|
declare class AXFileViewerContainerComponent implements OnDestroy {
|
|
47
58
|
#private;
|
|
48
59
|
readonly items: _angular_core.InputSignal<AXFileViewerItem[]>;
|
|
@@ -51,18 +62,27 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
|
|
|
51
62
|
readonly pagination: _angular_core.InputSignal<boolean>;
|
|
52
63
|
readonly download: _angular_core.InputSignal<boolean>;
|
|
53
64
|
readonly fullscreen: _angular_core.InputSignal<boolean>;
|
|
65
|
+
/** Header action buttons rendered in the top-right actions area. */
|
|
66
|
+
readonly headerActions: _angular_core.InputSignal<AXMenuItem[]>;
|
|
54
67
|
/** When true, opens in a gallery overlay and closes when fullscreen exits. */
|
|
55
68
|
readonly galleryMode: _angular_core.InputSignal<boolean>;
|
|
56
69
|
readonly headerContent: _angular_core.InputSignal<AXComponentContent>;
|
|
57
70
|
readonly headerContentInputs: _angular_core.InputSignal<AXComponentInputs>;
|
|
58
71
|
readonly fallbackContent: _angular_core.InputSignal<AXComponentContent>;
|
|
59
72
|
readonly fallbackContentInputs: _angular_core.InputSignal<AXComponentInputs>;
|
|
73
|
+
/** Custom empty-state template or component. Falls back to the built-in empty state. */
|
|
74
|
+
readonly emptyContent: _angular_core.InputSignal<AXComponentContent>;
|
|
75
|
+
readonly emptyContentInputs: _angular_core.InputSignal<AXComponentInputs>;
|
|
60
76
|
/** External loading flag — show overlay while parent data is being fetched. */
|
|
61
77
|
readonly loading: _angular_core.InputSignal<boolean>;
|
|
78
|
+
readonly headerActionClick: _angular_core.OutputEmitterRef<AXFileViewerHeaderActionClickEvent>;
|
|
62
79
|
readonly fullscreenClosed: _angular_core.OutputEmitterRef<void>;
|
|
63
80
|
readonly service: AXFileViewerService;
|
|
64
81
|
private readonly host;
|
|
65
82
|
private readonly fullScreenService;
|
|
83
|
+
private readonly document;
|
|
84
|
+
private readonly platformId;
|
|
85
|
+
private readonly destroyRef;
|
|
66
86
|
private readonly mainCarouselRef;
|
|
67
87
|
private readonly thumbCarouselRef;
|
|
68
88
|
private initToken;
|
|
@@ -70,6 +90,7 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
|
|
|
70
90
|
/** True while carousels are being (re)initialized. */
|
|
71
91
|
readonly initializing: _angular_core.WritableSignal<boolean>;
|
|
72
92
|
readonly isBusy: _angular_core.Signal<boolean>;
|
|
93
|
+
readonly isEmpty: _angular_core.Signal<boolean>;
|
|
73
94
|
readonly isFirstSlide: _angular_core.Signal<boolean>;
|
|
74
95
|
readonly isLastSlide: _angular_core.Signal<boolean>;
|
|
75
96
|
readonly currentItem: _angular_core.Signal<AXFileViewerItem>;
|
|
@@ -80,6 +101,9 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
|
|
|
80
101
|
readonly headerTemplateContent: _angular_core.Signal<TemplateRef<any>>;
|
|
81
102
|
readonly headerComponentContent: _angular_core.Signal<Type<unknown>>;
|
|
82
103
|
readonly hasHeaderCenterContent: _angular_core.Signal<boolean>;
|
|
104
|
+
readonly emptyTemplateContent: _angular_core.Signal<TemplateRef<any>>;
|
|
105
|
+
readonly emptyComponentContent: _angular_core.Signal<Type<unknown>>;
|
|
106
|
+
readonly resolvedHeaderActions: _angular_core.Signal<AXMenuItem[]>;
|
|
83
107
|
readonly headerContentContext: _angular_core.Signal<{
|
|
84
108
|
item: AXFileViewerItem;
|
|
85
109
|
items: AXFileViewerItem[];
|
|
@@ -91,11 +115,16 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
|
|
|
91
115
|
formatSize(size?: number): string;
|
|
92
116
|
private readonly mainCarouselOptions;
|
|
93
117
|
private readonly thumbnailCarouselOptions;
|
|
118
|
+
constructor();
|
|
119
|
+
resolveHeaderAction(action: AXMenuItem): AXMenuItem;
|
|
120
|
+
onHeaderActionClick(action: AXMenuItem, event: AXClickEvent): void;
|
|
121
|
+
private isFullscreenAction;
|
|
94
122
|
toggleFullscreen(): void;
|
|
95
123
|
enterFullscreen(): void;
|
|
96
124
|
/** @param emitGalleryClose When false, skips gallery close notification (used during service teardown). */
|
|
97
125
|
exitFullscreen(emitGalleryClose?: boolean): void;
|
|
98
126
|
closeGallery(): void;
|
|
127
|
+
private onFullscreenEscape;
|
|
99
128
|
private initCarousels;
|
|
100
129
|
private readonly onSlideChange;
|
|
101
130
|
next(): void;
|
|
@@ -104,7 +133,7 @@ declare class AXFileViewerContainerComponent implements OnDestroy {
|
|
|
104
133
|
downloadCurrent(): Promise<void>;
|
|
105
134
|
ngOnDestroy(): void;
|
|
106
135
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerContainerComponent, never>;
|
|
107
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerContainerComponent, "ax-file-viewer-container", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "thumbnail": { "alias": "thumbnail"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "download": { "alias": "download"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "galleryMode": { "alias": "galleryMode"; "required": false; "isSignal": true; }; "headerContent": { "alias": "headerContent"; "required": false; "isSignal": true; }; "headerContentInputs": { "alias": "headerContentInputs"; "required": false; "isSignal": true; }; "fallbackContent": { "alias": "fallbackContent"; "required": false; "isSignal": true; }; "fallbackContentInputs": { "alias": "fallbackContentInputs"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "fullscreenClosed": "fullscreenClosed"; }, never, never, true, never>;
|
|
136
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerContainerComponent, "ax-file-viewer-container", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "startIndex": { "alias": "startIndex"; "required": false; "isSignal": true; }; "thumbnail": { "alias": "thumbnail"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "download": { "alias": "download"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "galleryMode": { "alias": "galleryMode"; "required": false; "isSignal": true; }; "headerContent": { "alias": "headerContent"; "required": false; "isSignal": true; }; "headerContentInputs": { "alias": "headerContentInputs"; "required": false; "isSignal": true; }; "fallbackContent": { "alias": "fallbackContent"; "required": false; "isSignal": true; }; "fallbackContentInputs": { "alias": "fallbackContentInputs"; "required": false; "isSignal": true; }; "emptyContent": { "alias": "emptyContent"; "required": false; "isSignal": true; }; "emptyContentInputs": { "alias": "emptyContentInputs"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "headerActionClick": "headerActionClick"; "fullscreenClosed": "fullscreenClosed"; }, never, never, true, never>;
|
|
108
137
|
}
|
|
109
138
|
|
|
110
139
|
interface AXFileViewerGalleryConfig {
|
|
@@ -112,12 +141,15 @@ interface AXFileViewerGalleryConfig {
|
|
|
112
141
|
startIndex?: number;
|
|
113
142
|
thumbnail?: boolean;
|
|
114
143
|
download?: boolean;
|
|
144
|
+
headerActions?: AXMenuItem[];
|
|
115
145
|
loading?: boolean;
|
|
116
146
|
panelClass?: string[];
|
|
117
147
|
headerContent?: AXComponentContent | null;
|
|
118
148
|
headerContentInputs?: AXComponentInputs | null;
|
|
119
149
|
fallbackContent?: AXComponentContent | null;
|
|
120
150
|
fallbackContentInputs?: AXComponentInputs | null;
|
|
151
|
+
emptyContent?: AXComponentContent | null;
|
|
152
|
+
emptyContentInputs?: AXComponentInputs | null;
|
|
121
153
|
}
|
|
122
154
|
interface AXFileViewerGalleryRef<TResult = any> {
|
|
123
155
|
close: (data?: TResult) => void;
|
|
@@ -171,6 +203,11 @@ declare class AXFileViewerHeaderPlaceholderComponent {
|
|
|
171
203
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerHeaderPlaceholderComponent, "ax-file-viewer-header-placeholder", never, { "slideCounter": { "alias": "slideCounter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
172
204
|
}
|
|
173
205
|
|
|
206
|
+
declare class AXFileViewerEmptyStateComponent {
|
|
207
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerEmptyStateComponent, never>;
|
|
208
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerEmptyStateComponent, "ax-file-viewer-empty-state", never, {}, {}, never, never, true, never>;
|
|
209
|
+
}
|
|
210
|
+
|
|
174
211
|
declare class AXFileViewerSlideComponent {
|
|
175
212
|
readonly item: _angular_core.InputSignal<AXFileViewerItem>;
|
|
176
213
|
readonly index: _angular_core.InputSignal<number>;
|
|
@@ -202,6 +239,7 @@ declare class AXFileViewerThumbPreviewComponent {
|
|
|
202
239
|
private readonly service;
|
|
203
240
|
readonly src: _angular_core.WritableSignal<string>;
|
|
204
241
|
readonly icon: _angular_core.Signal<string>;
|
|
242
|
+
onImageError(): void;
|
|
205
243
|
private resolvePreview;
|
|
206
244
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerThumbPreviewComponent, never>;
|
|
207
245
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerThumbPreviewComponent, "ax-file-viewer-thumb-preview", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -226,6 +264,7 @@ declare class AXFileViewerImageComponent implements AXFileTypeViewComponent<AXFi
|
|
|
226
264
|
private readonly service;
|
|
227
265
|
readonly src: _angular_core.WritableSignal<string>;
|
|
228
266
|
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
267
|
+
private loadedId;
|
|
229
268
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerImageComponent, never>;
|
|
230
269
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerImageComponent, "ax-file-viewer-image", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
231
270
|
}
|
|
@@ -234,8 +273,10 @@ declare class AXFileViewerVideoComponent implements AXFileTypeViewComponent<AXFi
|
|
|
234
273
|
#private;
|
|
235
274
|
readonly payload: _angular_core.InputSignal<AXFileViewerViewPayload>;
|
|
236
275
|
private readonly service;
|
|
276
|
+
private readonly mediaEl;
|
|
237
277
|
readonly src: _angular_core.WritableSignal<string>;
|
|
238
278
|
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
279
|
+
private loadedId;
|
|
239
280
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerVideoComponent, never>;
|
|
240
281
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerVideoComponent, "ax-file-viewer-video", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
241
282
|
}
|
|
@@ -244,8 +285,10 @@ declare class AXFileViewerAudioComponent implements AXFileTypeViewComponent<AXFi
|
|
|
244
285
|
#private;
|
|
245
286
|
readonly payload: _angular_core.InputSignal<AXFileViewerViewPayload>;
|
|
246
287
|
private readonly service;
|
|
288
|
+
private readonly mediaEl;
|
|
247
289
|
readonly src: _angular_core.WritableSignal<string>;
|
|
248
290
|
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
291
|
+
private loadedId;
|
|
249
292
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerAudioComponent, never>;
|
|
250
293
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerAudioComponent, "ax-file-viewer-audio", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
251
294
|
}
|
|
@@ -257,6 +300,7 @@ declare class AXFileViewerPdfComponent implements AXFileTypeViewComponent<AXFile
|
|
|
257
300
|
private readonly sanitizer;
|
|
258
301
|
readonly safeSrc: _angular_core.WritableSignal<SafeResourceUrl>;
|
|
259
302
|
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
303
|
+
private loadedId;
|
|
260
304
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileViewerPdfComponent, never>;
|
|
261
305
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerPdfComponent, "ax-file-viewer-pdf", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
262
306
|
}
|
|
@@ -268,5 +312,5 @@ declare class AXFileViewerFileFallbackComponent implements AXFileTypeViewCompone
|
|
|
268
312
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileViewerFileFallbackComponent, "ax-file-viewer-fallback", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
269
313
|
}
|
|
270
314
|
|
|
271
|
-
export { AXFileViewerAudioComponent, AXFileViewerContainerComponent, AXFileViewerFileFallbackComponent, AXFileViewerGalleryService, AXFileViewerHeaderPlaceholderComponent, AXFileViewerImageComponent, AXFileViewerPdfComponent, AXFileViewerService, AXFileViewerSlideComponent, AXFileViewerThumbPreviewComponent, AXFileViewerThumbnailsComponent, AXFileViewerVideoComponent, buildFileViewerExtensionHint, createFileViewerFileTypes, provideFileViewer, resolveFileViewerFileType };
|
|
272
|
-
export type { AXFileViewerGalleryConfig, AXFileViewerGalleryRef, AXFileViewerItem, AXFileViewerViewPayload };
|
|
315
|
+
export { AXFileViewerAudioComponent, AXFileViewerContainerComponent, AXFileViewerEmptyStateComponent, AXFileViewerFileFallbackComponent, AXFileViewerGalleryService, AXFileViewerHeaderPlaceholderComponent, AXFileViewerImageComponent, AXFileViewerPdfComponent, AXFileViewerService, AXFileViewerSlideComponent, AXFileViewerThumbPreviewComponent, AXFileViewerThumbnailsComponent, AXFileViewerVideoComponent, buildFileViewerExtensionHint, createFileViewerFileTypes, provideFileViewer, resolveFileViewerFileType };
|
|
316
|
+
export type { AXFileViewerGalleryConfig, AXFileViewerGalleryRef, AXFileViewerHeaderActionClickEvent, AXFileViewerItem, AXFileViewerViewPayload };
|
|
@@ -5,6 +5,8 @@ import { NXEvent, NXComponent } from '@acorex/cdk/common';
|
|
|
5
5
|
import { Subscription } from 'rxjs';
|
|
6
6
|
import * as gridstack from 'gridstack';
|
|
7
7
|
|
|
8
|
+
/** Grid size preset as `[width, height]` in column/row units. */
|
|
9
|
+
type AXGridLayoutSize = readonly [width: number, height: number];
|
|
8
10
|
interface AXGridLayoutPosition {
|
|
9
11
|
/** widget position x (default?: 0) */
|
|
10
12
|
x?: number;
|
|
@@ -22,6 +24,11 @@ interface AXGridLayoutPosition {
|
|
|
22
24
|
minWidth?: number;
|
|
23
25
|
/** minimum height of widget in rows (default?: undefined = un-constrained) */
|
|
24
26
|
minHeight?: number;
|
|
27
|
+
/**
|
|
28
|
+
* When set, resize is limited to these `[width, height]` presets.
|
|
29
|
+
* Invalid sizes revert to the previous size on resize end. Min/max bounds are derived from this list.
|
|
30
|
+
*/
|
|
31
|
+
allowedSizes?: readonly AXGridLayoutSize[];
|
|
25
32
|
}
|
|
26
33
|
interface AXGridLayoutWidget extends AXGridLayoutPosition {
|
|
27
34
|
id?: string;
|
|
@@ -318,5 +325,30 @@ declare class AXGridLayoutBuilderModule {
|
|
|
318
325
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXGridLayoutBuilderModule>;
|
|
319
326
|
}
|
|
320
327
|
|
|
321
|
-
|
|
322
|
-
|
|
328
|
+
declare const AX_GRID_LAYOUT_ALLOWED_SIZES_ATTR = "data-ax-allowed-sizes";
|
|
329
|
+
declare function convertAXGridLayoutWidgetToGridStackWidget(widget: AXGridLayoutWidget): gridstack.GridStackWidget;
|
|
330
|
+
declare function convertGridStackWidgetToAXGridLayoutWidget(widget: gridstack.GridStackWidget): AXGridLayoutWidget;
|
|
331
|
+
declare function convertAXGridLayoutNodeToGridStackNode(node: AXGridLayoutNode): gridstack.GridStackNode;
|
|
332
|
+
declare function convertGridStackNodeToAXGridLayoutNode(node: gridstack.GridStackNode): AXGridLayoutNode;
|
|
333
|
+
declare function convertAXGridLayoutOptionsToGridStackOptions(options: AXGridLayoutOptions): gridstack.GridStackOptions;
|
|
334
|
+
declare function convertGridStackOptionsToAXGridLayoutOptions(options: gridstack.GridStackOptions): AXGridLayoutOptions;
|
|
335
|
+
/** remove keys which are undefined */
|
|
336
|
+
declare function removeUndefinedKeys<T extends object>(obj: T): T;
|
|
337
|
+
declare function writeAllowedSizesToElement(element: HTMLElement | undefined, allowedSizes: readonly AXGridLayoutSize[] | undefined): void;
|
|
338
|
+
declare function readAllowedSizesFromElement(element: HTMLElement): readonly AXGridLayoutSize[] | undefined;
|
|
339
|
+
declare const AX_GRID_LAYOUT_RESIZE_INVALID_CLASS = "ax-grid-layout-resize-invalid";
|
|
340
|
+
declare const AX_GRID_LAYOUT_RESIZE_PREV_SIZE_ATTR = "data-ax-resize-prev-size";
|
|
341
|
+
declare function isExactAllowedSize(width: number, height: number, allowedSizes: readonly AXGridLayoutSize[]): boolean;
|
|
342
|
+
declare function updateResizeValidityMarkers(gridEl: HTMLElement, element: gridstack.GridItemHTMLElement): void;
|
|
343
|
+
declare function clearResizeValidityMarkers(gridEl: HTMLElement): void;
|
|
344
|
+
declare function storeResizeStartSize(element: gridstack.GridItemHTMLElement): void;
|
|
345
|
+
declare function clearResizeStartSize(element: HTMLElement): void;
|
|
346
|
+
declare function readResizeStartSize(element: HTMLElement): AXGridLayoutSize | undefined;
|
|
347
|
+
declare function snapToAllowedSize(width: number, height: number, allowedSizes: readonly AXGridLayoutSize[]): AXGridLayoutSize;
|
|
348
|
+
declare function deriveMinMaxFromAllowedSizes(allowedSizes: readonly AXGridLayoutSize[]): Pick<AXGridLayoutWidget, 'minWidth' | 'maxWidth' | 'minHeight' | 'maxHeight'>;
|
|
349
|
+
declare function normalizeLayoutNodeWithAllowedSizes<T extends AXGridLayoutWidget>(node: T): T;
|
|
350
|
+
declare function snapElementToAllowedSize(grid: gridstack.GridStack, element: gridstack.GridItemHTMLElement): boolean;
|
|
351
|
+
declare function revertElementToAllowedSizeIfInvalid(grid: gridstack.GridStack, element: gridstack.GridItemHTMLElement): boolean;
|
|
352
|
+
|
|
353
|
+
export { AXGridLayoutBuilderModule, AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent, AX_GRID_LAYOUT_ALLOWED_SIZES_ATTR, AX_GRID_LAYOUT_RESIZE_INVALID_CLASS, AX_GRID_LAYOUT_RESIZE_PREV_SIZE_ATTR, clearResizeStartSize, clearResizeValidityMarkers, convertAXGridLayoutNodeToGridStackNode, convertAXGridLayoutOptionsToGridStackOptions, convertAXGridLayoutWidgetToGridStackWidget, convertGridStackNodeToAXGridLayoutNode, convertGridStackOptionsToAXGridLayoutOptions, convertGridStackWidgetToAXGridLayoutWidget, deriveMinMaxFromAllowedSizes, isExactAllowedSize, normalizeLayoutNodeWithAllowedSizes, readAllowedSizesFromElement, readResizeStartSize, removeUndefinedKeys, revertElementToAllowedSizeIfInvalid, snapElementToAllowedSize, snapToAllowedSize, storeResizeStartSize, updateResizeValidityMarkers, writeAllowedSizesToElement };
|
|
354
|
+
export type { AXGridLayout, AXGridLayoutContainerElement, AXGridLayoutEvent, AXGridLayoutNode, AXGridLayoutOptions, AXGridLayoutPosition, AXGridLayoutSize, AXGridLayoutWidget, AXGridLayoutWidgetElement };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { AXHighlightOptions, AXHighlightSegment } from '@acorex/core/utils';
|
|
3
|
+
import { SafeHtml } from '@angular/platform-browser';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Renders text with search-term matches wrapped in `.ax-highlight` spans.
|
|
7
|
+
*
|
|
8
|
+
* Uses a single innerHTML string so Angular control-flow whitespace cannot insert
|
|
9
|
+
* gaps between highlighted and non-highlighted characters.
|
|
10
|
+
*
|
|
11
|
+
* Does not use the `ax-highlight-text` class on the host — that class is reserved for
|
|
12
|
+
* {@link AXHighlightService} DOM wrappers.
|
|
13
|
+
*/
|
|
14
|
+
declare class AXHighlightTextComponent {
|
|
15
|
+
#private;
|
|
16
|
+
private readonly sanitizer;
|
|
17
|
+
/** The full text to render. */
|
|
18
|
+
readonly text: _angular_core.InputSignal<string>;
|
|
19
|
+
/** The search term or terms to highlight within the text. */
|
|
20
|
+
readonly query: _angular_core.InputSignal<string | readonly string[]>;
|
|
21
|
+
/** When true, highlighting is disabled and plain text is shown. */
|
|
22
|
+
readonly highlightDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
23
|
+
/** Optional highlight behavior configuration. */
|
|
24
|
+
readonly highlightOptions: _angular_core.InputSignal<AXHighlightOptions>;
|
|
25
|
+
protected readonly segments: _angular_core.Signal<AXHighlightSegment[]>;
|
|
26
|
+
protected readonly highlightedHtml: _angular_core.Signal<SafeHtml>;
|
|
27
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXHighlightTextComponent, never>;
|
|
28
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXHighlightTextComponent, "ax-highlight-text", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "highlightDisabled": { "alias": "highlightDisabled"; "required": false; "isSignal": true; }; "highlightOptions": { "alias": "highlightOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { AXHighlightTextComponent };
|
|
@@ -2,15 +2,6 @@ import * as polytype from 'polytype';
|
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
3
|
import { OnDestroy, ElementRef, Renderer2 } from '@angular/core';
|
|
4
4
|
import { MXBaseComponent, MXInputBaseValueComponent, MXLookComponent } from '@acorex/cdk/common';
|
|
5
|
-
import * as i1 from '@acorex/components/button';
|
|
6
|
-
import * as i2 from '@angular/forms';
|
|
7
|
-
import * as i3 from '@acorex/components/range-slider';
|
|
8
|
-
import * as i4 from '@acorex/components/select-box';
|
|
9
|
-
import * as i5 from '@acorex/components/color-box';
|
|
10
|
-
import * as i6 from '@acorex/components/popover';
|
|
11
|
-
import * as i7 from '@acorex/components/decorators';
|
|
12
|
-
import * as i8 from '@acorex/components/loading';
|
|
13
|
-
import * as i9 from '@acorex/components/dialog';
|
|
14
5
|
|
|
15
6
|
type AXImageEditorTool = 'pen' | 'highlight' | 'crop' | 'rotate';
|
|
16
7
|
declare class AXImageEditorService {
|
|
@@ -25,19 +16,27 @@ declare class AXImageEditorService {
|
|
|
25
16
|
userInteract: boolean;
|
|
26
17
|
}>;
|
|
27
18
|
isImageLoad: _angular_core.WritableSignal<boolean>;
|
|
19
|
+
loadError: _angular_core.WritableSignal<boolean>;
|
|
28
20
|
newImage: HTMLImageElement | null;
|
|
29
21
|
initialImage: HTMLImageElement | null;
|
|
30
22
|
imageBlob: _angular_core.WritableSignal<Blob[]>;
|
|
31
23
|
undoPressed: _angular_core.WritableSignal<boolean>;
|
|
32
24
|
redoPressed: _angular_core.WritableSignal<boolean>;
|
|
25
|
+
canUndo: _angular_core.WritableSignal<boolean>;
|
|
26
|
+
canRedo: _angular_core.WritableSignal<boolean>;
|
|
33
27
|
cropperRatio: _angular_core.WritableSignal<string>;
|
|
34
28
|
cropperSize: _angular_core.WritableSignal<number>;
|
|
35
29
|
toggleTool(tool: AXImageEditorTool): void;
|
|
36
30
|
activateTool(tool: AXImageEditorTool): void;
|
|
31
|
+
undo(): void;
|
|
32
|
+
redo(): void;
|
|
33
|
+
/** Handles Ctrl/Cmd+Z and Ctrl/Cmd+Y history shortcuts. Returns true when handled. */
|
|
34
|
+
handleHistoryShortcut(event: KeyboardEvent): boolean;
|
|
37
35
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXImageEditorService, never>;
|
|
38
36
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXImageEditorService>;
|
|
39
37
|
}
|
|
40
38
|
|
|
39
|
+
type AXImageEditorCropHandle = 'right' | 'top' | 'left' | 'bottom' | 'right-top' | 'bottom-right' | 'bottom-left' | 'left-top';
|
|
41
40
|
/**
|
|
42
41
|
* paint mode.
|
|
43
42
|
* @category Components
|
|
@@ -55,39 +54,41 @@ declare class AXImageEditorCropperWindowComponent implements OnDestroy {
|
|
|
55
54
|
protected cropperWindow: _angular_core.Signal<ElementRef<any>>;
|
|
56
55
|
private currentX;
|
|
57
56
|
private currentY;
|
|
58
|
-
private prevX;
|
|
59
|
-
private prevY;
|
|
60
57
|
private aspectWidth;
|
|
61
58
|
private aspectHeight;
|
|
62
59
|
private isMousePressed;
|
|
63
60
|
protected renderer: Renderer2;
|
|
64
61
|
private platformID;
|
|
65
|
-
private mouseMoveEvent
|
|
66
|
-
private mouseUpEvent
|
|
67
|
-
private mouseMoveEvent2
|
|
68
|
-
private mouseUpEvent2
|
|
69
|
-
private mouseDownEvent
|
|
70
|
-
private mouseLeaveEvent
|
|
62
|
+
private mouseMoveEvent?;
|
|
63
|
+
private mouseUpEvent?;
|
|
64
|
+
private mouseMoveEvent2?;
|
|
65
|
+
private mouseUpEvent2?;
|
|
66
|
+
private mouseDownEvent?;
|
|
67
|
+
private mouseLeaveEvent?;
|
|
68
|
+
private positioned;
|
|
71
69
|
ngOnDestroy(): void;
|
|
72
|
-
protected panMove(e:
|
|
73
|
-
protected panDown(e:
|
|
70
|
+
protected panMove(e: PointerEvent): void;
|
|
71
|
+
protected panDown(e: PointerEvent): void;
|
|
74
72
|
protected panUp(): void;
|
|
75
73
|
getCropperArea(): DOMRect;
|
|
76
|
-
private setPosition;
|
|
77
74
|
private startX;
|
|
78
75
|
private startY;
|
|
79
76
|
private startWidth;
|
|
80
77
|
private startHeight;
|
|
81
78
|
private startLeft;
|
|
82
79
|
private startTop;
|
|
83
|
-
protected handleSelector(e:
|
|
84
|
-
protected changeSizeHandler(e:
|
|
80
|
+
protected handleSelector(e: PointerEvent, value: AXImageEditorCropHandle): void;
|
|
81
|
+
protected changeSizeHandler(e: PointerEvent): void;
|
|
85
82
|
protected clearSelector(): void;
|
|
83
|
+
private normalizeRatio;
|
|
84
|
+
private centerOnParent;
|
|
85
|
+
private clampToParent;
|
|
86
|
+
private applyPosition;
|
|
86
87
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXImageEditorCropperWindowComponent, never>;
|
|
87
88
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXImageEditorCropperWindowComponent, "ax-image-editor-cropper-window", never, { "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
declare class AXImageEditorViewComponent extends MXBaseComponent
|
|
91
|
+
declare class AXImageEditorViewComponent extends MXBaseComponent {
|
|
91
92
|
/**
|
|
92
93
|
* its change grid display state.
|
|
93
94
|
*/
|
|
@@ -118,44 +119,54 @@ declare class AXImageEditorViewComponent extends MXBaseComponent implements OnDe
|
|
|
118
119
|
protected isDrawRectangleCreated: _angular_core.WritableSignal<boolean>;
|
|
119
120
|
/** @ignore */
|
|
120
121
|
protected parent: AXImageEditorContainerComponent;
|
|
121
|
-
|
|
122
|
-
|
|
122
|
+
private readonly destroyRef;
|
|
123
|
+
private readonly host;
|
|
123
124
|
/** @ignore */
|
|
124
125
|
protected imageEditorHistory: _angular_core.WritableSignal<HTMLImageElement[]>;
|
|
125
126
|
/** @ignore */
|
|
126
127
|
protected imageEditorHistoryPointer: _angular_core.WritableSignal<number>;
|
|
127
|
-
|
|
128
|
-
private
|
|
129
|
-
|
|
130
|
-
private
|
|
131
|
-
private
|
|
132
|
-
private
|
|
133
|
-
private
|
|
128
|
+
private canvasReady;
|
|
129
|
+
private drawing;
|
|
130
|
+
private didDraw;
|
|
131
|
+
private highlightSnapshot;
|
|
132
|
+
private highlightPoints;
|
|
133
|
+
private persistGeneration;
|
|
134
|
+
private sourceToken;
|
|
135
|
+
constructor();
|
|
134
136
|
/** @ignore */
|
|
135
137
|
protected resizeWindow(): void;
|
|
136
138
|
/** @ignore */
|
|
137
139
|
protected canvasResponsive(image: HTMLImageElement): void;
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
private
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
private loadSource;
|
|
141
|
+
private paintImage;
|
|
142
|
+
private fitCanvasDisplay;
|
|
143
|
+
private replaceHistory;
|
|
144
|
+
private pushHistory;
|
|
145
|
+
private syncHistoryFlags;
|
|
146
|
+
private applyUndo;
|
|
147
|
+
private applyRedo;
|
|
148
|
+
private canvasPoint;
|
|
149
|
+
private isDrawTool;
|
|
145
150
|
/** @ignore */
|
|
146
151
|
protected penConfigHandler(penType: 'pen' | 'highlight'): void;
|
|
152
|
+
private strokeHighlight;
|
|
147
153
|
/** @ignore */
|
|
148
|
-
protected
|
|
154
|
+
protected historyKeyDown(event: KeyboardEvent): void;
|
|
149
155
|
/** @ignore */
|
|
150
|
-
protected
|
|
156
|
+
protected focusCanvas(): void;
|
|
151
157
|
/** @ignore */
|
|
152
|
-
protected
|
|
158
|
+
protected mouseDownHandler(event: PointerEvent): void;
|
|
153
159
|
/** @ignore */
|
|
154
|
-
|
|
160
|
+
protected mouseMoveHandler(event: PointerEvent): void;
|
|
155
161
|
/** @ignore */
|
|
156
|
-
protected
|
|
162
|
+
protected mouseUpHandler(event?: PointerEvent): void;
|
|
163
|
+
/** Applies the current cropper selection. */
|
|
164
|
+
crop(): Promise<void>;
|
|
165
|
+
/** Encodes the current canvas into JPEG, PNG, and WebP blobs. */
|
|
166
|
+
commitChanges(): Promise<Blob[]>;
|
|
157
167
|
/** @ignore */
|
|
158
|
-
protected
|
|
168
|
+
protected rotateImage(): Promise<void>;
|
|
169
|
+
private persistCanvas;
|
|
159
170
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXImageEditorViewComponent, never>;
|
|
160
171
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXImageEditorViewComponent, "ax-image-editor-view", never, { "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "cropperSize": { "alias": "cropperSize"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
161
172
|
}
|
|
@@ -173,12 +184,21 @@ declare class AXImageEditorContainerComponent extends AXImageEditorContainerComp
|
|
|
173
184
|
#private;
|
|
174
185
|
/** @ignore */
|
|
175
186
|
protected service: AXImageEditorService;
|
|
187
|
+
private readonly host;
|
|
188
|
+
private readonly destroyRef;
|
|
176
189
|
imageEditorContainer: _angular_core.Signal<ElementRef<any>>;
|
|
177
190
|
view: _angular_core.Signal<AXImageEditorViewComponent>;
|
|
191
|
+
constructor();
|
|
192
|
+
/** @ignore */
|
|
193
|
+
protected focusEditor(): void;
|
|
178
194
|
/** Applies the current cropper selection. */
|
|
179
195
|
crop(): Promise<void>;
|
|
180
|
-
|
|
181
|
-
|
|
196
|
+
/** @ignore */
|
|
197
|
+
protected onEditorPointerDown(event: PointerEvent): void;
|
|
198
|
+
/** @ignore */
|
|
199
|
+
protected handleHistoryShortcut(event: KeyboardEvent): void;
|
|
200
|
+
/** Encodes the current canvas into JPEG, PNG, and WebP blobs. */
|
|
201
|
+
commitChanges(): Promise<Blob[]>;
|
|
182
202
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXImageEditorContainerComponent, never>;
|
|
183
203
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXImageEditorContainerComponent, "ax-image-editor-container", never, { "look": { "alias": "look"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "onValueChanged": "onValueChanged"; }, ["view"], ["ax-header", "ax-image-editor-view", "ax-footer", "ax-validation-rule"], true, never>;
|
|
184
204
|
}
|
|
@@ -287,7 +307,7 @@ declare class AXImageEditorToolSelectorComponent {
|
|
|
287
307
|
|
|
288
308
|
declare class AXImageEditorModule {
|
|
289
309
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXImageEditorModule, never>;
|
|
290
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXImageEditorModule, never, [typeof
|
|
310
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXImageEditorModule, never, [typeof AXImageEditorViewComponent, typeof AXImageEditorContainerComponent, typeof AXImageEditorCropComponent, typeof AXImageEditorHistoryComponent, typeof AXImageEditorToolSelectorComponent, typeof AXImageEditorToolsBarComponent, typeof AXImageEditorPenComponent, typeof AXImageEditorHighlightComponent, typeof AXImageEditorRotateComponent, typeof AXImageEditorCropperWindowComponent], [typeof AXImageEditorViewComponent, typeof AXImageEditorContainerComponent, typeof AXImageEditorCropComponent, typeof AXImageEditorHistoryComponent, typeof AXImageEditorToolSelectorComponent, typeof AXImageEditorToolsBarComponent, typeof AXImageEditorPenComponent, typeof AXImageEditorHighlightComponent, typeof AXImageEditorRotateComponent, typeof AXImageEditorCropperWindowComponent]>;
|
|
291
311
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXImageEditorModule>;
|
|
292
312
|
}
|
|
293
313
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { AXEmoji } from '@acorex/core/constants';
|
|
3
|
+
|
|
4
|
+
declare class AXInlineReactionComponent {
|
|
5
|
+
private readonly elementRef;
|
|
6
|
+
private readonly document;
|
|
7
|
+
private readonly platformId;
|
|
8
|
+
readonly emojis: _angular_core.InputSignal<readonly AXEmoji[]>;
|
|
9
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
10
|
+
/** Whether the reaction bar is expanded to show all emojis. */
|
|
11
|
+
readonly expanded: _angular_core.WritableSignal<boolean>;
|
|
12
|
+
/**
|
|
13
|
+
* Maximum number of emojis to display in the bar.
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue 8
|
|
16
|
+
*/
|
|
17
|
+
readonly maxVisible: _angular_core.InputSignal<number>;
|
|
18
|
+
/**
|
|
19
|
+
* When true, hides the expand button and always shows the collapsed bar only.
|
|
20
|
+
*
|
|
21
|
+
* @defaultValue false
|
|
22
|
+
*/
|
|
23
|
+
readonly showExpanded: _angular_core.InputSignal<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* When true, collapses the bar when the user clicks outside the component.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue true
|
|
28
|
+
*/
|
|
29
|
+
readonly closeOnClickOutside: _angular_core.InputSignal<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Emits when the user clicks a quick reaction.
|
|
32
|
+
*/
|
|
33
|
+
readonly selected: _angular_core.OutputEmitterRef<AXEmoji>;
|
|
34
|
+
/**
|
|
35
|
+
* Emits when the expanded state changes (expand button or click outside).
|
|
36
|
+
*/
|
|
37
|
+
readonly expandedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
38
|
+
protected readonly visibleEmojis: _angular_core.Signal<readonly AXEmoji[]>;
|
|
39
|
+
constructor();
|
|
40
|
+
protected toggleExpanded(event: Event): void;
|
|
41
|
+
private setExpanded;
|
|
42
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInlineReactionComponent, never>;
|
|
43
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXInlineReactionComponent, "ax-inline-reaction", never, { "emojis": { "alias": "emojis"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "maxVisible": { "alias": "maxVisible"; "required": false; "isSignal": true; }; "showExpanded": { "alias": "showExpanded"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; }, { "selected": "selected"; "expandedChange": "expandedChange"; }, never, never, true, never>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class AXInlineReactionModule {
|
|
47
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXInlineReactionModule, never>;
|
|
48
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXInlineReactionModule, never, [typeof AXInlineReactionComponent], [typeof AXInlineReactionComponent]>;
|
|
49
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXInlineReactionModule>;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { AXInlineReactionComponent, AXInlineReactionModule };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AXStyleColorType, AXStyleLookType, AXHotKeyAction, MXBaseComponent } from '@acorex/cdk/common';
|
|
2
2
|
import { AXOverlayRef } from '@acorex/cdk/overlay';
|
|
3
3
|
import { AXDialogButtonItem } from '@acorex/components/dialog';
|
|
4
|
+
import { AXPopupSizeType, AXPopupRef } from '@acorex/components/popup';
|
|
4
5
|
import { AXProgressMode } from '@acorex/components/progress-bar';
|
|
5
6
|
import * as _angular_core from '@angular/core';
|
|
6
7
|
import { OnInit } from '@angular/core';
|
|
@@ -13,6 +14,8 @@ interface AXLoadingDialogConfig {
|
|
|
13
14
|
progressValue?: number;
|
|
14
15
|
progressColor?: AXStyleColorType;
|
|
15
16
|
progressHeight?: number;
|
|
17
|
+
/** Popup size token. Uses the same responsive sizes as `AXPopupService`. @default 'sm' */
|
|
18
|
+
size?: AXPopupSizeType;
|
|
16
19
|
buttons?: AXLoadingDialogButtonItem[];
|
|
17
20
|
}
|
|
18
21
|
interface AXLoadingDialogButtonItem {
|
|
@@ -43,7 +46,7 @@ interface AXLoadingDialogRef {
|
|
|
43
46
|
type AXDialogRef = AXLoadingDialogRef;
|
|
44
47
|
/**
|
|
45
48
|
* @internal
|
|
46
|
-
* Internal reference used by loading dialog service to manage overlay instances
|
|
49
|
+
* Internal reference used by loading dialog service to manage overlay instances.
|
|
47
50
|
*/
|
|
48
51
|
interface AXLoadingDialogInternalRef {
|
|
49
52
|
overlayRef: AXOverlayRef<unknown>;
|
|
@@ -57,8 +60,13 @@ interface AXLoadingDialogInternalRef {
|
|
|
57
60
|
declare class AXLoadingDialogComponent extends MXBaseComponent implements OnInit {
|
|
58
61
|
/** Loading dialog configuration data */
|
|
59
62
|
data: _angular_core.InputSignal<AXLoadingDialogConfig>;
|
|
60
|
-
/**
|
|
63
|
+
/** Callback function to close the dialog */
|
|
61
64
|
onClose: _angular_core.InputSignal<() => void>;
|
|
65
|
+
/**
|
|
66
|
+
* Injected by {@link AXPopupComponent} when this dialog is opened via {@link AXPopupService}.
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
readonly __popup__: _angular_core.InputSignal<AXPopupRef<any>>;
|
|
62
70
|
/** @ignore */
|
|
63
71
|
protected progressText: _angular_core.WritableSignal<string>;
|
|
64
72
|
/** @ignore */
|
|
@@ -116,7 +124,7 @@ declare class AXLoadingDialogComponent extends MXBaseComponent implements OnInit
|
|
|
116
124
|
/** @ignore */
|
|
117
125
|
protected _hasAutoFocus(button: AXLoadingDialogButtonItem): boolean;
|
|
118
126
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLoadingDialogComponent, never>;
|
|
119
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLoadingDialogComponent, "ax-loading-dialog", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "onClose": { "alias": "onClose"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
127
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLoadingDialogComponent, "ax-loading-dialog", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "onClose": { "alias": "onClose"; "required": false; "isSignal": true; }; "__popup__": { "alias": "__popup__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
120
128
|
}
|
|
121
129
|
|
|
122
130
|
declare class AXLoadingDialogModule {
|
|
@@ -126,7 +134,7 @@ declare class AXLoadingDialogModule {
|
|
|
126
134
|
}
|
|
127
135
|
|
|
128
136
|
declare class AXLoadingDialogService {
|
|
129
|
-
private
|
|
137
|
+
private popupService;
|
|
130
138
|
/**
|
|
131
139
|
* Opens a loading dialog with the specified configuration.
|
|
132
140
|
*
|