@acorex/platform 20.6.0-next.21 → 20.6.0-next.23

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.
@@ -741,7 +741,7 @@ class AXPDefaultThemeModule {
741
741
  ///
742
742
  modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
743
743
  //
744
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-D5K0XUqM.mjs').then((c) => c.AXPEntityMasterListViewComponent),
744
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs').then((c) => c.AXPEntityMasterListViewComponent),
745
745
  },
746
746
  },
747
747
  };
@@ -777,7 +777,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
777
777
  ///
778
778
  modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
779
779
  //
780
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-D5K0XUqM.mjs').then((c) => c.AXPEntityMasterListViewComponent),
780
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs').then((c) => c.AXPEntityMasterListViewComponent),
781
781
  },
782
782
  },
783
783
  };
@@ -1,5 +1,5 @@
1
- import { AXPExecuteCommandResult, AXPMetaData, AXPGridLayoutOptions, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPUserReference, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity as AXPCategoryEntity$1, AXPAppStartUpService, AXPMiddlewareErrorResponse, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPActionMenuItem } from '@acorex/platform/core';
2
- import { AXPCommand, AXPQuery } from '@acorex/platform/runtime';
1
+ import { AXPExecuteCommandResult, AXPMetaData, AXPGridLayoutOptions, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPUserReference, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity as AXPCategoryEntity$1, AXPAppStartUpService, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem } from '@acorex/platform/core';
2
+ import { AXPCommand, AXPQuery, AXPCommandService } from '@acorex/platform/runtime';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { ElementRef, InjectionToken, Injector, Type, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
5
5
  import { AXPopoverComponent } from '@acorex/components/popover';
@@ -14,15 +14,15 @@ import * as rxjs from 'rxjs';
14
14
  import { Subject } from 'rxjs';
15
15
  import * as i2 from '@acorex/platform/workflow';
16
16
  import { AXPWorkflowService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
17
- import { AXTreeViewNode, AXTreeViewSelectionBehavior, AXTreeViewComponent, AXTreeViewNodeToggleEvent, AXTreeViewNodeSelectEvent, AXTreeViewSelectionChangeEvent } from '@acorex/components/tree-view';
17
+ import { AXTreeViewNode, AXTreeViewComponent, AXTreeViewNodeToggleEvent, AXTreeViewNodeSelectEvent, AXTreeViewSelectionChangeEvent } from '@acorex/components/tree-view';
18
18
  import { AXTranslationService } from '@acorex/core/translation';
19
19
  import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
20
20
  import { IActionBuilder, IFormFieldBuilder, AXPDialogRef } from '@acorex/platform/layout/builder';
21
21
  import { AXBasePageComponent } from '@acorex/components/page';
22
22
  import { AXFormatService } from '@acorex/core/format';
23
+ import { AXTagBoxComponent } from '@acorex/components/tag-box';
23
24
  import { AXPDataListWidgetComponentOptions } from '@acorex/platform/layout/widgets';
24
25
  import { AXSelectBoxComponent } from '@acorex/components/select-box';
25
- import { AXTagBoxComponent } from '@acorex/components/tag-box';
26
26
  import { AXTextBoxComponent } from '@acorex/components/text-box';
27
27
  import { AXPWidgetPropertiesChangedEvent } from '@acorex/platform/layout/components';
28
28
 
@@ -1246,11 +1246,11 @@ declare function detectEntityChanges(oldObj: any, newObj: any): AXPEntityChangeS
1246
1246
  declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent implements OnInit {
1247
1247
  protected readonly categoryTreeService: AXPCategoryTreeService;
1248
1248
  private readonly translationService;
1249
+ protected readonly highlightService: AXHighlightService;
1249
1250
  entityKey: _angular_core.WritableSignal<string>;
1250
1251
  textField: _angular_core.WritableSignal<string>;
1251
1252
  valueField: _angular_core.WritableSignal<string>;
1252
1253
  allowMultiple: _angular_core.WritableSignal<boolean>;
1253
- selectionBehavior: _angular_core.WritableSignal<AXTreeViewSelectionBehavior>;
1254
1254
  selectedValues: _angular_core.WritableSignal<string[]>;
1255
1255
  searchPlaceholder: _angular_core.WritableSignal<string>;
1256
1256
  excludedNodeId: _angular_core.WritableSignal<string | undefined>;
@@ -1265,6 +1265,7 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1265
1265
  protected noRecordsTitle: _angular_core.WritableSignal<string>;
1266
1266
  private currentSearchTerm;
1267
1267
  private isRefreshing;
1268
+ private isUpdatingSelection;
1268
1269
  /**
1269
1270
  * Computed property to check if we should show the "no search results" empty state.
1270
1271
  * Returns true when search is active, not searching, and no results found.
@@ -1277,6 +1278,7 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1277
1278
  private relevantNodeIds;
1278
1279
  private expandedNodesBeforeSearch;
1279
1280
  private nodesExpandedDuringSearch;
1281
+ private isInitializing;
1280
1282
  ngOnInit(): void;
1281
1283
  private initializeTree;
1282
1284
  /**
@@ -1326,7 +1328,62 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1326
1328
  * Checks if a node matches the current search term
1327
1329
  */
1328
1330
  protected isMatchingNode(nodeId: string): boolean;
1331
+ /**
1332
+ * Checks if a node is currently selected
1333
+ */
1334
+ protected isNodeSelected(nodeId: string | number | undefined): boolean;
1335
+ /**
1336
+ * Handles checkbox change event to toggle node selection
1337
+ * In multiple mode: recursively selects/deselects children
1338
+ * Parent states are handled automatically by tree component's intermediate-nested behavior
1339
+ */
1340
+ protected handleCheckboxChange(nodeId: string | number | undefined, checked: boolean): Promise<void>;
1341
+ /**
1342
+ * Selects a node and recursively selects all its children
1343
+ */
1344
+ private selectNodeAndChildren;
1345
+ /**
1346
+ * Collects all descendant node IDs recursively
1347
+ */
1348
+ private collectAllDescendants;
1349
+ /**
1350
+ * Deselects a node and recursively deselects all its children
1351
+ */
1352
+ private deselectNodeAndChildren;
1353
+ /**
1354
+ * Recursively deselects all children of a parent node
1355
+ */
1356
+ private loadAndDeselectChildrenRecursively;
1357
+ /**
1358
+ * Updates parent states based on children selection (select/intermediate)
1359
+ * Called after a node is selected/deselected to update parent checkbox states
1360
+ */
1361
+ private updateParentStates;
1362
+ /**
1363
+ * Recursively loads and selects all children of a parent node using the datasource
1364
+ * This method directly calls datasource without expanding/collapsing nodes to avoid UI glitches
1365
+ */
1366
+ private loadAndSelectChildrenRecursively;
1329
1367
  private updateSelectedNodes;
1368
+ /**
1369
+ * Updates all parent states based on their children's selection
1370
+ * Used during initialization to ensure proper parent states (select/intermediate)
1371
+ */
1372
+ private updateAllParentStates;
1373
+ /**
1374
+ * Expands parents of selected nodes so they're visible when popup opens
1375
+ */
1376
+ private expandParentsOfSelectedNodes;
1377
+ /**
1378
+ * Selects parents whose all children are selected
1379
+ * This ensures that when all children of a parent are selected, the parent also appears selected
1380
+ */
1381
+ private selectParentsWithAllChildrenSelected;
1382
+ /**
1383
+ * Syncs selection state with the tree component
1384
+ * Handles cases where nodes might not be in the tree structure yet
1385
+ */
1386
+ private syncSelectionWithTree;
1330
1387
  /**
1331
1388
  * Loads node data for IDs that are selected but not yet in the cache.
1332
1389
  * This is critical for pre-selected values in collapsed branches.
@@ -1375,40 +1432,52 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1375
1432
  * Get the display title for a node.
1376
1433
  */
1377
1434
  private getNodeTitle;
1435
+ /**
1436
+ * Checks if a node is a leaf node (has no children)
1437
+ */
1438
+ private isLeafNode;
1439
+ /**
1440
+ * Checks if a node has children by querying the data source
1441
+ */
1442
+ private checkIfNodeHasChildren;
1378
1443
  private getSelectedItems;
1379
1444
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCategoryTreeSelectorComponent, never>;
1380
1445
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryTreeSelectorComponent, "axp-entity-category-tree-selector", never, {}, {}, never, never, true, never>;
1381
1446
  }
1382
1447
 
1383
1448
  declare class AXPEntityCategoryWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
1384
- private readonly entityDetailPopoverService;
1385
- private readonly formatService;
1386
- protected moreButton: _angular_core.Signal<ElementRef<any> | undefined>;
1387
- protected morePopover: _angular_core.Signal<AXPopoverComponent | undefined>;
1449
+ protected readonly entityDetailPopoverService: AXPEntityDetailPopoverService;
1450
+ protected readonly formatService: AXFormatService;
1451
+ protected readonly entityResolver: AXPEntityResolver;
1452
+ private readonly rawValueSignal;
1453
+ set rawValueInput(value: any);
1454
+ protected entity: _angular_core.Signal<string>;
1455
+ protected valueField: _angular_core.Signal<string>;
1456
+ protected textField: _angular_core.Signal<string>;
1457
+ protected columnName: _angular_core.Signal<string>;
1458
+ protected defaultTextField: _angular_core.Signal<string>;
1459
+ protected displayField: _angular_core.Signal<string>;
1388
1460
  protected host: ElementRef<any>;
1389
- protected valueField: string;
1390
- protected textField: string;
1391
- protected entity: string;
1392
- protected columnName: string;
1393
- protected maxVisible: number;
1394
- protected isMorePopoverOpen: _angular_core.WritableSignal<boolean>;
1461
+ private entityDef;
1462
+ protected displayItems: _angular_core.WritableSignal<any[]>;
1395
1463
  protected selectedItemIndex: _angular_core.WritableSignal<number>;
1396
- protected displayItems: _angular_core.Signal<any[]>;
1397
- protected allItems: _angular_core.Signal<any[]>;
1464
+ private efEntity;
1465
+ private efDisplay;
1398
1466
  protected visibleItems: _angular_core.Signal<any[]>;
1399
- protected remainingItems: _angular_core.Signal<any[]>;
1400
- protected hasMoreItems: _angular_core.Signal<boolean>;
1401
- protected remainingItemsCount: _angular_core.Signal<number>;
1402
- protected showMoreItems(): void;
1403
- protected onMorePopoverOpenChange(event: any): void;
1404
1467
  protected showItemDetail(item: any, index: number): Promise<void>;
1405
1468
  protected handleItemClick(index: number): void;
1406
- private openMorePopover;
1407
- private closeMorePopover;
1408
- private extractItem;
1409
- protected getDisplayText(item: any): string;
1469
+ protected getItemPath(item: any): string[];
1470
+ protected hasParent(item: any): boolean;
1471
+ protected getItemText(item: any): string;
1472
+ protected getItemId(item: any): string;
1473
+ private extractItemWithPath;
1474
+ /**
1475
+ * Calculate the full path from root to the item.
1476
+ * Returns an array of strings like ["C", "B"] for item B under parent C.
1477
+ */
1478
+ private calculateItemPath;
1410
1479
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCategoryWidgetColumnComponent, never>;
1411
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryWidgetColumnComponent, "axp-entity-category-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
1480
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryWidgetColumnComponent, "axp-entity-category-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "rawValueInput": { "alias": "rawValue"; "required": false; }; }, {}, never, never, true, never>;
1412
1481
  }
1413
1482
 
1414
1483
  interface AXPEntityCategoryWidgetOptions {
@@ -1455,12 +1524,17 @@ declare class AXPEntityCategoryWidgetEditComponent extends AXPValueWidgetCompone
1455
1524
  protected selectedItems: _angular_core.WritableSignal<any[]>;
1456
1525
  protected isLoading: _angular_core.WritableSignal<boolean>;
1457
1526
  protected isOpen: _angular_core.WritableSignal<boolean>;
1527
+ protected tagBox: _angular_core.Signal<AXTagBoxComponent | undefined>;
1528
+ protected searchTerm: _angular_core.WritableSignal<string | null>;
1458
1529
  private entityDef;
1459
1530
  protected handleAddClick(e: AXClickEvent): void;
1460
- protected handleRemoveItemClick(event: AXClickEvent, item: any): void;
1531
+ protected handleValueChange(e: AXValueChangedEvent): void;
1532
+ protected handleOnBlur(e: AXFocusEvent): void;
1533
+ protected handleKeyUp(e: AXHtmlEvent): Promise<void>;
1461
1534
  protected handleClearClick(): void;
1535
+ protected handleRemoveItem(event: Event, index: number): Promise<void>;
1536
+ clearInput(): void;
1462
1537
  private showTreeSelector;
1463
- protected removeItem(item: any): Promise<void>;
1464
1538
  clear(): void;
1465
1539
  private findByValue;
1466
1540
  private setItems;
@@ -1685,6 +1759,8 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
1685
1759
  protected entityListTableService: AXPEntityListTableService;
1686
1760
  protected entityListToolbarService: AXPEntityListToolbarService;
1687
1761
  protected deviceService: AXPDeviceService;
1762
+ protected commandService: AXPCommandService;
1763
+ protected eventService: AXPBroadcastEventService;
1688
1764
  protected isMounted: _angular_core.WritableSignal<boolean>;
1689
1765
  readonly entity: _angular_core.WritableSignal<AXPEntity | null>;
1690
1766
  protected listNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
@@ -1709,6 +1785,7 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
1709
1785
  protected handleActionClick(item: AXPActionMenuItem): void;
1710
1786
  protected handleSecondaryActionClick(item: AXPActionMenuItem): void;
1711
1787
  protected execute(commandName: string, data: any): Promise<void>;
1788
+ protected queries: undefined;
1712
1789
  /**
1713
1790
  * Validates that all required dependencies are available
1714
1791
  */
@@ -1916,6 +1993,7 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
1916
1993
  protected disabled: _angular_core.Signal<string>;
1917
1994
  protected columns: _angular_core.Signal<string[]>;
1918
1995
  protected textField: _angular_core.Signal<string>;
1996
+ protected hasClearButton: _angular_core.Signal<boolean>;
1919
1997
  protected customFilter: _angular_core.Signal<AXDataSourceFilterOption>;
1920
1998
  protected multiple: _angular_core.Signal<boolean>;
1921
1999
  protected look: _angular_core.Signal<AXPLookupWidgetLookType>;
@@ -2071,10 +2071,10 @@ declare class AXPFileUploaderWidgetService {
2071
2071
 
2072
2072
  declare class AXPGalleryWidgetEditComponent extends AXPValueWidgetComponent<AXMediaViewerData[]> {
2073
2073
  protected thumbnail: _angular_core.Signal<boolean>;
2074
+ protected height: _angular_core.Signal<string>;
2074
2075
  protected header: _angular_core.Signal<boolean>;
2075
2076
  protected fileInfo: _angular_core.Signal<boolean>;
2076
2077
  protected fullScreenButton: _angular_core.Signal<boolean>;
2077
- private get __class();
2078
2078
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGalleryWidgetEditComponent, never>;
2079
2079
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPGalleryWidgetEditComponent, "axp-gallery-widget-edit", never, {}, {}, never, never, true, never>;
2080
2080
  }
@@ -2093,6 +2093,7 @@ interface AXPMediaInfo {
2093
2093
  declare class AXPGalleryWidgetViewComponent extends AXPValueWidgetComponent<any> {
2094
2094
  protected internalValue: Signal<any[]>;
2095
2095
  protected multiple: Signal<boolean>;
2096
+ protected height: Signal<string>;
2096
2097
  protected thumbnails: Signal<AXPMediaItem[]>;
2097
2098
  protected activeMedia: WritableSignal<AXPMediaItem | undefined>;
2098
2099
  ngAfterViewInit(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "20.6.0-next.21",
3
+ "version": "20.6.0-next.23",
4
4
  "peerDependencies": {
5
5
  "@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0",
6
6
  "@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0",
@@ -27,6 +27,10 @@
27
27
  "types": "./index.d.ts",
28
28
  "default": "./fesm2022/acorex-platform.mjs"
29
29
  },
30
+ "./auth": {
31
+ "types": "./auth/index.d.ts",
32
+ "default": "./fesm2022/acorex-platform-auth.mjs"
33
+ },
30
34
  "./common": {
31
35
  "types": "./common/index.d.ts",
32
36
  "default": "./fesm2022/acorex-platform-common.mjs"
@@ -35,10 +39,6 @@
35
39
  "types": "./core/index.d.ts",
36
40
  "default": "./fesm2022/acorex-platform-core.mjs"
37
41
  },
38
- "./auth": {
39
- "types": "./auth/index.d.ts",
40
- "default": "./fesm2022/acorex-platform-auth.mjs"
41
- },
42
42
  "./domain": {
43
43
  "types": "./domain/index.d.ts",
44
44
  "default": "./fesm2022/acorex-platform-domain.mjs"