@acorex/platform 20.9.8 → 20.9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "20.9.8",
3
+ "version": "20.9.10",
4
4
  "peerDependencies": {
5
5
  "@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.3-next.0",
6
6
  "@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.3-next.0",
@@ -781,6 +781,7 @@ interface AXPGroupSearchResult {
781
781
  interface AXPSettingsServiceInterface {
782
782
  load(): Promise<AXPSettingValue[]>;
783
783
  get<T = any>(key: string): Promise<T>;
784
+ peekCached(key: string): unknown | undefined;
784
785
  defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
785
786
  scope(scope: AXPPlatformScope): ScopedSettingService;
786
787
  }
@@ -802,6 +803,11 @@ declare class AXPSettingsService implements AXPSettingsServiceInterface {
802
803
  * it is not read at runtime—use it to document the expected result (e.g. `get<boolean>(key)`).
803
804
  */
804
805
  get<T = any>(key: string): Promise<T>;
806
+ /**
807
+ * Synchronous read from the in-memory scope cache (User → Tenant → Platform).
808
+ * Returns `undefined` when the key is not cached yet (e.g. before {@link load} completes).
809
+ */
810
+ peekCached(key: string): unknown | undefined;
805
811
  /**
806
812
  * Effective value (user → tenant → platform) when set; otherwise the definition default. Used for reads and coercion hints.
807
813
  */
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, QueryList, Type, EventEmitter, WritableSignal } from '@angular/core';
2
+ import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, OnChanges, EventEmitter, QueryList, Type, WritableSignal } from '@angular/core';
3
3
  import * as _acorex_platform_contracts from '@acorex/platform/contracts';
4
4
  import { AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPWidgetNode, AXPContextData, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPContextChangeEvent, AXPMultiLanguageString, AXPActionMenuItem, AXPExecuteCommand, AXPExecuteCommandResult, containsHtmlMarkup, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery } from '@acorex/platform/contracts';
5
5
  import { AXPActivityLog } from '@acorex/platform/core';
@@ -10,7 +10,7 @@ import { AXPMenuItem } from '@acorex/platform/common';
10
10
  import { AXTreeViewLegacyComponent, AXTreeItemClickBaseEventLegacy } from '@acorex/components/tree-view-legacy';
11
11
  import { AXPopoverComponent } from '@acorex/components/popover';
12
12
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
13
- import { AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXDataTableRowClick, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
13
+ import { AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXDataTableRowClick, AXRowCommandItemClickEvent, AXDataTableColumnComponent } from '@acorex/components/data-table';
14
14
  import { AXBasePageComponent } from '@acorex/components/page';
15
15
  import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
16
16
  import { AXTagBoxComponent } from '@acorex/components/tag-box';
@@ -712,6 +712,45 @@ declare class AXPDataSelectorService {
712
712
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataSelectorService>;
713
713
  }
714
714
 
715
+ interface AXPTextCommandColumnClickEvent {
716
+ data: Record<string, unknown>;
717
+ textField: string;
718
+ }
719
+ /**
720
+ * Data-table column that renders a field value as a clickable text link and emits a command event on click.
721
+ */
722
+ declare class AXPTextCommandColumnComponent extends AXDataTableColumnComponent implements OnInit, OnChanges {
723
+ caption: string;
724
+ /** Row field path used to resolve the link label. */
725
+ textField: string;
726
+ customWidth?: string;
727
+ columnFixed?: 'start' | 'end';
728
+ footerTemplate?: TemplateRef<unknown>;
729
+ sortEnabled: boolean;
730
+ headerSortDirection?: 'asc' | 'desc';
731
+ headerSortPriority?: number;
732
+ disabled: boolean;
733
+ emptyDisplay: string;
734
+ readonly commandClick: EventEmitter<AXPTextCommandColumnClickEvent>;
735
+ readonly sortToggle: EventEmitter<MouseEvent>;
736
+ headerTemplate: TemplateRef<unknown>;
737
+ cellTemplate: TemplateRef<unknown>;
738
+ private contentFooterTemplate;
739
+ get loadingEnabled(): boolean;
740
+ get name(): string;
741
+ get renderFooterTemplate(): TemplateRef<unknown>;
742
+ get renderHeaderTemplate(): TemplateRef<unknown>;
743
+ get renderCellTemplate(): TemplateRef<unknown>;
744
+ ngOnInit(): void;
745
+ ngOnChanges(): void;
746
+ protected resolveLabel(rowData: Record<string, unknown>): string | null;
747
+ protected handleClick(rowData: Record<string, unknown>): void;
748
+ protected onHeaderClick(event: MouseEvent): void;
749
+ private syncColumnState;
750
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTextCommandColumnComponent, never>;
751
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPTextCommandColumnComponent, "axp-text-command-column", never, { "caption": { "alias": "caption"; "required": true; }; "textField": { "alias": "textField"; "required": true; }; "customWidth": { "alias": "customWidth"; "required": false; }; "columnFixed": { "alias": "columnFixed"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "sortEnabled": { "alias": "sortEnabled"; "required": false; }; "headerSortDirection": { "alias": "headerSortDirection"; "required": false; }; "headerSortPriority": { "alias": "headerSortPriority"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "emptyDisplay": { "alias": "emptyDisplay"; "required": false; }; }, { "commandClick": "commandClick"; "sortToggle": "sortToggle"; }, never, never, true, never>;
752
+ }
753
+
715
754
  interface AXPDragDropListItem {
716
755
  id: string;
717
756
  content: string;
@@ -2406,7 +2445,7 @@ declare class AXPQuerySortsComponent {
2406
2445
  constructor();
2407
2446
  private emitActiveSortQueries;
2408
2447
  protected drop(event: CdkDragDrop<unknown[]>): void;
2409
- getSortDirection(item: AXPSortDefinition): "desc" | "asc" | undefined;
2448
+ getSortDirection(item: AXPSortDefinition): "asc" | "desc" | undefined;
2410
2449
  protected changeItemSort(item: AXPSortDefinition): void;
2411
2450
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQuerySortsComponent, never>;
2412
2451
  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>;
@@ -3362,5 +3401,5 @@ declare class AXPWidgetPropertyViewerService {
3362
3401
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetPropertyViewerService>;
3363
3402
  }
3364
3403
 
3365
- 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, AXPOutcomeResultsViewerComponent, AXPPageComponentRegistryService, AXPPreloadFiltersComponent, AXPPropertyViewerComponent, AXPPropertyViewerPopupComponent, AXPPropertyViewerService, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, AXPRepeaterRowsLayoutComponent, AXPResourceAppointmentBoardProvider, AXPResourceAppointmentComponent, AXPResourceAppointmentService, AXPSectionItemsBuilderComponent, AXPSignatureEditorService, 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, AXPVirtualKeypadComponent, 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 };
3366
- export type { AXPBuilderBadge, AXPBuilderBadgeVariant, AXPBuilderDefinition, AXPBuilderItem, AXPBuilderItemIconTone, AXPBuilderItemViewModel, AXPBuilderSection, AXPBuilderTexts, AXPBuilderValue, AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPDataSelectorAllowCreate, AXPDataSelectorCategoryConfig, AXPDataSelectorCategoryFilterConfig, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDataSelectorCreateConfig, AXPDataSelectorFilterConfig, AXPDataSelectorGridConfig, AXPDataSelectorRowActionItem, AXPDataSelectorRowActionsHandler, AXPDataSelectorSearchConfig, AXPDataSelectorSearchField, AXPDataSelectorSelectionConfig, 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, AXPOutcomeResultRow, AXPOutcomeResultSection, AXPOutcomeResultValuePresentation, AXPOutcomeResultsViewModel, AXPPageComponentDefinition, AXPPageComponentProvider, AXPPreloadFiltersApplyEvent, AXPPropertyViewerActionRef, AXPPropertyViewerChangedEvent, AXPPropertyViewerConfig, AXPPropertyViewerGroup, AXPPropertyViewerResult, AXPPropertyViewerTab, AXPResourceAppointmentActionMenuItem, AXPResourceAppointmentBoardFilter, AXPResourceAppointmentItem, AXPResourceAppointmentResource, AXPResourceAppointmentStatus, AXPSignatureEditorAction, AXPSignatureEditorOpenOptions, AXPSignatureEditorResult, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetCellValue, AXPSpreadsheetColumn, AXPSpreadsheetConfig, AXPSpreadsheetData, AXPSpreadsheetItem, AXPSpreadsheetRowChangeEvent, AXPSpreadsheetRowMode, AXPStandardSectionFormContext, AXPStandardSectionItemsBuilderConfig, AXPTableColumnDefinition, AXPTableColumnsEditorOpenOptions, AXPTableDataEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPVirtualKeypadAction, AXPVirtualKeypadKey, AXPVirtualKeypadLook, AXPVirtualKeypadPressEvent, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyInjection, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, ConditionBuilderSelectedField, IAXPPropertyViewerDialogBuilder, IAXPPropertyViewerRoot, IAXPWidgetPropertyViewerDialogBuilder, IAXPWidgetPropertyViewerRoot, ItemConfiguratorListItem, StateMode };
3404
+ 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, AXPOutcomeResultsViewerComponent, AXPPageComponentRegistryService, AXPPreloadFiltersComponent, AXPPropertyViewerComponent, AXPPropertyViewerPopupComponent, AXPPropertyViewerService, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, AXPRepeaterRowsLayoutComponent, AXPResourceAppointmentBoardProvider, AXPResourceAppointmentComponent, AXPResourceAppointmentService, AXPSectionItemsBuilderComponent, AXPSignatureEditorService, AXPSpreadsheetComponent, AXPStandardSectionItemsBuilderComponent, AXPStateMessageComponent, AXPStopwatchComponent, AXPTableColumnsEditorComponent, AXPTableColumnsEditorPopupComponent, AXPTableColumnsEditorService, AXPTableDataEditorComponent, AXPTableDataEditorPopupComponent, AXPTableDataEditorService, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPTemplateViewerComponent, AXPTemplateViewerService, AXPTextCommandColumnComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPVirtualKeypadComponent, 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 };
3405
+ export type { AXPBuilderBadge, AXPBuilderBadgeVariant, AXPBuilderDefinition, AXPBuilderItem, AXPBuilderItemIconTone, AXPBuilderItemViewModel, AXPBuilderSection, AXPBuilderTexts, AXPBuilderValue, AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPDataSelectorAllowCreate, AXPDataSelectorCategoryConfig, AXPDataSelectorCategoryFilterConfig, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDataSelectorCreateConfig, AXPDataSelectorFilterConfig, AXPDataSelectorGridConfig, AXPDataSelectorRowActionItem, AXPDataSelectorRowActionsHandler, AXPDataSelectorSearchConfig, AXPDataSelectorSearchField, AXPDataSelectorSelectionConfig, 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, AXPOutcomeResultRow, AXPOutcomeResultSection, AXPOutcomeResultValuePresentation, AXPOutcomeResultsViewModel, AXPPageComponentDefinition, AXPPageComponentProvider, AXPPreloadFiltersApplyEvent, AXPPropertyViewerActionRef, AXPPropertyViewerChangedEvent, AXPPropertyViewerConfig, AXPPropertyViewerGroup, AXPPropertyViewerResult, AXPPropertyViewerTab, AXPResourceAppointmentActionMenuItem, AXPResourceAppointmentBoardFilter, AXPResourceAppointmentItem, AXPResourceAppointmentResource, AXPResourceAppointmentStatus, AXPSignatureEditorAction, AXPSignatureEditorOpenOptions, AXPSignatureEditorResult, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetCellValue, AXPSpreadsheetColumn, AXPSpreadsheetConfig, AXPSpreadsheetData, AXPSpreadsheetItem, AXPSpreadsheetRowChangeEvent, AXPSpreadsheetRowMode, AXPStandardSectionFormContext, AXPStandardSectionItemsBuilderConfig, AXPTableColumnDefinition, AXPTableColumnsEditorOpenOptions, AXPTableDataEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPTextCommandColumnClickEvent, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPVirtualKeypadAction, AXPVirtualKeypadKey, AXPVirtualKeypadLook, AXPVirtualKeypadPressEvent, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyInjection, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, ConditionBuilderSelectedField, IAXPPropertyViewerDialogBuilder, IAXPPropertyViewerRoot, IAXPWidgetPropertyViewerDialogBuilder, IAXPWidgetPropertyViewerRoot, ItemConfiguratorListItem, StateMode };
@@ -1825,14 +1825,16 @@ declare const layoutOrderingMiddlewareProvider: AXPEntityModifierProvider;
1825
1825
  /**
1826
1826
  * Provides synchronous access to the ApplyLayoutOrdering setting.
1827
1827
  * Used by layout ordering middleware to avoid async in the modifier and prevent startup deadlocks.
1828
- * Value is updated on onLoaded/onChanged; first read can trigger a one-time background get (no await).
1828
+ * Reads from the settings in-memory cache when available; refreshes entity definitions when the value changes.
1829
1829
  */
1830
1830
  declare class AXPLayoutOrderingConfigService {
1831
1831
  private readonly settingsService;
1832
+ private readonly entityRegistry;
1832
1833
  private readonly _applyOrdering;
1833
- private syncScheduled;
1834
+ private asyncWarmupScheduled;
1834
1835
  constructor();
1835
1836
  getApplyOrdering(): boolean;
1837
+ private handleSettingsEvent;
1836
1838
  private syncFromSettings;
1837
1839
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutOrderingConfigService, never>;
1838
1840
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutOrderingConfigService>;
@@ -243,6 +243,11 @@ declare abstract class AXPDataListWidgetComponent extends AXPValueWidgetComponen
243
243
  private lastStringDataSourceRef;
244
244
  private buildRegistryQueryOptions;
245
245
  private rf;
246
+ /**
247
+ * Registry datasources are cached globally; each widget needs its own {@link AXDataSource}
248
+ * instance so per-widget filters (e.g. cascade parent id) do not leak across fields.
249
+ */
250
+ private isolateRegistryDataSource;
246
251
  /** Invalidates cached registry datasource and forces a reload on the next effect run. */
247
252
  protected refreshRegistryDataSource(): void;
248
253
  protected extractItem(item: unknown): Promise<any>;
@@ -5,6 +5,7 @@ import * as _angular_core from '@angular/core';
5
5
  import { OnInit, WritableSignal, InjectionToken, EventEmitter, Signal, AfterViewInit, OnDestroy, ElementRef, ChangeDetectorRef, ComponentRef } from '@angular/core';
6
6
  import * as _acorex_platform_contracts from '@acorex/platform/contracts';
7
7
  import { AXPWidgetNode, AXPContextChangeEvent, AXPFilterClause, AXPFilterDefinition, AXPValidationRule, AXPAddressMode, AXPAddressLabel, AXPAddressData, AXPFileListItem, AXPIntegrationProviderListItemDto, AXPSafeIntegrationConnectionDto, AXPStatusDefinition, AXPStatusTransition, AXPStatusProvider, AXPMultiLanguageString, AXPActionMenuItem } from '@acorex/platform/contracts';
8
+ import * as _acorex_cdk_common from '@acorex/cdk/common';
8
9
  import { AXValueChangedEvent, AXDataSourceFilterOption, AXStyleColorType, AXClickEvent, AXStyleLookType, AXDataSource, AXDirection, AXButtonClickEvent, AXOrientation } from '@acorex/cdk/common';
9
10
  import { AXBasePageComponent } from '@acorex/components/page';
10
11
  import { AXPDeviceService, AXPTag, AXPExpressionEvaluatorService, AXPDataSourceDefinition } from '@acorex/platform/core';
@@ -1622,6 +1623,7 @@ declare class AXPSelectBoxWidgetColumnComponent extends AXPColumnWidgetComponent
1622
1623
 
1623
1624
  declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
1624
1625
  #private;
1626
+ private static readonly emptyDataSource;
1625
1627
  private selectBox;
1626
1628
  protected widgetsConfigs: StrategyConfig;
1627
1629
  private readonly filterOperatorMiddleware;
@@ -1630,6 +1632,9 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
1630
1632
  private readonly destroyRef;
1631
1633
  /** Toggled to force ax-select-box to re-render after locale / language changes. */
1632
1634
  protected readonly selectBoxKey: _angular_core.WritableSignal<boolean>;
1635
+ /** Registry list query runs only after the user interacts (not on form mount). */
1636
+ private readonly listLoadEnabled;
1637
+ private readonly isLazyRegistrySelect;
1633
1638
  private readonly selectBoxLocaleChanged;
1634
1639
  /**
1635
1640
  * Expose configuration similar to lookup widget. Can be:
@@ -1650,6 +1655,19 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
1650
1655
  protected isItemTruncated: _angular_core.Signal<boolean>;
1651
1656
  protected filter: _angular_core.Signal<AXDataSourceFilterOption>;
1652
1657
  protected filterMode: _angular_core.Signal<boolean>;
1658
+ /**
1659
+ * True when a cascade/parent filter is configured but required values are still empty
1660
+ * (e.g. state select before country is chosen).
1661
+ */
1662
+ protected hasPendingCascadeFilter: _angular_core.Signal<boolean>;
1663
+ /**
1664
+ * Registry-backed selects defer list loading until the user opens the dropdown.
1665
+ * Existing values are still resolved via `byKey` in the base widget.
1666
+ */
1667
+ protected shouldDeferListLoad: _angular_core.Signal<boolean>;
1668
+ /** Only swap datasource when cascade parent is missing; defer load via patched `load` instead. */
1669
+ protected effectiveDataSource: _angular_core.Signal<_acorex_cdk_common.AXDataSource<any>>;
1670
+ protected isSelectBoxDisabled: _angular_core.Signal<boolean>;
1653
1671
  /** For filter mode: display valueField from object to avoid [object Object] when value is stored as full item */
1654
1672
  protected selectFilterDisplayValue: _angular_core.Signal<any>;
1655
1673
  /**
@@ -1681,7 +1699,18 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
1681
1699
  */
1682
1700
  private syncExposePathsToSavedBaseline;
1683
1701
  protected handleSearchValueChange(e: AXValueChangedEvent): void;
1702
+ /** Normalized, middleware-ready filter for the current widget options (or null). */
1703
+ private resolveActiveWidgetFilter;
1704
+ /**
1705
+ * Patches registry `load` to defer list fetch until the user opens the dropdown.
1706
+ * Filtering is handled via {@link #filterEffect} on the datasource (lookup-select pattern).
1707
+ */
1708
+ private patchRegistryDataSourceLoad;
1684
1709
  refresh(): void;
1710
+ /** Push the current widget filter onto the isolated datasource. */
1711
+ private applyActiveFilterToDataSource;
1712
+ /** Allow the patched datasource `load` before the dropdown panel opens. */
1713
+ protected enableListLoad(): void;
1685
1714
  /** Re-mount ax-select-box so translate pipe picks up the active locale. */
1686
1715
  private rerenderSelectBox;
1687
1716
  clear(): void;
@@ -1695,6 +1724,11 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
1695
1724
  * Return a single value for single-select, or the full list for multi-select
1696
1725
  */
1697
1726
  private singleOrMultiple;
1727
+ /**
1728
+ * Normalizes filter payloads for datasource queries: unwraps filter-mode values and
1729
+ * reduces selected row objects to scalar keys (default `id`).
1730
+ */
1731
+ private normalizeDataSourceFilter;
1698
1732
  /**
1699
1733
  * In filterMode, widget context stores values as `{ value, operation, displayText }`.
1700
1734
  * DataSource filtering expects the raw scalar/array value, so unwrap `value.value`.