@acorex/platform 20.8.12 → 20.8.14
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/{types/acorex-platform-auth.d.ts → auth/index.d.ts} +2 -14
- package/{types/acorex-platform-common.d.ts → common/index.d.ts} +30 -302
- package/{types/acorex-platform-core.d.ts → core/index.d.ts} +44 -188
- package/{types/acorex-platform-domain.d.ts → domain/index.d.ts} +412 -744
- package/fesm2022/acorex-platform-auth.mjs +27 -125
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-Bi1RYif5.mjs → acorex-platform-common-common-settings.provider-DVvuLUfF.mjs} +32 -30
- package/fesm2022/acorex-platform-common-common-settings.provider-DVvuLUfF.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +205 -711
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +127 -420
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +830 -561
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +114 -634
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs} +9 -9
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +877 -3362
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +204 -456
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +10062 -14672
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +171 -413
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +441 -507
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs → acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs} +10 -10
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs → acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs} +76 -21
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs → acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs} +7 -6
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs → acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs} +12 -12
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +111 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs} +4 -4
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +3408 -5611
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -8
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +166 -391
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs +1716 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs → acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs} +23 -16
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs → acorex-platform-themes-default-error-401.component-53VB-PS_.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs → acorex-platform-themes-default-error-404.component-DVF9soT5.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +61 -1784
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs → acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs → acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs} +25 -24
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +65 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +64 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +305 -408
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +100 -359
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/{types/acorex-platform-layout-builder.d.ts → layout/builder/index.d.ts} +38 -160
- package/{types/acorex-platform-layout-components.d.ts → layout/components/index.d.ts} +125 -854
- package/{types/acorex-platform-layout-designer.d.ts → layout/designer/index.d.ts} +18 -96
- package/{types/acorex-platform-layout-entity.d.ts → layout/entity/index.d.ts} +65 -848
- package/{types/acorex-platform-layout-views.d.ts → layout/views/index.d.ts} +47 -80
- package/{types/acorex-platform-layout-widget-core.d.ts → layout/widget-core/index.d.ts} +197 -274
- package/{types/acorex-platform-layout-widgets.d.ts → layout/widgets/index.d.ts} +124 -608
- package/{types/acorex-platform-native.d.ts → native/index.d.ts} +7 -0
- package/package.json +36 -36
- package/runtime/index.d.ts +307 -0
- package/{types/acorex-platform-themes-default.d.ts → themes/default/index.d.ts} +4 -113
- package/{types/acorex-platform-themes-shared.d.ts → themes/shared/index.d.ts} +4 -5
- package/{types/acorex-platform-workflow.d.ts → workflow/index.d.ts} +81 -162
- package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs +0 -116
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs +0 -160
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs +0 -120
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +0 -94
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +0 -86
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +0 -1
- package/types/acorex-platform-runtime.d.ts +0 -571
- /package/{types/acorex-platform.d.ts → index.d.ts} +0 -0
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit,
|
|
3
|
-
import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData,
|
|
2
|
+
import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, QueryList, OnChanges, EventEmitter, WritableSignal } from '@angular/core';
|
|
3
|
+
import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData, AXPFilterDefinition, AXPFilterQuery, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery, AXPActionMenuItem, AXPExecuteCommand, AXPExecuteCommandResult } from '@acorex/platform/core';
|
|
4
4
|
import { AXPMenuItem } from '@acorex/platform/common';
|
|
5
|
-
import { AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption,
|
|
5
|
+
import { AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXHtmlEvent, AXEvent, AXRange } from '@acorex/cdk/common';
|
|
6
6
|
import { AXTreeViewLegacyComponent, AXTreeItemClickBaseEventLegacy } from '@acorex/components/tree-view-legacy';
|
|
7
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
7
8
|
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
8
9
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
9
10
|
import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
|
|
10
|
-
import { AXPWidgetNode, AXPWidgetRendererDirective, AXPWidgetProperty, AXPWidgetConfig } from '@acorex/platform/layout/widget-core';
|
|
11
|
+
import { AXPWidgetNode, AXPWidgetRendererDirective, AXPWidgetCoreContextChangeEvent, AXPWidgetProperty, AXPWidgetConfig } from '@acorex/platform/layout/widget-core';
|
|
11
12
|
import { AXDataTableComponent, AXDataTableRowDbClick, AXDataTableRowClick } from '@acorex/components/data-table';
|
|
12
13
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
13
14
|
import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
|
|
14
15
|
import { AXTagBoxComponent } from '@acorex/components/tag-box';
|
|
15
16
|
import { AXCalendarService } from '@acorex/core/date-time';
|
|
16
|
-
import * as _acorex_core_translation from '@acorex/core/translation';
|
|
17
|
-
import { AXTranslationService } from '@acorex/core/translation';
|
|
18
17
|
import { AXFormComponent } from '@acorex/components/form';
|
|
19
18
|
import { AXTreeViewNode, AXTreeViewDragBehavior, AXTreeViewDragArea, AXTreeViewComponent, AXTreeViewBeforeDropEvent, AXTreeViewDropEvent } from '@acorex/components/tree-view';
|
|
20
19
|
import { AXTabStripChangedEvent, AXTabsComponent } from '@acorex/components/tabs';
|
|
21
|
-
import { AXValidationSummary } from '@acorex/core/validation';
|
|
22
20
|
import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
|
|
23
21
|
import { Observable, Subject } from 'rxjs';
|
|
24
22
|
import { AXSelectBoxComponent } from '@acorex/components/select-box';
|
|
25
23
|
import { AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
|
|
26
24
|
import { AXSchedulerComponent, AXSchedulerView, AXSchedulerResource, AXSchedulerAppointment, AXSchedulerDateRange } from '@acorex/components/scheduler';
|
|
27
|
-
import * as _acorex_platform_layout_components from '@acorex/platform/layout/components';
|
|
28
25
|
|
|
29
26
|
declare class AXPActivityLogComponent {
|
|
30
27
|
private readonly translateService;
|
|
@@ -255,8 +252,7 @@ interface AXPCategoryTreeDataSource {
|
|
|
255
252
|
}
|
|
256
253
|
|
|
257
254
|
declare class AXPCategoryTreeComponent {
|
|
258
|
-
|
|
259
|
-
protected readonly categoryTreeRootTitleI18nKey = "@general:terms.interface.selection.all-items";
|
|
255
|
+
protected readonly translationService: AXTranslationService;
|
|
260
256
|
dataSource: _angular_core.InputSignal<AXPCategoryTreeDataSource>;
|
|
261
257
|
config: _angular_core.InputSignal<AXPCategoryTreeConfig>;
|
|
262
258
|
actions: _angular_core.InputSignal<AXPCategoryTreeActions>;
|
|
@@ -437,7 +433,6 @@ declare class AXPCompareViewComponent implements OnInit, OnDestroy {
|
|
|
437
433
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPCompareViewComponent, "axp-compare-view", never, { "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
438
434
|
}
|
|
439
435
|
|
|
440
|
-
type AXPDataSelectorAllowCreate = 'none' | 'full' | 'quick';
|
|
441
436
|
interface AXPDataSelectorColumn {
|
|
442
437
|
name: string;
|
|
443
438
|
title: string;
|
|
@@ -460,8 +455,7 @@ interface AXPDataSelectorConfig {
|
|
|
460
455
|
}[];
|
|
461
456
|
initialSearchTerm?: string;
|
|
462
457
|
parentField?: string;
|
|
463
|
-
allowCreate?:
|
|
464
|
-
onCreate?: (mode: 'full' | 'quick') => Promise<any | null>;
|
|
458
|
+
allowCreate?: boolean;
|
|
465
459
|
filters?: AXDataSourceFilterOption;
|
|
466
460
|
selectedItemIds?: string[] | number[];
|
|
467
461
|
categoryFilter?: {
|
|
@@ -517,7 +511,7 @@ declare class AXPDataSelectorComponent extends AXBasePageComponent {
|
|
|
517
511
|
protected handleRowClick(e: AXDataTableRowClick): void;
|
|
518
512
|
protected handleSelectedRowsChange(rows: unknown[]): Promise<void>;
|
|
519
513
|
protected handleChangeSearchValue(e: AXValueChangedEvent): void;
|
|
520
|
-
protected handleCreateNewClick(
|
|
514
|
+
protected handleCreateNewClick(): Promise<void>;
|
|
521
515
|
protected handleCloseClick(): void;
|
|
522
516
|
protected handleSelectClick(): void;
|
|
523
517
|
protected handleExpandRow(row: any): Promise<void>;
|
|
@@ -566,102 +560,6 @@ declare class AXPDataSelectorService {
|
|
|
566
560
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataSelectorService>;
|
|
567
561
|
}
|
|
568
562
|
|
|
569
|
-
/**
|
|
570
|
-
* Definition for a page component that can be registered and loaded dynamically
|
|
571
|
-
*/
|
|
572
|
-
interface AXPPageComponentDefinition {
|
|
573
|
-
/**
|
|
574
|
-
* Unique key to identify the component
|
|
575
|
-
*/
|
|
576
|
-
key: string;
|
|
577
|
-
/**
|
|
578
|
-
* Loader function that returns the component type (supports lazy loading)
|
|
579
|
-
*/
|
|
580
|
-
loader: () => Type<any> | Promise<Type<any>>;
|
|
581
|
-
}
|
|
582
|
-
/**
|
|
583
|
-
* Provider interface for registering page components
|
|
584
|
-
* Similar to AXPDataSourceDefinitionProvider pattern
|
|
585
|
-
*/
|
|
586
|
-
interface AXPPageComponentProvider {
|
|
587
|
-
/**
|
|
588
|
-
* Returns all component definitions provided by this provider
|
|
589
|
-
*/
|
|
590
|
-
components(): Promise<AXPPageComponentDefinition[]>;
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
/**
|
|
594
|
-
* Service for managing page components from multiple providers
|
|
595
|
-
* Similar to AXPDataSourceDefinitionProviderService pattern
|
|
596
|
-
*
|
|
597
|
-
* @example
|
|
598
|
-
* ```typescript
|
|
599
|
-
* // In a module providers array:
|
|
600
|
-
* {
|
|
601
|
-
* provide: AXP_PAGE_COMPONENT_PROVIDER,
|
|
602
|
-
* useClass: MyPageComponentProvider,
|
|
603
|
-
* multi: true,
|
|
604
|
-
* }
|
|
605
|
-
*
|
|
606
|
-
* // Example provider implementation:
|
|
607
|
-
* export class MyPageComponentProvider implements AXPPageComponentProvider {
|
|
608
|
-
* async components(): Promise<AXPPageComponentDefinition[]> {
|
|
609
|
-
* return [
|
|
610
|
-
* {
|
|
611
|
-
* key: 'my-custom-page',
|
|
612
|
-
* loader: () => import('./my-page.component').then(m => m.MyPageComponent),
|
|
613
|
-
* },
|
|
614
|
-
* ];
|
|
615
|
-
* }
|
|
616
|
-
* }
|
|
617
|
-
*
|
|
618
|
-
* // Later, get the component loader:
|
|
619
|
-
* const loader = await pageComponentService.find('my-custom-page');
|
|
620
|
-
* if (loader) {
|
|
621
|
-
* const ComponentType = await loader();
|
|
622
|
-
* // Use ComponentType
|
|
623
|
-
* }
|
|
624
|
-
* ```
|
|
625
|
-
*/
|
|
626
|
-
declare class AXPPageComponentRegistryService {
|
|
627
|
-
private providers;
|
|
628
|
-
/**
|
|
629
|
-
* Get all component definitions from all providers
|
|
630
|
-
*/
|
|
631
|
-
components(): Promise<AXPPageComponentDefinition[]>;
|
|
632
|
-
/**
|
|
633
|
-
* Find a component loader by key
|
|
634
|
-
*/
|
|
635
|
-
find(key: string): Promise<(() => Type<any> | Promise<Type<any>>) | undefined>;
|
|
636
|
-
/**
|
|
637
|
-
* Check if a component exists by key
|
|
638
|
-
*/
|
|
639
|
-
exists(key: string): Promise<boolean>;
|
|
640
|
-
/**
|
|
641
|
-
* Get all registered component keys
|
|
642
|
-
*/
|
|
643
|
-
getAll(): Promise<string[]>;
|
|
644
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPageComponentRegistryService, never>;
|
|
645
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPageComponentRegistryService>;
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* Injection token for page component providers
|
|
650
|
-
* Use with multi: true to register multiple providers
|
|
651
|
-
*
|
|
652
|
-
* @example
|
|
653
|
-
* ```typescript
|
|
654
|
-
* providers: [
|
|
655
|
-
* {
|
|
656
|
-
* provide: AXP_PAGE_COMPONENT_PROVIDER,
|
|
657
|
-
* useClass: MyPageComponentProvider,
|
|
658
|
-
* multi: true,
|
|
659
|
-
* }
|
|
660
|
-
* ]
|
|
661
|
-
* ```
|
|
662
|
-
*/
|
|
663
|
-
declare const AXP_PAGE_COMPONENT_PROVIDER: InjectionToken<AXPPageComponentProvider[]>;
|
|
664
|
-
|
|
665
563
|
interface AXPDragDropListItem {
|
|
666
564
|
id: string;
|
|
667
565
|
content: string;
|
|
@@ -697,202 +595,12 @@ declare class AXPDragDropListComponent {
|
|
|
697
595
|
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>;
|
|
698
596
|
}
|
|
699
597
|
|
|
700
|
-
/**
|
|
701
|
-
* Shared types for expression builders (expression-builder, sort-builder, group-builder, etc.)
|
|
702
|
-
*/
|
|
703
|
-
/** Unique identifier for expression nodes */
|
|
704
|
-
type AXPExpressionNodeId = string;
|
|
705
|
-
/** Logical operator type (AND, OR, etc.) */
|
|
706
|
-
type AXPExpressionLogicType = 'and' | 'or' | 'not';
|
|
707
|
-
/** Operation type (add, multiply, equal, etc.) */
|
|
708
|
-
type AXPExpressionOperationType = string;
|
|
709
|
-
/** Value source type (literal, field, parameter, etc.) */
|
|
710
|
-
type AXPExpressionValueSourceType = 'literal' | 'field' | 'parameter';
|
|
711
|
-
/** Field definition for value selectors */
|
|
712
|
-
interface AXPExpressionFieldDefinition {
|
|
713
|
-
id: string;
|
|
714
|
-
title: string;
|
|
715
|
-
dataType?: string;
|
|
716
|
-
path?: string;
|
|
717
|
-
/** Optional: for nested/related fields */
|
|
718
|
-
children?: AXPExpressionFieldDefinition[];
|
|
719
|
-
}
|
|
720
|
-
/** Value operand in an expression */
|
|
721
|
-
interface AXPExpressionValueOperand {
|
|
722
|
-
sourceType: AXPExpressionValueSourceType;
|
|
723
|
-
/** For field: field id; for literal: the value; for parameter: param key */
|
|
724
|
-
value?: unknown;
|
|
725
|
-
fieldId?: string;
|
|
726
|
-
}
|
|
727
|
-
/** Single operation node (leftOperand operator rightOperand) */
|
|
728
|
-
interface AXPExpressionOperationNode {
|
|
729
|
-
id: AXPExpressionNodeId;
|
|
730
|
-
type: 'operation';
|
|
731
|
-
operator: AXPExpressionOperationType;
|
|
732
|
-
leftOperand: AXPExpressionValueOperand;
|
|
733
|
-
rightOperand: AXPExpressionValueOperand;
|
|
734
|
-
order?: number;
|
|
735
|
-
}
|
|
736
|
-
/** Group of operations with logical connective */
|
|
737
|
-
interface AXPExpressionGroupNode {
|
|
738
|
-
id: AXPExpressionNodeId;
|
|
739
|
-
type: 'group';
|
|
740
|
-
logic: AXPExpressionLogicType;
|
|
741
|
-
children: AXPExpressionNode[];
|
|
742
|
-
order?: number;
|
|
743
|
-
}
|
|
744
|
-
/** Union of expression node types */
|
|
745
|
-
type AXPExpressionNode = AXPExpressionOperationNode | AXPExpressionGroupNode;
|
|
746
|
-
/** Root expression tree */
|
|
747
|
-
interface AXPExpressionTree {
|
|
748
|
-
id: AXPExpressionNodeId;
|
|
749
|
-
logic: AXPExpressionLogicType;
|
|
750
|
-
children: AXPExpressionNode[];
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
/**
|
|
754
|
-
* Field definitions for expression builders.
|
|
755
|
-
* Used by expression-builder, sort-builder, group-builder for value/field selection.
|
|
756
|
-
*/
|
|
757
|
-
|
|
758
|
-
/** Registry of available field definitions per context */
|
|
759
|
-
declare const AXPExpressionFieldDefinitions: Record<string, AXPExpressionFieldDefinition[]>;
|
|
760
|
-
/** Add field definitions for a given context */
|
|
761
|
-
declare function registerFieldDefinitions(context: string, fields: AXPExpressionFieldDefinition[]): void;
|
|
762
|
-
/** Get field definitions for a context */
|
|
763
|
-
declare function getFieldDefinitions(context: string): AXPExpressionFieldDefinition[];
|
|
764
|
-
|
|
765
|
-
/**
|
|
766
|
-
* Logic operator definitions (AND, OR, NOT) for expression groups.
|
|
767
|
-
*/
|
|
768
|
-
|
|
769
|
-
interface AXPExpressionLogicDefinition {
|
|
770
|
-
value: AXPExpressionLogicType;
|
|
771
|
-
text: string;
|
|
772
|
-
/** Optional icon/key for UI */
|
|
773
|
-
icon?: string;
|
|
774
|
-
}
|
|
775
|
-
declare const AXP_EXPRESSION_LOGIC_DEFINITIONS: AXPExpressionLogicDefinition[];
|
|
776
|
-
declare function getLogicDefinition(logic: AXPExpressionLogicType): AXPExpressionLogicDefinition | undefined;
|
|
777
|
-
|
|
778
|
-
/**
|
|
779
|
-
* Operation definitions (arithmetic, comparison, logical) for expression builder.
|
|
780
|
-
*/
|
|
781
|
-
|
|
782
|
-
interface AXPExpressionOperationDefinition {
|
|
783
|
-
value: AXPExpressionOperationType;
|
|
784
|
-
text: string;
|
|
785
|
-
/** Optional icon/symbol for UI */
|
|
786
|
-
symbol?: string;
|
|
787
|
-
/** Category for grouping in UI */
|
|
788
|
-
category?: 'arithmetic' | 'comparison' | 'logical' | 'string';
|
|
789
|
-
}
|
|
790
|
-
declare const AXP_EXPRESSION_OPERATION_DEFINITIONS: AXPExpressionOperationDefinition[];
|
|
791
|
-
declare function getOperationDefinition(operation: AXPExpressionOperationType): AXPExpressionOperationDefinition | undefined;
|
|
792
|
-
|
|
793
|
-
/**
|
|
794
|
-
* Selected field data emitted when condition changes
|
|
795
|
-
*/
|
|
796
|
-
type ConditionBuilderSelectedField = {
|
|
797
|
-
id: string;
|
|
798
|
-
field: string;
|
|
799
|
-
operator: AXDataSourceOperator['type'];
|
|
800
|
-
value: unknown;
|
|
801
|
-
isParametric?: boolean;
|
|
802
|
-
};
|
|
803
|
-
declare class AXPConditionBuilderConditionComponent implements OnInit {
|
|
804
|
-
item: _angular_core.InputSignal<AXPFilterClause>;
|
|
805
|
-
filterDefinitions: _angular_core.InputSignal<AXPFilterDefinition[]>;
|
|
806
|
-
onResolveWidget: _angular_core.InputSignal<((fieldId: string) => string) | undefined>;
|
|
807
|
-
showFillByUser: _angular_core.InputSignal<boolean>;
|
|
808
|
-
itemChange: _angular_core.OutputEmitterRef<ConditionBuilderSelectedField>;
|
|
809
|
-
removeItem: _angular_core.OutputEmitterRef<string>;
|
|
810
|
-
protected selectedField: _angular_core.WritableSignal<ConditionBuilderSelectedField | null>;
|
|
811
|
-
protected filterNode: _angular_core.WritableSignal<AXPWidgetNode>;
|
|
812
|
-
protected context: _angular_core.WritableSignal<Record<string, unknown>>;
|
|
813
|
-
protected readonly availableFields: _angular_core.Signal<{
|
|
814
|
-
value: string | undefined;
|
|
815
|
-
text: string;
|
|
816
|
-
definition: AXPFilterDefinition;
|
|
817
|
-
}[]>;
|
|
818
|
-
protected readonly currentFilterDefinition: _angular_core.Signal<AXPFilterDefinition | undefined>;
|
|
819
|
-
protected readonly selectedFieldValue: _angular_core.Signal<string>;
|
|
820
|
-
ngOnInit(): void;
|
|
821
|
-
constructor();
|
|
822
|
-
private updateFilterWidgetNode;
|
|
823
|
-
private updateContext;
|
|
824
|
-
onFieldChange(event: AXValueChangedEvent): void;
|
|
825
|
-
onContextChange(event: {
|
|
826
|
-
data?: {
|
|
827
|
-
filter?: {
|
|
828
|
-
value?: unknown;
|
|
829
|
-
operation?: {
|
|
830
|
-
type?: string;
|
|
831
|
-
};
|
|
832
|
-
};
|
|
833
|
-
};
|
|
834
|
-
}): void;
|
|
835
|
-
onFillByUserChange(checked: boolean): void;
|
|
836
|
-
onRemoveClick(): void;
|
|
837
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPConditionBuilderConditionComponent, never>;
|
|
838
|
-
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>;
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
/**
|
|
842
|
-
* Generic condition builder component.
|
|
843
|
-
* Builds AXPFilterClause (logic/filters, field/operator/value) for use in outcome rules,
|
|
844
|
-
* outcome actions, query builders, etc.
|
|
845
|
-
*
|
|
846
|
-
* Same structure as axp-where-builder: groups, AND/OR logic, add condition/group, drag-drop, move/remove.
|
|
847
|
-
*/
|
|
848
|
-
declare class AXPConditionBuilderComponent {
|
|
849
|
-
private readonly widgetRegistry;
|
|
850
|
-
private readonly elementRef;
|
|
851
|
-
private readonly destroyRef;
|
|
852
|
-
private readonly platformId;
|
|
853
|
-
private readonly isBrowser;
|
|
854
|
-
value: _angular_core.InputSignal<AXPFilterClause>;
|
|
855
|
-
filterDefinitions: _angular_core.InputSignal<AXPFilterDefinition[]>;
|
|
856
|
-
/** When true, show "Fill by user" checkbox on each condition (e.g. for query parameters) */
|
|
857
|
-
showFillByUser: _angular_core.InputSignal<boolean>;
|
|
858
|
-
valueChange: _angular_core.OutputEmitterRef<AXPFilterClause>;
|
|
859
|
-
protected queryData: _angular_core.WritableSignal<AXPFilterClause>;
|
|
860
|
-
protected readonly logicalOperatorsItems: {
|
|
861
|
-
value: AXFilterLogic;
|
|
862
|
-
text: string;
|
|
863
|
-
}[];
|
|
864
|
-
protected getLogicDisplayText(logic: AXFilterLogic | undefined): string;
|
|
865
|
-
private connectorLayoutRafId;
|
|
866
|
-
private connectorResizeObserver;
|
|
867
|
-
private initConnectorAutoLayout;
|
|
868
|
-
private scheduleConnectorLayoutUpdate;
|
|
869
|
-
private updateConnectorCssVars;
|
|
870
|
-
constructor();
|
|
871
|
-
private generateId;
|
|
872
|
-
private updateValue;
|
|
873
|
-
private normalizeOrder;
|
|
874
|
-
protected getSortedFilters(filters: AXPFilterClause[]): AXPFilterClause[];
|
|
875
|
-
private findGroupById;
|
|
876
|
-
protected getFilterDefinition(fieldId: string): AXPFilterDefinition | undefined;
|
|
877
|
-
resolveDefaultFilterWidget(fieldId: string): string;
|
|
878
|
-
addConditionToGroup(groupId: string): void;
|
|
879
|
-
addGroupToGroup(parentGroupId: string): void;
|
|
880
|
-
removeItem(id: string): void;
|
|
881
|
-
updateCondition(condition: ConditionBuilderSelectedField): void;
|
|
882
|
-
updateGroupLogicalOperator(groupId: string, operator: AXFilterLogic): void;
|
|
883
|
-
reorderGroupItemsEvent(groupId: string, event: AXDropListDroppedEvent): void;
|
|
884
|
-
reorderGroupItems(groupId: string, previousIndex: number, currentIndex: number): void;
|
|
885
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPConditionBuilderComponent, never>;
|
|
886
|
-
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>;
|
|
887
|
-
}
|
|
888
|
-
|
|
889
598
|
declare class AXPQueryFiltersComponent {
|
|
890
599
|
#private;
|
|
891
600
|
protected translate: AXTranslationService;
|
|
892
601
|
protected calendarService: AXCalendarService;
|
|
893
602
|
private filterOperatorMiddleware;
|
|
894
603
|
private settingsService;
|
|
895
|
-
private readonly expressionEvaluator;
|
|
896
604
|
filtersDefinitions: _angular_core.InputSignal<AXPFilterDefinition[]>;
|
|
897
605
|
initialFilters: _angular_core.InputSignal<AXPFilterQuery[]>;
|
|
898
606
|
onFiltersChanged: _angular_core.OutputEmitterRef<AXPFilterQuery[]>;
|
|
@@ -908,11 +616,6 @@ declare class AXPQueryFiltersComponent {
|
|
|
908
616
|
protected asyncTags: _angular_core.WritableSignal<any[]>;
|
|
909
617
|
protected popover: _angular_core.Signal<AXPopoverComponent | undefined>;
|
|
910
618
|
inputValue: _angular_core.WritableSignal<string>;
|
|
911
|
-
protected readonly disabledByField: _angular_core.WritableSignal<Record<string, boolean>>;
|
|
912
|
-
/** Emits when a filter context entry changes (aligned with `widget-renderer` `events.context`). */
|
|
913
|
-
private readonly filterContextPath$;
|
|
914
|
-
private filterContextPathSnapshotReady;
|
|
915
|
-
private previousFilterContextSnapshot;
|
|
916
619
|
inlineFilters: () => AXPFilterDefinition[];
|
|
917
620
|
protected getDisplayValue: (filter: AXPFilterDefinition, val: any) => Promise<any>;
|
|
918
621
|
protected convertIfISOStringDate: (val: string) => string;
|
|
@@ -922,7 +625,7 @@ declare class AXPQueryFiltersComponent {
|
|
|
922
625
|
ngOnInit(): void;
|
|
923
626
|
handleSelectField(field: AXPFilterDefinition): void;
|
|
924
627
|
handleFieldKeyDown(e: KeyboardEvent, field: AXPFilterDefinition): void;
|
|
925
|
-
onContextChanged(e:
|
|
628
|
+
onContextChanged(e: AXPWidgetCoreContextChangeEvent): void;
|
|
926
629
|
handleApplyFilter(): void;
|
|
927
630
|
handleButtonKeyDown(e: Event): void;
|
|
928
631
|
handleKeyDown(e: AXHtmlEvent<KeyboardEvent>): void;
|
|
@@ -937,13 +640,6 @@ declare class AXPQueryFiltersComponent {
|
|
|
937
640
|
handlePopoverClosed(e: AXEvent): void;
|
|
938
641
|
protected onPopoverOpened(e: AXEvent): void;
|
|
939
642
|
protected deactivateAllListItems(): void;
|
|
940
|
-
protected isFilterDisabled(definition: AXPFilterDefinition): boolean;
|
|
941
|
-
private createExpressionScope;
|
|
942
|
-
private isObservableLike;
|
|
943
|
-
private buildFilterTriggerScope;
|
|
944
|
-
private getFilterEventScope;
|
|
945
|
-
private getFilterWidgetScopeForDefinition;
|
|
946
|
-
private removeFilterFieldByName;
|
|
947
643
|
protected handleKeyboardEvent(event: KeyboardEvent): Promise<void>;
|
|
948
644
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryFiltersComponent, never>;
|
|
949
645
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryFiltersComponent, "axp-query-filters", never, { "filtersDefinitions": { "alias": "filtersDefinitions"; "required": false; "isSignal": true; }; "initialFilters": { "alias": "initialFilters"; "required": false; "isSignal": true; }; }, { "onFiltersChanged": "onFiltersChanged"; }, never, never, true, never>;
|
|
@@ -976,7 +672,7 @@ declare class AXPPreloadFiltersComponent {
|
|
|
976
672
|
/**
|
|
977
673
|
* On context changed
|
|
978
674
|
*/
|
|
979
|
-
onContextChanged(event:
|
|
675
|
+
onContextChanged(event: AXPWidgetCoreContextChangeEvent): void;
|
|
980
676
|
/**
|
|
981
677
|
* Handle apply filters
|
|
982
678
|
*/
|
|
@@ -1046,57 +742,6 @@ declare class AXPLogoComponent implements OnInit, OnChanges {
|
|
|
1046
742
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLogoComponent, "axp-logo", never, { "source": { "alias": "source"; "required": false; }; }, {}, never, never, true, never>;
|
|
1047
743
|
}
|
|
1048
744
|
|
|
1049
|
-
type MarkdownSegmentType = 'markdown' | 'code';
|
|
1050
|
-
interface MarkdownSegmentBase {
|
|
1051
|
-
type: MarkdownSegmentType;
|
|
1052
|
-
}
|
|
1053
|
-
interface MarkdownContentSegment extends MarkdownSegmentBase {
|
|
1054
|
-
type: 'markdown';
|
|
1055
|
-
html: string;
|
|
1056
|
-
}
|
|
1057
|
-
interface MarkdownCodeSegment extends MarkdownSegmentBase {
|
|
1058
|
-
type: 'code';
|
|
1059
|
-
language: string;
|
|
1060
|
-
code: string;
|
|
1061
|
-
}
|
|
1062
|
-
type MarkdownSegment = MarkdownContentSegment | MarkdownCodeSegment;
|
|
1063
|
-
type MarkdownTemplateType = 'markdown' | 'code';
|
|
1064
|
-
interface MarkdownTemplateContext {
|
|
1065
|
-
$implicit: MarkdownSegment;
|
|
1066
|
-
segment: MarkdownSegment;
|
|
1067
|
-
}
|
|
1068
|
-
declare class AXPMarkdownTemplateDirective {
|
|
1069
|
-
readonly template: TemplateRef<MarkdownTemplateContext>;
|
|
1070
|
-
/** Indicates which segment type this template customizes. */
|
|
1071
|
-
readonly type: _angular_core.InputSignal<MarkdownTemplateType>;
|
|
1072
|
-
constructor(template: TemplateRef<MarkdownTemplateContext>);
|
|
1073
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMarkdownTemplateDirective, never>;
|
|
1074
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXPMarkdownTemplateDirective, "ng-template[axpMarkdownTemplate]", never, { "type": { "alias": "axpMarkdownTemplate"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1075
|
-
}
|
|
1076
|
-
declare class AXPMarkdownViewerComponent {
|
|
1077
|
-
/** Raw markdown content to render. */
|
|
1078
|
-
readonly markdown: _angular_core.InputSignal<string>;
|
|
1079
|
-
/** Optional templates for overriding markdown and code segments. */
|
|
1080
|
-
private readonly templates;
|
|
1081
|
-
protected readonly markdownTemplate: _angular_core.Signal<TemplateRef<MarkdownTemplateContext> | undefined>;
|
|
1082
|
-
protected readonly codeTemplate: _angular_core.Signal<TemplateRef<MarkdownTemplateContext> | undefined>;
|
|
1083
|
-
protected readonly segments: _angular_core.Signal<MarkdownSegment[]>;
|
|
1084
|
-
private readonly markdownCompiler;
|
|
1085
|
-
constructor();
|
|
1086
|
-
/**
|
|
1087
|
-
* Splits markdown into text/code segments, compiles markdown text to HTML with micromark,
|
|
1088
|
-
* and keeps fenced code blocks available for custom Angular rendering.
|
|
1089
|
-
*/
|
|
1090
|
-
private parseMarkdown;
|
|
1091
|
-
private addMarkdownSegment;
|
|
1092
|
-
private loadMicromarkCompiler;
|
|
1093
|
-
private loadMicromarkModules;
|
|
1094
|
-
private importModule;
|
|
1095
|
-
private escapeHtml;
|
|
1096
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMarkdownViewerComponent, never>;
|
|
1097
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPMarkdownViewerComponent, "axp-markdown-viewer", never, { "markdown": { "alias": "markdown"; "required": false; "isSignal": true; }; }, {}, ["templates"], never, true, never>;
|
|
1098
|
-
}
|
|
1099
|
-
|
|
1100
745
|
/**
|
|
1101
746
|
* Menu item type definitions.
|
|
1102
747
|
* - 'menu': Standard navigable menu item
|
|
@@ -1462,20 +1107,8 @@ interface AXPPropertyViewerChangedEvent {
|
|
|
1462
1107
|
values: any;
|
|
1463
1108
|
mode: 'init' | 'update';
|
|
1464
1109
|
}
|
|
1465
|
-
/** Payload when the property viewer popup closes after Apply. */
|
|
1466
|
-
type AXPPropertyViewerResult = AXPPropertyViewerChangedEvent;
|
|
1467
|
-
/**
|
|
1468
|
-
* Dialog-style ref passed to property viewer `onAction` (same shape as the layout dialog `AXPDialogRef`).
|
|
1469
|
-
*/
|
|
1470
|
-
interface AXPPropertyViewerActionRef {
|
|
1471
|
-
close(): void;
|
|
1472
|
-
context(): any;
|
|
1473
|
-
action(): string | undefined;
|
|
1474
|
-
setLoading(loading: boolean): void;
|
|
1475
|
-
}
|
|
1476
1110
|
|
|
1477
1111
|
declare class AXPPropertyViewerComponent {
|
|
1478
|
-
private readonly defaultMultiLanguageConfig;
|
|
1479
1112
|
/**
|
|
1480
1113
|
* List of tabs that should be rendered inside the property viewer.
|
|
1481
1114
|
*/
|
|
@@ -1484,11 +1117,6 @@ declare class AXPPropertyViewerComponent {
|
|
|
1484
1117
|
* Determines rendering mode.
|
|
1485
1118
|
*/
|
|
1486
1119
|
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
1487
|
-
/**
|
|
1488
|
-
* When a property uses binding expressions, controls how the expression is edited:
|
|
1489
|
-
* `inline` — code editor in the panel (default); `popup` — button that opens the dialog editor.
|
|
1490
|
-
*/
|
|
1491
|
-
bindingExpressionEditorMode: _angular_core.InputSignal<"inline" | "popup">;
|
|
1492
1120
|
/**
|
|
1493
1121
|
* Emits when property context changes.
|
|
1494
1122
|
*/
|
|
@@ -1502,15 +1130,9 @@ declare class AXPPropertyViewerComponent {
|
|
|
1502
1130
|
* Updated when user toggles the ax-switch; otherwise derived from isExpression(valueAtPath).
|
|
1503
1131
|
*/
|
|
1504
1132
|
protected expressionModeState: WritableSignal<Record<string, boolean>>;
|
|
1505
|
-
/**
|
|
1506
|
-
* Evaluated visibility for properties whose {@link AXPWidgetProperty.visible} is a `{{ }}` expression.
|
|
1507
|
-
* Keys match {@link AXPPropertyViewerComponent.propertyVisibilityKey}.
|
|
1508
|
-
*/
|
|
1509
|
-
private propertyVisibility;
|
|
1510
1133
|
protected groupCollapsedStates: Map<string, boolean>;
|
|
1511
1134
|
private readonly expressionEvaluator;
|
|
1512
1135
|
private readonly popupService;
|
|
1513
|
-
private readonly form;
|
|
1514
1136
|
constructor();
|
|
1515
1137
|
/**
|
|
1516
1138
|
* Replaces the current context with the provided value and emits an init event.
|
|
@@ -1520,24 +1142,10 @@ declare class AXPPropertyViewerComponent {
|
|
|
1520
1142
|
* Merges the provided value into the current context and emits an update event.
|
|
1521
1143
|
*/
|
|
1522
1144
|
update(value: any): void;
|
|
1523
|
-
/**
|
|
1524
|
-
* Runs registered validation rules on fields inside this viewer (requires {@link AXFormModule} host).
|
|
1525
|
-
*/
|
|
1526
|
-
validate(): Promise<AXValidationSummary>;
|
|
1527
|
-
/**
|
|
1528
|
-
* Stable key for visibility map entries (avoids collisions when the same `name` appears twice).
|
|
1529
|
-
*/
|
|
1530
|
-
protected propertyVisibilityKey(prop: AXPWidgetProperty): string;
|
|
1531
|
-
/**
|
|
1532
|
-
* Whether a property row should render. Booleans are static; `{{ }}` strings are evaluated against
|
|
1533
|
-
* {@link context} with `context.eval(path)` like {@link AXPWidgetRendererDirective.updateVisibility}.
|
|
1534
|
-
*/
|
|
1535
|
-
protected isPropertyVisible(prop: AXPWidgetProperty): boolean;
|
|
1536
|
-
private recomputePropertyVisibility;
|
|
1537
1145
|
/**
|
|
1538
1146
|
* Handles context changes produced by rendered widgets.
|
|
1539
1147
|
*/
|
|
1540
|
-
protected handleContextChange(event:
|
|
1148
|
+
protected handleContextChange(event: AXPWidgetCoreContextChangeEvent): void;
|
|
1541
1149
|
/**
|
|
1542
1150
|
* Handles tab selection changes.
|
|
1543
1151
|
*/
|
|
@@ -1552,8 +1160,7 @@ declare class AXPPropertyViewerComponent {
|
|
|
1552
1160
|
protected getExpressionPath(prop: AXPWidgetProperty): string;
|
|
1553
1161
|
/**
|
|
1554
1162
|
* True when the property is in "expression" mode: show only the expression editor button, not the widget.
|
|
1555
|
-
* Uses expressionModeState when set; otherwise derives from
|
|
1556
|
-
* {@link AXPWidgetProperty.binding} is enabled, bare scripts persisted without wrappers.
|
|
1163
|
+
* Uses expressionModeState when set; otherwise derives from isExpression(valueAtPath).
|
|
1557
1164
|
*/
|
|
1558
1165
|
protected isExpressionMode(prop: AXPWidgetProperty): boolean;
|
|
1559
1166
|
/**
|
|
@@ -1566,156 +1173,55 @@ declare class AXPPropertyViewerComponent {
|
|
|
1566
1173
|
* Updates the expression/value toggle state for a binding-enabled property.
|
|
1567
1174
|
* When switching to value: resets the value at path to a type-appropriate default so the
|
|
1568
1175
|
* widget renderer does not receive the expression string (e.g. checkbox gets false, not a string).
|
|
1569
|
-
* When switching to expression: sets the value at path to
|
|
1570
|
-
*
|
|
1176
|
+
* When switching to expression: sets the value at path to '{{ }}' so the popup opens with
|
|
1177
|
+
* a clean expression placeholder instead of the previous literal (e.g. true/false).
|
|
1571
1178
|
*/
|
|
1572
1179
|
protected setExpressionMode(prop: AXPWidgetProperty, useExpression: boolean): void;
|
|
1573
|
-
/**
|
|
1574
|
-
* Current binding expression string at the property path (for inline editor ngModel).
|
|
1575
|
-
*/
|
|
1576
|
-
protected getBindingExpressionValue(prop: AXPWidgetProperty): string;
|
|
1577
|
-
/**
|
|
1578
|
-
* Persists inline code editor changes into context.
|
|
1579
|
-
*/
|
|
1580
|
-
protected setBindingExpressionValue(prop: AXPWidgetProperty, value: string): void;
|
|
1581
1180
|
/**
|
|
1582
1181
|
* Opens the binding/expression code editor for a property with binding.enabled.
|
|
1583
1182
|
* Ensures the value passed to the popup is always a string to avoid code-editor crashes.
|
|
1584
1183
|
*/
|
|
1585
1184
|
protected openBindingEditor(prop: AXPWidgetProperty): Promise<void>;
|
|
1586
1185
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerComponent, never>;
|
|
1587
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPropertyViewerComponent, "axp-property-viewer", never, { "tabsInput": { "alias": "tabsInput"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; };
|
|
1186
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPropertyViewerComponent, "axp-property-viewer", never, { "tabsInput": { "alias": "tabsInput"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
|
|
1588
1187
|
}
|
|
1589
1188
|
|
|
1590
|
-
/**
|
|
1591
|
-
* Whether a binding-enabled property should show expression UI (toggle to code + open editor)
|
|
1592
|
-
* instead of the literal widget.
|
|
1593
|
-
*
|
|
1594
|
-
* - Values already wrapped in `{{ ... }}` are expressions (see `AXPExpressionEvaluatorService.isExpression`).
|
|
1595
|
-
* - Persisted domain data often stores **bare** scripts; for `dataType: 'boolean'` (typical toggle + binding),
|
|
1596
|
-
* any non-empty string that is not a boolean literal is treated as an expression.
|
|
1597
|
-
* - For `number`, strings that are not plain numeric literals are treated as expressions.
|
|
1598
|
-
* - For other types, `isLikelyBareBindingScript` reduces false positives for plain text.
|
|
1599
|
-
*/
|
|
1600
|
-
declare function isPropertyBindingExpressionFormValue(property: AXPWidgetProperty, value: unknown, isTemplateExpression: (s: string) => boolean): boolean;
|
|
1601
|
-
|
|
1602
1189
|
declare class AXPPropertyViewerPopupComponent extends AXBasePageComponent {
|
|
1603
|
-
private readonly toastService;
|
|
1604
|
-
private readonly translationService;
|
|
1605
1190
|
tabs: _angular_core.InputSignal<AXPPropertyViewerTab[]>;
|
|
1606
1191
|
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
1607
1192
|
context: _angular_core.InputSignal<any>;
|
|
1608
|
-
/**
|
|
1609
|
-
* Optional hook from `data.onApply`. Throw or reject to keep the popup open.
|
|
1610
|
-
* Return a value (not `undefined`) to use as the `close()` payload; otherwise `{ values, mode }` is used.
|
|
1611
|
-
*/
|
|
1612
|
-
onApply?: (result: AXPPropertyViewerResult) => void | Promise<unknown>;
|
|
1613
1193
|
protected readonly propertyViewer: _angular_core.Signal<AXPPropertyViewerComponent | undefined>;
|
|
1614
|
-
protected readonly currentValues: _angular_core.WritableSignal<
|
|
1615
|
-
protected readonly isApplying: _angular_core.WritableSignal<boolean>;
|
|
1194
|
+
protected readonly currentValues: _angular_core.WritableSignal<any>;
|
|
1616
1195
|
protected currentMode: 'init' | 'update';
|
|
1617
1196
|
constructor();
|
|
1618
1197
|
protected handlePropertyChanged(event: AXPPropertyViewerChangedEvent): void;
|
|
1619
1198
|
protected handleCloseClick(): void;
|
|
1620
|
-
protected handleApplyClick():
|
|
1621
|
-
private showValidationErrorToast;
|
|
1199
|
+
protected handleApplyClick(): void;
|
|
1622
1200
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerPopupComponent, never>;
|
|
1623
1201
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPropertyViewerPopupComponent, "axp-property-viewer-popup", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1624
1202
|
}
|
|
1625
1203
|
|
|
1626
|
-
interface IAXPPropertyViewerRoot {
|
|
1627
|
-
dialog<T = unknown>(delegate: (container: IAXPPropertyViewerDialogBuilder<T>) => void): IAXPPropertyViewerDialogBuilder<T>;
|
|
1628
|
-
}
|
|
1629
|
-
interface IAXPPropertyViewerDialogBuilder<T = unknown> {
|
|
1630
|
-
setTitle(title: string): IAXPPropertyViewerDialogBuilder<T>;
|
|
1631
|
-
setSize(size: AXPopupSizeType): IAXPPropertyViewerDialogBuilder<T>;
|
|
1632
|
-
setCloseButton(closeButton: boolean): IAXPPropertyViewerDialogBuilder<T>;
|
|
1633
|
-
setContext(context: any): IAXPPropertyViewerDialogBuilder<T>;
|
|
1634
|
-
setTabs(tabs: AXPPropertyViewerTab[]): IAXPPropertyViewerDialogBuilder<T>;
|
|
1635
|
-
setMode(mode: 'simple' | 'advanced'): IAXPPropertyViewerDialogBuilder<T>;
|
|
1636
|
-
/**
|
|
1637
|
-
* Runs on Save. Throw or reject to keep the popup open (same idea as layout dialog `onAction`).
|
|
1638
|
-
* Return a value to resolve `show()`; omit return (or return void) to resolve with `{ values, mode }`.
|
|
1639
|
-
*/
|
|
1640
|
-
onAction(handler: (dialogRef: AXPPropertyViewerActionRef) => T | Promise<T> | void | Promise<void>): IAXPPropertyViewerDialogBuilder<T>;
|
|
1641
|
-
show(): Promise<T | AXPPropertyViewerResult | null>;
|
|
1642
|
-
}
|
|
1643
1204
|
interface AXPPropertyViewerConfig {
|
|
1644
1205
|
title: string;
|
|
1645
1206
|
tabs: AXPPropertyViewerTab[];
|
|
1646
1207
|
context?: any;
|
|
1647
1208
|
mode?: 'simple' | 'advanced';
|
|
1648
|
-
size?:
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1209
|
+
size?: 'sm' | 'md' | 'lg' | 'full';
|
|
1210
|
+
}
|
|
1211
|
+
interface AXPPropertyViewerResult {
|
|
1212
|
+
values: any;
|
|
1213
|
+
mode: 'init' | 'update';
|
|
1653
1214
|
}
|
|
1654
1215
|
declare class AXPPropertyViewerService {
|
|
1655
1216
|
private readonly popupService;
|
|
1656
|
-
private readonly defaultMultiLanguageConfig;
|
|
1657
|
-
/**
|
|
1658
|
-
* Same entry shape as `layoutBuilder.create()` — use `.dialog((d) => { ... }).show()`.
|
|
1659
|
-
*/
|
|
1660
|
-
create(): IAXPPropertyViewerRoot;
|
|
1661
1217
|
/**
|
|
1662
|
-
*
|
|
1218
|
+
* Open property viewer popup with predefined tabs and context.
|
|
1663
1219
|
*/
|
|
1664
1220
|
open(config: AXPPropertyViewerConfig): Promise<AXPPropertyViewerResult | null>;
|
|
1665
1221
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerService, never>;
|
|
1666
1222
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPropertyViewerService>;
|
|
1667
1223
|
}
|
|
1668
1224
|
|
|
1669
|
-
/**
|
|
1670
|
-
* Copies {@link AXPWidgetProperty.validations} onto `schema.interface.options` so the property
|
|
1671
|
-
* viewer binds a stable widget node.
|
|
1672
|
-
*/
|
|
1673
|
-
declare function withValidationsOnEditorNode(prop: AXPWidgetProperty): AXPWidgetProperty;
|
|
1674
|
-
declare function preparePropertyForViewer(prop: AXPWidgetProperty, applyDefaultMultiLanguage: boolean): AXPWidgetProperty;
|
|
1675
|
-
/**
|
|
1676
|
-
* Deep-clone-safe: mutates cloned tab trees only when caller passes a fresh clone.
|
|
1677
|
-
* Applies the same widget-property pipeline as {@link AXPPropertyViewerComponent}.
|
|
1678
|
-
*/
|
|
1679
|
-
declare function preparePropertyViewerTabs(tabs: AXPPropertyViewerTab[], applyDefaultMultiLanguage: boolean): AXPPropertyViewerTab[];
|
|
1680
|
-
/**
|
|
1681
|
-
* Builds a single "General" tab for {@link AXPPropertyViewerService} from {@link AXPWidgetProperty} rows
|
|
1682
|
-
* (schema shape is shared with widget metadata; the edited payload is arbitrary context, not an {@link AXPWidgetNode}).
|
|
1683
|
-
*/
|
|
1684
|
-
declare function buildPropertyViewerTabsFromProperties(properties: AXPWidgetProperty[]): AXPPropertyViewerTab[];
|
|
1685
|
-
/**
|
|
1686
|
-
* Initial {@link AXPPropertyViewerService#setContext} value: property default paths merged with the current saved values.
|
|
1687
|
-
*/
|
|
1688
|
-
declare function buildPropertyViewerInitialContextFromProperties(properties: AXPWidgetProperty[], existing: Record<string, unknown>): Record<string, unknown>;
|
|
1689
|
-
|
|
1690
|
-
/**
|
|
1691
|
-
* Presentational layout for indexed rows: optional drag-and-drop, remove controls,
|
|
1692
|
-
* empty state, and add action. Row body is provided via {@link rowTemplate}.
|
|
1693
|
-
*/
|
|
1694
|
-
declare class AXPRepeaterRowsLayoutComponent {
|
|
1695
|
-
count: _angular_core.InputSignal<number>;
|
|
1696
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
1697
|
-
hasControls: _angular_core.InputSignal<boolean>;
|
|
1698
|
-
allowReorder: _angular_core.InputSignal<boolean>;
|
|
1699
|
-
rowTemplate: _angular_core.InputSignal<TemplateRef<{
|
|
1700
|
-
index: number;
|
|
1701
|
-
}>>;
|
|
1702
|
-
/** i18n keys (e.g. `@general:...`) for labels; override per usage. */
|
|
1703
|
-
addItemLabelKey: _angular_core.InputSignal<string>;
|
|
1704
|
-
emptyTitleKey: _angular_core.InputSignal<string>;
|
|
1705
|
-
emptyDescriptionKey: _angular_core.InputSignal<string>;
|
|
1706
|
-
addFirstItemLabelKey: _angular_core.InputSignal<string>;
|
|
1707
|
-
addClick: _angular_core.OutputEmitterRef<void>;
|
|
1708
|
-
removeClick: _angular_core.OutputEmitterRef<number>;
|
|
1709
|
-
drop: _angular_core.OutputEmitterRef<AXDropListDroppedEvent>;
|
|
1710
|
-
protected readonly rowIndices: _angular_core.Signal<number[]>;
|
|
1711
|
-
protected readonly rowRowClass: _angular_core.Signal<string>;
|
|
1712
|
-
protected onDrop(e: AXDropListDroppedEvent): void;
|
|
1713
|
-
protected onAddClick(): void;
|
|
1714
|
-
protected onRemoveClick(index: number): void;
|
|
1715
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRepeaterRowsLayoutComponent, never>;
|
|
1716
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRepeaterRowsLayoutComponent, "axp-repeater-rows-layout", never, { "count": { "alias": "count"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasControls": { "alias": "hasControls"; "required": false; "isSignal": true; }; "allowReorder": { "alias": "allowReorder"; "required": false; "isSignal": true; }; "rowTemplate": { "alias": "rowTemplate"; "required": true; "isSignal": true; }; "addItemLabelKey": { "alias": "addItemLabelKey"; "required": false; "isSignal": true; }; "emptyTitleKey": { "alias": "emptyTitleKey"; "required": false; "isSignal": true; }; "emptyDescriptionKey": { "alias": "emptyDescriptionKey"; "required": false; "isSignal": true; }; "addFirstItemLabelKey": { "alias": "addFirstItemLabelKey"; "required": false; "isSignal": true; }; }, { "addClick": "addClick"; "removeClick": "removeClick"; "drop": "drop"; }, never, never, true, never>;
|
|
1717
|
-
}
|
|
1718
|
-
|
|
1719
1225
|
declare class AXPQuerySortsComponent {
|
|
1720
1226
|
sortDefinitions: _angular_core.ModelSignal<AXPSortDefinition[]>;
|
|
1721
1227
|
sortQueries: _angular_core.WritableSignal<AXPSortQuery[]>;
|
|
@@ -2019,12 +1525,12 @@ declare class AXPSpreadsheetComponent {
|
|
|
2019
1525
|
* Handle cell value change from widget
|
|
2020
1526
|
* The widget sets the value at path like rows[index].column.path
|
|
2021
1527
|
*/
|
|
2022
|
-
protected handleCellValueChange(rowIndex: number, columnName: string, event:
|
|
1528
|
+
protected handleCellValueChange(rowIndex: number, columnName: string, event: AXPWidgetCoreContextChangeEvent): void;
|
|
2023
1529
|
/**
|
|
2024
1530
|
* Handle spreadsheet context change from widgets-container
|
|
2025
1531
|
* This is called when any widget in the spreadsheet changes
|
|
2026
1532
|
*/
|
|
2027
|
-
protected handleSpreadsheetContextChange(event:
|
|
1533
|
+
protected handleSpreadsheetContextChange(event: AXPWidgetCoreContextChangeEvent): void;
|
|
2028
1534
|
/**
|
|
2029
1535
|
* Handle blur event to stop editing (when user clicks away from cell)
|
|
2030
1536
|
*/
|
|
@@ -2071,9 +1577,9 @@ declare class AXPStateMessageComponent {
|
|
|
2071
1577
|
icon: _angular_core.InputSignal<string>;
|
|
2072
1578
|
title: _angular_core.InputSignal<string>;
|
|
2073
1579
|
description: _angular_core.InputSignal<string>;
|
|
2074
|
-
|
|
1580
|
+
variant: _angular_core.InputSignal<"default" | "compact" | "minimal">;
|
|
2075
1581
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPStateMessageComponent, never>;
|
|
2076
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPStateMessageComponent, "axp-state-message", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "
|
|
1582
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPStateMessageComponent, "axp-state-message", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=actions]"], true, never>;
|
|
2077
1583
|
}
|
|
2078
1584
|
|
|
2079
1585
|
declare class AXPStopwatchComponent implements OnDestroy {
|
|
@@ -2222,7 +1728,7 @@ declare class AXPTemplateViewerComponent extends AXBasePageComponent {
|
|
|
2222
1728
|
protected readonly currentPage: _angular_core.Signal<AXPWidgetNode>;
|
|
2223
1729
|
protected ngOnInit(): Promise<void>;
|
|
2224
1730
|
private loadTemplate;
|
|
2225
|
-
protected handleContextChanged(e:
|
|
1731
|
+
protected handleContextChanged(e: AXPWidgetCoreContextChangeEvent): void;
|
|
2226
1732
|
protected handleSubmit(form: AXFormComponent): Promise<void>;
|
|
2227
1733
|
protected handleCancel(): void;
|
|
2228
1734
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTemplateViewerComponent, never>;
|
|
@@ -2247,37 +1753,6 @@ declare class AXPTemplateViewerService {
|
|
|
2247
1753
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTemplateViewerService>;
|
|
2248
1754
|
}
|
|
2249
1755
|
|
|
2250
|
-
/**
|
|
2251
|
-
* Generic avatar renderer with image and initials fallback.
|
|
2252
|
-
*/
|
|
2253
|
-
declare class AXPAvatarComponent {
|
|
2254
|
-
/** Avatar size in pixels. */
|
|
2255
|
-
readonly size: _angular_core.InputSignal<number>;
|
|
2256
|
-
/** Optional image source for the avatar. */
|
|
2257
|
-
readonly src: _angular_core.InputSignal<string | undefined>;
|
|
2258
|
-
/** Display name used for title and initials fallback. */
|
|
2259
|
-
readonly fullName: _angular_core.InputSignal<string | undefined>;
|
|
2260
|
-
/** Optional override for fallback text shown when image is not available. */
|
|
2261
|
-
readonly fallbackText: _angular_core.InputSignal<string | undefined>;
|
|
2262
|
-
/** Forces placeholder mode and '?' fallback. */
|
|
2263
|
-
readonly placeholder: _angular_core.InputSignal<boolean>;
|
|
2264
|
-
protected readonly isAvatarLoaded: _angular_core.WritableSignal<boolean>;
|
|
2265
|
-
protected readonly normalizedName: _angular_core.Signal<string>;
|
|
2266
|
-
protected readonly resolvedSrc: _angular_core.Signal<string>;
|
|
2267
|
-
protected readonly hasAvatar: _angular_core.Signal<boolean>;
|
|
2268
|
-
protected readonly isLoading: _angular_core.Signal<boolean>;
|
|
2269
|
-
protected readonly avatarText: _angular_core.Signal<string>;
|
|
2270
|
-
protected readonly avatarColor: _angular_core.Signal<string>;
|
|
2271
|
-
protected readonly title: _angular_core.Signal<string>;
|
|
2272
|
-
protected onImageError(event: AXHtmlEvent<ErrorEvent>): void;
|
|
2273
|
-
protected onImageLoad(event: AXHtmlEvent<Event>): void;
|
|
2274
|
-
private computeInitials;
|
|
2275
|
-
private hashString;
|
|
2276
|
-
private pickColor;
|
|
2277
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPAvatarComponent, never>;
|
|
2278
|
-
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; }; "fallbackText": { "alias": "fallbackText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2279
|
-
}
|
|
2280
|
-
|
|
2281
1756
|
type AXPUserAvatarSize = 'small' | 'medium' | 'large';
|
|
2282
1757
|
type AXPUserAvatarStatus = 'online' | 'offline';
|
|
2283
1758
|
type AXPUserAvatarData = {
|
|
@@ -2346,6 +1821,13 @@ declare class AXPUserAvatarComponent implements OnInit, OnDestroy {
|
|
|
2346
1821
|
lastName: _angular_core.Signal<string>;
|
|
2347
1822
|
title: _angular_core.Signal<string>;
|
|
2348
1823
|
isOnline: _angular_core.Signal<boolean>;
|
|
1824
|
+
avatarText: _angular_core.Signal<string>;
|
|
1825
|
+
avatarColor: _angular_core.Signal<string>;
|
|
1826
|
+
protected hasAvatar: _angular_core.Signal<boolean>;
|
|
1827
|
+
protected isAvatarLoaded: _angular_core.WritableSignal<boolean>;
|
|
1828
|
+
protected isLoading: _angular_core.Signal<boolean>;
|
|
1829
|
+
protected onImageError(event: AXHtmlEvent<ErrorEvent>): void;
|
|
1830
|
+
protected onImageLoad(event: AXHtmlEvent<Event>): void;
|
|
2349
1831
|
ngOnInit(): void;
|
|
2350
1832
|
ngOnDestroy(): void;
|
|
2351
1833
|
private loadUserData;
|
|
@@ -2354,6 +1836,12 @@ declare class AXPUserAvatarComponent implements OnInit, OnDestroy {
|
|
|
2354
1836
|
* This is a placeholder - implement based on your actual requirements
|
|
2355
1837
|
*/
|
|
2356
1838
|
private generateAvatarSrc;
|
|
1839
|
+
/**
|
|
1840
|
+
* Get initials from first and last name
|
|
1841
|
+
*/
|
|
1842
|
+
private getInitials;
|
|
1843
|
+
private hashString;
|
|
1844
|
+
private pickColor;
|
|
2357
1845
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPUserAvatarComponent, never>;
|
|
2358
1846
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPUserAvatarComponent, "axp-user-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "userId": { "alias": "userId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2359
1847
|
}
|
|
@@ -2374,90 +1862,99 @@ declare class AXPQueryViewsComponent {
|
|
|
2374
1862
|
}
|
|
2375
1863
|
|
|
2376
1864
|
/**
|
|
2377
|
-
*
|
|
2378
|
-
*
|
|
1865
|
+
* Compact widget field configurator component
|
|
1866
|
+
* Designed to be embedded in entity definition forms for configuring widget properties
|
|
2379
1867
|
*/
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
interface ItemConfiguratorSelectRow {
|
|
2389
|
-
value: string;
|
|
2390
|
-
text: string;
|
|
2391
|
-
icon?: string;
|
|
2392
|
-
description?: string;
|
|
2393
|
-
}
|
|
2394
|
-
/**
|
|
2395
|
-
* Select an item from a list and edit its settings via {@link AXPPropertyViewerService}.
|
|
2396
|
-
* Bound state: {@link selectedItemId} and {@link values} (context returned from the viewer). Not tied to {@link AXPWidgetNode}.
|
|
2397
|
-
*/
|
|
2398
|
-
declare class AXPItemConfiguratorComponent {
|
|
2399
|
-
/** Selected list entry id ({@link ItemConfiguratorListItem.id}). */
|
|
2400
|
-
selectedItemId: _angular_core.ModelSignal<string>;
|
|
2401
|
-
/** Values edited in the property viewer (merged from dialog result). */
|
|
2402
|
-
values: _angular_core.ModelSignal<Record<string, unknown>>;
|
|
1868
|
+
declare class AXPWidgetFieldConfiguratorComponent {
|
|
1869
|
+
/**
|
|
1870
|
+
* Widget node configuration (two-way binding)
|
|
1871
|
+
*/
|
|
1872
|
+
widget: _angular_core.ModelSignal<AXPWidgetNode>;
|
|
1873
|
+
/**
|
|
1874
|
+
* Label for the widget selector
|
|
1875
|
+
*/
|
|
2403
1876
|
label: _angular_core.InputSignal<string>;
|
|
1877
|
+
/**
|
|
1878
|
+
* Field name (technical identifier, used for form field path)
|
|
1879
|
+
*/
|
|
1880
|
+
fieldName: _angular_core.InputSignal<string>;
|
|
1881
|
+
/**
|
|
1882
|
+
* Field title (display name, used in UI labels and titles)
|
|
1883
|
+
*/
|
|
1884
|
+
fieldTitle: _angular_core.InputSignal<string>;
|
|
1885
|
+
/**
|
|
1886
|
+
* Readonly mode
|
|
1887
|
+
*/
|
|
2404
1888
|
readonly: _angular_core.InputSignal<boolean>;
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
private readonly propertyViewerService;
|
|
1889
|
+
private readonly widgetRegistry;
|
|
1890
|
+
private readonly widgetPropertyViewerService;
|
|
2408
1891
|
private readonly translationService;
|
|
2409
|
-
private readonly
|
|
2410
|
-
|
|
1892
|
+
private readonly formBuilderService;
|
|
1893
|
+
/**
|
|
1894
|
+
* Currently selected widget type
|
|
1895
|
+
*/
|
|
1896
|
+
protected selectedWidgetType: _angular_core.WritableSignal<string>;
|
|
1897
|
+
/**
|
|
1898
|
+
* Whether the component is in edit mode (showing select box)
|
|
1899
|
+
*/
|
|
2411
1900
|
protected isEditMode: _angular_core.WritableSignal<boolean>;
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
protected
|
|
1901
|
+
/**
|
|
1902
|
+
* Available widgets filtered by FormElement group
|
|
1903
|
+
*/
|
|
1904
|
+
protected availableWidgets: _angular_core.Signal<{
|
|
1905
|
+
value: string;
|
|
1906
|
+
text: string;
|
|
1907
|
+
icon: string | undefined;
|
|
1908
|
+
description: string | undefined;
|
|
1909
|
+
}[]>;
|
|
1910
|
+
/**
|
|
1911
|
+
* Current widget configuration details
|
|
1912
|
+
*/
|
|
1913
|
+
protected currentWidgetConfig: _angular_core.Signal<{
|
|
2416
1914
|
title: string;
|
|
2417
|
-
description:
|
|
1915
|
+
description: string | undefined;
|
|
2418
1916
|
icon: string | undefined;
|
|
2419
|
-
hasProperties: boolean;
|
|
1917
|
+
hasProperties: boolean | undefined;
|
|
2420
1918
|
} | null>;
|
|
1919
|
+
/**
|
|
1920
|
+
* Whether configure button should be enabled
|
|
1921
|
+
*/
|
|
2421
1922
|
protected canConfigure: _angular_core.Signal<boolean>;
|
|
1923
|
+
/**
|
|
1924
|
+
* Whether widget has been configured (has options)
|
|
1925
|
+
*/
|
|
2422
1926
|
protected isConfigured: _angular_core.Signal<boolean>;
|
|
2423
|
-
|
|
2424
|
-
|
|
1927
|
+
/**
|
|
1928
|
+
* Whether preview button should be enabled
|
|
1929
|
+
*/
|
|
1930
|
+
protected canPreview: _angular_core.Signal<boolean>;
|
|
1931
|
+
/**
|
|
1932
|
+
* Reference to the widget type select box (used to open dropdown when entering edit mode)
|
|
1933
|
+
*/
|
|
1934
|
+
protected widgetSelectBox: _angular_core.Signal<AXSelectBoxComponent | undefined>;
|
|
1935
|
+
/**
|
|
1936
|
+
* Enter edit mode (show select box)
|
|
1937
|
+
*/
|
|
2425
1938
|
protected enterEditMode(): void;
|
|
1939
|
+
/**
|
|
1940
|
+
* Exit edit mode when dropdown is closed (return to view mode)
|
|
1941
|
+
*/
|
|
2426
1942
|
protected exitEditMode(): void;
|
|
2427
1943
|
constructor();
|
|
2428
|
-
protected onSelectionChange(event: {
|
|
2429
|
-
value?: string | null;
|
|
2430
|
-
}): Promise<void>;
|
|
2431
|
-
protected openConfigureDialog(): Promise<void>;
|
|
2432
|
-
protected onHeaderActionClick(action: AXPActionMenuItem): void;
|
|
2433
|
-
protected isHeaderActionDisabled(action: AXPActionMenuItem): boolean;
|
|
2434
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPItemConfiguratorComponent, never>;
|
|
2435
|
-
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>;
|
|
2436
|
-
}
|
|
2437
|
-
|
|
2438
|
-
/**
|
|
2439
|
-
* Widget field configurator for entity forms: composes {@link AXPItemConfiguratorComponent} with
|
|
2440
|
-
* {@link AXPWidgetRegistryService} list items and widget preview.
|
|
2441
|
-
*/
|
|
2442
|
-
declare class AXPWidgetFieldConfiguratorComponent {
|
|
2443
|
-
widget: _angular_core.ModelSignal<AXPWidgetNode>;
|
|
2444
|
-
label: _angular_core.InputSignal<string>;
|
|
2445
|
-
fieldName: _angular_core.InputSignal<string>;
|
|
2446
|
-
fieldTitle: _angular_core.InputSignal<_acorex_core_translation.AXMultiLanguageString>;
|
|
2447
|
-
readonly: _angular_core.InputSignal<boolean>;
|
|
2448
|
-
private readonly widgetRegistry;
|
|
2449
|
-
private readonly translation;
|
|
2450
|
-
protected selectedItemIdModel: _angular_core.ModelSignal<string>;
|
|
2451
|
-
protected valuesModel: _angular_core.ModelSignal<Record<string, unknown>>;
|
|
2452
1944
|
/**
|
|
2453
|
-
*
|
|
2454
|
-
* {@link ItemConfiguratorListItem.propertyDefinitions} from each registered config.
|
|
1945
|
+
* Handle widget type change
|
|
2455
1946
|
*/
|
|
2456
|
-
protected
|
|
2457
|
-
|
|
2458
|
-
|
|
1947
|
+
protected onWidgetTypeChange(event: any): Promise<void>;
|
|
1948
|
+
/**
|
|
1949
|
+
* Open widget property viewer
|
|
1950
|
+
*/
|
|
1951
|
+
protected openPropertyViewer(): Promise<void>;
|
|
1952
|
+
/**
|
|
1953
|
+
* Open widget preview with actual rendered widget
|
|
1954
|
+
*/
|
|
1955
|
+
protected openPreview(): Promise<void>;
|
|
2459
1956
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetFieldConfiguratorComponent, never>;
|
|
2460
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetFieldConfiguratorComponent, "axp-widget-field-configurator", never, { "widget": { "alias": "widget"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "fieldName": { "alias": "fieldName"; "required": false; "isSignal": true; }; "fieldTitle": { "alias": "fieldTitle"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; };
|
|
1957
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetFieldConfiguratorComponent, "axp-widget-field-configurator", never, { "widget": { "alias": "widget"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "fieldName": { "alias": "fieldName"; "required": false; "isSignal": true; }; "fieldTitle": { "alias": "fieldTitle"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "widget": "widgetChange"; }, never, never, true, never>;
|
|
2461
1958
|
}
|
|
2462
1959
|
|
|
2463
1960
|
/**
|
|
@@ -2465,9 +1962,9 @@ declare class AXPWidgetFieldConfiguratorComponent {
|
|
|
2465
1962
|
*/
|
|
2466
1963
|
interface AXPWidgetItemData {
|
|
2467
1964
|
/** Display title of the widget */
|
|
2468
|
-
title:
|
|
1965
|
+
title: string;
|
|
2469
1966
|
/** Description text for the widget */
|
|
2470
|
-
description?:
|
|
1967
|
+
description?: string;
|
|
2471
1968
|
/** Icon class (e.g., FontAwesome classes) */
|
|
2472
1969
|
icon?: string;
|
|
2473
1970
|
/** Whether the widget is pinned/favorited */
|
|
@@ -2492,10 +1989,6 @@ interface AXPWidgetItemClickEvent<T = unknown> {
|
|
|
2492
1989
|
* Can be used across different modules for consistent widget display and interaction.
|
|
2493
1990
|
*/
|
|
2494
1991
|
declare class AXPWidgetItemComponent {
|
|
2495
|
-
protected readonly i18n: {
|
|
2496
|
-
readonly pin: "@general:widgets.widget-item.pin";
|
|
2497
|
-
readonly unpin: "@general:widgets.widget-item.unpin";
|
|
2498
|
-
};
|
|
2499
1992
|
/** The widget data to display */
|
|
2500
1993
|
widget: _angular_core.InputSignal<AXPWidgetItemData>;
|
|
2501
1994
|
/** Whether this widget is currently selected */
|
|
@@ -2581,7 +2074,6 @@ interface AXPWidgetPropertyViewerConfig {
|
|
|
2581
2074
|
title: string;
|
|
2582
2075
|
widget: AXPWidgetNode;
|
|
2583
2076
|
mode?: 'simple' | 'advanced';
|
|
2584
|
-
onApply?: (result: AXPWidgetPropertyViewerResult) => void | Promise<void>;
|
|
2585
2077
|
/**
|
|
2586
2078
|
* Property names to exclude from the viewer.
|
|
2587
2079
|
*/
|
|
@@ -2612,46 +2104,19 @@ interface AXPWidgetPropertyViewerConfig {
|
|
|
2612
2104
|
};
|
|
2613
2105
|
};
|
|
2614
2106
|
}
|
|
2615
|
-
/** Emitted when the dialog applies; `values` is the updated viewer context (merge into {@link AXPWidgetNode} as needed). */
|
|
2616
2107
|
interface AXPWidgetPropertyViewerResult {
|
|
2617
2108
|
values: any;
|
|
2618
2109
|
mode: 'init' | 'update';
|
|
2619
2110
|
}
|
|
2620
|
-
interface IAXPWidgetPropertyViewerRoot {
|
|
2621
|
-
dialog(delegate: (container: IAXPWidgetPropertyViewerDialogBuilder) => void): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2622
|
-
}
|
|
2623
|
-
interface IAXPWidgetPropertyViewerDialogBuilder {
|
|
2624
|
-
setTitle(title: string): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2625
|
-
/**
|
|
2626
|
-
* Initial widget state shown in the viewer (type, options, name/path, …). Call before {@link show}.
|
|
2627
|
-
*/
|
|
2628
|
-
setWidget(widget: AXPWidgetNode): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2629
|
-
setMode(mode: 'simple' | 'advanced'): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2630
|
-
setExclude(exclude: string[]): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2631
|
-
setCustom(custom: AXPWidgetPropertyViewerConfig['custom']): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2632
|
-
/**
|
|
2633
|
-
* When set to a non-empty array, builds tabs from these properties and skips registry lookup for {@link setWidget}'s type.
|
|
2634
|
-
* Omit or clear to resolve widget config from {@link AXPWidgetRegistryService} as usual.
|
|
2635
|
-
*/
|
|
2636
|
-
setPropertyDefinitions(properties: AXPWidgetProperty[] | null): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2637
|
-
onAction(handler: (dialogRef: AXPPropertyViewerActionRef) => void | Promise<void> | unknown | Promise<unknown>): IAXPWidgetPropertyViewerDialogBuilder;
|
|
2638
|
-
/**
|
|
2639
|
-
* Applies edits and returns updated context; merge {@link AXPWidgetPropertyViewerResult.values} into your widget node
|
|
2640
|
-
* (typically `options` and any top-level fields the viewer exposes).
|
|
2641
|
-
*/
|
|
2642
|
-
show(): Promise<AXPWidgetPropertyViewerResult | null>;
|
|
2643
|
-
}
|
|
2644
2111
|
declare class AXPWidgetPropertyViewerService {
|
|
2645
2112
|
private readonly widgetRegistryService;
|
|
2646
2113
|
private readonly propertyViewerService;
|
|
2647
2114
|
/**
|
|
2648
|
-
*
|
|
2649
|
-
*/
|
|
2650
|
-
create(): IAXPWidgetPropertyViewerRoot;
|
|
2651
|
-
/**
|
|
2652
|
-
* One-shot open (delegates to {@link #create} `.dialog().show()`).
|
|
2115
|
+
* Open widget property viewer popup
|
|
2653
2116
|
*/
|
|
2654
2117
|
open(config: AXPWidgetPropertyViewerConfig): Promise<AXPWidgetPropertyViewerResult | null>;
|
|
2118
|
+
private buildTabs;
|
|
2119
|
+
private buildInitialContext;
|
|
2655
2120
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetPropertyViewerService, never>;
|
|
2656
2121
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetPropertyViewerService>;
|
|
2657
2122
|
}
|
|
@@ -2669,7 +2134,6 @@ declare class AXPResourceAppointmentComponent implements OnInit {
|
|
|
2669
2134
|
providerName: _angular_core.InputSignal<string | undefined>;
|
|
2670
2135
|
private readonly resourceAppointmentService;
|
|
2671
2136
|
private readonly formatService;
|
|
2672
|
-
private readonly translateService;
|
|
2673
2137
|
private readonly contextMenu;
|
|
2674
2138
|
protected readonly schedulerRef: _angular_core.Signal<AXSchedulerComponent | undefined>;
|
|
2675
2139
|
protected readonly isReady: _angular_core.WritableSignal<boolean>;
|
|
@@ -2782,198 +2246,5 @@ declare class AXPResourceAppointmentService {
|
|
|
2782
2246
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPResourceAppointmentService>;
|
|
2783
2247
|
}
|
|
2784
2248
|
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
*/
|
|
2788
|
-
interface AXPBuilderItem {
|
|
2789
|
-
id: string;
|
|
2790
|
-
order: number;
|
|
2791
|
-
[key: string]: unknown;
|
|
2792
|
-
}
|
|
2793
|
-
/**
|
|
2794
|
-
* Host-owned section. Items live under `items` (not nested host-specific names).
|
|
2795
|
-
*/
|
|
2796
|
-
interface AXPBuilderSection {
|
|
2797
|
-
id: string;
|
|
2798
|
-
order: number;
|
|
2799
|
-
items: AXPBuilderItem[];
|
|
2800
|
-
[key: string]: unknown;
|
|
2801
|
-
}
|
|
2802
|
-
interface AXPBuilderValue {
|
|
2803
|
-
sections: AXPBuilderSection[];
|
|
2804
|
-
}
|
|
2805
|
-
type AXPBuilderBadgeVariant = 'neutral' | 'accent' | 'warning' | 'danger' | 'success';
|
|
2806
|
-
interface AXPBuilderBadge {
|
|
2807
|
-
/** Translation key (e.g. `@general:...`) or plain text. */
|
|
2808
|
-
text: string;
|
|
2809
|
-
variant?: AXPBuilderBadgeVariant;
|
|
2810
|
-
}
|
|
2811
|
-
type AXPBuilderItemIconTone = 'default' | 'easy' | 'medium' | 'hard';
|
|
2812
|
-
/**
|
|
2813
|
-
* View model for one item row (icons, labels, badges). Built by {@link AXPBuilderDefinition.mapItemToView}.
|
|
2814
|
-
*/
|
|
2815
|
-
interface AXPBuilderItemViewModel {
|
|
2816
|
-
icon: string;
|
|
2817
|
-
iconTone?: AXPBuilderItemIconTone;
|
|
2818
|
-
title: string;
|
|
2819
|
-
name?: string;
|
|
2820
|
-
description?: string;
|
|
2821
|
-
badges: AXPBuilderBadge[];
|
|
2822
|
-
}
|
|
2823
|
-
interface AXPBuilderTexts {
|
|
2824
|
-
addSection: string;
|
|
2825
|
-
addItem: string;
|
|
2826
|
-
emptySectionsTitle: string;
|
|
2827
|
-
emptySectionsDescription: string;
|
|
2828
|
-
emptyItemsTitle: string;
|
|
2829
|
-
emptyItemsDescription: string;
|
|
2830
|
-
/** Shown when {@link AXPBuilderDefinition.isDefaultSection} is true */
|
|
2831
|
-
defaultSectionBadge?: string;
|
|
2832
|
-
}
|
|
2833
|
-
/**
|
|
2834
|
-
* Declarative configuration for {@link AXPSectionItemsBuilderComponent}.
|
|
2835
|
-
* Prompts return domain slices; the builder assigns `id` / `order` / `items` where needed.
|
|
2836
|
-
*/
|
|
2837
|
-
interface AXPBuilderDefinition {
|
|
2838
|
-
texts: AXPBuilderTexts;
|
|
2839
|
-
mapItemToView: (item: AXPBuilderItem, section: AXPBuilderSection) => AXPBuilderItemViewModel;
|
|
2840
|
-
/** When true, renders section technical `name` next to the title (parentheses). */
|
|
2841
|
-
showSectionTechnicalName?: boolean;
|
|
2842
|
-
isDefaultSection?(section: AXPBuilderSection): boolean;
|
|
2843
|
-
/** Minimum number of sections (default 1). */
|
|
2844
|
-
minSectionCount?: number;
|
|
2845
|
-
promptAddSection?(value: AXPBuilderValue): Promise<Record<string, unknown> | null>;
|
|
2846
|
-
promptEditSection?(section: AXPBuilderSection, value: AXPBuilderValue): Promise<Record<string, unknown> | null>;
|
|
2847
|
-
promptAddItems?(sectionId: string, value: AXPBuilderValue): Promise<AXPBuilderItem[] | null>;
|
|
2848
|
-
promptEditItem?(item: AXPBuilderItem, sectionId: string, value: AXPBuilderValue): Promise<AXPBuilderItem | null>;
|
|
2849
|
-
confirmRemoveSection?(section: AXPBuilderSection): Promise<boolean>;
|
|
2850
|
-
confirmRemoveItem?(item: AXPBuilderItem, sectionId: string): Promise<boolean>;
|
|
2851
|
-
}
|
|
2852
|
-
|
|
2853
|
-
declare class AXPSectionItemsBuilderComponent {
|
|
2854
|
-
/** Used in template to branch between escaped text and sanitized HTML. */
|
|
2855
|
-
protected readonly containsHtmlMarkup: typeof containsHtmlMarkup;
|
|
2856
|
-
readonly value: _angular_core.InputSignal<AXPBuilderValue>;
|
|
2857
|
-
readonly definition: _angular_core.InputSignal<AXPBuilderDefinition>;
|
|
2858
|
-
readonly readonlyMode: _angular_core.InputSignal<boolean>;
|
|
2859
|
-
readonly valueChange: _angular_core.OutputEmitterRef<AXPBuilderValue>;
|
|
2860
|
-
private readonly vm;
|
|
2861
|
-
protected readonly sectionsModel: _angular_core.Signal<AXPBuilderValue>;
|
|
2862
|
-
protected readonly sectionRows: _angular_core.Signal<{
|
|
2863
|
-
section: AXPBuilderSection;
|
|
2864
|
-
itemRows: {
|
|
2865
|
-
item: AXPBuilderItem;
|
|
2866
|
-
view: _acorex_platform_layout_components.AXPBuilderItemViewModel;
|
|
2867
|
-
}[];
|
|
2868
|
-
}[]>;
|
|
2869
|
-
protected readonly itemDropListIds: _angular_core.Signal<string[]>;
|
|
2870
|
-
protected readonly canRemoveSection: _angular_core.Signal<boolean>;
|
|
2871
|
-
constructor();
|
|
2872
|
-
/**
|
|
2873
|
-
* Opens add-section flow (same as primary "Add section" control). For page commands / ViewChild.
|
|
2874
|
-
*/
|
|
2875
|
-
addSection(): Promise<void>;
|
|
2876
|
-
protected onAddSectionClick(): Promise<void>;
|
|
2877
|
-
protected onEditSection(section: AXPBuilderSection): Promise<void>;
|
|
2878
|
-
protected onRemoveSection(section: AXPBuilderSection): Promise<void>;
|
|
2879
|
-
protected onAddItems(section: AXPBuilderSection): Promise<void>;
|
|
2880
|
-
protected onEditItem(item: AXPBuilderItem, sectionId: string): Promise<void>;
|
|
2881
|
-
protected onRemoveItem(item: AXPBuilderItem, sectionId: string): Promise<void>;
|
|
2882
|
-
protected onSectionDrop(event: CdkDragDrop<AXPBuilderSection[]>): void;
|
|
2883
|
-
protected onItemDrop(event: CdkDragDrop<AXPBuilderItem[]>, targetSectionId: string): void;
|
|
2884
|
-
protected sectionItemsListId(sectionId: string): string;
|
|
2885
|
-
protected parseSectionIdFromDropListId(listId: string): string | null;
|
|
2886
|
-
protected isDefaultSection(section: AXPBuilderSection): boolean;
|
|
2887
|
-
protected isTranslationKey(text: string): boolean;
|
|
2888
|
-
/** Tooltip for rich HTML rows: plain text, no tags. */
|
|
2889
|
-
protected tooltipPlainTextForHtml(html: string): string;
|
|
2890
|
-
/**
|
|
2891
|
-
* Prefer raw section fields for display so {@link AXPMultiLanguageString} maps are not
|
|
2892
|
-
* lost when {@link AXPBuilderDefinition#mapItemToView} stringifies them on items.
|
|
2893
|
-
*/
|
|
2894
|
-
protected sectionTitleValue(section: AXPBuilderSection): AXPMultiLanguageString | string;
|
|
2895
|
-
protected sectionNameValue(section: AXPBuilderSection): AXPMultiLanguageString | string | undefined;
|
|
2896
|
-
protected sectionDescriptionValue(section: AXPBuilderSection): AXPMultiLanguageString | string | undefined;
|
|
2897
|
-
/**
|
|
2898
|
-
* Resolves item title/name/description for display: use raw item values when present
|
|
2899
|
-
* (including ML maps); fall back to {@link AXPBuilderItemViewModel} only when needed.
|
|
2900
|
-
*/
|
|
2901
|
-
protected itemMultilingualField(item: AXPBuilderItem, field: 'title' | 'name' | 'description', viewFallback?: string | null): AXPMultiLanguageString | string;
|
|
2902
|
-
private commit;
|
|
2903
|
-
private normalizeValue;
|
|
2904
|
-
private reindexSections;
|
|
2905
|
-
private reindexItems;
|
|
2906
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSectionItemsBuilderComponent, never>;
|
|
2907
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSectionItemsBuilderComponent, "axp-section-items-builder", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "definition": { "alias": "definition"; "required": true; "isSignal": true; }; "readonlyMode": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2908
|
-
}
|
|
2909
|
-
|
|
2910
|
-
/**
|
|
2911
|
-
* Host configuration for {@link AXPStandardSectionItemsBuilderComponent}.
|
|
2912
|
-
* Section add/edit UI (identity, content, visibility) and delete prompts are standardized;
|
|
2913
|
-
* item flows stay host-specific.
|
|
2914
|
-
*/
|
|
2915
|
-
interface AXPStandardSectionItemsBuilderConfig {
|
|
2916
|
-
mapItemToView: AXPBuilderDefinition['mapItemToView'];
|
|
2917
|
-
/** When set, used instead of the built-in section add dialog. */
|
|
2918
|
-
promptAddSection?: AXPBuilderDefinition['promptAddSection'];
|
|
2919
|
-
/** When set, used instead of the built-in section edit dialog. */
|
|
2920
|
-
promptEditSection?: AXPBuilderDefinition['promptEditSection'];
|
|
2921
|
-
promptAddItems?: AXPBuilderDefinition['promptAddItems'];
|
|
2922
|
-
promptEditItem?: AXPBuilderDefinition['promptEditItem'];
|
|
2923
|
-
/** Merged over built-in empty-state / action labels */
|
|
2924
|
-
texts?: Partial<AXPBuilderTexts>;
|
|
2925
|
-
showSectionTechnicalName?: boolean;
|
|
2926
|
-
isDefaultSection?: AXPBuilderDefinition['isDefaultSection'];
|
|
2927
|
-
minSectionCount?: number;
|
|
2928
|
-
/**
|
|
2929
|
-
* Property viewer tabs for section add/edit.
|
|
2930
|
-
* Default: {@link STANDARD_SECTION_ITEMS_SECTION_TABS}.
|
|
2931
|
-
*/
|
|
2932
|
-
sectionEditTabs?: AXPPropertyViewerTab[];
|
|
2933
|
-
/** Override default delete-section confirmation. */
|
|
2934
|
-
confirmRemoveSection?: AXPBuilderDefinition['confirmRemoveSection'];
|
|
2935
|
-
/** Override default delete-item confirmation. */
|
|
2936
|
-
confirmRemoveItem?: AXPBuilderDefinition['confirmRemoveItem'];
|
|
2937
|
-
}
|
|
2938
|
-
/** Context shape bound to the default section property viewer (paths match keys). */
|
|
2939
|
-
interface AXPStandardSectionFormContext {
|
|
2940
|
-
/** Unique technical name (section `name` in the builder model). */
|
|
2941
|
-
name?: string;
|
|
2942
|
-
tags?: unknown;
|
|
2943
|
-
title?: string | AXPMultiLanguageString;
|
|
2944
|
-
description?: string | AXPMultiLanguageString;
|
|
2945
|
-
isVisible?: boolean;
|
|
2946
|
-
}
|
|
2947
|
-
|
|
2948
|
-
/**
|
|
2949
|
-
* Default section editor: Identity (name, tags), Content (title, description), Visibility.
|
|
2950
|
-
*/
|
|
2951
|
-
declare const STANDARD_SECTION_ITEMS_SECTION_TABS: AXPPropertyViewerTab[];
|
|
2952
|
-
|
|
2953
|
-
declare class AXPStandardSectionItemsBuilderComponent {
|
|
2954
|
-
readonly value: _angular_core.InputSignal<AXPBuilderValue>;
|
|
2955
|
-
readonly config: _angular_core.InputSignal<AXPStandardSectionItemsBuilderConfig>;
|
|
2956
|
-
readonly readonlyMode: _angular_core.InputSignal<boolean>;
|
|
2957
|
-
readonly valueChange: _angular_core.OutputEmitterRef<AXPBuilderValue>;
|
|
2958
|
-
private readonly inner;
|
|
2959
|
-
private readonly dialogService;
|
|
2960
|
-
private readonly translationService;
|
|
2961
|
-
private readonly propertyViewerService;
|
|
2962
|
-
protected readonly mergedDefinition: _angular_core.Signal<AXPBuilderDefinition>;
|
|
2963
|
-
/** Same entry as page commands / toolbar: open standardized add-section dialog. */
|
|
2964
|
-
addSection(): Promise<void>;
|
|
2965
|
-
private isDuplicateSectionName;
|
|
2966
|
-
/**
|
|
2967
|
-
* `AXPBuilderSection` uses `[key: string]: unknown`; cast to form-bound type without resolving ML.
|
|
2968
|
-
*/
|
|
2969
|
-
private sectionFieldForForm;
|
|
2970
|
-
private buildSectionContext;
|
|
2971
|
-
private openSectionDialog;
|
|
2972
|
-
private defaultConfirmRemoveSection;
|
|
2973
|
-
private defaultConfirmRemoveItem;
|
|
2974
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPStandardSectionItemsBuilderComponent, never>;
|
|
2975
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPStandardSectionItemsBuilderComponent, "axp-standard-section-items-builder", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "readonlyMode": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2976
|
-
}
|
|
2977
|
-
|
|
2978
|
-
export { AXPActivityLogComponent, AXPAvatarComponent, AXPCategoryTreeComponent, AXPColorPalettePickerComponent, AXPColumnItemListComponent, AXPCompareViewComponent, AXPConditionBuilderComponent, AXPConditionBuilderConditionComponent, AXPDataSelectorComponent, AXPDataSelectorService, AXPDragDropListComponent, AXPExpressionFieldDefinitions, AXPImageEditorPopupComponent, AXPImageEditorService, AXPItemConfiguratorComponent, AXPLogoComponent, AXPMarkdownTemplateDirective, AXPMarkdownViewerComponent, AXPMenuBadgeHelper, AXPMenuCustomizerComponent, AXPMenuCustomizerService, AXPPageComponentRegistryService, AXPPreloadFiltersComponent, AXPPropertyViewerComponent, AXPPropertyViewerPopupComponent, AXPPropertyViewerService, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, AXPRepeaterRowsLayoutComponent, AXPResourceAppointmentBoardProvider, AXPResourceAppointmentComponent, AXPResourceAppointmentService, AXPSectionItemsBuilderComponent, AXPSpreadsheetComponent, AXPStandardSectionItemsBuilderComponent, AXPStateMessageComponent, AXPStopwatchComponent, AXPTableColumnsEditorComponent, AXPTableColumnsEditorPopupComponent, AXPTableColumnsEditorService, AXPTableDataEditorComponent, AXPTableDataEditorPopupComponent, AXPTableDataEditorService, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPTemplateViewerComponent, AXPTemplateViewerService, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPWidgetFieldConfiguratorComponent, AXPWidgetItemComponent, AXPWidgetPropertyViewerComponent, AXPWidgetPropertyViewerPopupComponent, AXPWidgetPropertyViewerService, AXP_EXPRESSION_LOGIC_DEFINITIONS, AXP_EXPRESSION_OPERATION_DEFINITIONS, AXP_MENU_CUSTOMIZER_SERVICE, AXP_PAGE_COMPONENT_PROVIDER, AXP_RESOURCE_APPOINTMENT_PROVIDER, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER, STANDARD_SECTION_ITEMS_SECTION_TABS, buildPropertyViewerInitialContextFromProperties, buildPropertyViewerTabsFromProperties, buildTableColumnsEditorLayout, getFieldDefinitions, getLogicDefinition, getOperationDefinition, isPropertyBindingExpressionFormValue, preparePropertyForViewer, preparePropertyViewerTabs, registerFieldDefinitions, withValidationsOnEditorNode };
|
|
2979
|
-
export type { AXPBuilderBadge, AXPBuilderBadgeVariant, AXPBuilderDefinition, AXPBuilderItem, AXPBuilderItemIconTone, AXPBuilderItemViewModel, AXPBuilderSection, AXPBuilderTexts, AXPBuilderValue, AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPDataSelectorAllowCreate, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDragDropListConfig, AXPDragDropListDropEvent, AXPDragDropListItem, AXPExpressionFieldDefinition, AXPExpressionGroupNode, AXPExpressionLogicDefinition, AXPExpressionLogicType, AXPExpressionNode, AXPExpressionNodeId, AXPExpressionOperationDefinition, AXPExpressionOperationNode, AXPExpressionOperationType, AXPExpressionTree, AXPExpressionValueOperand, AXPExpressionValueSourceType, AXPImageEditorOpenOptions, AXPMenuCustomizerAction, AXPMenuCustomizerItem, AXPMenuCustomizerItemType, AXPMenuCustomizerNodeData, AXPMenuCustomizerNodeMetadata, AXPMenuCustomizerState, AXPPageComponentDefinition, AXPPageComponentProvider, AXPPreloadFiltersApplyEvent, AXPPropertyViewerActionRef, AXPPropertyViewerChangedEvent, AXPPropertyViewerConfig, AXPPropertyViewerGroup, AXPPropertyViewerResult, AXPPropertyViewerTab, AXPResourceAppointmentActionMenuItem, AXPResourceAppointmentBoardFilter, AXPResourceAppointmentItem, AXPResourceAppointmentResource, AXPResourceAppointmentStatus, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetCellValue, AXPSpreadsheetColumn, AXPSpreadsheetConfig, AXPSpreadsheetData, AXPSpreadsheetItem, AXPSpreadsheetRowChangeEvent, AXPSpreadsheetRowMode, AXPStandardSectionFormContext, AXPStandardSectionItemsBuilderConfig, AXPTableColumnDefinition, AXPTableColumnsEditorOpenOptions, AXPTableDataEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyInjection, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, ConditionBuilderSelectedField, IAXPPropertyViewerDialogBuilder, IAXPPropertyViewerRoot, IAXPWidgetPropertyViewerDialogBuilder, IAXPWidgetPropertyViewerRoot, ItemConfiguratorListItem, StateMode };
|
|
2249
|
+
export { AXPActivityLogComponent, AXPCategoryTreeComponent, AXPColorPalettePickerComponent, AXPColumnItemListComponent, AXPCompareViewComponent, AXPDataSelectorComponent, AXPDataSelectorService, AXPDragDropListComponent, AXPImageEditorPopupComponent, AXPImageEditorService, AXPLogoComponent, AXPMenuBadgeHelper, AXPMenuCustomizerComponent, AXPMenuCustomizerService, AXPPreloadFiltersComponent, AXPPropertyViewerComponent, AXPPropertyViewerPopupComponent, AXPPropertyViewerService, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, AXPResourceAppointmentBoardProvider, AXPResourceAppointmentComponent, AXPResourceAppointmentService, AXPSpreadsheetComponent, AXPStateMessageComponent, AXPStopwatchComponent, AXPTableColumnsEditorComponent, AXPTableColumnsEditorPopupComponent, AXPTableColumnsEditorService, AXPTableDataEditorComponent, AXPTableDataEditorPopupComponent, AXPTableDataEditorService, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPTemplateViewerComponent, AXPTemplateViewerService, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPWidgetFieldConfiguratorComponent, AXPWidgetItemComponent, AXPWidgetPropertyViewerComponent, AXPWidgetPropertyViewerPopupComponent, AXPWidgetPropertyViewerService, AXP_MENU_CUSTOMIZER_SERVICE, AXP_RESOURCE_APPOINTMENT_PROVIDER, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER, buildTableColumnsEditorLayout };
|
|
2250
|
+
export type { AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDragDropListConfig, AXPDragDropListDropEvent, AXPDragDropListItem, AXPImageEditorOpenOptions, AXPMenuCustomizerAction, AXPMenuCustomizerItem, AXPMenuCustomizerItemType, AXPMenuCustomizerNodeData, AXPMenuCustomizerNodeMetadata, AXPMenuCustomizerState, AXPPreloadFiltersApplyEvent, AXPPropertyViewerChangedEvent, AXPPropertyViewerConfig, AXPPropertyViewerGroup, AXPPropertyViewerResult, AXPPropertyViewerTab, AXPResourceAppointmentActionMenuItem, AXPResourceAppointmentBoardFilter, AXPResourceAppointmentItem, AXPResourceAppointmentResource, AXPResourceAppointmentStatus, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetCellValue, AXPSpreadsheetColumn, AXPSpreadsheetConfig, AXPSpreadsheetData, AXPSpreadsheetItem, AXPSpreadsheetRowChangeEvent, AXPSpreadsheetRowMode, AXPTableColumnDefinition, AXPTableColumnsEditorOpenOptions, AXPTableDataEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyInjection, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, StateMode };
|