@acorex/platform 21.0.0-next.51 → 21.0.0-next.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-common.mjs +6 -4
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +4933 -4818
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +38 -25
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +31 -25
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs → acorex-platform-themes-shared-settings.provider-BgXYCFia.mjs} +3 -10
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BgXYCFia.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +4 -4
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +1 -1
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +6 -6
- package/types/acorex-platform-common.d.ts +12 -5
- package/types/acorex-platform-layout-components.d.ts +719 -627
- package/types/acorex-platform-layout-entity.d.ts +4 -0
- package/types/acorex-platform-layout-widgets.d.ts +4 -2
- package/types/acorex-platform-workflow.d.ts +19 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
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, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPContextChangeEvent,
|
|
2
|
+
import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, QueryList, OnChanges, Type, EventEmitter, WritableSignal } from '@angular/core';
|
|
3
|
+
import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPContextChangeEvent, AXPMultiLanguageString, AXPActionMenuItem, AXPExecuteCommand, AXPExecuteCommandResult, containsHtmlMarkup, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery } from '@acorex/platform/core';
|
|
4
|
+
import { AXHtmlEvent, AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXDataSourceOperator, AXFilterLogic, AXEvent, AXRange } from '@acorex/cdk/common';
|
|
4
5
|
import { AXPMenuItem } from '@acorex/platform/common';
|
|
5
|
-
import { AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXDataSourceOperator, AXFilterLogic, AXHtmlEvent, AXEvent, AXRange } from '@acorex/cdk/common';
|
|
6
6
|
import { AXTreeViewLegacyComponent, AXTreeItemClickBaseEventLegacy } from '@acorex/components/tree-view-legacy';
|
|
7
7
|
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
8
8
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
@@ -16,14 +16,14 @@ import { AXCalendarService } from '@acorex/core/date-time';
|
|
|
16
16
|
import * as _acorex_core_translation from '@acorex/core/translation';
|
|
17
17
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
18
18
|
import { AXFormComponent } from '@acorex/components/form';
|
|
19
|
+
import { AXSelectBoxComponent } from '@acorex/components/select-box';
|
|
19
20
|
import { AXTreeViewNode, AXTreeViewDragBehavior, AXTreeViewDragArea, AXTreeViewComponent, AXTreeViewBeforeDropEvent, AXTreeViewDropEvent } from '@acorex/components/tree-view';
|
|
20
21
|
import { AXTabStripChangedEvent, AXTabsComponent } from '@acorex/components/tabs';
|
|
21
22
|
import { AXValidationSummary } from '@acorex/core/validation';
|
|
22
23
|
import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
|
|
23
|
-
import { Observable, Subject } from 'rxjs';
|
|
24
|
-
import { AXSelectBoxComponent } from '@acorex/components/select-box';
|
|
25
24
|
import { AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
|
|
26
25
|
import { AXSchedulerComponent, AXSchedulerView, AXSchedulerResource, AXSchedulerAppointment, AXSchedulerDateRange } from '@acorex/components/scheduler';
|
|
26
|
+
import { Subject, Observable } from 'rxjs';
|
|
27
27
|
import * as _acorex_platform_layout_components from '@acorex/platform/layout/components';
|
|
28
28
|
|
|
29
29
|
declare class AXPActivityLogComponent {
|
|
@@ -88,6 +88,37 @@ declare class AXPActivityLogComponent {
|
|
|
88
88
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPActivityLogComponent, "axp-activity-log", never, { "activities": { "alias": "activities"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Generic avatar renderer with image and initials fallback.
|
|
93
|
+
*/
|
|
94
|
+
declare class AXPAvatarComponent {
|
|
95
|
+
/** Avatar size in pixels. */
|
|
96
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
97
|
+
/** Optional image source for the avatar. */
|
|
98
|
+
readonly src: _angular_core.InputSignal<string | undefined>;
|
|
99
|
+
/** Display name used for title and initials fallback. */
|
|
100
|
+
readonly fullName: _angular_core.InputSignal<string | undefined>;
|
|
101
|
+
/** Optional override for fallback text shown when image is not available. */
|
|
102
|
+
readonly fallbackText: _angular_core.InputSignal<string | undefined>;
|
|
103
|
+
/** Forces placeholder mode and '?' fallback. */
|
|
104
|
+
readonly placeholder: _angular_core.InputSignal<boolean>;
|
|
105
|
+
protected readonly isAvatarLoaded: _angular_core.WritableSignal<boolean>;
|
|
106
|
+
protected readonly normalizedName: _angular_core.Signal<string>;
|
|
107
|
+
protected readonly resolvedSrc: _angular_core.Signal<string>;
|
|
108
|
+
protected readonly hasAvatar: _angular_core.Signal<boolean>;
|
|
109
|
+
protected readonly isLoading: _angular_core.Signal<boolean>;
|
|
110
|
+
protected readonly avatarText: _angular_core.Signal<string>;
|
|
111
|
+
protected readonly avatarColor: _angular_core.Signal<string>;
|
|
112
|
+
protected readonly title: _angular_core.Signal<string>;
|
|
113
|
+
protected onImageError(event: AXHtmlEvent<ErrorEvent>): void;
|
|
114
|
+
protected onImageLoad(event: AXHtmlEvent<Event>): void;
|
|
115
|
+
private computeInitials;
|
|
116
|
+
private hashString;
|
|
117
|
+
private pickColor;
|
|
118
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPAvatarComponent, never>;
|
|
119
|
+
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>;
|
|
120
|
+
}
|
|
121
|
+
|
|
91
122
|
declare class AXPTaskBadgeService {
|
|
92
123
|
private badgeMap;
|
|
93
124
|
private providers;
|
|
@@ -566,102 +597,6 @@ declare class AXPDataSelectorService {
|
|
|
566
597
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataSelectorService>;
|
|
567
598
|
}
|
|
568
599
|
|
|
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
600
|
interface AXPDragDropListItem {
|
|
666
601
|
id: string;
|
|
667
602
|
content: string;
|
|
@@ -1034,6 +969,160 @@ declare class AXPImageEditorService {
|
|
|
1034
969
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPImageEditorService>;
|
|
1035
970
|
}
|
|
1036
971
|
|
|
972
|
+
/**
|
|
973
|
+
* One selectable entry for {@link AXPItemConfiguratorComponent}.
|
|
974
|
+
* Parents map external data into this shape. {@link propertyDefinitions} drive {@link AXPPropertyViewerService} tabs.
|
|
975
|
+
*/
|
|
976
|
+
interface ItemConfiguratorListItem {
|
|
977
|
+
id: string;
|
|
978
|
+
/** Shown in the list and in the configure dialog title; plain string, i18n key, or locale map. */
|
|
979
|
+
title: AXPMultiLanguageString;
|
|
980
|
+
icon?: string;
|
|
981
|
+
description?: AXPMultiLanguageString;
|
|
982
|
+
propertyDefinitions?: AXPWidgetProperty[];
|
|
983
|
+
}
|
|
984
|
+
interface ItemConfiguratorSelectRow {
|
|
985
|
+
value: string;
|
|
986
|
+
text: string;
|
|
987
|
+
icon?: string;
|
|
988
|
+
description?: string;
|
|
989
|
+
}
|
|
990
|
+
/**
|
|
991
|
+
* Select an item from a list and edit its settings via {@link AXPPropertyViewerService}.
|
|
992
|
+
* Bound state: {@link selectedItemId} and {@link values} (context returned from the viewer). Not tied to {@link AXPWidgetNode}.
|
|
993
|
+
*/
|
|
994
|
+
declare class AXPItemConfiguratorComponent {
|
|
995
|
+
/** Selected list entry id ({@link ItemConfiguratorListItem.id}). */
|
|
996
|
+
selectedItemId: _angular_core.ModelSignal<string>;
|
|
997
|
+
/** Values edited in the property viewer (merged from dialog result). */
|
|
998
|
+
values: _angular_core.ModelSignal<Record<string, unknown>>;
|
|
999
|
+
label: _angular_core.InputSignal<string>;
|
|
1000
|
+
readonly: _angular_core.InputSignal<boolean>;
|
|
1001
|
+
items: _angular_core.InputSignal<ItemConfiguratorListItem[]>;
|
|
1002
|
+
headerActions: _angular_core.InputSignal<AXPActionMenuItem[]>;
|
|
1003
|
+
private readonly propertyViewerService;
|
|
1004
|
+
private readonly translationService;
|
|
1005
|
+
private readonly workflow;
|
|
1006
|
+
private readonly commandExecutor;
|
|
1007
|
+
protected isEditMode: _angular_core.WritableSignal<boolean>;
|
|
1008
|
+
protected availableItems: _angular_core.Signal<ItemConfiguratorSelectRow[]>;
|
|
1009
|
+
protected selectedListItem: _angular_core.Signal<ItemConfiguratorListItem | null>;
|
|
1010
|
+
protected resolvedPropertyDefinitions: _angular_core.Signal<AXPWidgetProperty[]>;
|
|
1011
|
+
protected currentItemConfig: _angular_core.Signal<{
|
|
1012
|
+
title: string;
|
|
1013
|
+
description: _acorex_core_translation.AXMultiLanguageString | undefined;
|
|
1014
|
+
icon: string | undefined;
|
|
1015
|
+
hasProperties: boolean;
|
|
1016
|
+
} | null>;
|
|
1017
|
+
protected canConfigure: _angular_core.Signal<boolean>;
|
|
1018
|
+
protected isConfigured: _angular_core.Signal<boolean>;
|
|
1019
|
+
protected visibleHeaderActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
1020
|
+
protected itemSelectBox: _angular_core.Signal<AXSelectBoxComponent | undefined>;
|
|
1021
|
+
protected enterEditMode(): void;
|
|
1022
|
+
protected exitEditMode(): void;
|
|
1023
|
+
constructor();
|
|
1024
|
+
protected onSelectionChange(event: {
|
|
1025
|
+
value?: string | null;
|
|
1026
|
+
}): Promise<void>;
|
|
1027
|
+
protected openConfigureDialog(): Promise<void>;
|
|
1028
|
+
protected onHeaderActionClick(action: AXPActionMenuItem): void;
|
|
1029
|
+
protected isHeaderActionDisabled(action: AXPActionMenuItem): boolean;
|
|
1030
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPItemConfiguratorComponent, never>;
|
|
1031
|
+
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>;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
/**
|
|
1035
|
+
* Floating zoom controls for canvas-style views (org chart, workflow designer, etc.).
|
|
1036
|
+
* Parent container should be `position: relative` so the bar anchors to the bottom-end.
|
|
1037
|
+
*/
|
|
1038
|
+
declare class AXPLayoutFloatingZoomBarComponent {
|
|
1039
|
+
/** Zoom level as a percentage (e.g. 100 for 100%). */
|
|
1040
|
+
readonly zoomLevel: _angular_core.InputSignal<number>;
|
|
1041
|
+
readonly zoomIn: _angular_core.OutputEmitterRef<void>;
|
|
1042
|
+
readonly zoomOut: _angular_core.OutputEmitterRef<void>;
|
|
1043
|
+
readonly zoomReset: _angular_core.OutputEmitterRef<void>;
|
|
1044
|
+
protected readonly zoomLabel: _angular_core.Signal<string>;
|
|
1045
|
+
protected onZoomIn(): void;
|
|
1046
|
+
protected onZoomOut(): void;
|
|
1047
|
+
protected onZoomReset(): void;
|
|
1048
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutFloatingZoomBarComponent, never>;
|
|
1049
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutFloatingZoomBarComponent, "axp-layout-floating-zoom-bar", never, { "zoomLevel": { "alias": "zoomLevel"; "required": false; "isSignal": true; }; }, { "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; }, never, never, true, never>;
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
/** Leading icon chip in the panel header (optional). */
|
|
1053
|
+
interface AXPLayoutSideDetailPanelHeaderIcon {
|
|
1054
|
+
/** Full class list for the `<i>` element (e.g. `fa-solid fa-lg fa-fw fa-sitemap`). */
|
|
1055
|
+
iconClass: string;
|
|
1056
|
+
/** CSS custom properties for icon color (e.g. `--node-bg-color`). */
|
|
1057
|
+
surfaceVars?: Record<string, string>;
|
|
1058
|
+
/** When true, renders the shortcut overlay glyph (document explorer). */
|
|
1059
|
+
shortcut?: boolean;
|
|
1060
|
+
}
|
|
1061
|
+
interface AXPLayoutSideDetailPanelHeader {
|
|
1062
|
+
primaryTitle: string;
|
|
1063
|
+
secondaryTitle?: string;
|
|
1064
|
+
icon?: AXPLayoutSideDetailPanelHeaderIcon;
|
|
1065
|
+
}
|
|
1066
|
+
/** Shown when nothing is selected; copy is supplied by the parent. */
|
|
1067
|
+
interface AXPLayoutSideDetailPanelEmptyState {
|
|
1068
|
+
primaryTitle: string;
|
|
1069
|
+
message: string;
|
|
1070
|
+
icon?: AXPLayoutSideDetailPanelHeaderIcon;
|
|
1071
|
+
}
|
|
1072
|
+
type AXPLayoutSideDetailPanelRowFormat = 'datetime' | 'date' | 'filesize' | 'number' | 'string';
|
|
1073
|
+
interface AXPLayoutSideDetailPanelRow {
|
|
1074
|
+
label: string;
|
|
1075
|
+
value: string | number | Date | null | undefined;
|
|
1076
|
+
format?: AXPLayoutSideDetailPanelRowFormat;
|
|
1077
|
+
}
|
|
1078
|
+
interface AXPLayoutSideDetailPanelSection {
|
|
1079
|
+
/** Section heading; omit for a flat block of rows. */
|
|
1080
|
+
title?: string;
|
|
1081
|
+
rows?: AXPLayoutSideDetailPanelRow[];
|
|
1082
|
+
/**
|
|
1083
|
+
* Renders projected content from `[axpLayoutSideDetailPanelSection="<key>"]` instead of rows
|
|
1084
|
+
* (e.g. document metadata widget).
|
|
1085
|
+
*/
|
|
1086
|
+
projectionKey?: string;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
/** Projects custom section body into {@link AXPLayoutSideDetailPanelComponent} by `projectionKey`. */
|
|
1090
|
+
declare class AXPLayoutSideDetailPanelSectionDirective {
|
|
1091
|
+
readonly key: _angular_core.InputSignal<string>;
|
|
1092
|
+
readonly template: TemplateRef<any>;
|
|
1093
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutSideDetailPanelSectionDirective, never>;
|
|
1094
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXPLayoutSideDetailPanelSectionDirective, "[axpLayoutSideDetailPanelSection]", never, { "key": { "alias": "axpLayoutSideDetailPanelSection"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
/**
|
|
1098
|
+
* Side detail panel for canvas-style layouts (org chart, workflow designer, document drive, etc.).
|
|
1099
|
+
* Visual language matches organization-chart / document-explorer detail panels.
|
|
1100
|
+
*/
|
|
1101
|
+
declare class AXPLayoutSideDetailPanelComponent {
|
|
1102
|
+
/** When set, shows the multi-selection header (e.g. document explorer). */
|
|
1103
|
+
readonly multiSelectLabel: _angular_core.InputSignal<string | null>;
|
|
1104
|
+
/** Selected item header; omit with {@link emptyState} when nothing is selected. */
|
|
1105
|
+
readonly header: _angular_core.InputSignal<AXPLayoutSideDetailPanelHeader | null>;
|
|
1106
|
+
/** One or more titled sections of label/value rows and/or projected custom sections. */
|
|
1107
|
+
readonly sections: _angular_core.InputSignal<AXPLayoutSideDetailPanelSection[]>;
|
|
1108
|
+
/** Flat rows without wrapping sections (optional {@link rowsSectionTitle}). */
|
|
1109
|
+
readonly rows: _angular_core.InputSignal<AXPLayoutSideDetailPanelRow[]>;
|
|
1110
|
+
/** Section title when only {@link rows} is used. */
|
|
1111
|
+
readonly rowsSectionTitle: _angular_core.InputSignal<string | null>;
|
|
1112
|
+
/** Message when {@link header} is set but there are no rows/sections. */
|
|
1113
|
+
readonly noRowsMessage: _angular_core.InputSignal<string | null>;
|
|
1114
|
+
/** Empty selection state (customizable copy from parent). */
|
|
1115
|
+
readonly emptyState: _angular_core.InputSignal<AXPLayoutSideDetailPanelEmptyState | null>;
|
|
1116
|
+
readonly panelClose: _angular_core.OutputEmitterRef<void>;
|
|
1117
|
+
private readonly projectedSections;
|
|
1118
|
+
protected onClose(): void;
|
|
1119
|
+
protected sectionTrack(section: AXPLayoutSideDetailPanelSection, index: number): string;
|
|
1120
|
+
protected templateForProjectionKey(key: string): TemplateRef<unknown> | null;
|
|
1121
|
+
protected surfaceStyle(icon: AXPLayoutSideDetailPanelHeaderIcon | undefined): Record<string, string>;
|
|
1122
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutSideDetailPanelComponent, never>;
|
|
1123
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutSideDetailPanelComponent, "axp-layout-side-detail-panel", never, { "multiSelectLabel": { "alias": "multiSelectLabel"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "rowsSectionTitle": { "alias": "rowsSectionTitle"; "required": false; "isSignal": true; }; "noRowsMessage": { "alias": "noRowsMessage"; "required": false; "isSignal": true; }; "emptyState": { "alias": "emptyState"; "required": false; "isSignal": true; }; }, { "panelClose": "panelClose"; }, ["projectedSections"], never, true, never>;
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1037
1126
|
declare class AXPLogoComponent implements OnInit, OnChanges {
|
|
1038
1127
|
source: any;
|
|
1039
1128
|
protected logoType: string;
|
|
@@ -1447,50 +1536,146 @@ declare class AXPMenuCustomizerComponent implements OnInit {
|
|
|
1447
1536
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPMenuCustomizerComponent, "axp-menu-customizer", never, { "scopeKey": { "alias": "scopeKey"; "required": true; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "allowAddItems": { "alias": "allowAddItems"; "required": false; "isSignal": true; }; "dragBehavior": { "alias": "dragBehavior"; "required": false; "isSignal": true; }; "dragArea": { "alias": "dragArea"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "cancelled": "cancelled"; }, never, never, true, never>;
|
|
1448
1537
|
}
|
|
1449
1538
|
|
|
1450
|
-
interface AXPPropertyViewerGroup {
|
|
1451
|
-
name: string;
|
|
1452
|
-
title: string;
|
|
1453
|
-
isCollapsed: boolean;
|
|
1454
|
-
props: AXPWidgetProperty[];
|
|
1455
|
-
}
|
|
1456
|
-
interface AXPPropertyViewerTab {
|
|
1457
|
-
name: string;
|
|
1458
|
-
title: string;
|
|
1459
|
-
groups: AXPPropertyViewerGroup[];
|
|
1460
|
-
}
|
|
1461
|
-
interface AXPPropertyViewerChangedEvent {
|
|
1462
|
-
values: any;
|
|
1463
|
-
mode: 'init' | 'update';
|
|
1464
|
-
}
|
|
1465
|
-
/** Payload when the property viewer popup closes after Apply. */
|
|
1466
|
-
type AXPPropertyViewerResult = AXPPropertyViewerChangedEvent;
|
|
1467
1539
|
/**
|
|
1468
|
-
*
|
|
1540
|
+
* Definition for a page component that can be registered and loaded dynamically
|
|
1469
1541
|
*/
|
|
1470
|
-
interface
|
|
1471
|
-
close(): void;
|
|
1472
|
-
context(): any;
|
|
1473
|
-
action(): string | undefined;
|
|
1474
|
-
setLoading(loading: boolean): void;
|
|
1475
|
-
}
|
|
1476
|
-
|
|
1477
|
-
declare class AXPPropertyViewerComponent {
|
|
1478
|
-
private readonly defaultMultiLanguageConfig;
|
|
1542
|
+
interface AXPPageComponentDefinition {
|
|
1479
1543
|
/**
|
|
1480
|
-
*
|
|
1544
|
+
* Unique key to identify the component
|
|
1481
1545
|
*/
|
|
1482
|
-
|
|
1546
|
+
key: string;
|
|
1483
1547
|
/**
|
|
1484
|
-
*
|
|
1548
|
+
* Loader function that returns the component type (supports lazy loading)
|
|
1485
1549
|
*/
|
|
1486
|
-
|
|
1550
|
+
loader: () => Type<any> | Promise<Type<any>>;
|
|
1551
|
+
}
|
|
1552
|
+
/**
|
|
1553
|
+
* Provider interface for registering page components
|
|
1554
|
+
* Similar to AXPDataSourceDefinitionProvider pattern
|
|
1555
|
+
*/
|
|
1556
|
+
interface AXPPageComponentProvider {
|
|
1487
1557
|
/**
|
|
1488
|
-
*
|
|
1489
|
-
* `inline` — code editor in the panel (default); `popup` — button that opens the dialog editor.
|
|
1558
|
+
* Returns all component definitions provided by this provider
|
|
1490
1559
|
*/
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1560
|
+
components(): Promise<AXPPageComponentDefinition[]>;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
/**
|
|
1564
|
+
* Service for managing page components from multiple providers
|
|
1565
|
+
* Similar to AXPDataSourceDefinitionProviderService pattern
|
|
1566
|
+
*
|
|
1567
|
+
* @example
|
|
1568
|
+
* ```typescript
|
|
1569
|
+
* // In a module providers array:
|
|
1570
|
+
* {
|
|
1571
|
+
* provide: AXP_PAGE_COMPONENT_PROVIDER,
|
|
1572
|
+
* useClass: MyPageComponentProvider,
|
|
1573
|
+
* multi: true,
|
|
1574
|
+
* }
|
|
1575
|
+
*
|
|
1576
|
+
* // Example provider implementation:
|
|
1577
|
+
* export class MyPageComponentProvider implements AXPPageComponentProvider {
|
|
1578
|
+
* async components(): Promise<AXPPageComponentDefinition[]> {
|
|
1579
|
+
* return [
|
|
1580
|
+
* {
|
|
1581
|
+
* key: 'my-custom-page',
|
|
1582
|
+
* loader: () => import('./my-page.component').then(m => m.MyPageComponent),
|
|
1583
|
+
* },
|
|
1584
|
+
* ];
|
|
1585
|
+
* }
|
|
1586
|
+
* }
|
|
1587
|
+
*
|
|
1588
|
+
* // Later, get the component loader:
|
|
1589
|
+
* const loader = await pageComponentService.find('my-custom-page');
|
|
1590
|
+
* if (loader) {
|
|
1591
|
+
* const ComponentType = await loader();
|
|
1592
|
+
* // Use ComponentType
|
|
1593
|
+
* }
|
|
1594
|
+
* ```
|
|
1595
|
+
*/
|
|
1596
|
+
declare class AXPPageComponentRegistryService {
|
|
1597
|
+
private providers;
|
|
1598
|
+
/**
|
|
1599
|
+
* Get all component definitions from all providers
|
|
1600
|
+
*/
|
|
1601
|
+
components(): Promise<AXPPageComponentDefinition[]>;
|
|
1602
|
+
/**
|
|
1603
|
+
* Find a component loader by key
|
|
1604
|
+
*/
|
|
1605
|
+
find(key: string): Promise<(() => Type<any> | Promise<Type<any>>) | undefined>;
|
|
1606
|
+
/**
|
|
1607
|
+
* Check if a component exists by key
|
|
1608
|
+
*/
|
|
1609
|
+
exists(key: string): Promise<boolean>;
|
|
1610
|
+
/**
|
|
1611
|
+
* Get all registered component keys
|
|
1612
|
+
*/
|
|
1613
|
+
getAll(): Promise<string[]>;
|
|
1614
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPageComponentRegistryService, never>;
|
|
1615
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPageComponentRegistryService>;
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
/**
|
|
1619
|
+
* Injection token for page component providers
|
|
1620
|
+
* Use with multi: true to register multiple providers
|
|
1621
|
+
*
|
|
1622
|
+
* @example
|
|
1623
|
+
* ```typescript
|
|
1624
|
+
* providers: [
|
|
1625
|
+
* {
|
|
1626
|
+
* provide: AXP_PAGE_COMPONENT_PROVIDER,
|
|
1627
|
+
* useClass: MyPageComponentProvider,
|
|
1628
|
+
* multi: true,
|
|
1629
|
+
* }
|
|
1630
|
+
* ]
|
|
1631
|
+
* ```
|
|
1632
|
+
*/
|
|
1633
|
+
declare const AXP_PAGE_COMPONENT_PROVIDER: InjectionToken<AXPPageComponentProvider[]>;
|
|
1634
|
+
|
|
1635
|
+
interface AXPPropertyViewerGroup {
|
|
1636
|
+
name: string;
|
|
1637
|
+
title: string;
|
|
1638
|
+
isCollapsed: boolean;
|
|
1639
|
+
props: AXPWidgetProperty[];
|
|
1640
|
+
}
|
|
1641
|
+
interface AXPPropertyViewerTab {
|
|
1642
|
+
name: string;
|
|
1643
|
+
title: string;
|
|
1644
|
+
groups: AXPPropertyViewerGroup[];
|
|
1645
|
+
}
|
|
1646
|
+
interface AXPPropertyViewerChangedEvent {
|
|
1647
|
+
values: any;
|
|
1648
|
+
mode: 'init' | 'update';
|
|
1649
|
+
}
|
|
1650
|
+
/** Payload when the property viewer popup closes after Apply. */
|
|
1651
|
+
type AXPPropertyViewerResult = AXPPropertyViewerChangedEvent;
|
|
1652
|
+
/**
|
|
1653
|
+
* Dialog-style ref passed to property viewer `onAction` (same shape as the layout dialog `AXPDialogRef`).
|
|
1654
|
+
*/
|
|
1655
|
+
interface AXPPropertyViewerActionRef {
|
|
1656
|
+
close(): void;
|
|
1657
|
+
context(): any;
|
|
1658
|
+
action(): string | undefined;
|
|
1659
|
+
setLoading(loading: boolean): void;
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
declare class AXPPropertyViewerComponent {
|
|
1663
|
+
private readonly defaultMultiLanguageConfig;
|
|
1664
|
+
/**
|
|
1665
|
+
* List of tabs that should be rendered inside the property viewer.
|
|
1666
|
+
*/
|
|
1667
|
+
tabsInput: _angular_core.InputSignal<AXPPropertyViewerTab[]>;
|
|
1668
|
+
/**
|
|
1669
|
+
* Determines rendering mode.
|
|
1670
|
+
*/
|
|
1671
|
+
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
1672
|
+
/**
|
|
1673
|
+
* When a property uses binding expressions, controls how the expression is edited:
|
|
1674
|
+
* `inline` — code editor in the panel (default); `popup` — button that opens the dialog editor.
|
|
1675
|
+
*/
|
|
1676
|
+
bindingExpressionEditorMode: _angular_core.InputSignal<"inline" | "popup">;
|
|
1677
|
+
/**
|
|
1678
|
+
* Emits when property context changes.
|
|
1494
1679
|
*/
|
|
1495
1680
|
onChanged: EventEmitter<AXPPropertyViewerChangedEvent>;
|
|
1496
1681
|
protected currentTabIndex: WritableSignal<number>;
|
|
@@ -1716,87 +1901,338 @@ declare class AXPRepeaterRowsLayoutComponent {
|
|
|
1716
1901
|
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
1902
|
}
|
|
1718
1903
|
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1904
|
+
/** Scheduler appointment with optional provider tag for context menu routing. */
|
|
1905
|
+
type AppointmentWithProvider = AXSchedulerAppointment & {
|
|
1906
|
+
provider?: string;
|
|
1907
|
+
};
|
|
1908
|
+
declare class AXPResourceAppointmentComponent implements OnInit {
|
|
1909
|
+
/** Show resource headers in the timeline views. */
|
|
1910
|
+
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
1911
|
+
/** Show appointments that have no resourceId. */
|
|
1912
|
+
showUnassignedAppointments: _angular_core.InputSignal<boolean>;
|
|
1913
|
+
/** Optional provider name to filter the board (e.g. from route param). */
|
|
1914
|
+
providerName: _angular_core.InputSignal<string | undefined>;
|
|
1915
|
+
private readonly resourceAppointmentService;
|
|
1916
|
+
private readonly formatService;
|
|
1917
|
+
private readonly translateService;
|
|
1918
|
+
private readonly contextMenu;
|
|
1919
|
+
protected readonly schedulerRef: _angular_core.Signal<AXSchedulerComponent | undefined>;
|
|
1920
|
+
protected readonly isReady: _angular_core.WritableSignal<boolean>;
|
|
1921
|
+
protected readonly currentDate: _angular_core.WritableSignal<Date>;
|
|
1922
|
+
protected readonly currentView: _angular_core.WritableSignal<AXSchedulerView>;
|
|
1923
|
+
private readonly currentAppointment;
|
|
1924
|
+
/** Raw resources returned by providers. */
|
|
1925
|
+
private readonly rawResources;
|
|
1926
|
+
/** Scheduler resources derived from provider data. */
|
|
1927
|
+
protected readonly schedulerResources: _angular_core.Signal<AXSchedulerResource[]>;
|
|
1928
|
+
/** Flat list of scheduler appointments derived from provider data. */
|
|
1929
|
+
protected readonly schedulerAppointments: _angular_core.Signal<AppointmentWithProvider[]>;
|
|
1930
|
+
/** Formatted date range text for the toolbar. */
|
|
1931
|
+
protected readonly timeText: _angular_core.Signal<string>;
|
|
1724
1932
|
constructor();
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1933
|
+
ngOnInit(): Promise<void>;
|
|
1934
|
+
private resolveProvidersAndReady;
|
|
1935
|
+
/** Fetches resource + appointment data from providers and updates signals. */
|
|
1936
|
+
private loadData;
|
|
1937
|
+
/** Re-load data when the scheduler view range changes and sync toolbar date. */
|
|
1938
|
+
protected handleRangeChanged(range: AXSchedulerDateRange): void;
|
|
1939
|
+
/** Navigate to previous/next period based on current view. */
|
|
1940
|
+
protected changeDate(forward: boolean): void;
|
|
1941
|
+
/** Fallback formatted date range when scheduler ref is not yet available. */
|
|
1942
|
+
private formatCurrentDateRange;
|
|
1943
|
+
protected handleAppointmentClick(event: {
|
|
1944
|
+
appointment: AXSchedulerAppointment;
|
|
1945
|
+
nativeEvent: MouseEvent;
|
|
1946
|
+
}): void;
|
|
1947
|
+
protected handleContextMenuOpening(event: AXContextMenuOpeningEvent): Promise<void>;
|
|
1948
|
+
protected handleContextMenuItemClick(event: AXContextMenuItemsClickEvent): void;
|
|
1949
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPResourceAppointmentComponent, never>;
|
|
1950
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPResourceAppointmentComponent, "axp-resource-appointment", never, { "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "providerName": { "alias": "providerName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1730
1951
|
}
|
|
1731
1952
|
|
|
1732
1953
|
/**
|
|
1733
|
-
*
|
|
1954
|
+
* Minimal appointment data for resource appointment board.
|
|
1955
|
+
* Providers return this; the component converts to scheduler/task shape as needed.
|
|
1734
1956
|
*/
|
|
1735
|
-
interface
|
|
1736
|
-
id: string;
|
|
1957
|
+
interface AXPResourceAppointmentItem {
|
|
1958
|
+
readonly id: string | number;
|
|
1737
1959
|
title: string;
|
|
1960
|
+
startDate: Date;
|
|
1961
|
+
endDate: Date;
|
|
1962
|
+
resourceId?: string | number;
|
|
1738
1963
|
description?: string;
|
|
1739
|
-
|
|
1740
|
-
* Optional CSS class for cell styling (e.g., 'ax-bg-success-lightest ax-text-success' for green)
|
|
1741
|
-
* Used when this item is used as a cell value to color-code the cell
|
|
1742
|
-
* Allows proper control of both background and text colors
|
|
1743
|
-
*/
|
|
1744
|
-
cssClass?: string;
|
|
1964
|
+
allDay?: boolean;
|
|
1745
1965
|
}
|
|
1746
1966
|
/**
|
|
1747
|
-
* Represents
|
|
1748
|
-
*
|
|
1749
|
-
*/
|
|
1750
|
-
type AXPSpreadsheetCellValue = string | null;
|
|
1751
|
-
/**
|
|
1752
|
-
* Matrix data structure: { [rowId]: { [columnId]: cellValueId } }
|
|
1753
|
-
* cellValueId is the ID of an item from cellOptions
|
|
1967
|
+
* Represents a status option for the resource appointment board (e.g. column or filter).
|
|
1968
|
+
* Aligned with task board status shape for provider compatibility.
|
|
1754
1969
|
*/
|
|
1755
|
-
|
|
1970
|
+
interface AXPResourceAppointmentStatus {
|
|
1971
|
+
key: string;
|
|
1972
|
+
index: number;
|
|
1973
|
+
title: string;
|
|
1974
|
+
color?: string;
|
|
1975
|
+
}
|
|
1756
1976
|
/**
|
|
1757
|
-
*
|
|
1977
|
+
* Action menu item for resource appointment board with optional priority.
|
|
1978
|
+
* Primary actions are shown as icon-only buttons, secondary in a dropdown.
|
|
1758
1979
|
*/
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
/**
|
|
1765
|
-
* Display title for column header
|
|
1766
|
-
*/
|
|
1980
|
+
type AXPResourceAppointmentActionMenuItem = AXPActionMenuItem & {
|
|
1981
|
+
priority?: 'primary' | 'secondary';
|
|
1982
|
+
};
|
|
1983
|
+
interface AXPResourceAppointmentResource {
|
|
1984
|
+
readonly id: string | number;
|
|
1767
1985
|
title: string;
|
|
1768
|
-
/**
|
|
1769
|
-
* Optional description for column header
|
|
1770
|
-
*/
|
|
1771
1986
|
description?: string;
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
* Used to get/set values in row objects
|
|
1775
|
-
*/
|
|
1776
|
-
path: string;
|
|
1777
|
-
/**
|
|
1778
|
-
* Widget configuration for this column
|
|
1779
|
-
* All cells in this column will use this widget
|
|
1780
|
-
*/
|
|
1781
|
-
widget: AXPWidgetNode;
|
|
1782
|
-
/**
|
|
1783
|
-
* Optional column width
|
|
1784
|
-
*/
|
|
1785
|
-
width?: string;
|
|
1786
|
-
/**
|
|
1787
|
-
* Column-level readonly override
|
|
1788
|
-
*/
|
|
1789
|
-
readonly?: boolean;
|
|
1987
|
+
icon?: string;
|
|
1988
|
+
appointments: AXPResourceAppointmentItem[];
|
|
1790
1989
|
}
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
*/
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1990
|
+
interface AXPResourceAppointmentBoardFilter {
|
|
1991
|
+
range?: AXRange<Date>;
|
|
1992
|
+
statuses?: (string | number)[];
|
|
1993
|
+
resourceIds?: (string | number)[];
|
|
1994
|
+
/** When set, only these providers are queried. */
|
|
1995
|
+
providerNames?: string[];
|
|
1996
|
+
}
|
|
1997
|
+
declare abstract class AXPResourceAppointmentBoardProvider<T = Record<string, unknown>> {
|
|
1998
|
+
abstract get name(): string;
|
|
1999
|
+
abstract get title(): string;
|
|
2000
|
+
abstract get icon(): string;
|
|
2001
|
+
abstract getList(filter?: AXPResourceAppointmentBoardFilter): Promise<AXPResourceAppointmentResource[]>;
|
|
2002
|
+
abstract getStatuses(): Promise<AXPResourceAppointmentStatus[]>;
|
|
2003
|
+
abstract getActions(context?: AXPResourceAppointmentItem): Promise<AXPResourceAppointmentActionMenuItem[]>;
|
|
2004
|
+
abstract executeCommand(command: AXPExecuteCommand): Promise<AXPExecuteCommandResult>;
|
|
2005
|
+
}
|
|
2006
|
+
declare const AXP_RESOURCE_APPOINTMENT_PROVIDER: InjectionToken<AXPResourceAppointmentBoardProvider<Record<string, unknown>>[] | Promise<AXPResourceAppointmentBoardProvider<Record<string, unknown>>>[]>;
|
|
2007
|
+
|
|
2008
|
+
declare class AXPResourceAppointmentService {
|
|
2009
|
+
private readonly calendarService;
|
|
2010
|
+
private readonly providers;
|
|
2011
|
+
private resolvedProviders;
|
|
2012
|
+
refresh$: Subject<void>;
|
|
2013
|
+
/**
|
|
2014
|
+
* Resolves providers from injected AXP_RESOURCE_APPOINTMENT_PROVIDER.
|
|
2015
|
+
* The service must be provided in an injector that has access to the token (e.g. component providers).
|
|
2016
|
+
*/
|
|
2017
|
+
resolveProviders(): Promise<AXPResourceAppointmentBoardProvider[]>;
|
|
2018
|
+
getProviderTypes(): Promise<AXPResourceAppointmentBoardProvider[]>;
|
|
2019
|
+
getProvider(name: string | undefined): AXPResourceAppointmentBoardProvider | null;
|
|
2020
|
+
getList(filter?: AXPResourceAppointmentBoardFilter): Promise<AXPResourceAppointmentResource[]>;
|
|
2021
|
+
getStatuses(providerName: string): Promise<AXPResourceAppointmentStatus[]>;
|
|
2022
|
+
getActions(context: AXPResourceAppointmentItem | undefined, providerName: string): Promise<AXPResourceAppointmentActionMenuItem[]>;
|
|
2023
|
+
executeCommand(command: AXPExecuteCommand, providerName: string): Promise<AXPExecuteCommandResult>;
|
|
2024
|
+
rangeCalculator(type: string): AXRange<Date> | undefined;
|
|
2025
|
+
private findProvider;
|
|
2026
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPResourceAppointmentService, never>;
|
|
2027
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPResourceAppointmentService>;
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
/**
|
|
2031
|
+
* Host-owned item row. Required keys are stable; additional keys are persisted by the host mapper.
|
|
2032
|
+
*/
|
|
2033
|
+
interface AXPBuilderItem {
|
|
2034
|
+
id: string;
|
|
2035
|
+
order: number;
|
|
2036
|
+
[key: string]: unknown;
|
|
2037
|
+
}
|
|
2038
|
+
/**
|
|
2039
|
+
* Host-owned section. Items live under `items` (not nested host-specific names).
|
|
2040
|
+
*/
|
|
2041
|
+
interface AXPBuilderSection {
|
|
2042
|
+
id: string;
|
|
2043
|
+
order: number;
|
|
2044
|
+
items: AXPBuilderItem[];
|
|
2045
|
+
[key: string]: unknown;
|
|
2046
|
+
}
|
|
2047
|
+
interface AXPBuilderValue {
|
|
2048
|
+
sections: AXPBuilderSection[];
|
|
2049
|
+
}
|
|
2050
|
+
type AXPBuilderBadgeVariant = 'neutral' | 'accent' | 'warning' | 'danger' | 'success';
|
|
2051
|
+
interface AXPBuilderBadge {
|
|
2052
|
+
/** Translation key (e.g. `@general:...`) or plain text. */
|
|
2053
|
+
text: string;
|
|
2054
|
+
variant?: AXPBuilderBadgeVariant;
|
|
2055
|
+
}
|
|
2056
|
+
type AXPBuilderItemIconTone = 'default' | 'easy' | 'medium' | 'hard';
|
|
2057
|
+
/**
|
|
2058
|
+
* View model for one item row (icons, labels, badges). Built by {@link AXPBuilderDefinition.mapItemToView}.
|
|
2059
|
+
*/
|
|
2060
|
+
interface AXPBuilderItemViewModel {
|
|
2061
|
+
icon: string;
|
|
2062
|
+
iconTone?: AXPBuilderItemIconTone;
|
|
2063
|
+
title: string;
|
|
2064
|
+
name?: string;
|
|
2065
|
+
description?: string;
|
|
2066
|
+
badges: AXPBuilderBadge[];
|
|
2067
|
+
}
|
|
2068
|
+
interface AXPBuilderTexts {
|
|
2069
|
+
addSection: string;
|
|
2070
|
+
addItem: string;
|
|
2071
|
+
emptySectionsTitle: string;
|
|
2072
|
+
emptySectionsDescription: string;
|
|
2073
|
+
emptyItemsTitle: string;
|
|
2074
|
+
emptyItemsDescription: string;
|
|
2075
|
+
/** Shown when {@link AXPBuilderDefinition.isDefaultSection} is true */
|
|
2076
|
+
defaultSectionBadge?: string;
|
|
2077
|
+
}
|
|
2078
|
+
/**
|
|
2079
|
+
* Declarative configuration for {@link AXPSectionItemsBuilderComponent}.
|
|
2080
|
+
* Prompts return domain slices; the builder assigns `id` / `order` / `items` where needed.
|
|
2081
|
+
*/
|
|
2082
|
+
interface AXPBuilderDefinition {
|
|
2083
|
+
texts: AXPBuilderTexts;
|
|
2084
|
+
mapItemToView: (item: AXPBuilderItem, section: AXPBuilderSection) => AXPBuilderItemViewModel;
|
|
2085
|
+
/** When true, renders section technical `name` next to the title (parentheses). */
|
|
2086
|
+
showSectionTechnicalName?: boolean;
|
|
2087
|
+
isDefaultSection?(section: AXPBuilderSection): boolean;
|
|
2088
|
+
/** Minimum number of sections (default 1). */
|
|
2089
|
+
minSectionCount?: number;
|
|
2090
|
+
promptAddSection?(value: AXPBuilderValue): Promise<Record<string, unknown> | null>;
|
|
2091
|
+
promptEditSection?(section: AXPBuilderSection, value: AXPBuilderValue): Promise<Record<string, unknown> | null>;
|
|
2092
|
+
promptAddItems?(sectionId: string, value: AXPBuilderValue): Promise<AXPBuilderItem[] | null>;
|
|
2093
|
+
promptEditItem?(item: AXPBuilderItem, sectionId: string, value: AXPBuilderValue): Promise<AXPBuilderItem | null>;
|
|
2094
|
+
confirmRemoveSection?(section: AXPBuilderSection): Promise<boolean>;
|
|
2095
|
+
confirmRemoveItem?(item: AXPBuilderItem, sectionId: string): Promise<boolean>;
|
|
2096
|
+
}
|
|
2097
|
+
|
|
2098
|
+
declare class AXPSectionItemsBuilderComponent {
|
|
2099
|
+
/** Used in template to branch between escaped text and sanitized HTML. */
|
|
2100
|
+
protected readonly containsHtmlMarkup: typeof containsHtmlMarkup;
|
|
2101
|
+
readonly value: _angular_core.InputSignal<AXPBuilderValue>;
|
|
2102
|
+
readonly definition: _angular_core.InputSignal<AXPBuilderDefinition>;
|
|
2103
|
+
readonly readonlyMode: _angular_core.InputSignal<boolean>;
|
|
2104
|
+
readonly valueChange: _angular_core.OutputEmitterRef<AXPBuilderValue>;
|
|
2105
|
+
private readonly vm;
|
|
2106
|
+
protected readonly sectionsModel: _angular_core.Signal<AXPBuilderValue>;
|
|
2107
|
+
protected readonly sectionRows: _angular_core.Signal<{
|
|
2108
|
+
section: AXPBuilderSection;
|
|
2109
|
+
itemRows: {
|
|
2110
|
+
item: AXPBuilderItem;
|
|
2111
|
+
view: _acorex_platform_layout_components.AXPBuilderItemViewModel;
|
|
2112
|
+
}[];
|
|
2113
|
+
}[]>;
|
|
2114
|
+
protected readonly itemDropListIds: _angular_core.Signal<string[]>;
|
|
2115
|
+
protected readonly canRemoveSection: _angular_core.Signal<boolean>;
|
|
2116
|
+
constructor();
|
|
2117
|
+
/**
|
|
2118
|
+
* Opens add-section flow (same as primary "Add section" control). For page commands / ViewChild.
|
|
2119
|
+
*/
|
|
2120
|
+
addSection(): Promise<void>;
|
|
2121
|
+
protected onAddSectionClick(): Promise<void>;
|
|
2122
|
+
protected onEditSection(section: AXPBuilderSection): Promise<void>;
|
|
2123
|
+
protected onRemoveSection(section: AXPBuilderSection): Promise<void>;
|
|
2124
|
+
protected onAddItems(section: AXPBuilderSection): Promise<void>;
|
|
2125
|
+
protected onEditItem(item: AXPBuilderItem, sectionId: string): Promise<void>;
|
|
2126
|
+
protected onRemoveItem(item: AXPBuilderItem, sectionId: string): Promise<void>;
|
|
2127
|
+
protected onSectionDrop(event: CdkDragDrop<AXPBuilderSection[]>): void;
|
|
2128
|
+
protected onItemDrop(event: CdkDragDrop<AXPBuilderItem[]>, targetSectionId: string): void;
|
|
2129
|
+
protected sectionItemsListId(sectionId: string): string;
|
|
2130
|
+
protected parseSectionIdFromDropListId(listId: string): string | null;
|
|
2131
|
+
protected isDefaultSection(section: AXPBuilderSection): boolean;
|
|
2132
|
+
protected isTranslationKey(text: string): boolean;
|
|
2133
|
+
/** Tooltip for rich HTML rows: plain text, no tags. */
|
|
2134
|
+
protected tooltipPlainTextForHtml(html: string): string;
|
|
2135
|
+
/**
|
|
2136
|
+
* Prefer raw section fields for display so {@link AXPMultiLanguageString} maps are not
|
|
2137
|
+
* lost when {@link AXPBuilderDefinition#mapItemToView} stringifies them on items.
|
|
2138
|
+
*/
|
|
2139
|
+
protected sectionTitleValue(section: AXPBuilderSection): AXPMultiLanguageString | string;
|
|
2140
|
+
protected sectionNameValue(section: AXPBuilderSection): AXPMultiLanguageString | string | undefined;
|
|
2141
|
+
protected sectionDescriptionValue(section: AXPBuilderSection): AXPMultiLanguageString | string | undefined;
|
|
2142
|
+
/**
|
|
2143
|
+
* Resolves item title/name/description for display: use raw item values when present
|
|
2144
|
+
* (including ML maps); fall back to {@link AXPBuilderItemViewModel} only when needed.
|
|
2145
|
+
*/
|
|
2146
|
+
protected itemMultilingualField(item: AXPBuilderItem, field: 'title' | 'name' | 'description', viewFallback?: string | null): AXPMultiLanguageString | string;
|
|
2147
|
+
private commit;
|
|
2148
|
+
private normalizeValue;
|
|
2149
|
+
private reindexSections;
|
|
2150
|
+
private reindexItems;
|
|
2151
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSectionItemsBuilderComponent, never>;
|
|
2152
|
+
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>;
|
|
2153
|
+
}
|
|
2154
|
+
|
|
2155
|
+
declare class AXPQuerySortsComponent {
|
|
2156
|
+
sortDefinitions: _angular_core.ModelSignal<AXPSortDefinition[]>;
|
|
2157
|
+
sortQueries: _angular_core.WritableSignal<AXPSortQuery[]>;
|
|
2158
|
+
initialSortQueries: _angular_core.InputSignal<AXPSortQuery[]>;
|
|
2159
|
+
sortQueriesChange: _angular_core.OutputEmitterRef<AXPSortQuery[]>;
|
|
2160
|
+
constructor();
|
|
2161
|
+
protected drop(event: CdkDragDrop<unknown[]>): void;
|
|
2162
|
+
getSortDirection(item: AXPSortDefinition): "desc" | "asc" | undefined;
|
|
2163
|
+
protected changeItemSort(item: AXPSortDefinition): void;
|
|
2164
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQuerySortsComponent, never>;
|
|
2165
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQuerySortsComponent, "axp-query-sorts", never, { "sortDefinitions": { "alias": "sortDefinitions"; "required": false; "isSignal": true; }; "initialSortQueries": { "alias": "initialSortQueries"; "required": false; "isSignal": true; }; }, { "sortDefinitions": "sortDefinitionsChange"; "sortQueriesChange": "sortQueriesChange"; }, never, never, true, never>;
|
|
2166
|
+
}
|
|
2167
|
+
|
|
2168
|
+
/**
|
|
2169
|
+
* Represents a spreadsheet item (row or column header) with id, text, and optional description
|
|
2170
|
+
*/
|
|
2171
|
+
interface AXPSpreadsheetItem {
|
|
2172
|
+
id: string;
|
|
2173
|
+
title: string;
|
|
2174
|
+
description?: string;
|
|
2175
|
+
/**
|
|
2176
|
+
* Optional CSS class for cell styling (e.g., 'ax-bg-success-lightest ax-text-success' for green)
|
|
2177
|
+
* Used when this item is used as a cell value to color-code the cell
|
|
2178
|
+
* Allows proper control of both background and text colors
|
|
2179
|
+
*/
|
|
2180
|
+
cssClass?: string;
|
|
2181
|
+
}
|
|
2182
|
+
/**
|
|
2183
|
+
* Represents the value structure for spreadsheet cells
|
|
2184
|
+
* Stores only the ID reference to the item in cellOptions
|
|
2185
|
+
*/
|
|
2186
|
+
type AXPSpreadsheetCellValue = string | null;
|
|
2187
|
+
/**
|
|
2188
|
+
* Matrix data structure: { [rowId]: { [columnId]: cellValueId } }
|
|
2189
|
+
* cellValueId is the ID of an item from cellOptions
|
|
2190
|
+
*/
|
|
2191
|
+
type AXPSpreadsheetData = Record<string, Record<string, AXPSpreadsheetCellValue>>;
|
|
2192
|
+
/**
|
|
2193
|
+
* Represents a column definition in the spreadsheet
|
|
2194
|
+
*/
|
|
2195
|
+
interface AXPSpreadsheetColumn {
|
|
2196
|
+
/**
|
|
2197
|
+
* Column identifier (unique name)
|
|
2198
|
+
*/
|
|
2199
|
+
name: string;
|
|
2200
|
+
/**
|
|
2201
|
+
* Display title for column header
|
|
2202
|
+
*/
|
|
2203
|
+
title: string;
|
|
2204
|
+
/**
|
|
2205
|
+
* Optional description for column header
|
|
2206
|
+
*/
|
|
2207
|
+
description?: string;
|
|
2208
|
+
/**
|
|
2209
|
+
* Path to access row property (e.g., 'user.name', 'age')
|
|
2210
|
+
* Used to get/set values in row objects
|
|
2211
|
+
*/
|
|
2212
|
+
path: string;
|
|
2213
|
+
/**
|
|
2214
|
+
* Widget configuration for this column
|
|
2215
|
+
* All cells in this column will use this widget
|
|
2216
|
+
*/
|
|
2217
|
+
widget: AXPWidgetNode;
|
|
2218
|
+
/**
|
|
2219
|
+
* Optional column width
|
|
2220
|
+
*/
|
|
2221
|
+
width?: string;
|
|
2222
|
+
/**
|
|
2223
|
+
* Column-level readonly override
|
|
2224
|
+
*/
|
|
2225
|
+
readonly?: boolean;
|
|
2226
|
+
}
|
|
2227
|
+
/**
|
|
2228
|
+
* Spreadsheet row mode
|
|
2229
|
+
* - 'fixed': Rows are provided as input, cannot add/remove (like matrix)
|
|
2230
|
+
* - 'dynamic': Users can add/remove rows dynamically (like Excel)
|
|
2231
|
+
*/
|
|
2232
|
+
type AXPSpreadsheetRowMode = 'fixed' | 'dynamic';
|
|
2233
|
+
/**
|
|
2234
|
+
* Event emitted when a single cell value changes
|
|
2235
|
+
*/
|
|
1800
2236
|
interface AXPSpreadsheetCellChangeEvent {
|
|
1801
2237
|
/**
|
|
1802
2238
|
* Row identifier (name for fixed mode, generated ID for dynamic mode)
|
|
@@ -2065,16 +2501,84 @@ declare class AXPSpreadsheetComponent {
|
|
|
2065
2501
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSpreadsheetComponent, "axp-spreadsheet", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowMode": { "alias": "rowMode"; "required": false; "isSignal": true; }; "rowsInput": { "alias": "rowsInput"; "required": false; "isSignal": true; }; "rowsModel": { "alias": "rowsModel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "emptyCellPlaceholder": { "alias": "emptyCellPlaceholder"; "required": false; "isSignal": true; }; "rowTitlePath": { "alias": "rowTitlePath"; "required": false; "isSignal": true; }; "rowDescriptionPath": { "alias": "rowDescriptionPath"; "required": false; "isSignal": true; }; "allowAddRows": { "alias": "allowAddRows"; "required": false; "isSignal": true; }; "allowRemoveRows": { "alias": "allowRemoveRows"; "required": false; "isSignal": true; }; }, { "rowsModel": "rowsModelChange"; "cellChange": "cellChange"; "rowChange": "rowChange"; "spreadsheetChange": "spreadsheetChange"; }, never, never, true, never>;
|
|
2066
2502
|
}
|
|
2067
2503
|
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2504
|
+
/**
|
|
2505
|
+
* Host configuration for {@link AXPStandardSectionItemsBuilderComponent}.
|
|
2506
|
+
* Section add/edit UI (identity, content, visibility) and delete prompts are standardized;
|
|
2507
|
+
* item flows stay host-specific.
|
|
2508
|
+
*/
|
|
2509
|
+
interface AXPStandardSectionItemsBuilderConfig {
|
|
2510
|
+
mapItemToView: AXPBuilderDefinition['mapItemToView'];
|
|
2511
|
+
/** When set, used instead of the built-in section add dialog. */
|
|
2512
|
+
promptAddSection?: AXPBuilderDefinition['promptAddSection'];
|
|
2513
|
+
/** When set, used instead of the built-in section edit dialog. */
|
|
2514
|
+
promptEditSection?: AXPBuilderDefinition['promptEditSection'];
|
|
2515
|
+
promptAddItems?: AXPBuilderDefinition['promptAddItems'];
|
|
2516
|
+
promptEditItem?: AXPBuilderDefinition['promptEditItem'];
|
|
2517
|
+
/** Merged over built-in empty-state / action labels */
|
|
2518
|
+
texts?: Partial<AXPBuilderTexts>;
|
|
2519
|
+
showSectionTechnicalName?: boolean;
|
|
2520
|
+
isDefaultSection?: AXPBuilderDefinition['isDefaultSection'];
|
|
2521
|
+
minSectionCount?: number;
|
|
2522
|
+
/**
|
|
2523
|
+
* Property viewer tabs for section add/edit.
|
|
2524
|
+
* Default: {@link STANDARD_SECTION_ITEMS_SECTION_TABS}.
|
|
2525
|
+
*/
|
|
2526
|
+
sectionEditTabs?: AXPPropertyViewerTab[];
|
|
2527
|
+
/** Override default delete-section confirmation. */
|
|
2528
|
+
confirmRemoveSection?: AXPBuilderDefinition['confirmRemoveSection'];
|
|
2529
|
+
/** Override default delete-item confirmation. */
|
|
2530
|
+
confirmRemoveItem?: AXPBuilderDefinition['confirmRemoveItem'];
|
|
2531
|
+
}
|
|
2532
|
+
/** Context shape bound to the default section property viewer (paths match keys). */
|
|
2533
|
+
interface AXPStandardSectionFormContext {
|
|
2534
|
+
/** Unique technical name (section `name` in the builder model). */
|
|
2535
|
+
name?: string;
|
|
2536
|
+
tags?: unknown;
|
|
2537
|
+
title?: string | AXPMultiLanguageString;
|
|
2538
|
+
description?: string | AXPMultiLanguageString;
|
|
2539
|
+
isVisible?: boolean;
|
|
2540
|
+
}
|
|
2541
|
+
|
|
2542
|
+
/**
|
|
2543
|
+
* Default section editor: Identity (name, tags), Content (title, description), Visibility.
|
|
2544
|
+
*/
|
|
2545
|
+
declare const STANDARD_SECTION_ITEMS_SECTION_TABS: AXPPropertyViewerTab[];
|
|
2546
|
+
|
|
2547
|
+
declare class AXPStandardSectionItemsBuilderComponent {
|
|
2548
|
+
readonly value: _angular_core.InputSignal<AXPBuilderValue>;
|
|
2549
|
+
readonly config: _angular_core.InputSignal<AXPStandardSectionItemsBuilderConfig>;
|
|
2550
|
+
readonly readonlyMode: _angular_core.InputSignal<boolean>;
|
|
2551
|
+
readonly valueChange: _angular_core.OutputEmitterRef<AXPBuilderValue>;
|
|
2552
|
+
private readonly inner;
|
|
2553
|
+
private readonly dialogService;
|
|
2554
|
+
private readonly translationService;
|
|
2555
|
+
private readonly propertyViewerService;
|
|
2556
|
+
protected readonly mergedDefinition: _angular_core.Signal<AXPBuilderDefinition>;
|
|
2557
|
+
/** Same entry as page commands / toolbar: open standardized add-section dialog. */
|
|
2558
|
+
addSection(): Promise<void>;
|
|
2559
|
+
private isDuplicateSectionName;
|
|
2560
|
+
/**
|
|
2561
|
+
* `AXPBuilderSection` uses `[key: string]: unknown`; cast to form-bound type without resolving ML.
|
|
2562
|
+
*/
|
|
2563
|
+
private sectionFieldForForm;
|
|
2564
|
+
private buildSectionContext;
|
|
2565
|
+
private openSectionDialog;
|
|
2566
|
+
private defaultConfirmRemoveSection;
|
|
2567
|
+
private defaultConfirmRemoveItem;
|
|
2568
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPStandardSectionItemsBuilderComponent, never>;
|
|
2569
|
+
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>;
|
|
2570
|
+
}
|
|
2571
|
+
|
|
2572
|
+
type StateMode = 'empty' | 'error' | 'loading' | 'warning' | 'info' | 'success';
|
|
2573
|
+
declare class AXPStateMessageComponent {
|
|
2574
|
+
mode: _angular_core.InputSignal<StateMode>;
|
|
2575
|
+
icon: _angular_core.InputSignal<string>;
|
|
2576
|
+
title: _angular_core.InputSignal<string>;
|
|
2577
|
+
description: _angular_core.InputSignal<string>;
|
|
2578
|
+
look: _angular_core.InputSignal<"default" | "compact" | "minimal">;
|
|
2579
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPStateMessageComponent, never>;
|
|
2580
|
+
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; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=actions]"], true, never>;
|
|
2581
|
+
}
|
|
2078
2582
|
|
|
2079
2583
|
declare class AXPStopwatchComponent implements OnDestroy {
|
|
2080
2584
|
mode: _angular_core.InputSignal<"count-up" | "count-down">;
|
|
@@ -2247,37 +2751,6 @@ declare class AXPTemplateViewerService {
|
|
|
2247
2751
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTemplateViewerService>;
|
|
2248
2752
|
}
|
|
2249
2753
|
|
|
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
2754
|
type AXPUserAvatarSize = 'small' | 'medium' | 'large';
|
|
2282
2755
|
type AXPUserAvatarStatus = 'online' | 'offline';
|
|
2283
2756
|
type AXPUserAvatarData = {
|
|
@@ -2373,68 +2846,6 @@ declare class AXPQueryViewsComponent {
|
|
|
2373
2846
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryViewsComponent, "axp-query-views", never, { "views": { "alias": "views"; "required": false; "isSignal": true; }; "selectedView": { "alias": "selectedView"; "required": true; "isSignal": true; }; }, { "views": "viewsChange"; "selectedView": "selectedViewChange"; }, never, never, true, never>;
|
|
2374
2847
|
}
|
|
2375
2848
|
|
|
2376
|
-
/**
|
|
2377
|
-
* One selectable entry for {@link AXPItemConfiguratorComponent}.
|
|
2378
|
-
* Parents map external data into this shape. {@link propertyDefinitions} drive {@link AXPPropertyViewerService} tabs.
|
|
2379
|
-
*/
|
|
2380
|
-
interface ItemConfiguratorListItem {
|
|
2381
|
-
id: string;
|
|
2382
|
-
/** Shown in the list and in the configure dialog title; plain string, i18n key, or locale map. */
|
|
2383
|
-
title: AXPMultiLanguageString;
|
|
2384
|
-
icon?: string;
|
|
2385
|
-
description?: AXPMultiLanguageString;
|
|
2386
|
-
propertyDefinitions?: AXPWidgetProperty[];
|
|
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>>;
|
|
2403
|
-
label: _angular_core.InputSignal<string>;
|
|
2404
|
-
readonly: _angular_core.InputSignal<boolean>;
|
|
2405
|
-
items: _angular_core.InputSignal<ItemConfiguratorListItem[]>;
|
|
2406
|
-
headerActions: _angular_core.InputSignal<AXPActionMenuItem[]>;
|
|
2407
|
-
private readonly propertyViewerService;
|
|
2408
|
-
private readonly translationService;
|
|
2409
|
-
private readonly workflow;
|
|
2410
|
-
private readonly commandExecutor;
|
|
2411
|
-
protected isEditMode: _angular_core.WritableSignal<boolean>;
|
|
2412
|
-
protected availableItems: _angular_core.Signal<ItemConfiguratorSelectRow[]>;
|
|
2413
|
-
protected selectedListItem: _angular_core.Signal<ItemConfiguratorListItem | null>;
|
|
2414
|
-
protected resolvedPropertyDefinitions: _angular_core.Signal<AXPWidgetProperty[]>;
|
|
2415
|
-
protected currentItemConfig: _angular_core.Signal<{
|
|
2416
|
-
title: string;
|
|
2417
|
-
description: _acorex_core_translation.AXMultiLanguageString | undefined;
|
|
2418
|
-
icon: string | undefined;
|
|
2419
|
-
hasProperties: boolean;
|
|
2420
|
-
} | null>;
|
|
2421
|
-
protected canConfigure: _angular_core.Signal<boolean>;
|
|
2422
|
-
protected isConfigured: _angular_core.Signal<boolean>;
|
|
2423
|
-
protected visibleHeaderActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
2424
|
-
protected itemSelectBox: _angular_core.Signal<AXSelectBoxComponent | undefined>;
|
|
2425
|
-
protected enterEditMode(): void;
|
|
2426
|
-
protected exitEditMode(): void;
|
|
2427
|
-
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
2849
|
/**
|
|
2439
2850
|
* Widget field configurator for entity forms: composes {@link AXPItemConfiguratorComponent} with
|
|
2440
2851
|
* {@link AXPWidgetRegistryService} list items and widget preview.
|
|
@@ -2656,324 +3067,5 @@ declare class AXPWidgetPropertyViewerService {
|
|
|
2656
3067
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetPropertyViewerService>;
|
|
2657
3068
|
}
|
|
2658
3069
|
|
|
2659
|
-
|
|
2660
|
-
type
|
|
2661
|
-
provider?: string;
|
|
2662
|
-
};
|
|
2663
|
-
declare class AXPResourceAppointmentComponent implements OnInit {
|
|
2664
|
-
/** Show resource headers in the timeline views. */
|
|
2665
|
-
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
2666
|
-
/** Show appointments that have no resourceId. */
|
|
2667
|
-
showUnassignedAppointments: _angular_core.InputSignal<boolean>;
|
|
2668
|
-
/** Optional provider name to filter the board (e.g. from route param). */
|
|
2669
|
-
providerName: _angular_core.InputSignal<string | undefined>;
|
|
2670
|
-
private readonly resourceAppointmentService;
|
|
2671
|
-
private readonly formatService;
|
|
2672
|
-
private readonly translateService;
|
|
2673
|
-
private readonly contextMenu;
|
|
2674
|
-
protected readonly schedulerRef: _angular_core.Signal<AXSchedulerComponent | undefined>;
|
|
2675
|
-
protected readonly isReady: _angular_core.WritableSignal<boolean>;
|
|
2676
|
-
protected readonly currentDate: _angular_core.WritableSignal<Date>;
|
|
2677
|
-
protected readonly currentView: _angular_core.WritableSignal<AXSchedulerView>;
|
|
2678
|
-
private readonly currentAppointment;
|
|
2679
|
-
/** Raw resources returned by providers. */
|
|
2680
|
-
private readonly rawResources;
|
|
2681
|
-
/** Scheduler resources derived from provider data. */
|
|
2682
|
-
protected readonly schedulerResources: _angular_core.Signal<AXSchedulerResource[]>;
|
|
2683
|
-
/** Flat list of scheduler appointments derived from provider data. */
|
|
2684
|
-
protected readonly schedulerAppointments: _angular_core.Signal<AppointmentWithProvider[]>;
|
|
2685
|
-
/** Formatted date range text for the toolbar. */
|
|
2686
|
-
protected readonly timeText: _angular_core.Signal<string>;
|
|
2687
|
-
constructor();
|
|
2688
|
-
ngOnInit(): Promise<void>;
|
|
2689
|
-
private resolveProvidersAndReady;
|
|
2690
|
-
/** Fetches resource + appointment data from providers and updates signals. */
|
|
2691
|
-
private loadData;
|
|
2692
|
-
/** Re-load data when the scheduler view range changes and sync toolbar date. */
|
|
2693
|
-
protected handleRangeChanged(range: AXSchedulerDateRange): void;
|
|
2694
|
-
/** Navigate to previous/next period based on current view. */
|
|
2695
|
-
protected changeDate(forward: boolean): void;
|
|
2696
|
-
/** Fallback formatted date range when scheduler ref is not yet available. */
|
|
2697
|
-
private formatCurrentDateRange;
|
|
2698
|
-
protected handleAppointmentClick(event: {
|
|
2699
|
-
appointment: AXSchedulerAppointment;
|
|
2700
|
-
nativeEvent: MouseEvent;
|
|
2701
|
-
}): void;
|
|
2702
|
-
protected handleContextMenuOpening(event: AXContextMenuOpeningEvent): Promise<void>;
|
|
2703
|
-
protected handleContextMenuItemClick(event: AXContextMenuItemsClickEvent): void;
|
|
2704
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPResourceAppointmentComponent, never>;
|
|
2705
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPResourceAppointmentComponent, "axp-resource-appointment", never, { "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "providerName": { "alias": "providerName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2706
|
-
}
|
|
2707
|
-
|
|
2708
|
-
/**
|
|
2709
|
-
* Minimal appointment data for resource appointment board.
|
|
2710
|
-
* Providers return this; the component converts to scheduler/task shape as needed.
|
|
2711
|
-
*/
|
|
2712
|
-
interface AXPResourceAppointmentItem {
|
|
2713
|
-
readonly id: string | number;
|
|
2714
|
-
title: string;
|
|
2715
|
-
startDate: Date;
|
|
2716
|
-
endDate: Date;
|
|
2717
|
-
resourceId?: string | number;
|
|
2718
|
-
description?: string;
|
|
2719
|
-
allDay?: boolean;
|
|
2720
|
-
}
|
|
2721
|
-
/**
|
|
2722
|
-
* Represents a status option for the resource appointment board (e.g. column or filter).
|
|
2723
|
-
* Aligned with task board status shape for provider compatibility.
|
|
2724
|
-
*/
|
|
2725
|
-
interface AXPResourceAppointmentStatus {
|
|
2726
|
-
key: string;
|
|
2727
|
-
index: number;
|
|
2728
|
-
title: string;
|
|
2729
|
-
color?: string;
|
|
2730
|
-
}
|
|
2731
|
-
/**
|
|
2732
|
-
* Action menu item for resource appointment board with optional priority.
|
|
2733
|
-
* Primary actions are shown as icon-only buttons, secondary in a dropdown.
|
|
2734
|
-
*/
|
|
2735
|
-
type AXPResourceAppointmentActionMenuItem = AXPActionMenuItem & {
|
|
2736
|
-
priority?: 'primary' | 'secondary';
|
|
2737
|
-
};
|
|
2738
|
-
interface AXPResourceAppointmentResource {
|
|
2739
|
-
readonly id: string | number;
|
|
2740
|
-
title: string;
|
|
2741
|
-
description?: string;
|
|
2742
|
-
icon?: string;
|
|
2743
|
-
appointments: AXPResourceAppointmentItem[];
|
|
2744
|
-
}
|
|
2745
|
-
interface AXPResourceAppointmentBoardFilter {
|
|
2746
|
-
range?: AXRange<Date>;
|
|
2747
|
-
statuses?: (string | number)[];
|
|
2748
|
-
resourceIds?: (string | number)[];
|
|
2749
|
-
/** When set, only these providers are queried. */
|
|
2750
|
-
providerNames?: string[];
|
|
2751
|
-
}
|
|
2752
|
-
declare abstract class AXPResourceAppointmentBoardProvider<T = Record<string, unknown>> {
|
|
2753
|
-
abstract get name(): string;
|
|
2754
|
-
abstract get title(): string;
|
|
2755
|
-
abstract get icon(): string;
|
|
2756
|
-
abstract getList(filter?: AXPResourceAppointmentBoardFilter): Promise<AXPResourceAppointmentResource[]>;
|
|
2757
|
-
abstract getStatuses(): Promise<AXPResourceAppointmentStatus[]>;
|
|
2758
|
-
abstract getActions(context?: AXPResourceAppointmentItem): Promise<AXPResourceAppointmentActionMenuItem[]>;
|
|
2759
|
-
abstract executeCommand(command: AXPExecuteCommand): Promise<AXPExecuteCommandResult>;
|
|
2760
|
-
}
|
|
2761
|
-
declare const AXP_RESOURCE_APPOINTMENT_PROVIDER: InjectionToken<AXPResourceAppointmentBoardProvider<Record<string, unknown>>[] | Promise<AXPResourceAppointmentBoardProvider<Record<string, unknown>>>[]>;
|
|
2762
|
-
|
|
2763
|
-
declare class AXPResourceAppointmentService {
|
|
2764
|
-
private readonly calendarService;
|
|
2765
|
-
private readonly providers;
|
|
2766
|
-
private resolvedProviders;
|
|
2767
|
-
refresh$: Subject<void>;
|
|
2768
|
-
/**
|
|
2769
|
-
* Resolves providers from injected AXP_RESOURCE_APPOINTMENT_PROVIDER.
|
|
2770
|
-
* The service must be provided in an injector that has access to the token (e.g. component providers).
|
|
2771
|
-
*/
|
|
2772
|
-
resolveProviders(): Promise<AXPResourceAppointmentBoardProvider[]>;
|
|
2773
|
-
getProviderTypes(): Promise<AXPResourceAppointmentBoardProvider[]>;
|
|
2774
|
-
getProvider(name: string | undefined): AXPResourceAppointmentBoardProvider | null;
|
|
2775
|
-
getList(filter?: AXPResourceAppointmentBoardFilter): Promise<AXPResourceAppointmentResource[]>;
|
|
2776
|
-
getStatuses(providerName: string): Promise<AXPResourceAppointmentStatus[]>;
|
|
2777
|
-
getActions(context: AXPResourceAppointmentItem | undefined, providerName: string): Promise<AXPResourceAppointmentActionMenuItem[]>;
|
|
2778
|
-
executeCommand(command: AXPExecuteCommand, providerName: string): Promise<AXPExecuteCommandResult>;
|
|
2779
|
-
rangeCalculator(type: string): AXRange<Date> | undefined;
|
|
2780
|
-
private findProvider;
|
|
2781
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPResourceAppointmentService, never>;
|
|
2782
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPResourceAppointmentService>;
|
|
2783
|
-
}
|
|
2784
|
-
|
|
2785
|
-
/**
|
|
2786
|
-
* Host-owned item row. Required keys are stable; additional keys are persisted by the host mapper.
|
|
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 };
|
|
3070
|
+
export { AXPActivityLogComponent, AXPAvatarComponent, AXPCategoryTreeComponent, AXPColorPalettePickerComponent, AXPColumnItemListComponent, AXPCompareViewComponent, AXPConditionBuilderComponent, AXPConditionBuilderConditionComponent, AXPDataSelectorComponent, AXPDataSelectorService, AXPDragDropListComponent, AXPExpressionFieldDefinitions, AXPImageEditorPopupComponent, AXPImageEditorService, AXPItemConfiguratorComponent, AXPLayoutFloatingZoomBarComponent, AXPLayoutSideDetailPanelComponent, AXPLayoutSideDetailPanelSectionDirective, 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 };
|
|
3071
|
+
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, AXPLayoutSideDetailPanelEmptyState, AXPLayoutSideDetailPanelHeader, AXPLayoutSideDetailPanelHeaderIcon, AXPLayoutSideDetailPanelRow, AXPLayoutSideDetailPanelRowFormat, AXPLayoutSideDetailPanelSection, 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 };
|