@acorex-platform/framework-client 0.0.38 → 0.0.48
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-platform-framework-client-auth.mjs +212 -44
- package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs → acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs} +31 -1
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-common.mjs +1172 -193
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +233 -132
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +295 -59
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs} +10 -6
- package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs +66 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs +195 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +4015 -1014
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +1179 -304
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs} +1701 -300
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +2 -2
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +47 -8
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +3854 -3292
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs +33319 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs} +8 -5
- package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs +45 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs +68 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs +88 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs +71 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs +81 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs} +41 -23
- package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs +71 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs +111 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs +77 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs} +21 -8
- package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs +124 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs +345 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -31985
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs +2 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-runtime.mjs +2 -2
- package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs} +3 -3
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs +122 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs} +3 -3
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +424 -103
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs → acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs} +102 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +174 -22
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/package.json +2 -2
- package/realtime/README.md +1 -1
- package/types/acorex-platform-framework-client-auth.d.ts +18 -1
- package/types/acorex-platform-framework-client-common.d.ts +243 -9
- package/types/acorex-platform-framework-client-core.d.ts +152 -119
- package/types/acorex-platform-framework-client-layout-builder.d.ts +29 -0
- package/types/acorex-platform-framework-client-layout-components.d.ts +717 -147
- package/types/acorex-platform-framework-client-layout-designer.d.ts +192 -14
- package/types/acorex-platform-framework-client-layout-entity.d.ts +167 -92
- package/types/acorex-platform-framework-client-layout-views.d.ts +23 -1
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +148 -40
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +261 -119
- package/types/acorex-platform-framework-client-realtime.d.ts +16 -3
- package/types/acorex-platform-framework-client-themes-default.d.ts +62 -11
- package/types/acorex-platform-framework-client-themes-shared.d.ts +25 -2
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs +0 -77
- package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs +0 -122
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, OnChanges, EventEmitter, EnvironmentProviders, EnvironmentInjector, ApplicationRef, QueryList, Type, WritableSignal } from '@angular/core';
|
|
3
3
|
import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
|
|
4
|
-
import { AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPWidgetNode, AXPContextData, AXPFilterClause,
|
|
5
|
-
import { AXPActivityLog,
|
|
4
|
+
import { AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPWidgetNode, AXPContextData, AXPFilterDefinition, AXPFilterClause, AXPContextChangeEvent, AXPFileListItem, AXPPlatformScope, AXPFilterQuery, AXPQueryFilterMode, AXPQueryFilterGroupLogic, AXPMultiLanguageString, AXPActionMenuItem, AXPExecuteCommand, containsHtmlMarkup, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery } from '@acorex-platform/framework-shared/core';
|
|
5
|
+
import { AXPActivityLog, AXPHookProvider, AXPDeviceService } from '@acorex-platform/framework-client/core';
|
|
6
6
|
export { AXPLogoComponent } from '@acorex-platform/framework-client/core';
|
|
7
7
|
import { AXHtmlEvent, AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXDataSourceOperator, AXFilterLogic, AXComponentClosedPromise, AXEvent, AXRange } from '@acorex/cdk/common';
|
|
8
8
|
import * as _ngrx_signals from '@ngrx/signals';
|
|
@@ -15,6 +15,7 @@ import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
|
15
15
|
import { AXDataTableColumnComponent, AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXDataTableRowClick, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
|
|
16
16
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
17
17
|
import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
|
|
18
|
+
import { AXPEntityListUserStylingRule, AXPEntityMasterStylingLockedRule, AXPEntityListStylingTargetOption, AXPEntitySortPreset } from '@acorex-platform/framework-shared/entity';
|
|
18
19
|
import { AXMultiLanguageString, AXTranslationService } from '@acorex/core/translation';
|
|
19
20
|
import { AXToastService } from '@acorex/components/toast';
|
|
20
21
|
import { AXMenuItem, AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
|
|
@@ -23,9 +24,10 @@ import { AXFileViewerGalleryConfig, AXFileViewerItem, AXFileViewerHeaderActionCl
|
|
|
23
24
|
export { AXFileViewerGalleryConfig, AXFileViewerGalleryRef, AXFileViewerHeaderActionClickEvent, AXFileViewerItem, AXFileViewerViewPayload, provideFileViewer, resolveFileViewerFileType } from '@acorex/components/file-viewer';
|
|
24
25
|
import { AXTagBoxComponent } from '@acorex/components/tag-box';
|
|
25
26
|
import { AXCalendarService } from '@acorex/core/date-time';
|
|
26
|
-
import
|
|
27
|
+
import * as _acorex_platform_framework_client_layout_widget_core from '@acorex-platform/framework-client/layout/widget-core';
|
|
28
|
+
import { AXPWidgetContainerComponent, AXPWidgetRendererDirective, AXPLocalDataSourceColumn } from '@acorex-platform/framework-client/layout/widget-core';
|
|
27
29
|
import { AXFormComponent } from '@acorex/components/form';
|
|
28
|
-
import { AXPWidgetProperty, AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';
|
|
30
|
+
import { AXPWidgetProperty, AXPLayoutProfileContext, AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';
|
|
29
31
|
import { AXLookupComponent } from '@acorex/components/lookup';
|
|
30
32
|
import { AXTabStripChangedEvent, AXTabsComponent } from '@acorex/components/tabs';
|
|
31
33
|
import { AXValidationSummary } from '@acorex/core/validation';
|
|
@@ -121,6 +123,7 @@ declare class AXPActivityLogComponent {
|
|
|
121
123
|
* Generic avatar renderer with image and initials fallback.
|
|
122
124
|
*/
|
|
123
125
|
declare class AXPAvatarComponent {
|
|
126
|
+
#private;
|
|
124
127
|
/** Avatar size in pixels. */
|
|
125
128
|
readonly size: _angular_core.InputSignal<number>;
|
|
126
129
|
/** Optional image source for the avatar. */
|
|
@@ -133,7 +136,11 @@ declare class AXPAvatarComponent {
|
|
|
133
136
|
readonly fallbackText: _angular_core.InputSignal<string | undefined>;
|
|
134
137
|
/** Forces placeholder mode and '?' fallback. */
|
|
135
138
|
readonly placeholder: _angular_core.InputSignal<boolean>;
|
|
139
|
+
/** External busy state (e.g. while a new avatar file id is being resolved to a display URL). */
|
|
140
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
141
|
+
private readonly imageLoading;
|
|
136
142
|
protected readonly imageFailed: _angular_core.WritableSignal<boolean>;
|
|
143
|
+
protected readonly showLoadingOverlay: _angular_core.Signal<boolean>;
|
|
137
144
|
protected readonly normalizedName: _angular_core.Signal<string>;
|
|
138
145
|
protected readonly resolvedSrc: _angular_core.Signal<string>;
|
|
139
146
|
protected readonly hasAvatar: _angular_core.Signal<boolean>;
|
|
@@ -146,7 +153,7 @@ declare class AXPAvatarComponent {
|
|
|
146
153
|
private hashString;
|
|
147
154
|
private pickColor;
|
|
148
155
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPAvatarComponent, never>;
|
|
149
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPAvatarComponent, "axp-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "fullName": { "alias": "fullName"; "required": false; "isSignal": true; }; "showTitle": { "alias": "showTitle"; "required": false; "isSignal": true; }; "fallbackText": { "alias": "fallbackText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
156
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPAvatarComponent, "axp-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "fullName": { "alias": "fullName"; "required": false; "isSignal": true; }; "showTitle": { "alias": "showTitle"; "required": false; "isSignal": true; }; "fallbackText": { "alias": "fallbackText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
150
157
|
}
|
|
151
158
|
|
|
152
159
|
declare class AXPTaskBadgeService {
|
|
@@ -192,6 +199,7 @@ declare class AXPTaskBadgeDirective {
|
|
|
192
199
|
sideMenuWidth: _angular_core.Signal<number>;
|
|
193
200
|
sideMenuCompactWidth: _angular_core.Signal<number>;
|
|
194
201
|
menuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
|
|
202
|
+
menuToggleCyclesStyle: _angular_core.Signal<boolean>;
|
|
195
203
|
menuOrientation: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuOrientation>;
|
|
196
204
|
menuAppearance: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuAppearance>;
|
|
197
205
|
headerAppearance: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPHeaderAppearance>;
|
|
@@ -205,6 +213,7 @@ declare class AXPTaskBadgeDirective {
|
|
|
205
213
|
overlayTaskCount: _angular_core.Signal<number>;
|
|
206
214
|
isNavigationLoading: _angular_core.Signal<boolean>;
|
|
207
215
|
isMenuHorizontal: _angular_core.Signal<boolean>;
|
|
216
|
+
menuToggleCyclesStyleEnabled: _angular_core.Signal<boolean>;
|
|
208
217
|
effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
|
|
209
218
|
sideMenuDrawerWidth: _angular_core.Signal<number>;
|
|
210
219
|
menuDarkEnabled: _angular_core.Signal<boolean>;
|
|
@@ -219,6 +228,7 @@ declare class AXPTaskBadgeDirective {
|
|
|
219
228
|
setSideMenuWidth: (width: number) => void;
|
|
220
229
|
setSideMenuCompactWidth: (width: number) => void;
|
|
221
230
|
setSideMenuDrawerWidth: (width: number) => void;
|
|
231
|
+
setMenuVerticalMode: (mode: _acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode) => void;
|
|
222
232
|
toggleSideMenu: () => void;
|
|
223
233
|
setNavigationLoading: (value: boolean, delay?: number) => void;
|
|
224
234
|
setOverlayLoading: (value: boolean, delay?: number) => void;
|
|
@@ -241,6 +251,7 @@ declare class AXPTaskBadgeDirective {
|
|
|
241
251
|
sideMenuWidth: number;
|
|
242
252
|
sideMenuCompactWidth: number;
|
|
243
253
|
menuVerticalMode: _acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode;
|
|
254
|
+
menuToggleCyclesStyle: boolean;
|
|
244
255
|
menuOrientation: _acorex_platform_framework_client_themes_shared.AXPMenuOrientation;
|
|
245
256
|
menuAppearance: _acorex_platform_framework_client_themes_shared.AXPMenuAppearance;
|
|
246
257
|
headerAppearance: _acorex_platform_framework_client_themes_shared.AXPHeaderAppearance;
|
|
@@ -559,10 +570,11 @@ declare class AXPColumnItemListComponent implements OnDestroy {
|
|
|
559
570
|
|
|
560
571
|
declare class AXPQueryColumnsComponent {
|
|
561
572
|
columns: _angular_core.ModelSignal<AXPColumnQuery[]>;
|
|
573
|
+
constrainHeight: _angular_core.InputSignal<boolean>;
|
|
562
574
|
handleVisibilityChange(e: AXValueChangedEvent<boolean>, name: string): void;
|
|
563
575
|
protected drop(event: CdkDragDrop<unknown[]>): void;
|
|
564
576
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryColumnsComponent, never>;
|
|
565
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryColumnsComponent, "axp-query-columns", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; }, { "columns": "columnsChange"; }, never, never, true, never>;
|
|
577
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryColumnsComponent, "axp-query-columns", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "constrainHeight": { "alias": "constrainHeight"; "required": false; "isSignal": true; }; }, { "columns": "columnsChange"; }, never, never, true, never>;
|
|
566
578
|
}
|
|
567
579
|
|
|
568
580
|
interface AXPTextCommandColumnClickEvent {
|
|
@@ -888,6 +900,81 @@ declare class AXPDragDropListComponent {
|
|
|
888
900
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDragDropListComponent, "axp-drag-drop-list", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "listId": { "alias": "listId"; "required": false; "isSignal": true; }; "dropListGroup": { "alias": "dropListGroup"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; }, { "items": "itemsChange"; "itemClick": "itemClick"; "dropListDropped": "dropListDropped"; }, never, never, true, never>;
|
|
889
901
|
}
|
|
890
902
|
|
|
903
|
+
interface AXPEntityListStylingDialogInput {
|
|
904
|
+
rules: readonly AXPEntityListUserStylingRule[];
|
|
905
|
+
lockedRules: readonly AXPEntityMasterStylingLockedRule[];
|
|
906
|
+
filterDefinitions: readonly AXPFilterDefinition[];
|
|
907
|
+
targets: readonly AXPEntityListStylingTargetOption[];
|
|
908
|
+
}
|
|
909
|
+
declare class AXPEntityListStylingDialogService {
|
|
910
|
+
private readonly popupService;
|
|
911
|
+
private readonly translationService;
|
|
912
|
+
open(input: AXPEntityListStylingDialogInput): Promise<AXPEntityListUserStylingRule[] | null>;
|
|
913
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListStylingDialogService, never>;
|
|
914
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityListStylingDialogService>;
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
type AXPEntityListStylingRulesKind = 'row' | 'field';
|
|
918
|
+
interface AXPEntityListStylingRulesLayoutOptions {
|
|
919
|
+
kind: AXPEntityListStylingRulesKind;
|
|
920
|
+
targets: readonly AXPEntityListStylingTargetOption[];
|
|
921
|
+
filterDefinitions: readonly AXPFilterDefinition[];
|
|
922
|
+
showIcon?: boolean;
|
|
923
|
+
showClassText?: boolean;
|
|
924
|
+
}
|
|
925
|
+
declare function buildEntityListStylingRulesLayout(options: AXPEntityListStylingRulesLayoutOptions): AXPWidgetNode;
|
|
926
|
+
|
|
927
|
+
interface AXPEntityListStylingEditorRow {
|
|
928
|
+
id: string;
|
|
929
|
+
target: string;
|
|
930
|
+
className: string;
|
|
931
|
+
icon?: string;
|
|
932
|
+
condition: AXPFilterClause;
|
|
933
|
+
}
|
|
934
|
+
interface AXPEntityListStylingRowEditorContext {
|
|
935
|
+
rowRules: AXPEntityListStylingEditorRow[];
|
|
936
|
+
}
|
|
937
|
+
interface AXPEntityListStylingFieldEditorContext {
|
|
938
|
+
fieldRules: AXPEntityListStylingEditorRow[];
|
|
939
|
+
}
|
|
940
|
+
declare class AXPEntityListStylingPopupComponent extends AXBasePageComponent {
|
|
941
|
+
private readonly translation;
|
|
942
|
+
private readonly rowLayoutRenderer;
|
|
943
|
+
private readonly fieldLayoutRenderer;
|
|
944
|
+
protected readonly I18N: {
|
|
945
|
+
readonly cancel: "@general:actions.cancel.title";
|
|
946
|
+
readonly save: "@general:actions.save.title";
|
|
947
|
+
readonly builtInHint: "@general:terms.interface.styling.built-in-hint";
|
|
948
|
+
readonly rowRules: "@general:terms.interface.styling.row-rules";
|
|
949
|
+
readonly fieldRules: "@general:terms.interface.styling.field-rules";
|
|
950
|
+
readonly row: "@general:terms.interface.styling.row";
|
|
951
|
+
readonly always: "@general:terms.interface.styling.always";
|
|
952
|
+
};
|
|
953
|
+
protected readonly recordTarget = "record";
|
|
954
|
+
/**
|
|
955
|
+
* Assigned by AXPopupService from `data` (`instance[key] = value`).
|
|
956
|
+
* These must stay plain fields. `input()` is overwritten and then `lockedRules()` throws.
|
|
957
|
+
*/
|
|
958
|
+
rules: AXPEntityListUserStylingRule[];
|
|
959
|
+
lockedRules: AXPEntityMasterStylingLockedRule[];
|
|
960
|
+
filterDefinitions: AXPFilterDefinition[];
|
|
961
|
+
targets: AXPEntityListStylingTargetOption[];
|
|
962
|
+
protected readonly rowRulesLayout: _angular_core.WritableSignal<_acorex_platform_framework_shared_core.AXPWidgetNode | null>;
|
|
963
|
+
protected readonly fieldRulesLayout: _angular_core.WritableSignal<_acorex_platform_framework_shared_core.AXPWidgetNode | null>;
|
|
964
|
+
protected readonly rowEditorContext: _angular_core.ModelSignal<AXPEntityListStylingRowEditorContext>;
|
|
965
|
+
protected readonly fieldEditorContext: _angular_core.ModelSignal<AXPEntityListStylingFieldEditorContext>;
|
|
966
|
+
protected get lockedRowRules(): AXPEntityMasterStylingLockedRule[];
|
|
967
|
+
protected get lockedFieldRules(): AXPEntityMasterStylingLockedRule[];
|
|
968
|
+
constructor();
|
|
969
|
+
protected targetLabel(target: string): string;
|
|
970
|
+
protected handleCancel(): void;
|
|
971
|
+
protected handleSave(): void;
|
|
972
|
+
private bootstrapEditor;
|
|
973
|
+
private readEditorRows;
|
|
974
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListStylingPopupComponent, never>;
|
|
975
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityListStylingPopupComponent, "axp-entity-list-styling-popup", never, { "rowEditorContext": { "alias": "rowEditorContext"; "required": false; "isSignal": true; }; "fieldEditorContext": { "alias": "fieldEditorContext"; "required": false; "isSignal": true; }; }, { "rowEditorContext": "rowEditorContextChange"; "fieldEditorContext": "fieldEditorContextChange"; }, never, never, true, never>;
|
|
976
|
+
}
|
|
977
|
+
|
|
891
978
|
/**
|
|
892
979
|
* Shared types for expression builders (expression-builder, sort-builder, group-builder, etc.)
|
|
893
980
|
*/
|
|
@@ -996,6 +1083,8 @@ declare class AXPConditionBuilderConditionComponent implements OnInit {
|
|
|
996
1083
|
filterDefinitions: _angular_core.InputSignal<AXPFilterDefinition[]>;
|
|
997
1084
|
onResolveWidget: _angular_core.InputSignal<((fieldId: string) => string) | undefined>;
|
|
998
1085
|
showFillByUser: _angular_core.InputSignal<boolean>;
|
|
1086
|
+
compact: _angular_core.InputSignal<boolean>;
|
|
1087
|
+
operationsLook: _angular_core.InputSignal<"select" | "menu">;
|
|
999
1088
|
itemChange: _angular_core.OutputEmitterRef<ConditionBuilderSelectedField>;
|
|
1000
1089
|
removeItem: _angular_core.OutputEmitterRef<string>;
|
|
1001
1090
|
protected selectedField: _angular_core.WritableSignal<ConditionBuilderSelectedField | null>;
|
|
@@ -1008,25 +1097,20 @@ declare class AXPConditionBuilderConditionComponent implements OnInit {
|
|
|
1008
1097
|
}[]>;
|
|
1009
1098
|
protected readonly currentFilterDefinition: _angular_core.Signal<AXPFilterDefinition | undefined>;
|
|
1010
1099
|
protected readonly selectedFieldValue: _angular_core.Signal<string>;
|
|
1100
|
+
protected readonly filterHostKey: _angular_core.Signal<string>;
|
|
1101
|
+
protected readonly filterHostKeys: _angular_core.Signal<string[]>;
|
|
1011
1102
|
ngOnInit(): void;
|
|
1012
1103
|
constructor();
|
|
1013
1104
|
private updateFilterWidgetNode;
|
|
1014
1105
|
private updateContext;
|
|
1015
|
-
onFieldChange(event: AXValueChangedEvent
|
|
1016
|
-
|
|
1017
|
-
data?: {
|
|
1018
|
-
filter?: {
|
|
1019
|
-
value?: unknown;
|
|
1020
|
-
operation?: {
|
|
1021
|
-
type?: string;
|
|
1022
|
-
};
|
|
1023
|
-
};
|
|
1024
|
-
};
|
|
1106
|
+
onFieldChange(event: AXValueChangedEvent & {
|
|
1107
|
+
isUserInteraction?: boolean;
|
|
1025
1108
|
}): void;
|
|
1109
|
+
onContextChange(event: AXPContextChangeEvent): void;
|
|
1026
1110
|
onFillByUserChange(checked: boolean): void;
|
|
1027
1111
|
onRemoveClick(): void;
|
|
1028
1112
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPConditionBuilderConditionComponent, never>;
|
|
1029
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPConditionBuilderConditionComponent, "axp-condition-builder-condition", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "filterDefinitions": { "alias": "filterDefinitions"; "required": false; "isSignal": true; }; "onResolveWidget": { "alias": "onResolveWidget"; "required": false; "isSignal": true; }; "showFillByUser": { "alias": "showFillByUser"; "required": false; "isSignal": true; }; }, { "itemChange": "itemChange"; "removeItem": "removeItem"; }, never, never, true, never>;
|
|
1113
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPConditionBuilderConditionComponent, "axp-condition-builder-condition", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "filterDefinitions": { "alias": "filterDefinitions"; "required": false; "isSignal": true; }; "onResolveWidget": { "alias": "onResolveWidget"; "required": false; "isSignal": true; }; "showFillByUser": { "alias": "showFillByUser"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "operationsLook": { "alias": "operationsLook"; "required": false; "isSignal": true; }; }, { "itemChange": "itemChange"; "removeItem": "removeItem"; }, never, never, true, never>;
|
|
1030
1114
|
}
|
|
1031
1115
|
|
|
1032
1116
|
/**
|
|
@@ -1046,6 +1130,7 @@ declare class AXPConditionBuilderComponent {
|
|
|
1046
1130
|
filterDefinitions: _angular_core.InputSignal<AXPFilterDefinition[]>;
|
|
1047
1131
|
/** When true, show "Fill by user" checkbox on each condition (e.g. for query parameters) */
|
|
1048
1132
|
showFillByUser: _angular_core.InputSignal<boolean>;
|
|
1133
|
+
operationsLook: _angular_core.InputSignal<"select" | "menu">;
|
|
1049
1134
|
valueChange: _angular_core.OutputEmitterRef<AXPFilterClause>;
|
|
1050
1135
|
protected queryData: _angular_core.WritableSignal<AXPFilterClause>;
|
|
1051
1136
|
protected readonly logicalOperatorsItems: {
|
|
@@ -1055,6 +1140,7 @@ declare class AXPConditionBuilderComponent {
|
|
|
1055
1140
|
protected getLogicDisplayText(logic: AXFilterLogic | undefined): string;
|
|
1056
1141
|
private connectorLayoutRafId;
|
|
1057
1142
|
private connectorResizeObserver;
|
|
1143
|
+
private lastEmittedValue;
|
|
1058
1144
|
private initConnectorAutoLayout;
|
|
1059
1145
|
private scheduleConnectorLayoutUpdate;
|
|
1060
1146
|
private updateConnectorCssVars;
|
|
@@ -1074,7 +1160,7 @@ declare class AXPConditionBuilderComponent {
|
|
|
1074
1160
|
reorderGroupItemsEvent(groupId: string, event: AXDropListDroppedEvent): void;
|
|
1075
1161
|
reorderGroupItems(groupId: string, previousIndex: number, currentIndex: number): void;
|
|
1076
1162
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPConditionBuilderComponent, never>;
|
|
1077
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPConditionBuilderComponent, "axp-condition-builder", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "filterDefinitions": { "alias": "filterDefinitions"; "required": false; "isSignal": true; }; "showFillByUser": { "alias": "showFillByUser"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1163
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPConditionBuilderComponent, "axp-condition-builder", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "filterDefinitions": { "alias": "filterDefinitions"; "required": false; "isSignal": true; }; "showFillByUser": { "alias": "showFillByUser"; "required": false; "isSignal": true; }; "operationsLook": { "alias": "operationsLook"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1078
1164
|
}
|
|
1079
1165
|
|
|
1080
1166
|
interface AXPFileChooserContext {
|
|
@@ -1124,9 +1210,9 @@ interface AXPFileChooserAfterChosenPayload {
|
|
|
1124
1210
|
items: AXPFileListItem[];
|
|
1125
1211
|
}
|
|
1126
1212
|
|
|
1127
|
-
declare const AXPFileChooserCompressImagesHook:
|
|
1128
|
-
declare const AXPFileChooserZipFilesHook:
|
|
1129
|
-
declare const AXP_FILE_CHOOSER_HOOK_PROVIDERS: readonly [
|
|
1213
|
+
declare const AXPFileChooserCompressImagesHook: AXPHookProvider<AXPFileChooserAfterChosenPayload, AXPFileChooserAfterChosenPayload>;
|
|
1214
|
+
declare const AXPFileChooserZipFilesHook: AXPHookProvider<AXPFileChooserAfterChosenPayload, AXPFileChooserAfterChosenPayload>;
|
|
1215
|
+
declare const AXP_FILE_CHOOSER_HOOK_PROVIDERS: readonly [AXPHookProvider<AXPFileChooserAfterChosenPayload, AXPFileChooserAfterChosenPayload>, AXPHookProvider<AXPFileChooserAfterChosenPayload, AXPFileChooserAfterChosenPayload>];
|
|
1130
1216
|
declare function provideFileChooserHooks(): EnvironmentProviders;
|
|
1131
1217
|
|
|
1132
1218
|
/**
|
|
@@ -1151,16 +1237,68 @@ declare function compressImageFile(file: File, quality?: number, maxDimension?:
|
|
|
1151
1237
|
*/
|
|
1152
1238
|
declare function createZipArchive(files: File[], archiveName?: string): Promise<File>;
|
|
1153
1239
|
|
|
1240
|
+
interface AXPFileProviderMenuItem {
|
|
1241
|
+
key: string;
|
|
1242
|
+
title: AXMultiLanguageString;
|
|
1243
|
+
icon?: string;
|
|
1244
|
+
disabled?: boolean;
|
|
1245
|
+
/** i18n key shown as a badge when {@link disabled} is true. */
|
|
1246
|
+
disabledBadgeKey?: string;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
interface AXPFileProviderPromptOptions {
|
|
1250
|
+
titleKey?: string;
|
|
1251
|
+
/** Additional choices (e.g. Gravatar) shown after registered providers. */
|
|
1252
|
+
extraItems?: AXPFileProviderMenuItem[];
|
|
1253
|
+
/** Open the picker even when only one registered provider exists. */
|
|
1254
|
+
forcePicker?: boolean;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
/** Accept string shared by profile photo and image editor pick flows. */
|
|
1258
|
+
declare const AXP_IMAGE_FILE_CHOOSER_ACCEPT = "image/png, image/jpeg, image/webp";
|
|
1259
|
+
/** Synthetic provider key for profile-photo Gravatar import (not a registered chooser provider). */
|
|
1260
|
+
declare const AXP_PROFILE_PHOTO_GRAVATAR_SOURCE_KEY = "profile-photo:gravatar";
|
|
1261
|
+
/** Converts a chooser item with a blob source into a {@link File}. */
|
|
1262
|
+
declare function fileListItemToImageFile(item: AXPFileListItem): File | null;
|
|
1263
|
+
/**
|
|
1264
|
+
* Prompts for a file provider (when several exist), then returns the first chosen image file.
|
|
1265
|
+
* Matches the file-uploader widget provider flow via {@link AXPFileChooserService.promptChoose}.
|
|
1266
|
+
*/
|
|
1267
|
+
declare function pickImageFileViaFileChooser(chooserService: AXPFileChooserService): Promise<File | null>;
|
|
1268
|
+
interface AXPProfilePhotoImagePickOptions {
|
|
1269
|
+
/** When set, shows an Import from Gravatar option and resolves via {@link resolveGravatarImageFile}. */
|
|
1270
|
+
gravatarEmail?: string | null;
|
|
1271
|
+
gravatarTitleKey?: string;
|
|
1272
|
+
pickSourceTitleKey?: string;
|
|
1273
|
+
/** Drive scope for "Choose From Drive". Defaults to the user's personal drive. */
|
|
1274
|
+
driveScope?: AXPPlatformScope;
|
|
1275
|
+
}
|
|
1276
|
+
interface AXPProfilePhotoImagePickResult {
|
|
1277
|
+
file: File | null;
|
|
1278
|
+
gravatarNotFound?: boolean;
|
|
1279
|
+
/** True when the file came from Gravatar (already square — skip the image editor). */
|
|
1280
|
+
fromGravatar?: boolean;
|
|
1281
|
+
}
|
|
1282
|
+
/**
|
|
1283
|
+
* Profile photo source picker: registered providers plus optional Gravatar, then returns an image file.
|
|
1284
|
+
*/
|
|
1285
|
+
declare function pickProfilePhotoImageFile(chooserService: AXPFileChooserService, options: AXPProfilePhotoImagePickOptions): Promise<AXPProfilePhotoImagePickResult>;
|
|
1286
|
+
|
|
1154
1287
|
/**
|
|
1155
1288
|
* Resolves providers and delegates file selection to them.
|
|
1156
1289
|
*/
|
|
1157
1290
|
declare class AXPFileChooserService {
|
|
1158
|
-
private readonly
|
|
1291
|
+
private readonly environmentInjector;
|
|
1159
1292
|
private readonly hooks;
|
|
1160
1293
|
private readonly settingsService;
|
|
1161
1294
|
private readonly providers;
|
|
1162
1295
|
private readonly toastService;
|
|
1163
1296
|
private readonly translateService;
|
|
1297
|
+
private readonly fileProviderPrompt;
|
|
1298
|
+
/**
|
|
1299
|
+
* Opens the file source picker popup and returns the selected provider key.
|
|
1300
|
+
*/
|
|
1301
|
+
promptFileProviderKey(providers: AXPFileProviderMenuItem[], titleOrOptions?: string | AXPFileProviderPromptOptions): Promise<string | undefined>;
|
|
1164
1302
|
getProviders(options?: Record<string, unknown>): AXPFileChooserProvider[];
|
|
1165
1303
|
choose(providerKey: string | undefined, context: AXPFileChooserContext): Promise<AXPFileListItem[] | undefined>;
|
|
1166
1304
|
/**
|
|
@@ -1171,6 +1309,10 @@ declare class AXPFileChooserService {
|
|
|
1171
1309
|
* Prompts for a provider when multiple are registered, then runs file selection.
|
|
1172
1310
|
*/
|
|
1173
1311
|
promptChoose(context: AXPFileChooserContext): Promise<AXPFileListItem[] | undefined>;
|
|
1312
|
+
/**
|
|
1313
|
+
* Profile photo pick flow (providers, optional Gravatar, then image file).
|
|
1314
|
+
*/
|
|
1315
|
+
pickProfilePhotoImage(options?: AXPProfilePhotoImagePickOptions): Promise<AXPProfilePhotoImagePickResult>;
|
|
1174
1316
|
private resolveProvider;
|
|
1175
1317
|
private applyChooserValidation;
|
|
1176
1318
|
private runAfterChosenHook;
|
|
@@ -1198,6 +1340,11 @@ interface FileAcceptFilterResult {
|
|
|
1198
1340
|
}
|
|
1199
1341
|
type FileUploaderEmptyStateDescriptionKey = '@general:widgets.file-uploader.empty-state.description' | '@general:widgets.file-uploader.empty-state.description-with-formats' | '@general:widgets.file-uploader.empty-state.description-with-max-size' | '@general:widgets.file-uploader.empty-state.description-with-limits';
|
|
1200
1342
|
declare function isUnrestrictedFileAccept(accept: string | undefined): boolean;
|
|
1343
|
+
/**
|
|
1344
|
+
* Matches a file name (and optional MIME) against an HTML `accept` string.
|
|
1345
|
+
* Used when the picker only has a name (Drive) rather than a browser {@link File}.
|
|
1346
|
+
*/
|
|
1347
|
+
declare function fileNameMatchesAccept(fileName: string, accept: string | undefined, mime?: string): boolean;
|
|
1201
1348
|
declare function fileMatchesAccept(file: File, accept: string): boolean;
|
|
1202
1349
|
declare function filterFilesByAcceptAndMaxSize(files: File[], accept: string | undefined, maxFileSize: number | undefined): FileAcceptFilterResult;
|
|
1203
1350
|
declare function formatAcceptForDisplay(accept: string | undefined, maxLength?: number): string;
|
|
@@ -1218,6 +1365,12 @@ declare function validateFileChooserItems(items: AXPFileListItem[] | undefined,
|
|
|
1218
1365
|
rejected: FileAcceptRejectedFile[];
|
|
1219
1366
|
};
|
|
1220
1367
|
|
|
1368
|
+
/** MD5 hex digest of a string (Gravatar email hash). */
|
|
1369
|
+
declare function md5Hex(input: string): string;
|
|
1370
|
+
declare function buildGravatarAvatarUrl(email: string, size?: number): string;
|
|
1371
|
+
/** Fetches the Gravatar image for an email, or null when none is registered. */
|
|
1372
|
+
declare function fetchGravatarImageFile(email: string): Promise<File | null>;
|
|
1373
|
+
|
|
1221
1374
|
/** Gallery open options with platform file list items or pre-built viewer items. */
|
|
1222
1375
|
interface AXPFileViewerGalleryConfig extends Omit<AXFileViewerGalleryConfig, 'items'> {
|
|
1223
1376
|
/** Pre-built viewer items (takes precedence over {@link files}). */
|
|
@@ -1372,9 +1525,10 @@ interface AXPFileUploaderBeforeUploadPayload {
|
|
|
1372
1525
|
* Resolves providers and delegates file upload to them.
|
|
1373
1526
|
*/
|
|
1374
1527
|
declare class AXPFileUploaderService {
|
|
1375
|
-
private readonly
|
|
1528
|
+
private readonly environmentInjector;
|
|
1376
1529
|
private readonly hooks;
|
|
1377
1530
|
private readonly providers;
|
|
1531
|
+
private readonly fileProviderPrompt;
|
|
1378
1532
|
getProviders(options?: Record<string, unknown>): AXPFileUploaderProvider[];
|
|
1379
1533
|
upload(providerKey: string | undefined, context: AXPFileUploaderContext): Promise<AXPFileListItem[] | undefined>;
|
|
1380
1534
|
/**
|
|
@@ -1409,12 +1563,6 @@ declare function filterFileProvidersByContext<T extends {
|
|
|
1409
1563
|
key: string;
|
|
1410
1564
|
}>(providers: T[], options?: Record<string, unknown>): T[];
|
|
1411
1565
|
|
|
1412
|
-
interface AXPFileProviderMenuItem {
|
|
1413
|
-
key: string;
|
|
1414
|
-
title: AXMultiLanguageString;
|
|
1415
|
-
icon?: string;
|
|
1416
|
-
}
|
|
1417
|
-
|
|
1418
1566
|
interface AXPAttachedFileProviderMenu {
|
|
1419
1567
|
open(target: HTMLElement, providers: AXPFileProviderMenuItem[], busy: boolean): void;
|
|
1420
1568
|
close(): void;
|
|
@@ -1422,6 +1570,36 @@ interface AXPAttachedFileProviderMenu {
|
|
|
1422
1570
|
}
|
|
1423
1571
|
declare function createAttachedFileProviderMenu(envInjector: EnvironmentInjector, appRef: ApplicationRef, onSelect: (providerKey: string) => void): AXPAttachedFileProviderMenu;
|
|
1424
1572
|
|
|
1573
|
+
type QueryFilterGroupLogic = AXPQueryFilterGroupLogic;
|
|
1574
|
+
interface QueryFilterEditingCondition {
|
|
1575
|
+
id: string;
|
|
1576
|
+
field: string;
|
|
1577
|
+
}
|
|
1578
|
+
interface QueryFilterChipTag extends AXPFilterDefinition {
|
|
1579
|
+
id: string;
|
|
1580
|
+
query: string;
|
|
1581
|
+
chipMode: 'expanded' | 'summary' | 'search';
|
|
1582
|
+
mixed: boolean;
|
|
1583
|
+
titleLabel: string;
|
|
1584
|
+
logicLabel: string;
|
|
1585
|
+
chipConditions: Array<{
|
|
1586
|
+
title: string;
|
|
1587
|
+
operator: string;
|
|
1588
|
+
value: string;
|
|
1589
|
+
}>;
|
|
1590
|
+
summaryText: string;
|
|
1591
|
+
readOnly: boolean;
|
|
1592
|
+
}
|
|
1593
|
+
type MobileFilterChip = {
|
|
1594
|
+
kind: 'applied';
|
|
1595
|
+
id: string;
|
|
1596
|
+
tag: QueryFilterChipTag;
|
|
1597
|
+
tagIndex: number;
|
|
1598
|
+
} | {
|
|
1599
|
+
kind: 'available';
|
|
1600
|
+
id: string;
|
|
1601
|
+
definition: AXPFilterDefinition;
|
|
1602
|
+
};
|
|
1425
1603
|
declare class AXPQueryFiltersComponent {
|
|
1426
1604
|
#private;
|
|
1427
1605
|
protected translate: AXTranslationService;
|
|
@@ -1433,47 +1611,90 @@ declare class AXPQueryFiltersComponent {
|
|
|
1433
1611
|
private readonly destroyRef;
|
|
1434
1612
|
private readonly elementRef;
|
|
1435
1613
|
private readonly queryService;
|
|
1614
|
+
protected readonly deviceService: AXPDeviceService;
|
|
1436
1615
|
protected readonly filterFocusShortcutKeys: string[];
|
|
1437
1616
|
constructor();
|
|
1438
1617
|
filtersDefinitions: _angular_core.InputSignal<AXPFilterDefinition[]>;
|
|
1439
1618
|
initialFilters: _angular_core.InputSignal<AXPFilterQuery[]>;
|
|
1619
|
+
/** `normal` keeps one chip per field. `advanced` allows mixed-field groups and root AND/OR. */
|
|
1620
|
+
mode: _angular_core.InputSignal<AXPQueryFilterMode>;
|
|
1440
1621
|
/** When true, this list supports quick search (combined with {@link AXPCommonSettings.QuickSearchEnabled}). */
|
|
1441
1622
|
quickSearch: _angular_core.InputSignal<boolean>;
|
|
1623
|
+
/** Mobile-only: sort presets rendered as chips in the same row as advance filters. */
|
|
1624
|
+
sortPresets: _angular_core.InputSignal<AXPEntitySortPreset[]>;
|
|
1625
|
+
activeSortPresetName: _angular_core.InputSignal<string | null>;
|
|
1442
1626
|
onFiltersChanged: _angular_core.OutputEmitterRef<AXPFilterQuery[]>;
|
|
1627
|
+
onSortPresetSelected: _angular_core.OutputEmitterRef<AXPEntitySortPreset>;
|
|
1628
|
+
protected isAdvanced: _angular_core.Signal<boolean>;
|
|
1629
|
+
protected isMixedEditingGroup: _angular_core.Signal<boolean>;
|
|
1630
|
+
protected advancedFieldOptions: _angular_core.Signal<AXPFilterDefinition[]>;
|
|
1443
1631
|
protected quickSearchSettingEnabled: _angular_core.WritableSignal<boolean>;
|
|
1444
1632
|
protected isQuickSearchMode: _angular_core.Signal<boolean>;
|
|
1445
1633
|
protected dateFormat: _angular_core.WritableSignal<string>;
|
|
1446
1634
|
protected tagBox: _angular_core.Signal<AXTagBoxComponent | undefined>;
|
|
1635
|
+
protected readonly mobileFilterTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
1447
1636
|
protected widgetsContainer: _angular_core.Signal<AXPWidgetContainerComponent | undefined>;
|
|
1448
|
-
protected
|
|
1637
|
+
protected widgetRenderers: _angular_core.Signal<readonly AXPWidgetRendererDirective[]>;
|
|
1449
1638
|
tagBoxInput: any;
|
|
1450
1639
|
listItems: QueryList<any>;
|
|
1451
1640
|
protected selectedField: _angular_core.WritableSignal<string | null>;
|
|
1452
1641
|
protected selectedFilters: _angular_core.WritableSignal<AXPFilterDefinition[]>;
|
|
1453
1642
|
context: _angular_core.WritableSignal<any>;
|
|
1454
1643
|
protected activeFilter: _angular_core.WritableSignal<AXPFilterDefinition | null>;
|
|
1455
|
-
protected
|
|
1644
|
+
protected editingLogic: _angular_core.WritableSignal<AXPQueryFilterGroupLogic>;
|
|
1645
|
+
protected editingConditions: _angular_core.WritableSignal<QueryFilterEditingCondition[]>;
|
|
1646
|
+
protected rootLogic: _angular_core.WritableSignal<AXPQueryFilterGroupLogic>;
|
|
1647
|
+
protected activeChipId: _angular_core.Signal<string | null>;
|
|
1648
|
+
protected activeFilterTitle: _angular_core.WritableSignal<string>;
|
|
1649
|
+
protected asyncTags: _angular_core.WritableSignal<QueryFilterChipTag[]>;
|
|
1650
|
+
protected readonly mobileFilterChips: _angular_core.Signal<MobileFilterChip[]>;
|
|
1456
1651
|
protected popover: _angular_core.Signal<AXPopoverComponent | undefined>;
|
|
1457
1652
|
inputValue: _angular_core.WritableSignal<string>;
|
|
1653
|
+
protected readonly mobileSearchOpen: _angular_core.WritableSignal<boolean>;
|
|
1654
|
+
protected readonly mobileSearchText: _angular_core.WritableSignal<string>;
|
|
1655
|
+
protected readonly hasActiveInlineSearch: _angular_core.Signal<boolean>;
|
|
1656
|
+
protected readonly hasAppliedAdvanceFilter: _angular_core.Signal<boolean>;
|
|
1657
|
+
protected readonly isMobileFilterModeLocked: _angular_core.Signal<boolean>;
|
|
1658
|
+
protected readonly isMobileSearchModeLocked: _angular_core.Signal<boolean>;
|
|
1659
|
+
setMobileSearchOpen(isOpen: boolean): void;
|
|
1458
1660
|
protected readonly disabledByField: _angular_core.WritableSignal<Record<string, boolean>>;
|
|
1661
|
+
protected readonly hasMultipleFilterGroups: _angular_core.Signal<boolean>;
|
|
1662
|
+
protected readonly isChipsPanning: _angular_core.WritableSignal<boolean>;
|
|
1663
|
+
protected readonly mobileModeToggleCollapsed: _angular_core.WritableSignal<boolean>;
|
|
1664
|
+
private lastMobileChipsScrollFromStart;
|
|
1665
|
+
private chipsPanSession;
|
|
1666
|
+
private suppressChipsClick;
|
|
1667
|
+
protected readonly canApplyFilter: _angular_core.Signal<boolean>;
|
|
1459
1668
|
/** Emits when a filter context entry changes (aligned with `widget-renderer` `events.context`). */
|
|
1460
1669
|
private readonly filterContextPath$;
|
|
1461
1670
|
private filterContextPathSnapshotReady;
|
|
1462
1671
|
private previousFilterContextSnapshot;
|
|
1463
|
-
/**
|
|
1672
|
+
/** Full context snapshot while editing; restored when popover closes without Apply. */
|
|
1464
1673
|
private editingContextSnapshot;
|
|
1674
|
+
private skipNextPopoverRestore;
|
|
1675
|
+
private editingConditionsSnapshot;
|
|
1465
1676
|
/** Bumped on locale change so filter chip labels re-resolve i18n keys. */
|
|
1466
1677
|
private translationEpoch;
|
|
1467
1678
|
inlineFilters: () => AXPFilterDefinition[];
|
|
1468
1679
|
protected getDisplayValue: (filter: AXPFilterDefinition, val: any) => Promise<any>;
|
|
1469
1680
|
private resolveSelectFilterDisplayText;
|
|
1470
|
-
|
|
1681
|
+
private formatRangeDisplayValue;
|
|
1682
|
+
protected convertIfISOStringDate: (val: unknown) => string;
|
|
1471
1683
|
convertQueriesToDefinitions(queries: AXPFilterQuery[]): AXPFilterDefinition[];
|
|
1472
1684
|
convertQueriesToContext(queries: AXPFilterQuery[]): any;
|
|
1473
1685
|
filterFields: () => AXPFilterDefinition[];
|
|
1474
1686
|
ngOnInit(): void;
|
|
1687
|
+
/** Opens the field picker to start a new chip/group (toolbar click). */
|
|
1688
|
+
protected openNewFilterGroup(): void;
|
|
1475
1689
|
/** Opens the filter popover anchored to the last tag or tag-box start. */
|
|
1476
1690
|
protected openFilterPopover(): void;
|
|
1691
|
+
protected handleMobileSearchChanged(event: AXValueChangedEvent<string>): void;
|
|
1692
|
+
protected applyMobileSortPreset(preset: AXPEntitySortPreset, event: Event): void;
|
|
1693
|
+
protected isMobileSortPresetActive(preset: AXPEntitySortPreset): boolean;
|
|
1694
|
+
protected mobileSortPresetDir(preset: AXPEntitySortPreset): 'asc' | 'desc' | undefined;
|
|
1695
|
+
protected openMobileAvailableFilter(definition: AXPFilterDefinition, event: Event): void;
|
|
1696
|
+
protected mobileChipLabel(item: QueryFilterChipTag): string;
|
|
1697
|
+
private resolveMobilePopoverTarget;
|
|
1477
1698
|
/** Click on the tag-box opens the filter menu (empty or with tags). */
|
|
1478
1699
|
protected handleTagBoxClick(event: MouseEvent): void;
|
|
1479
1700
|
/**
|
|
@@ -1489,8 +1710,19 @@ declare class AXPQueryFiltersComponent {
|
|
|
1489
1710
|
handleFieldKeyDown(e: KeyboardEvent, field: AXPFilterDefinition): void;
|
|
1490
1711
|
onContextChanged(e: AXPContextChangeEvent): void;
|
|
1491
1712
|
handleApplyFilter(): void;
|
|
1713
|
+
handleMobileChipsScroll(event: Event): void;
|
|
1714
|
+
handleChipsWheel(event: WheelEvent): void;
|
|
1715
|
+
handleChipsPointerDown(event: PointerEvent): void;
|
|
1716
|
+
private readonly onChipsPanMove;
|
|
1717
|
+
private readonly onChipsPanUp;
|
|
1718
|
+
private endChipsPan;
|
|
1719
|
+
private resolveChipsScroller;
|
|
1720
|
+
private consumeChipsClickSuppression;
|
|
1721
|
+
private syncMobileModeToggleFromScroll;
|
|
1722
|
+
private getInlineScrollFromStart;
|
|
1492
1723
|
handleButtonKeyDown(e: Event): void;
|
|
1493
1724
|
handleKeyDown(e: AXHtmlEvent<KeyboardEvent>): void;
|
|
1725
|
+
private handleAllFilterBackspace;
|
|
1494
1726
|
onEnterKeyPressed(e: Event): void;
|
|
1495
1727
|
handleTagClick(item: any, event?: Event): void;
|
|
1496
1728
|
handleRemoveTag(e: Event, index: number): void;
|
|
@@ -1507,7 +1739,8 @@ declare class AXPQueryFiltersComponent {
|
|
|
1507
1739
|
}): string;
|
|
1508
1740
|
handleSelectFilters(e: AXValueChangedEvent): void;
|
|
1509
1741
|
handleAddAllInlineFilters(): void;
|
|
1510
|
-
|
|
1742
|
+
getInlineSearchValue(): string;
|
|
1743
|
+
applyInlineSearch(value: string): void;
|
|
1511
1744
|
handleSelectInlineFilter(filter: AXPFilterDefinition): void;
|
|
1512
1745
|
handleInlineFilterKeyDown(e: KeyboardEvent, filter: AXPFilterDefinition): void;
|
|
1513
1746
|
handlePopoverClosed(e: AXEvent): void;
|
|
@@ -1536,6 +1769,27 @@ declare class AXPQueryFiltersComponent {
|
|
|
1536
1769
|
* Returns the committed filter context entry (snapshot while editing, live context otherwise).
|
|
1537
1770
|
*/
|
|
1538
1771
|
private getCommittedFilterEntry;
|
|
1772
|
+
protected getConditionOperatorKey(conditionId: string): string | undefined;
|
|
1773
|
+
protected getConditionDefinition(field: string | undefined): AXPFilterDefinition | undefined;
|
|
1774
|
+
protected getConditionWidget(condition: QueryFilterEditingCondition): AXPFilterDefinition['widget'] | undefined;
|
|
1775
|
+
protected setConditionField(conditionId: string, field: string): void;
|
|
1776
|
+
protected setRootLogic(logic: QueryFilterGroupLogic): void;
|
|
1777
|
+
protected setEditingLogic(logic: QueryFilterGroupLogic): void;
|
|
1778
|
+
protected handleCancelFilter(): void;
|
|
1779
|
+
protected resolveEditingConditionContextField(conditionId: string): string;
|
|
1780
|
+
protected handleAddCondition(): void;
|
|
1781
|
+
protected handleRemoveCondition(conditionId: string): void;
|
|
1782
|
+
private beginEditingFilter;
|
|
1783
|
+
private discardActiveFilter;
|
|
1784
|
+
private buildConditionDrafts;
|
|
1785
|
+
private seedConditionContext;
|
|
1786
|
+
private clearFilterContextKeys;
|
|
1787
|
+
private syncCanonicalFilterContext;
|
|
1788
|
+
private unwrapFilterContextEntry;
|
|
1789
|
+
private getCommittedFilterConditions;
|
|
1790
|
+
private resolveGroupContextPrefix;
|
|
1791
|
+
private isSameFilterGroup;
|
|
1792
|
+
private isEditingFilter;
|
|
1539
1793
|
private createExpressionScope;
|
|
1540
1794
|
private isObservableLike;
|
|
1541
1795
|
private buildFilterTriggerScope;
|
|
@@ -1543,7 +1797,7 @@ declare class AXPQueryFiltersComponent {
|
|
|
1543
1797
|
private getFilterWidgetScopeForDefinition;
|
|
1544
1798
|
private removeFilterFieldByName;
|
|
1545
1799
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryFiltersComponent, never>;
|
|
1546
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryFiltersComponent, "axp-query-filters", never, { "filtersDefinitions": { "alias": "filtersDefinitions"; "required": false; "isSignal": true; }; "initialFilters": { "alias": "initialFilters"; "required": false; "isSignal": true; }; "quickSearch": { "alias": "quickSearch"; "required": false; "isSignal": true; }; }, { "onFiltersChanged": "onFiltersChanged"; }, never, never, true, never>;
|
|
1800
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryFiltersComponent, "axp-query-filters", never, { "filtersDefinitions": { "alias": "filtersDefinitions"; "required": false; "isSignal": true; }; "initialFilters": { "alias": "initialFilters"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "quickSearch": { "alias": "quickSearch"; "required": false; "isSignal": true; }; "sortPresets": { "alias": "sortPresets"; "required": false; "isSignal": true; }; "activeSortPresetName": { "alias": "activeSortPresetName"; "required": false; "isSignal": true; }; }, { "onFiltersChanged": "onFiltersChanged"; "onSortPresetSelected": "onSortPresetSelected"; }, never, never, true, never>;
|
|
1547
1801
|
}
|
|
1548
1802
|
|
|
1549
1803
|
interface AXPPreloadFiltersApplyEvent {
|
|
@@ -1602,20 +1856,25 @@ declare class AXPImageEditorPopupComponent extends AXBasePageComponent {
|
|
|
1602
1856
|
showHistory: _angular_core.InputSignal<boolean>;
|
|
1603
1857
|
look: _angular_core.InputSignal<"solid" | "outline" | "blank">;
|
|
1604
1858
|
aspectRatio: _angular_core.InputSignal<string | undefined>;
|
|
1859
|
+
square: _angular_core.InputSignal<boolean>;
|
|
1605
1860
|
private blobUrl;
|
|
1606
1861
|
protected url: _angular_core.WritableSignal<string | null>;
|
|
1862
|
+
protected cropSize: _angular_core.Signal<number>;
|
|
1863
|
+
protected cropAspectRatioBinding: _angular_core.Signal<string[]>;
|
|
1607
1864
|
protected context: _angular_core.WritableSignal<{
|
|
1608
1865
|
image: Blob | null;
|
|
1609
1866
|
}>;
|
|
1610
1867
|
constructor();
|
|
1611
1868
|
ngOnInit(): Promise<void>;
|
|
1612
|
-
handleValueChanged(e:
|
|
1869
|
+
handleValueChanged(e: {
|
|
1870
|
+
value?: Blob[];
|
|
1871
|
+
}): void;
|
|
1613
1872
|
handleSave(): Promise<void>;
|
|
1614
1873
|
private extractEditedImage;
|
|
1615
1874
|
handleCancel(): void;
|
|
1616
1875
|
ngOnDestroy(): void;
|
|
1617
1876
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPImageEditorPopupComponent, never>;
|
|
1618
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPImageEditorPopupComponent, "axp-image-editor-popup", never, { "image": { "alias": "image"; "required": true; "isSignal": true; }; "showHistory": { "alias": "showHistory"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1877
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPImageEditorPopupComponent, "axp-image-editor-popup", never, { "image": { "alias": "image"; "required": true; "isSignal": true; }; "showHistory": { "alias": "showHistory"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; "square": { "alias": "square"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1619
1878
|
}
|
|
1620
1879
|
|
|
1621
1880
|
interface AXPImageEditorOpenOptions {
|
|
@@ -1624,6 +1883,8 @@ interface AXPImageEditorOpenOptions {
|
|
|
1624
1883
|
showHistory?: boolean;
|
|
1625
1884
|
look?: 'solid' | 'outline' | 'blank';
|
|
1626
1885
|
aspectRatio?: string;
|
|
1886
|
+
/** Square dialog with 1:1 crop viewport (profile photo). */
|
|
1887
|
+
square?: boolean;
|
|
1627
1888
|
}
|
|
1628
1889
|
declare class AXPImageEditorService {
|
|
1629
1890
|
private readonly popupService;
|
|
@@ -1682,6 +1943,8 @@ interface AXPSignatureEditorOpenOptions {
|
|
|
1682
1943
|
disabled?: boolean;
|
|
1683
1944
|
/** Footer primary action label (defaults to Apply). */
|
|
1684
1945
|
submitActionKey?: string;
|
|
1946
|
+
/** Registered signature provider name. Forwarded to the pad so the dialog can apply a saved signature. */
|
|
1947
|
+
signatureProvider?: string;
|
|
1685
1948
|
}
|
|
1686
1949
|
interface AXPSignatureEditorResult {
|
|
1687
1950
|
action: AXPSignatureEditorAction;
|
|
@@ -1701,6 +1964,20 @@ declare class AXPSignatureEditorService {
|
|
|
1701
1964
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPSignatureEditorService>;
|
|
1702
1965
|
}
|
|
1703
1966
|
|
|
1967
|
+
/**
|
|
1968
|
+
* Supplies a saved signature the signature widget can apply.
|
|
1969
|
+
* Register with {@link AXP_SIGNATURE_PROVIDER}. The widget option `signatureProvider` selects one by `name`.
|
|
1970
|
+
*/
|
|
1971
|
+
interface AXPSignatureProvider {
|
|
1972
|
+
/** Stable key referenced by the signature widget option. */
|
|
1973
|
+
name: string;
|
|
1974
|
+
/** Action label. Prefer an i18n key. */
|
|
1975
|
+
title: string;
|
|
1976
|
+
/** Current saved signature image, or null when none is stored. */
|
|
1977
|
+
load(): Promise<string | null>;
|
|
1978
|
+
}
|
|
1979
|
+
declare const AXP_SIGNATURE_PROVIDER: InjectionToken<AXPSignatureProvider[]>;
|
|
1980
|
+
|
|
1704
1981
|
/**
|
|
1705
1982
|
* One selectable entry for {@link AXPItemConfiguratorComponent}.
|
|
1706
1983
|
* Parents map external data into this shape. {@link propertyDefinitions} drive {@link AXPPropertyViewerService} tabs.
|
|
@@ -1762,6 +2039,28 @@ declare class AXPItemConfiguratorComponent {
|
|
|
1762
2039
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPItemConfiguratorComponent, "axp-item-configurator", never, { "selectedItemId": { "alias": "selectedItemId"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; }, { "selectedItemId": "selectedItemIdChange"; "values": "valuesChange"; }, never, never, true, never>;
|
|
1763
2040
|
}
|
|
1764
2041
|
|
|
2042
|
+
interface AXPLocalDataSourceEditorDialogInput {
|
|
2043
|
+
mode: 'create' | 'edit';
|
|
2044
|
+
name?: string;
|
|
2045
|
+
columns?: readonly AXPLocalDataSourceColumn[];
|
|
2046
|
+
items?: readonly unknown[];
|
|
2047
|
+
}
|
|
2048
|
+
interface AXPLocalDataSourceEditorDialogResult {
|
|
2049
|
+
name: string;
|
|
2050
|
+
columns: AXPLocalDataSourceColumn[];
|
|
2051
|
+
items: Record<string, unknown>[];
|
|
2052
|
+
}
|
|
2053
|
+
/**
|
|
2054
|
+
* Create/edit a form-local named list via {@link AXPLayoutBuilderService} dialog.
|
|
2055
|
+
* Items use `axp-spreadsheet` (add / remove rows and columns).
|
|
2056
|
+
*/
|
|
2057
|
+
declare class AXPLocalDataSourceEditorDialogService {
|
|
2058
|
+
private readonly layoutBuilder;
|
|
2059
|
+
open(initial: AXPLocalDataSourceEditorDialogInput): Promise<AXPLocalDataSourceEditorDialogResult | null>;
|
|
2060
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLocalDataSourceEditorDialogService, never>;
|
|
2061
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLocalDataSourceEditorDialogService>;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
1765
2064
|
/**
|
|
1766
2065
|
* Floating zoom controls for canvas-style views (org chart, workflow designer, etc.).
|
|
1767
2066
|
* Parent container should be `position: relative` so the bar anchors to the bottom-end.
|
|
@@ -2406,6 +2705,21 @@ declare class AXPPageComponentRegistryService {
|
|
|
2406
2705
|
*/
|
|
2407
2706
|
declare const AXP_PAGE_COMPONENT_PROVIDER: InjectionToken<AXPPageComponentProvider[]>;
|
|
2408
2707
|
|
|
2708
|
+
/**
|
|
2709
|
+
* Deep-merges objects but replaces arrays from later sources.
|
|
2710
|
+
* Lodash `merge` walks arrays by index and keeps extra destination items, so
|
|
2711
|
+
* repeater delete/edit (and nested filter lists) cannot persist.
|
|
2712
|
+
*/
|
|
2713
|
+
declare function mergeObjectsReplacingArrays<T extends object>(...sources: Array<T | Record<string, unknown> | null | undefined>): T;
|
|
2714
|
+
|
|
2715
|
+
/**
|
|
2716
|
+
* How binding-expression mode is presented in the property viewer.
|
|
2717
|
+
* `inline` — code editor in the panel (use when there is enough width, e.g. a popup).
|
|
2718
|
+
* `popup` — a button that opens the code editor in a dialog (use in the designer side panel).
|
|
2719
|
+
*/
|
|
2720
|
+
type AXPPropertyViewerBindingExpressionEditorMode = 'inline' | 'popup';
|
|
2721
|
+
/** Minimum visible lines for the binding-expression code editor (inline and dialog). */
|
|
2722
|
+
declare const PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES = 3;
|
|
2409
2723
|
interface AXPPropertyViewerGroup {
|
|
2410
2724
|
name: string;
|
|
2411
2725
|
title: string;
|
|
@@ -2442,12 +2756,13 @@ declare class AXPPropertyViewerComponent {
|
|
|
2442
2756
|
/**
|
|
2443
2757
|
* Determines rendering mode.
|
|
2444
2758
|
*/
|
|
2445
|
-
mode: _angular_core.InputSignal<"
|
|
2759
|
+
mode: _angular_core.InputSignal<"advanced" | "simple">;
|
|
2446
2760
|
/**
|
|
2447
2761
|
* When a property uses binding expressions, controls how the expression is edited:
|
|
2448
|
-
* `inline` — code editor in the panel (default
|
|
2762
|
+
* `inline` — code editor in the panel (default; use in popups);
|
|
2763
|
+
* `popup` — button that opens the dialog editor (use in the designer side panel).
|
|
2449
2764
|
*/
|
|
2450
|
-
bindingExpressionEditorMode: _angular_core.InputSignal<
|
|
2765
|
+
bindingExpressionEditorMode: _angular_core.InputSignal<AXPPropertyViewerBindingExpressionEditorMode>;
|
|
2451
2766
|
/**
|
|
2452
2767
|
* Emits when property context changes.
|
|
2453
2768
|
*/
|
|
@@ -2470,6 +2785,7 @@ declare class AXPPropertyViewerComponent {
|
|
|
2470
2785
|
private readonly expressionEvaluator;
|
|
2471
2786
|
private readonly popupService;
|
|
2472
2787
|
private readonly form;
|
|
2788
|
+
private readonly widgetsContainer;
|
|
2473
2789
|
constructor();
|
|
2474
2790
|
/**
|
|
2475
2791
|
* Replaces the current context with the provided value and emits an init event.
|
|
@@ -2529,6 +2845,13 @@ declare class AXPPropertyViewerComponent {
|
|
|
2529
2845
|
* blank instead of keeping the previous literal (e.g. true/false).
|
|
2530
2846
|
*/
|
|
2531
2847
|
protected setExpressionMode(prop: AXPWidgetProperty, useExpression: boolean): void;
|
|
2848
|
+
/**
|
|
2849
|
+
* Monaco/TypeScript editor — loaded the first time inline expression mode is shown.
|
|
2850
|
+
*/
|
|
2851
|
+
protected readonly inlineCodeEditorComponent: WritableSignal<Type<unknown> | null>;
|
|
2852
|
+
protected inlineCodeEditor(): Type<unknown> | null;
|
|
2853
|
+
protected bindingExpressionChangeHandler(prop: AXPWidgetProperty): (value: string) => void;
|
|
2854
|
+
private ensureInlineCodeEditor;
|
|
2532
2855
|
/**
|
|
2533
2856
|
* Current binding expression string at the property path (for inline editor ngModel).
|
|
2534
2857
|
*/
|
|
@@ -2562,7 +2885,7 @@ declare class AXPPropertyViewerPopupComponent extends AXBasePageComponent {
|
|
|
2562
2885
|
private readonly toastService;
|
|
2563
2886
|
private readonly translationService;
|
|
2564
2887
|
tabs: _angular_core.InputSignal<AXPPropertyViewerTab[]>;
|
|
2565
|
-
mode: _angular_core.InputSignal<"
|
|
2888
|
+
mode: _angular_core.InputSignal<"advanced" | "simple">;
|
|
2566
2889
|
context: _angular_core.InputSignal<any>;
|
|
2567
2890
|
/**
|
|
2568
2891
|
* Optional hook from `data.onApply`. Throw or reject to keep the popup open.
|
|
@@ -2683,7 +3006,7 @@ declare class AXPRepeaterRowsLayoutComponent {
|
|
|
2683
3006
|
type AppointmentWithProvider = AXSchedulerAppointment & {
|
|
2684
3007
|
provider?: string;
|
|
2685
3008
|
};
|
|
2686
|
-
declare class
|
|
3009
|
+
declare class AXPResourceAppointmentBoardComponent implements OnInit {
|
|
2687
3010
|
/** Show resource headers in the timeline views. */
|
|
2688
3011
|
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
2689
3012
|
/** Show appointments that have no resourceId. */
|
|
@@ -2724,6 +3047,21 @@ declare class AXPResourceAppointmentComponent implements OnInit {
|
|
|
2724
3047
|
}): void;
|
|
2725
3048
|
protected handleContextMenuOpening(event: AXContextMenuOpeningEvent): Promise<void>;
|
|
2726
3049
|
protected handleContextMenuItemClick(event: AXContextMenuItemsClickEvent): void;
|
|
3050
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPResourceAppointmentBoardComponent, never>;
|
|
3051
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPResourceAppointmentBoardComponent, "axp-resource-appointment-board", never, { "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "providerName": { "alias": "providerName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3052
|
+
}
|
|
3053
|
+
|
|
3054
|
+
/**
|
|
3055
|
+
* Thin host for the resource-appointment board. `@acorex/components/scheduler`
|
|
3056
|
+
* loads when this component is instantiated, not when the layout/components
|
|
3057
|
+
* barrel is evaluated on dest first load.
|
|
3058
|
+
*/
|
|
3059
|
+
declare class AXPResourceAppointmentComponent {
|
|
3060
|
+
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
3061
|
+
showUnassignedAppointments: _angular_core.InputSignal<boolean>;
|
|
3062
|
+
providerName: _angular_core.InputSignal<string | undefined>;
|
|
3063
|
+
protected readonly board: _angular_core.WritableSignal<Type<AXPResourceAppointmentBoardComponent> | null>;
|
|
3064
|
+
constructor();
|
|
2727
3065
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPResourceAppointmentComponent, never>;
|
|
2728
3066
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPResourceAppointmentComponent, "axp-resource-appointment", never, { "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "providerName": { "alias": "providerName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2729
3067
|
}
|
|
@@ -2940,16 +3278,28 @@ declare class AXPSectionItemsBuilderComponent {
|
|
|
2940
3278
|
|
|
2941
3279
|
declare class AXPQuerySortsComponent {
|
|
2942
3280
|
sortDefinitions: _angular_core.ModelSignal<AXPSortDefinition[]>;
|
|
2943
|
-
|
|
3281
|
+
sortPresets: _angular_core.InputSignal<AXPEntitySortPreset[]>;
|
|
2944
3282
|
initialSortQueries: _angular_core.InputSignal<AXPSortQuery[]>;
|
|
3283
|
+
defaultSortQueries: _angular_core.InputSignal<AXPSortQuery[]>;
|
|
2945
3284
|
sortQueriesChange: _angular_core.OutputEmitterRef<AXPSortQuery[]>;
|
|
3285
|
+
sortQueries: _angular_core.WritableSignal<AXPSortDefinition[]>;
|
|
3286
|
+
protected hasPresets: _angular_core.Signal<boolean>;
|
|
3287
|
+
protected activeSortSignature: _angular_core.Signal<string>;
|
|
3288
|
+
protected canReset: _angular_core.Signal<boolean>;
|
|
2946
3289
|
constructor();
|
|
2947
|
-
private emitActiveSortQueries;
|
|
2948
3290
|
protected drop(event: CdkDragDrop<unknown[]>): void;
|
|
2949
|
-
getSortDirection(item: AXPSortDefinition): "asc" | "desc" | undefined;
|
|
2950
3291
|
protected changeItemSort(item: AXPSortDefinition): void;
|
|
3292
|
+
protected applyPreset(preset: AXPEntitySortPreset): void;
|
|
3293
|
+
protected resetSorts(): void;
|
|
3294
|
+
getSortDirection(item: AXPSortDefinition): "asc" | "desc" | undefined;
|
|
3295
|
+
protected isPresetActive(preset: AXPEntitySortPreset): boolean;
|
|
3296
|
+
protected presetFirstDir(preset: AXPEntitySortPreset): 'asc' | 'desc' | undefined;
|
|
3297
|
+
private resolvePresetSorts;
|
|
3298
|
+
private applySorts;
|
|
3299
|
+
private emitActiveSortQueries;
|
|
3300
|
+
private emitSortQueries;
|
|
2951
3301
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQuerySortsComponent, never>;
|
|
2952
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQuerySortsComponent, "axp-query-sorts", never, { "sortDefinitions": { "alias": "sortDefinitions"; "required": false; "isSignal": true; }; "initialSortQueries": { "alias": "initialSortQueries"; "required": false; "isSignal": true; }; }, { "sortDefinitions": "sortDefinitionsChange"; "sortQueriesChange": "sortQueriesChange"; }, never, never, true, never>;
|
|
3302
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQuerySortsComponent, "axp-query-sorts", never, { "sortDefinitions": { "alias": "sortDefinitions"; "required": false; "isSignal": true; }; "sortPresets": { "alias": "sortPresets"; "required": false; "isSignal": true; }; "initialSortQueries": { "alias": "initialSortQueries"; "required": false; "isSignal": true; }; "defaultSortQueries": { "alias": "defaultSortQueries"; "required": false; "isSignal": true; }; }, { "sortDefinitions": "sortDefinitionsChange"; "sortQueriesChange": "sortQueriesChange"; }, never, never, true, never>;
|
|
2953
3303
|
}
|
|
2954
3304
|
|
|
2955
3305
|
/**
|
|
@@ -3038,6 +3388,27 @@ interface AXPSpreadsheetCellChangeEvent {
|
|
|
3038
3388
|
*/
|
|
3039
3389
|
row: Record<string, any>;
|
|
3040
3390
|
}
|
|
3391
|
+
/**
|
|
3392
|
+
* Event emitted when a column is added or removed (when those options are enabled)
|
|
3393
|
+
*/
|
|
3394
|
+
interface AXPSpreadsheetColumnChangeEvent {
|
|
3395
|
+
/**
|
|
3396
|
+
* Type of change: 'add' or 'remove'
|
|
3397
|
+
*/
|
|
3398
|
+
type: 'add' | 'remove' | 'move' | 'update';
|
|
3399
|
+
/**
|
|
3400
|
+
* Column identifier
|
|
3401
|
+
*/
|
|
3402
|
+
columnName: string;
|
|
3403
|
+
/**
|
|
3404
|
+
* Full column definition (for 'add' events, and the removed column on 'remove')
|
|
3405
|
+
*/
|
|
3406
|
+
column?: AXPSpreadsheetColumn;
|
|
3407
|
+
/**
|
|
3408
|
+
* All columns after the change
|
|
3409
|
+
*/
|
|
3410
|
+
columns: AXPSpreadsheetColumn[];
|
|
3411
|
+
}
|
|
3041
3412
|
/**
|
|
3042
3413
|
* Event emitted when a row is added or removed (dynamic mode only)
|
|
3043
3414
|
*/
|
|
@@ -3045,7 +3416,7 @@ interface AXPSpreadsheetRowChangeEvent {
|
|
|
3045
3416
|
/**
|
|
3046
3417
|
* Type of change: 'add' or 'remove'
|
|
3047
3418
|
*/
|
|
3048
|
-
type: 'add' | 'remove';
|
|
3419
|
+
type: 'add' | 'remove' | 'move';
|
|
3049
3420
|
/**
|
|
3050
3421
|
* Row identifier
|
|
3051
3422
|
*/
|
|
@@ -3082,6 +3453,10 @@ declare class AXPSpreadsheetComponent {
|
|
|
3082
3453
|
private readonly shortcutRegistry;
|
|
3083
3454
|
private readonly destroyRef;
|
|
3084
3455
|
private readonly elementRef;
|
|
3456
|
+
private readonly injector;
|
|
3457
|
+
private readonly widgetRegistry;
|
|
3458
|
+
private readonly widgetPropertyViewer;
|
|
3459
|
+
private readonly chromeDropdowns;
|
|
3085
3460
|
/**
|
|
3086
3461
|
* Translated column titles
|
|
3087
3462
|
*/
|
|
@@ -3134,6 +3509,20 @@ declare class AXPSpreadsheetComponent {
|
|
|
3134
3509
|
* Can be enabled for fixed mode if needed
|
|
3135
3510
|
*/
|
|
3136
3511
|
allowRemoveRows: _angular_core.InputSignal<boolean>;
|
|
3512
|
+
/**
|
|
3513
|
+
* Whether to allow adding columns from the grid chrome (default: false).
|
|
3514
|
+
* Existing hosts keep a fixed column schema unless they opt in.
|
|
3515
|
+
*/
|
|
3516
|
+
allowAddColumns: _angular_core.InputSignal<boolean>;
|
|
3517
|
+
/**
|
|
3518
|
+
* Whether to allow removing columns from the grid chrome (default: false).
|
|
3519
|
+
*/
|
|
3520
|
+
allowRemoveColumns: _angular_core.InputSignal<boolean>;
|
|
3521
|
+
/**
|
|
3522
|
+
* Show apply / cancel buttons on the active cell.
|
|
3523
|
+
* When false, the cell commits automatically on blur.
|
|
3524
|
+
*/
|
|
3525
|
+
showCellActions: _angular_core.InputSignal<boolean>;
|
|
3137
3526
|
/**
|
|
3138
3527
|
* Emitted when a single cell value changes
|
|
3139
3528
|
*/
|
|
@@ -3142,6 +3531,14 @@ declare class AXPSpreadsheetComponent {
|
|
|
3142
3531
|
* Emitted when rows are added or removed (dynamic mode only)
|
|
3143
3532
|
*/
|
|
3144
3533
|
rowChange: _angular_core.OutputEmitterRef<AXPSpreadsheetRowChangeEvent>;
|
|
3534
|
+
/**
|
|
3535
|
+
* Emitted when columns are added or removed (only if those options are enabled)
|
|
3536
|
+
*/
|
|
3537
|
+
columnChange: _angular_core.OutputEmitterRef<AXPSpreadsheetColumnChangeEvent>;
|
|
3538
|
+
/**
|
|
3539
|
+
* Two-way companion for `[columns]` / `[(columns)]` after add/remove.
|
|
3540
|
+
*/
|
|
3541
|
+
columnsChange: _angular_core.OutputEmitterRef<AXPSpreadsheetColumn[]>;
|
|
3145
3542
|
/**
|
|
3146
3543
|
* Emitted when the entire spreadsheet data changes
|
|
3147
3544
|
*/
|
|
@@ -3153,10 +3550,22 @@ declare class AXPSpreadsheetComponent {
|
|
|
3153
3550
|
rowId: string;
|
|
3154
3551
|
columnName: string;
|
|
3155
3552
|
} | null>;
|
|
3553
|
+
/**
|
|
3554
|
+
* Last selected cell so focus / Esc can reopen or resume without a click.
|
|
3555
|
+
*/
|
|
3556
|
+
private selectedCell;
|
|
3557
|
+
/**
|
|
3558
|
+
* After Esc, host focus must not immediately reopen the editor.
|
|
3559
|
+
*/
|
|
3560
|
+
private suppressHostFocusEdit;
|
|
3156
3561
|
/**
|
|
3157
3562
|
* Original value when entering edit mode (for cancel functionality)
|
|
3158
3563
|
*/
|
|
3159
3564
|
private originalCellValue;
|
|
3565
|
+
/**
|
|
3566
|
+
* Local column list after add/remove when the parent has not yet written `[columns]` back.
|
|
3567
|
+
*/
|
|
3568
|
+
private columnsOverride;
|
|
3160
3569
|
/**
|
|
3161
3570
|
* Internal rows state (for fixed mode)
|
|
3162
3571
|
*/
|
|
@@ -3175,6 +3584,14 @@ declare class AXPSpreadsheetComponent {
|
|
|
3175
3584
|
* Key: `${rowIndex}_${columnName}`, Value: any
|
|
3176
3585
|
*/
|
|
3177
3586
|
private cellValueCache;
|
|
3587
|
+
/**
|
|
3588
|
+
* Columns after optional in-grid add/remove, else the `[columns]` input.
|
|
3589
|
+
*/
|
|
3590
|
+
protected currentColumns: _angular_core.Signal<AXPSpreadsheetColumn[]>;
|
|
3591
|
+
/**
|
|
3592
|
+
* Excel-style numeric index when the host does not supply a row title column.
|
|
3593
|
+
*/
|
|
3594
|
+
protected readonly useExcelRowIndex: _angular_core.Signal<boolean>;
|
|
3178
3595
|
/**
|
|
3179
3596
|
* Get current rows based on mode
|
|
3180
3597
|
*/
|
|
@@ -3206,11 +3623,21 @@ declare class AXPSpreadsheetComponent {
|
|
|
3206
3623
|
* Check if only rows are empty (columns exist but no rows)
|
|
3207
3624
|
*/
|
|
3208
3625
|
protected isRowsEmpty: _angular_core.Signal<boolean>;
|
|
3626
|
+
protected readonly supportedColumnWidgets: _angular_core.Signal<{
|
|
3627
|
+
type: string;
|
|
3628
|
+
title: string;
|
|
3629
|
+
icon: string;
|
|
3630
|
+
}[]>;
|
|
3209
3631
|
constructor();
|
|
3210
3632
|
/**
|
|
3211
3633
|
* Get the value for a specific cell by row index
|
|
3212
3634
|
*/
|
|
3213
3635
|
protected getCellValue(rowIndex: number, columnName: string): any;
|
|
3636
|
+
/**
|
|
3637
|
+
* Whether the cell has a value worth showing in view mode.
|
|
3638
|
+
* Blank strings use the placeholder so empty Excel rows stay empty.
|
|
3639
|
+
*/
|
|
3640
|
+
protected hasCellDisplayValue(rowIndex: number, columnName: string): boolean;
|
|
3214
3641
|
/**
|
|
3215
3642
|
* Get row title from row object using rowTitlePath
|
|
3216
3643
|
*/
|
|
@@ -3241,6 +3668,10 @@ declare class AXPSpreadsheetComponent {
|
|
|
3241
3668
|
* Handle cell click to start editing
|
|
3242
3669
|
*/
|
|
3243
3670
|
protected handleCellClick(rowId: string, columnName: string, event?: MouseEvent): void;
|
|
3671
|
+
/**
|
|
3672
|
+
* Tab / click into the grid starts the selected (or first) cell.
|
|
3673
|
+
*/
|
|
3674
|
+
protected handleHostFocusIn(event: FocusEvent): void;
|
|
3244
3675
|
/**
|
|
3245
3676
|
* Handle cell value change from widget
|
|
3246
3677
|
* The widget sets the value at path like rows[index].column.path
|
|
@@ -3255,6 +3686,11 @@ declare class AXPSpreadsheetComponent {
|
|
|
3255
3686
|
* Handle blur event to stop editing (when user clicks away from cell)
|
|
3256
3687
|
*/
|
|
3257
3688
|
protected handleCellBlur(rowId: string, columnName: string): void;
|
|
3689
|
+
/**
|
|
3690
|
+
* Excel-style move: Tab / Shift+Tab change column, Enter / Shift+Enter change row.
|
|
3691
|
+
*/
|
|
3692
|
+
protected handleCellNavigate(direction: 'next' | 'previous' | 'up' | 'down'): void;
|
|
3693
|
+
protected handleGridNavigate(direction: 'next' | 'previous' | 'up' | 'down'): void;
|
|
3258
3694
|
/**
|
|
3259
3695
|
* Commit cell edit (save changes and close editing mode)
|
|
3260
3696
|
*/
|
|
@@ -3267,25 +3703,182 @@ declare class AXPSpreadsheetComponent {
|
|
|
3267
3703
|
* Handle click outside to stop editing
|
|
3268
3704
|
*/
|
|
3269
3705
|
protected handleClickOutside(event: MouseEvent): void;
|
|
3706
|
+
protected showRowChromeMenu(): boolean;
|
|
3707
|
+
protected showColumnChromeMenu(): boolean;
|
|
3708
|
+
protected isFirstRow(rowId: string): boolean;
|
|
3709
|
+
protected isLastRow(rowId: string): boolean;
|
|
3710
|
+
protected isFirstColumn(columnName: string): boolean;
|
|
3711
|
+
protected isLastColumn(columnName: string): boolean;
|
|
3270
3712
|
/**
|
|
3271
3713
|
* Handle add row (dynamic mode only)
|
|
3272
3714
|
*/
|
|
3273
3715
|
protected handleAddRow(): void;
|
|
3716
|
+
protected handleInsertRow(rowId: string, position: 'before' | 'after'): void;
|
|
3717
|
+
protected handleMoveRow(rowId: string, direction: 'up' | 'down'): void;
|
|
3274
3718
|
/**
|
|
3275
3719
|
* Handle remove row (works for both fixed and dynamic modes)
|
|
3276
3720
|
*/
|
|
3277
|
-
protected handleRemoveRow(rowId: string, _event
|
|
3721
|
+
protected handleRemoveRow(rowId: string, _event?: AXClickEvent): void;
|
|
3722
|
+
protected handleChromeDropdownClick(event: AXClickEvent): void;
|
|
3723
|
+
/**
|
|
3724
|
+
* Handle add column (opt-in via allowAddColumns)
|
|
3725
|
+
*/
|
|
3726
|
+
protected handleAddColumnOfType(widgetType: string): void;
|
|
3727
|
+
protected handleInsertColumn(columnName: string, position: 'before' | 'after'): void;
|
|
3728
|
+
protected handleEditColumnProperties(columnName: string): void;
|
|
3729
|
+
protected handleMoveColumn(columnName: string, direction: 'previous' | 'next'): void;
|
|
3730
|
+
/**
|
|
3731
|
+
* Handle remove column (opt-in via allowRemoveColumns)
|
|
3732
|
+
*/
|
|
3733
|
+
protected handleRemoveColumn(columnName: string): void;
|
|
3734
|
+
private isGridFocused;
|
|
3735
|
+
private beginEditAtSelection;
|
|
3736
|
+
private resolveSelectedOrFirstCell;
|
|
3737
|
+
private returnFocusToGrid;
|
|
3738
|
+
/**
|
|
3739
|
+
* Next editable cell in Excel order. Adds a dynamic row when moving off the bottom.
|
|
3740
|
+
*/
|
|
3741
|
+
private resolveNextEditableCell;
|
|
3742
|
+
/**
|
|
3743
|
+
* Left/right stay in the text until the caret is at the edge.
|
|
3744
|
+
* Up/down always leave a single-line editor; textareas only at the first/last line.
|
|
3745
|
+
*/
|
|
3746
|
+
private shouldNavigateWithArrow;
|
|
3747
|
+
private getActiveEditorControl;
|
|
3748
|
+
private isNodeInside;
|
|
3749
|
+
private isCaretAtMultilineEdge;
|
|
3750
|
+
private scheduleFocusEditingEditor;
|
|
3751
|
+
private tryFocusEditingEditor;
|
|
3752
|
+
private findFocusableEditor;
|
|
3753
|
+
private findRowIndex;
|
|
3754
|
+
private createEmptyRow;
|
|
3755
|
+
private insertRowAt;
|
|
3756
|
+
private insertBlankColumnAt;
|
|
3757
|
+
private insertColumnAt;
|
|
3758
|
+
private promptColumnWidgetAndInsert;
|
|
3759
|
+
private promptColumnWidgetAndUpdate;
|
|
3760
|
+
private promptColumnWidget;
|
|
3761
|
+
private applyRowList;
|
|
3278
3762
|
/**
|
|
3279
3763
|
* Generate unique row ID for dynamic mode
|
|
3280
3764
|
*/
|
|
3281
3765
|
private generateRowId;
|
|
3766
|
+
private nextColumnTitle;
|
|
3767
|
+
private allocateColumnName;
|
|
3768
|
+
private renameColumnPathOnRows;
|
|
3769
|
+
private applyColumns;
|
|
3770
|
+
private stripColumnPathFromRows;
|
|
3282
3771
|
/**
|
|
3283
3772
|
* Update rows array (sync internal state)
|
|
3284
3773
|
*/
|
|
3285
3774
|
private updateRows;
|
|
3286
3775
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSpreadsheetComponent, never>;
|
|
3287
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSpreadsheetComponent, "axp-spreadsheet", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowMode": { "alias": "rowMode"; "required": false; "isSignal": true; }; "rowsInput": { "alias": "rowsInput"; "required": false; "isSignal": true; }; "rowsModel": { "alias": "rowsModel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "emptyCellPlaceholder": { "alias": "emptyCellPlaceholder"; "required": false; "isSignal": true; }; "rowTitlePath": { "alias": "rowTitlePath"; "required": false; "isSignal": true; }; "rowDescriptionPath": { "alias": "rowDescriptionPath"; "required": false; "isSignal": true; }; "allowAddRows": { "alias": "allowAddRows"; "required": false; "isSignal": true; }; "allowRemoveRows": { "alias": "allowRemoveRows"; "required": false; "isSignal": true; }; }, { "rowsModel": "rowsModelChange"; "cellChange": "cellChange"; "rowChange": "rowChange"; "spreadsheetChange": "spreadsheetChange"; }, never, never, true, never>;
|
|
3776
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSpreadsheetComponent, "axp-spreadsheet", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowMode": { "alias": "rowMode"; "required": false; "isSignal": true; }; "rowsInput": { "alias": "rowsInput"; "required": false; "isSignal": true; }; "rowsModel": { "alias": "rowsModel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "emptyCellPlaceholder": { "alias": "emptyCellPlaceholder"; "required": false; "isSignal": true; }; "rowTitlePath": { "alias": "rowTitlePath"; "required": false; "isSignal": true; }; "rowDescriptionPath": { "alias": "rowDescriptionPath"; "required": false; "isSignal": true; }; "allowAddRows": { "alias": "allowAddRows"; "required": false; "isSignal": true; }; "allowRemoveRows": { "alias": "allowRemoveRows"; "required": false; "isSignal": true; }; "allowAddColumns": { "alias": "allowAddColumns"; "required": false; "isSignal": true; }; "allowRemoveColumns": { "alias": "allowRemoveColumns"; "required": false; "isSignal": true; }; "showCellActions": { "alias": "showCellActions"; "required": false; "isSignal": true; }; }, { "rowsModel": "rowsModelChange"; "cellChange": "cellChange"; "rowChange": "rowChange"; "columnChange": "columnChange"; "columnsChange": "columnsChange"; "spreadsheetChange": "spreadsheetChange"; }, never, never, true, never>;
|
|
3777
|
+
}
|
|
3778
|
+
|
|
3779
|
+
interface AXPWidgetPropertyInjection {
|
|
3780
|
+
property: AXPWidgetProperty;
|
|
3781
|
+
tab?: {
|
|
3782
|
+
name?: string;
|
|
3783
|
+
title?: string;
|
|
3784
|
+
};
|
|
3785
|
+
group?: {
|
|
3786
|
+
name?: string;
|
|
3787
|
+
title?: string;
|
|
3788
|
+
};
|
|
3789
|
+
}
|
|
3790
|
+
interface AXPWidgetPropertyViewerConfig {
|
|
3791
|
+
title: string;
|
|
3792
|
+
widget: AXPWidgetNode;
|
|
3793
|
+
mode?: 'simple' | 'advanced';
|
|
3794
|
+
onApply?: (result: AXPWidgetPropertyViewerResult) => void | Promise<void>;
|
|
3795
|
+
/**
|
|
3796
|
+
* Property names to exclude from the viewer.
|
|
3797
|
+
*/
|
|
3798
|
+
exclude?: string[];
|
|
3799
|
+
/**
|
|
3800
|
+
* Custom property injection configuration.
|
|
3801
|
+
*/
|
|
3802
|
+
custom?: {
|
|
3803
|
+
/**
|
|
3804
|
+
* Custom property injection entries.
|
|
3805
|
+
*/
|
|
3806
|
+
properties: AXPWidgetPropertyInjection[];
|
|
3807
|
+
/**
|
|
3808
|
+
* Default tab fallback if property injection doesn't specify one.
|
|
3809
|
+
* When omitted, falls back to the first tab or "general".
|
|
3810
|
+
*/
|
|
3811
|
+
defaultTab?: {
|
|
3812
|
+
name?: string;
|
|
3813
|
+
title?: string;
|
|
3814
|
+
};
|
|
3815
|
+
/**
|
|
3816
|
+
* Default group fallback when injection doesn't specify a group.
|
|
3817
|
+
* When omitted, falls back to the tab's first group or property defined group.
|
|
3818
|
+
*/
|
|
3819
|
+
defaultGroup?: {
|
|
3820
|
+
name?: string;
|
|
3821
|
+
title?: string;
|
|
3822
|
+
};
|
|
3823
|
+
};
|
|
3824
|
+
}
|
|
3825
|
+
/** Emitted when the dialog applies; `values` is the updated viewer context (merge into {@link AXPWidgetNode} as needed). */
|
|
3826
|
+
interface AXPWidgetPropertyViewerResult {
|
|
3827
|
+
values: any;
|
|
3828
|
+
mode: 'init' | 'update';
|
|
3829
|
+
}
|
|
3830
|
+
interface IAXPWidgetPropertyViewerRoot {
|
|
3831
|
+
dialog(delegate: (container: IAXPWidgetPropertyViewerDialogBuilder) => void): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3288
3832
|
}
|
|
3833
|
+
interface IAXPWidgetPropertyViewerDialogBuilder {
|
|
3834
|
+
setTitle(title: string): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3835
|
+
/**
|
|
3836
|
+
* Initial widget state shown in the viewer (type, options, name/path, …). Call before {@link show}.
|
|
3837
|
+
*/
|
|
3838
|
+
setWidget(widget: AXPWidgetNode): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3839
|
+
setMode(mode: 'simple' | 'advanced'): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3840
|
+
setExclude(exclude: string[]): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3841
|
+
setCustom(custom: AXPWidgetPropertyViewerConfig['custom']): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3842
|
+
/**
|
|
3843
|
+
* When set to a non-empty array, builds tabs from these properties and skips registry lookup for {@link setWidget}'s type.
|
|
3844
|
+
* Omit or clear to resolve widget config from {@link AXPWidgetRegistryService} as usual.
|
|
3845
|
+
*/
|
|
3846
|
+
setPropertyDefinitions(properties: AXPWidgetProperty[] | null): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3847
|
+
onAction(handler: (dialogRef: AXPPropertyViewerActionRef) => void | Promise<void> | unknown | Promise<unknown>): IAXPWidgetPropertyViewerDialogBuilder;
|
|
3848
|
+
/**
|
|
3849
|
+
* Applies edits and returns updated context; merge {@link AXPWidgetPropertyViewerResult.values} into your widget node
|
|
3850
|
+
* (typically `options` and any top-level fields the viewer exposes).
|
|
3851
|
+
*/
|
|
3852
|
+
show(): Promise<AXPWidgetPropertyViewerResult | null>;
|
|
3853
|
+
}
|
|
3854
|
+
declare class AXPWidgetPropertyViewerService {
|
|
3855
|
+
private readonly widgetRegistryService;
|
|
3856
|
+
private readonly propertyViewerService;
|
|
3857
|
+
/**
|
|
3858
|
+
* Same shape as `AXPPropertyViewerService.create()` — use `.dialog((d) => { ... }).show()`.
|
|
3859
|
+
*/
|
|
3860
|
+
create(): IAXPWidgetPropertyViewerRoot;
|
|
3861
|
+
/**
|
|
3862
|
+
* One-shot open (delegates to {@link #create} `.dialog().show()`).
|
|
3863
|
+
*/
|
|
3864
|
+
open(config: AXPWidgetPropertyViewerConfig): Promise<AXPWidgetPropertyViewerResult | null>;
|
|
3865
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetPropertyViewerService, never>;
|
|
3866
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetPropertyViewerService>;
|
|
3867
|
+
}
|
|
3868
|
+
|
|
3869
|
+
declare const AXP_SPREADSHEET_COLUMN_WIDGET_TYPES: readonly [string, string, string, string, string, string, string];
|
|
3870
|
+
type AXPSpreadsheetColumnWidgetType = (typeof AXP_SPREADSHEET_COLUMN_WIDGET_TYPES)[number];
|
|
3871
|
+
declare function toSpreadsheetColumnWidget(type: string, values: unknown): AXPWidgetNode;
|
|
3872
|
+
declare function readSpreadsheetColumnWidth(widget: AXPWidgetNode): string | undefined;
|
|
3873
|
+
declare function asSpreadsheetColumnTitle(title: AXPMultiLanguageString | undefined, fallback?: string): string | undefined;
|
|
3874
|
+
declare const SPREADSHEET_COLUMN_NAME_PATH = "columnName";
|
|
3875
|
+
declare const SPREADSHEET_COLUMN_TITLE_PATH = "columnTitle";
|
|
3876
|
+
declare function spreadsheetColumnIdentityProperties(): AXPWidgetPropertyInjection[];
|
|
3877
|
+
declare function readSpreadsheetColumnIdentity(values: unknown): {
|
|
3878
|
+
name?: string;
|
|
3879
|
+
title?: string;
|
|
3880
|
+
};
|
|
3881
|
+
declare function normalizeSpreadsheetColumnName(raw: string | undefined): string;
|
|
3289
3882
|
|
|
3290
3883
|
/**
|
|
3291
3884
|
* Host configuration for {@link AXPStandardSectionItemsBuilderComponent}.
|
|
@@ -3502,6 +4095,7 @@ declare class AXPTemplateViewerComponent extends AXBasePageComponent {
|
|
|
3502
4095
|
protected readonly document: _angular_core.WritableSignal<AXPWidgetNode>;
|
|
3503
4096
|
protected readonly currentPageIndex: _angular_core.WritableSignal<number>;
|
|
3504
4097
|
protected readonly _config: _angular_core.WritableSignal<AXPTemplateViewerConfig | undefined>;
|
|
4098
|
+
readonly sources: _angular_core.Signal<_acorex_platform_framework_client_layout_widget_core.AXPLocalDataSource[]>;
|
|
3505
4099
|
protected readonly currentPage: _angular_core.Signal<AXPWidgetNode>;
|
|
3506
4100
|
protected ngOnInit(): Promise<void>;
|
|
3507
4101
|
private loadTemplate;
|
|
@@ -3626,7 +4220,8 @@ declare class AXPUserAvatarComponent {
|
|
|
3626
4220
|
displayName: _angular_core.InputSignal<string | undefined>;
|
|
3627
4221
|
/** Resolved avatar URL when `userId` is not a platform user row. */
|
|
3628
4222
|
displayAvatar: _angular_core.InputSignal<string | undefined>;
|
|
3629
|
-
protected readonly presenceStatus: _angular_core.WritableSignal<"
|
|
4223
|
+
protected readonly presenceStatus: _angular_core.WritableSignal<"offline" | "online" | "away" | "busy" | null>;
|
|
4224
|
+
readonly avatarLoading: _angular_core.WritableSignal<boolean>;
|
|
3630
4225
|
src: _angular_core.WritableSignal<string>;
|
|
3631
4226
|
readonly userName: _angular_core.Signal<string>;
|
|
3632
4227
|
readonly firstName: _angular_core.Signal<string>;
|
|
@@ -3826,6 +4421,10 @@ declare class AXPVirtualKeypadComponent {
|
|
|
3826
4421
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPVirtualKeypadComponent, "axp-virtual-keypad", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showLetterHints": { "alias": "showLetterHints"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; }, { "digitPress": "digitPress"; "backspace": "backspace"; "keyPress": "keyPress"; }, never, never, true, never>;
|
|
3827
4422
|
}
|
|
3828
4423
|
|
|
4424
|
+
interface AXPQueryViewContextMenuEvent {
|
|
4425
|
+
event: MouseEvent;
|
|
4426
|
+
view: AXPViewQuery;
|
|
4427
|
+
}
|
|
3829
4428
|
declare class AXPQueryViewsComponent {
|
|
3830
4429
|
#private;
|
|
3831
4430
|
protected popupService: AXPopupService;
|
|
@@ -3833,12 +4432,56 @@ declare class AXPQueryViewsComponent {
|
|
|
3833
4432
|
protected tabs: _angular_core.Signal<AXTabsComponent | undefined>;
|
|
3834
4433
|
views: _angular_core.ModelSignal<AXPViewQuery[]>;
|
|
3835
4434
|
selectedView: _angular_core.ModelSignal<AXPViewQuery>;
|
|
4435
|
+
viewContextMenu: _angular_core.OutputEmitterRef<AXPQueryViewContextMenuEvent>;
|
|
3836
4436
|
protected isMounted: _angular_core.WritableSignal<boolean>;
|
|
3837
4437
|
ngAfterViewInit(): void;
|
|
3838
4438
|
setView(view: AXPViewQuery): void;
|
|
4439
|
+
protected onTabContextMenu(event: MouseEvent, view: AXPViewQuery): void;
|
|
3839
4440
|
handleActiveChange(e: any): void;
|
|
3840
4441
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryViewsComponent, never>;
|
|
3841
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryViewsComponent, "axp-query-views", never, { "views": { "alias": "views"; "required": false; "isSignal": true; }; "selectedView": { "alias": "selectedView"; "required": true; "isSignal": true; }; }, { "views": "viewsChange"; "selectedView": "selectedViewChange"; }, never, never, true, never>;
|
|
4442
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryViewsComponent, "axp-query-views", never, { "views": { "alias": "views"; "required": false; "isSignal": true; }; "selectedView": { "alias": "selectedView"; "required": true; "isSignal": true; }; }, { "views": "viewsChange"; "selectedView": "selectedViewChange"; "viewContextMenu": "viewContextMenu"; }, never, never, true, never>;
|
|
4443
|
+
}
|
|
4444
|
+
|
|
4445
|
+
declare class AXPQueryViewTabsComponent {
|
|
4446
|
+
private readonly translationService;
|
|
4447
|
+
private readonly contextMenu;
|
|
4448
|
+
views: _angular_core.InputSignal<AXPViewQuery[]>;
|
|
4449
|
+
selectedView: _angular_core.InputSignal<AXPViewQuery>;
|
|
4450
|
+
selectedViewChange: _angular_core.OutputEmitterRef<AXPViewQuery>;
|
|
4451
|
+
edit: _angular_core.OutputEmitterRef<AXPViewQuery>;
|
|
4452
|
+
remove: _angular_core.OutputEmitterRef<AXPViewQuery>;
|
|
4453
|
+
private readonly contextView;
|
|
4454
|
+
protected onSelectedViewChange(view: AXPViewQuery): void;
|
|
4455
|
+
protected onViewContextMenu(payload: AXPQueryViewContextMenuEvent): Promise<void>;
|
|
4456
|
+
protected onContextMenuItemClick(event: AXContextMenuItemsClickEvent): void;
|
|
4457
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryViewTabsComponent, never>;
|
|
4458
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryViewTabsComponent, "axp-query-view-tabs", never, { "views": { "alias": "views"; "required": true; "isSignal": true; }; "selectedView": { "alias": "selectedView"; "required": true; "isSignal": true; }; }, { "selectedViewChange": "selectedViewChange"; "edit": "edit"; "remove": "remove"; }, never, never, true, never>;
|
|
4459
|
+
}
|
|
4460
|
+
|
|
4461
|
+
declare class AXPQueryViewSaveButtonComponent {
|
|
4462
|
+
visible: _angular_core.InputSignal<boolean>;
|
|
4463
|
+
save: _angular_core.OutputEmitterRef<void>;
|
|
4464
|
+
protected onSave(): void;
|
|
4465
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryViewSaveButtonComponent, never>;
|
|
4466
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryViewSaveButtonComponent, "axp-query-view-save-button", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, { "save": "save"; }, never, never, true, never>;
|
|
4467
|
+
}
|
|
4468
|
+
|
|
4469
|
+
interface AXPQueryViewSaveDialogInput {
|
|
4470
|
+
mode: 'create' | 'edit';
|
|
4471
|
+
title?: string;
|
|
4472
|
+
}
|
|
4473
|
+
interface AXPQueryViewSaveDialogResult {
|
|
4474
|
+
title: string;
|
|
4475
|
+
includeActiveView: boolean;
|
|
4476
|
+
}
|
|
4477
|
+
declare class AXPQueryViewSaveDialogService {
|
|
4478
|
+
private readonly layoutBuilder;
|
|
4479
|
+
private readonly dialogService;
|
|
4480
|
+
private readonly translationService;
|
|
4481
|
+
open(initial: AXPQueryViewSaveDialogInput): Promise<AXPQueryViewSaveDialogResult | null>;
|
|
4482
|
+
confirmDelete(): Promise<boolean>;
|
|
4483
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryViewSaveDialogService, never>;
|
|
4484
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPQueryViewSaveDialogService>;
|
|
3842
4485
|
}
|
|
3843
4486
|
|
|
3844
4487
|
/**
|
|
@@ -3936,16 +4579,25 @@ interface AXPWidgetPropertiesChangedEvent {
|
|
|
3936
4579
|
}
|
|
3937
4580
|
declare class AXPWidgetPropertyViewerComponent {
|
|
3938
4581
|
widget: _angular_core.InputSignal<AXPWidgetNode>;
|
|
3939
|
-
mode: _angular_core.InputSignal<"
|
|
4582
|
+
mode: _angular_core.InputSignal<"advanced" | "simple">;
|
|
4583
|
+
/** Designer toolbar size. Prefer this over DI so drawers still receive the active profile. */
|
|
4584
|
+
layoutProfile: _angular_core.InputSignal<AXPLayoutProfileContext | null>;
|
|
4585
|
+
/**
|
|
4586
|
+
* How binding expressions are edited. Designer side panel should use `popup`;
|
|
4587
|
+
* dialogs (enough width) should use `inline`.
|
|
4588
|
+
*/
|
|
4589
|
+
bindingExpressionEditorMode: _angular_core.InputSignal<AXPPropertyViewerBindingExpressionEditorMode>;
|
|
3940
4590
|
onChanged: EventEmitter<AXPWidgetPropertiesChangedEvent>;
|
|
3941
4591
|
protected readonly propertyViewerRef: _angular_core.Signal<AXPPropertyViewerComponent | undefined>;
|
|
3942
4592
|
protected readonly config: _angular_core.WritableSignal<AXPWidgetConfig<any> | null>;
|
|
3943
4593
|
protected readonly tabs: _angular_core.WritableSignal<AXPPropertyViewerTab[]>;
|
|
3944
4594
|
protected initialContext: Record<string, unknown>;
|
|
3945
4595
|
protected groupCollapsedStates: Map<string, boolean>;
|
|
3946
|
-
/** When true,
|
|
4596
|
+
/** When true, onChanged updates from the inner viewer were caused by hydrate/push; do not forward. */
|
|
3947
4597
|
private suppressNextEmit;
|
|
4598
|
+
private suppressTimer?;
|
|
3948
4599
|
private readonly widgetRegistryService;
|
|
4600
|
+
private readonly injectedLayoutProfile;
|
|
3949
4601
|
constructor();
|
|
3950
4602
|
/**
|
|
3951
4603
|
* Merges the given values into the property viewer context. Called by the designer when applying changes (e.g. undo/redo).
|
|
@@ -3954,13 +4606,21 @@ declare class AXPWidgetPropertyViewerComponent {
|
|
|
3954
4606
|
update(values: any): void;
|
|
3955
4607
|
private fillTabs;
|
|
3956
4608
|
protected handlePropertyViewerChanged(ev: AXPPropertyViewerChangedEvent): void;
|
|
4609
|
+
protected readonly activeLayoutProfile: _angular_core.Signal<AXPLayoutProfileContext>;
|
|
4610
|
+
private asRecord;
|
|
4611
|
+
private layoutProfileProperties;
|
|
4612
|
+
private projectLayoutProfileValues;
|
|
4613
|
+
private persistLayoutProfileValues;
|
|
4614
|
+
/** Keep the live tree in sync even if the designer command is skipped. */
|
|
4615
|
+
private writeLayoutProfileToWidget;
|
|
4616
|
+
private holdEmitSuppression;
|
|
3957
4617
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetPropertyViewerComponent, never>;
|
|
3958
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetPropertyViewerComponent, "axp-widget-property-viewer", never, { "widget": { "alias": "widget"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
|
|
4618
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetPropertyViewerComponent, "axp-widget-property-viewer", never, { "widget": { "alias": "widget"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "layoutProfile": { "alias": "layoutProfile"; "required": false; "isSignal": true; }; "bindingExpressionEditorMode": { "alias": "bindingExpressionEditorMode"; "required": false; "isSignal": true; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
|
|
3959
4619
|
}
|
|
3960
4620
|
|
|
3961
4621
|
declare class AXPWidgetPropertyViewerPopupComponent extends AXBasePageComponent {
|
|
3962
4622
|
widget: _angular_core.InputSignal<AXPWidgetNode>;
|
|
3963
|
-
mode: _angular_core.InputSignal<"
|
|
4623
|
+
mode: _angular_core.InputSignal<"advanced" | "simple">;
|
|
3964
4624
|
protected currentValues: _angular_core.WritableSignal<any>;
|
|
3965
4625
|
constructor();
|
|
3966
4626
|
protected handlePropertyChanged(event: {
|
|
@@ -3973,95 +4633,5 @@ declare class AXPWidgetPropertyViewerPopupComponent extends AXBasePageComponent
|
|
|
3973
4633
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetPropertyViewerPopupComponent, "axp-widget-property-viewer-popup", never, { "widget": { "alias": "widget"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3974
4634
|
}
|
|
3975
4635
|
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
tab?: {
|
|
3979
|
-
name?: string;
|
|
3980
|
-
title?: string;
|
|
3981
|
-
};
|
|
3982
|
-
group?: {
|
|
3983
|
-
name?: string;
|
|
3984
|
-
title?: string;
|
|
3985
|
-
};
|
|
3986
|
-
}
|
|
3987
|
-
interface AXPWidgetPropertyViewerConfig {
|
|
3988
|
-
title: string;
|
|
3989
|
-
widget: AXPWidgetNode;
|
|
3990
|
-
mode?: 'simple' | 'advanced';
|
|
3991
|
-
onApply?: (result: AXPWidgetPropertyViewerResult) => void | Promise<void>;
|
|
3992
|
-
/**
|
|
3993
|
-
* Property names to exclude from the viewer.
|
|
3994
|
-
*/
|
|
3995
|
-
exclude?: string[];
|
|
3996
|
-
/**
|
|
3997
|
-
* Custom property injection configuration.
|
|
3998
|
-
*/
|
|
3999
|
-
custom?: {
|
|
4000
|
-
/**
|
|
4001
|
-
* Custom property injection entries.
|
|
4002
|
-
*/
|
|
4003
|
-
properties: AXPWidgetPropertyInjection[];
|
|
4004
|
-
/**
|
|
4005
|
-
* Default tab fallback if property injection doesn't specify one.
|
|
4006
|
-
* When omitted, falls back to the first tab or "general".
|
|
4007
|
-
*/
|
|
4008
|
-
defaultTab?: {
|
|
4009
|
-
name?: string;
|
|
4010
|
-
title?: string;
|
|
4011
|
-
};
|
|
4012
|
-
/**
|
|
4013
|
-
* Default group fallback when injection doesn't specify a group.
|
|
4014
|
-
* When omitted, falls back to the tab's first group or property defined group.
|
|
4015
|
-
*/
|
|
4016
|
-
defaultGroup?: {
|
|
4017
|
-
name?: string;
|
|
4018
|
-
title?: string;
|
|
4019
|
-
};
|
|
4020
|
-
};
|
|
4021
|
-
}
|
|
4022
|
-
/** Emitted when the dialog applies; `values` is the updated viewer context (merge into {@link AXPWidgetNode} as needed). */
|
|
4023
|
-
interface AXPWidgetPropertyViewerResult {
|
|
4024
|
-
values: any;
|
|
4025
|
-
mode: 'init' | 'update';
|
|
4026
|
-
}
|
|
4027
|
-
interface IAXPWidgetPropertyViewerRoot {
|
|
4028
|
-
dialog(delegate: (container: IAXPWidgetPropertyViewerDialogBuilder) => void): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4029
|
-
}
|
|
4030
|
-
interface IAXPWidgetPropertyViewerDialogBuilder {
|
|
4031
|
-
setTitle(title: string): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4032
|
-
/**
|
|
4033
|
-
* Initial widget state shown in the viewer (type, options, name/path, …). Call before {@link show}.
|
|
4034
|
-
*/
|
|
4035
|
-
setWidget(widget: AXPWidgetNode): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4036
|
-
setMode(mode: 'simple' | 'advanced'): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4037
|
-
setExclude(exclude: string[]): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4038
|
-
setCustom(custom: AXPWidgetPropertyViewerConfig['custom']): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4039
|
-
/**
|
|
4040
|
-
* When set to a non-empty array, builds tabs from these properties and skips registry lookup for {@link setWidget}'s type.
|
|
4041
|
-
* Omit or clear to resolve widget config from {@link AXPWidgetRegistryService} as usual.
|
|
4042
|
-
*/
|
|
4043
|
-
setPropertyDefinitions(properties: AXPWidgetProperty[] | null): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4044
|
-
onAction(handler: (dialogRef: AXPPropertyViewerActionRef) => void | Promise<void> | unknown | Promise<unknown>): IAXPWidgetPropertyViewerDialogBuilder;
|
|
4045
|
-
/**
|
|
4046
|
-
* Applies edits and returns updated context; merge {@link AXPWidgetPropertyViewerResult.values} into your widget node
|
|
4047
|
-
* (typically `options` and any top-level fields the viewer exposes).
|
|
4048
|
-
*/
|
|
4049
|
-
show(): Promise<AXPWidgetPropertyViewerResult | null>;
|
|
4050
|
-
}
|
|
4051
|
-
declare class AXPWidgetPropertyViewerService {
|
|
4052
|
-
private readonly widgetRegistryService;
|
|
4053
|
-
private readonly propertyViewerService;
|
|
4054
|
-
/**
|
|
4055
|
-
* Same shape as `AXPPropertyViewerService.create()` — use `.dialog((d) => { ... }).show()`.
|
|
4056
|
-
*/
|
|
4057
|
-
create(): IAXPWidgetPropertyViewerRoot;
|
|
4058
|
-
/**
|
|
4059
|
-
* One-shot open (delegates to {@link #create} `.dialog().show()`).
|
|
4060
|
-
*/
|
|
4061
|
-
open(config: AXPWidgetPropertyViewerConfig): Promise<AXPWidgetPropertyViewerResult | null>;
|
|
4062
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetPropertyViewerService, never>;
|
|
4063
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetPropertyViewerService>;
|
|
4064
|
-
}
|
|
4065
|
-
|
|
4066
|
-
export { AXPActivityLogComponent, AXPAvatarComponent, AXPCategoryTreeComponent, AXPColorChooserComponent, AXPColorPalettePickerComponent, AXPColumnItemListComponent, AXPCompareViewComponent, AXPConditionBuilderComponent, AXPConditionBuilderConditionComponent, AXPDataSelectorComponent, AXPDataSelectorService, AXPDragDropListComponent, AXPExpressionFieldDefinitions, AXPFileChooserCompressImagesHook, AXPFileChooserDirective, AXPFileChooserHookKeys, AXPFileChooserService, AXPFileChooserZipFilesHook, AXPFileUploaderDirective, AXPFileUploaderHookKeys, AXPFileUploaderService, AXPFileViewerComponent, AXPFileViewerFallbackContentComponent, AXPFileViewerService, AXPImageEditorPopupComponent, AXPImageEditorService, AXPInfiniteScrollDirective, AXPItemConfiguratorComponent, AXPLayoutFloatingZoomBarComponent, AXPLayoutSideDetailPanelComponent, AXPLayoutSideDetailPanelSectionDirective, AXPMarkdownTemplateDirective, AXPMarkdownViewerComponent, AXPMenuBadgeHelper, AXPMenuCustomizerComponent, AXPMenuCustomizerService, AXPOutcomeResultsViewerComponent, AXPPageComponentRegistryService, AXPPreloadFiltersComponent, AXPPropertyViewerComponent, AXPPropertyViewerPopupComponent, AXPPropertyViewerService, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, AXPRepeaterRowsLayoutComponent, AXPResourceAppointmentBoardProvider, AXPResourceAppointmentComponent, AXPResourceAppointmentService, AXPSectionItemsBuilderComponent, AXPSignatureEditorService, AXPSpreadsheetComponent, AXPStandardSectionItemsBuilderComponent, AXPStopwatchComponent, AXPTableColumnsEditorComponent, AXPTableColumnsEditorPopupComponent, AXPTableColumnsEditorService, AXPTableDataEditorComponent, AXPTableDataEditorPopupComponent, AXPTableDataEditorService, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPTemplateViewerComponent, AXPTemplateViewerService, AXPTextCommandColumnComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPUserCardComponent, AXPUserCardDirective, AXPUserCardService, AXPVirtualKeypadComponent, AXPWidgetFieldConfiguratorComponent, AXPWidgetItemComponent, AXPWidgetPropertyViewerComponent, AXPWidgetPropertyViewerPopupComponent, AXPWidgetPropertyViewerService, AXP_EXPRESSION_LOGIC_DEFINITIONS, AXP_EXPRESSION_OPERATION_DEFINITIONS, AXP_FILE_CHOOSER_DEFAULT_ZIP_ARCHIVE_NAME, AXP_FILE_CHOOSER_HOOK_PROVIDERS, AXP_FILE_CHOOSER_OPTION_KEYS, AXP_FILE_CHOOSER_PROVIDERS, AXP_FILE_UPLOADER_PROVIDERS, AXP_INFINITE_SCROLL_DEFAULT_ROOT_MARGIN, AXP_MENU_CUSTOMIZER_SERVICE, AXP_PAGE_COMPONENT_PROVIDER, AXP_PAGE_LAYOUT_ELEMENT_ID, AXP_RESOURCE_APPOINTMENT_PROVIDER, AXP_SYSTEM_FILE_CHOOSER_PROVIDER, AXP_SYSTEM_FILE_UPLOADER_PROVIDER, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER, STANDARD_SECTION_ITEMS_SECTION_TABS, USER_CARD_HOVER_OPEN_DELAY_MS, USER_CARD_ITEMS_HOOK, USER_CARD_ITEMS_SKELETON_DELAY_MS, buildFileChooserOptions, buildPropertyViewerInitialContextFromProperties, buildPropertyViewerTabsFromProperties, buildTableColumnsEditorLayout, compressImageFile, createAttachedFileProviderMenu, createZipArchive, fileListItemToFileViewerItem, fileMatchesAccept, filterFileProvidersByContext, filterFilesByAcceptAndMaxSize, formatAcceptForDisplay, formatMaxFileSizeForDisplay, getFieldDefinitions, getLogicDefinition, getOperationDefinition, isPropertyBindingExpressionFormValue, isUnrestrictedFileAccept, mapFileListToViewerItems, mergeInfiniteScrollPage, normalizeFileViewerBoundValue, notifyFileAcceptRejections, observeInfiniteScroll, preparePropertyForViewer, preparePropertyViewerTabs, provideFileChooserHooks, registerFieldDefinitions, resolveExcludedFileProviderKeys, resolveFileChooserAccept, resolveFileChooserExtension, resolveFileListItemUrl, resolveFileUploaderEmptyStateDescription, resolveInfiniteScrollRoot, sortUserCardActions, sortUserCardRows, validateFileChooserItems, visibleUserCardActions, withValidationsOnEditorNode };
|
|
4067
|
-
export type { AXPActivityLogCompareRequest, AXPAttachedFileProviderMenu, AXPBuilderBadge, AXPBuilderBadgeVariant, AXPBuilderDefinition, AXPBuilderItem, AXPBuilderItemIconTone, AXPBuilderItemViewModel, AXPBuilderSection, AXPBuilderTexts, AXPBuilderValue, AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColorChooserGroup, AXPColorChooserLook, AXPColorChooserSwatch, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPDataSelectorAllowCreate, AXPDataSelectorCategoryConfig, AXPDataSelectorCategoryFilterConfig, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDataSelectorCreateConfig, AXPDataSelectorFilterConfig, AXPDataSelectorFooterPrefixAction, AXPDataSelectorGridConfig, AXPDataSelectorRowActionItem, AXPDataSelectorRowActionsHandler, AXPDataSelectorSearchConfig, AXPDataSelectorSearchField, AXPDataSelectorSelectionConfig, AXPDragDropListConfig, AXPDragDropListDropEvent, AXPDragDropListItem, AXPExpressionFieldDefinition, AXPExpressionGroupNode, AXPExpressionLogicDefinition, AXPExpressionLogicType, AXPExpressionNode, AXPExpressionNodeId, AXPExpressionOperationDefinition, AXPExpressionOperationNode, AXPExpressionOperationType, AXPExpressionTree, AXPExpressionValueOperand, AXPExpressionValueSourceType, AXPFileChooserAfterChosenPayload, AXPFileChooserContext, AXPFileChooserOptionKey, AXPFileChooserProvider, AXPFileProviderDestination, AXPFileUploaderBeforeUploadPayload, AXPFileUploaderContext, AXPFileUploaderProvider, AXPFileViewerGalleryConfig, AXPFileViewerOpenFilesOptions, AXPImageEditorOpenOptions, AXPInfiniteScrollMergeResult, AXPInfiniteScrollPage, AXPInfiniteScrollRoot, AXPLayoutSideDetailPanelEmptyState, AXPLayoutSideDetailPanelHeader, AXPLayoutSideDetailPanelHeaderIcon, AXPLayoutSideDetailPanelRow, AXPLayoutSideDetailPanelRowFormat, AXPLayoutSideDetailPanelSection, AXPMenuCustomizerAction, AXPMenuCustomizerItem, AXPMenuCustomizerItemType, AXPMenuCustomizerNodeData, AXPMenuCustomizerNodeMetadata, AXPMenuCustomizerState, AXPObserveInfiniteScrollOptions, AXPOutcomeResultRow, AXPOutcomeResultSection, AXPOutcomeResultValuePresentation, AXPOutcomeResultsViewModel, AXPPageComponentDefinition, AXPPageComponentProvider, AXPPreloadFiltersApplyEvent, AXPPropertyViewerActionRef, AXPPropertyViewerChangedEvent, AXPPropertyViewerConfig, AXPPropertyViewerGroup, AXPPropertyViewerResult, AXPPropertyViewerTab, AXPResourceAppointmentActionMenuItem, AXPResourceAppointmentBoardFilter, AXPResourceAppointmentItem, AXPResourceAppointmentResource, AXPResourceAppointmentStatus, AXPSignatureEditorAction, AXPSignatureEditorOpenOptions, AXPSignatureEditorResult, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetCellValue, AXPSpreadsheetColumn, AXPSpreadsheetConfig, AXPSpreadsheetData, AXPSpreadsheetItem, AXPSpreadsheetRowChangeEvent, AXPSpreadsheetRowMode, AXPStandardSectionFormContext, AXPStandardSectionItemsBuilderConfig, AXPTableColumnDefinition, AXPTableColumnsEditorOpenOptions, AXPTableDataEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPTextCommandColumnClickEvent, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPUserCardAction, AXPUserCardItemsPayload, AXPUserCardRow, AXPUserCardShowOptions, AXPUserCardTrigger, AXPVirtualKeypadAction, AXPVirtualKeypadKey, AXPVirtualKeypadLook, AXPVirtualKeypadPressEvent, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyInjection, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, ConditionBuilderSelectedField, FileAcceptFilterResult, FileAcceptRejectedFile, FileUploaderEmptyStateDescriptionKey, FileViewerUrlTracker, IAXPPropertyViewerDialogBuilder, IAXPPropertyViewerRoot, IAXPWidgetPropertyViewerDialogBuilder, IAXPWidgetPropertyViewerRoot, ItemConfiguratorListItem };
|
|
4636
|
+
export { AXPActivityLogComponent, AXPAvatarComponent, AXPCategoryTreeComponent, AXPColorChooserComponent, AXPColorPalettePickerComponent, AXPColumnItemListComponent, AXPCompareViewComponent, AXPConditionBuilderComponent, AXPConditionBuilderConditionComponent, AXPDataSelectorComponent, AXPDataSelectorService, AXPDragDropListComponent, AXPEntityListStylingDialogService, AXPEntityListStylingPopupComponent, AXPExpressionFieldDefinitions, AXPFileChooserCompressImagesHook, AXPFileChooserDirective, AXPFileChooserHookKeys, AXPFileChooserService, AXPFileChooserZipFilesHook, AXPFileUploaderDirective, AXPFileUploaderHookKeys, AXPFileUploaderService, AXPFileViewerComponent, AXPFileViewerFallbackContentComponent, AXPFileViewerService, AXPImageEditorPopupComponent, AXPImageEditorService, AXPInfiniteScrollDirective, AXPItemConfiguratorComponent, AXPLayoutFloatingZoomBarComponent, AXPLayoutSideDetailPanelComponent, AXPLayoutSideDetailPanelSectionDirective, AXPLocalDataSourceEditorDialogService, AXPMarkdownTemplateDirective, AXPMarkdownViewerComponent, AXPMenuBadgeHelper, AXPMenuCustomizerComponent, AXPMenuCustomizerService, AXPOutcomeResultsViewerComponent, AXPPageComponentRegistryService, AXPPreloadFiltersComponent, AXPPropertyViewerComponent, AXPPropertyViewerPopupComponent, AXPPropertyViewerService, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewSaveButtonComponent, AXPQueryViewSaveDialogService, AXPQueryViewTabsComponent, AXPQueryViewsComponent, AXPRepeaterRowsLayoutComponent, AXPResourceAppointmentBoardProvider, AXPResourceAppointmentComponent, AXPResourceAppointmentService, AXPSectionItemsBuilderComponent, AXPSignatureEditorService, AXPSpreadsheetComponent, AXPStandardSectionItemsBuilderComponent, AXPStopwatchComponent, AXPTableColumnsEditorComponent, AXPTableColumnsEditorPopupComponent, AXPTableColumnsEditorService, AXPTableDataEditorComponent, AXPTableDataEditorPopupComponent, AXPTableDataEditorService, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPTemplateViewerComponent, AXPTemplateViewerService, AXPTextCommandColumnComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPUserCardComponent, AXPUserCardDirective, AXPUserCardService, AXPVirtualKeypadComponent, AXPWidgetFieldConfiguratorComponent, AXPWidgetItemComponent, AXPWidgetPropertyViewerComponent, AXPWidgetPropertyViewerPopupComponent, AXPWidgetPropertyViewerService, AXP_EXPRESSION_LOGIC_DEFINITIONS, AXP_EXPRESSION_OPERATION_DEFINITIONS, AXP_FILE_CHOOSER_DEFAULT_ZIP_ARCHIVE_NAME, AXP_FILE_CHOOSER_HOOK_PROVIDERS, AXP_FILE_CHOOSER_OPTION_KEYS, AXP_FILE_CHOOSER_PROVIDERS, AXP_FILE_UPLOADER_PROVIDERS, AXP_IMAGE_FILE_CHOOSER_ACCEPT, AXP_INFINITE_SCROLL_DEFAULT_ROOT_MARGIN, AXP_MENU_CUSTOMIZER_SERVICE, AXP_PAGE_COMPONENT_PROVIDER, AXP_PAGE_LAYOUT_ELEMENT_ID, AXP_PROFILE_PHOTO_GRAVATAR_SOURCE_KEY, AXP_RESOURCE_APPOINTMENT_PROVIDER, AXP_SIGNATURE_PROVIDER, AXP_SPREADSHEET_COLUMN_WIDGET_TYPES, AXP_SYSTEM_FILE_CHOOSER_PROVIDER, AXP_SYSTEM_FILE_UPLOADER_PROVIDER, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER, PROPERTY_VIEWER_EXPRESSION_EDITOR_MIN_LINES, SPREADSHEET_COLUMN_NAME_PATH, SPREADSHEET_COLUMN_TITLE_PATH, STANDARD_SECTION_ITEMS_SECTION_TABS, USER_CARD_HOVER_OPEN_DELAY_MS, USER_CARD_ITEMS_HOOK, USER_CARD_ITEMS_SKELETON_DELAY_MS, asSpreadsheetColumnTitle, buildEntityListStylingRulesLayout, buildFileChooserOptions, buildGravatarAvatarUrl, buildPropertyViewerInitialContextFromProperties, buildPropertyViewerTabsFromProperties, buildTableColumnsEditorLayout, compressImageFile, createAttachedFileProviderMenu, createZipArchive, fetchGravatarImageFile, fileListItemToFileViewerItem, fileListItemToImageFile, fileMatchesAccept, fileNameMatchesAccept, filterFileProvidersByContext, filterFilesByAcceptAndMaxSize, formatAcceptForDisplay, formatMaxFileSizeForDisplay, getFieldDefinitions, getLogicDefinition, getOperationDefinition, isPropertyBindingExpressionFormValue, isUnrestrictedFileAccept, mapFileListToViewerItems, md5Hex, mergeInfiniteScrollPage, mergeObjectsReplacingArrays, normalizeFileViewerBoundValue, normalizeSpreadsheetColumnName, notifyFileAcceptRejections, observeInfiniteScroll, pickImageFileViaFileChooser, pickProfilePhotoImageFile, preparePropertyForViewer, preparePropertyViewerTabs, provideFileChooserHooks, readSpreadsheetColumnIdentity, readSpreadsheetColumnWidth, registerFieldDefinitions, resolveExcludedFileProviderKeys, resolveFileChooserAccept, resolveFileChooserExtension, resolveFileListItemUrl, resolveFileUploaderEmptyStateDescription, resolveInfiniteScrollRoot, sortUserCardActions, sortUserCardRows, spreadsheetColumnIdentityProperties, toSpreadsheetColumnWidget, validateFileChooserItems, visibleUserCardActions, withValidationsOnEditorNode };
|
|
4637
|
+
export type { AXPActivityLogCompareRequest, AXPAttachedFileProviderMenu, AXPBuilderBadge, AXPBuilderBadgeVariant, AXPBuilderDefinition, AXPBuilderItem, AXPBuilderItemIconTone, AXPBuilderItemViewModel, AXPBuilderSection, AXPBuilderTexts, AXPBuilderValue, AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColorChooserGroup, AXPColorChooserLook, AXPColorChooserSwatch, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPDataSelectorAllowCreate, AXPDataSelectorCategoryConfig, AXPDataSelectorCategoryFilterConfig, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDataSelectorCreateConfig, AXPDataSelectorFilterConfig, AXPDataSelectorFooterPrefixAction, AXPDataSelectorGridConfig, AXPDataSelectorRowActionItem, AXPDataSelectorRowActionsHandler, AXPDataSelectorSearchConfig, AXPDataSelectorSearchField, AXPDataSelectorSelectionConfig, AXPDragDropListConfig, AXPDragDropListDropEvent, AXPDragDropListItem, AXPEntityListStylingDialogInput, AXPEntityListStylingRulesKind, AXPEntityListStylingRulesLayoutOptions, AXPExpressionFieldDefinition, AXPExpressionGroupNode, AXPExpressionLogicDefinition, AXPExpressionLogicType, AXPExpressionNode, AXPExpressionNodeId, AXPExpressionOperationDefinition, AXPExpressionOperationNode, AXPExpressionOperationType, AXPExpressionTree, AXPExpressionValueOperand, AXPExpressionValueSourceType, AXPFileChooserAfterChosenPayload, AXPFileChooserContext, AXPFileChooserOptionKey, AXPFileChooserProvider, AXPFileProviderDestination, AXPFileUploaderBeforeUploadPayload, AXPFileUploaderContext, AXPFileUploaderProvider, AXPFileViewerGalleryConfig, AXPFileViewerOpenFilesOptions, AXPImageEditorOpenOptions, AXPInfiniteScrollMergeResult, AXPInfiniteScrollPage, AXPInfiniteScrollRoot, AXPLayoutSideDetailPanelEmptyState, AXPLayoutSideDetailPanelHeader, AXPLayoutSideDetailPanelHeaderIcon, AXPLayoutSideDetailPanelRow, AXPLayoutSideDetailPanelRowFormat, AXPLayoutSideDetailPanelSection, AXPLocalDataSourceEditorDialogInput, AXPLocalDataSourceEditorDialogResult, AXPMenuCustomizerAction, AXPMenuCustomizerItem, AXPMenuCustomizerItemType, AXPMenuCustomizerNodeData, AXPMenuCustomizerNodeMetadata, AXPMenuCustomizerState, AXPObserveInfiniteScrollOptions, AXPOutcomeResultRow, AXPOutcomeResultSection, AXPOutcomeResultValuePresentation, AXPOutcomeResultsViewModel, AXPPageComponentDefinition, AXPPageComponentProvider, AXPPreloadFiltersApplyEvent, AXPProfilePhotoImagePickOptions, AXPProfilePhotoImagePickResult, AXPPropertyViewerActionRef, AXPPropertyViewerBindingExpressionEditorMode, AXPPropertyViewerChangedEvent, AXPPropertyViewerConfig, AXPPropertyViewerGroup, AXPPropertyViewerResult, AXPPropertyViewerTab, AXPQueryViewContextMenuEvent, AXPQueryViewSaveDialogInput, AXPQueryViewSaveDialogResult, AXPResourceAppointmentActionMenuItem, AXPResourceAppointmentBoardFilter, AXPResourceAppointmentItem, AXPResourceAppointmentResource, AXPResourceAppointmentStatus, AXPSignatureEditorAction, AXPSignatureEditorOpenOptions, AXPSignatureEditorResult, AXPSignatureProvider, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetCellValue, AXPSpreadsheetColumn, AXPSpreadsheetColumnChangeEvent, AXPSpreadsheetColumnWidgetType, AXPSpreadsheetConfig, AXPSpreadsheetData, AXPSpreadsheetItem, AXPSpreadsheetRowChangeEvent, AXPSpreadsheetRowMode, AXPStandardSectionFormContext, AXPStandardSectionItemsBuilderConfig, AXPTableColumnDefinition, AXPTableColumnsEditorOpenOptions, AXPTableDataEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPTextCommandColumnClickEvent, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPUserCardAction, AXPUserCardItemsPayload, AXPUserCardRow, AXPUserCardShowOptions, AXPUserCardTrigger, AXPVirtualKeypadAction, AXPVirtualKeypadKey, AXPVirtualKeypadLook, AXPVirtualKeypadPressEvent, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyInjection, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, ConditionBuilderSelectedField, FileAcceptFilterResult, FileAcceptRejectedFile, FileUploaderEmptyStateDescriptionKey, FileViewerUrlTracker, IAXPPropertyViewerDialogBuilder, IAXPPropertyViewerRoot, IAXPWidgetPropertyViewerDialogBuilder, IAXPWidgetPropertyViewerRoot, ItemConfiguratorListItem };
|