@acorex/platform 20.6.0-next.22 → 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-DBysy2Ky.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-DBysy2Ky.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, AXHighlightService, 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
 
@@ -1251,7 +1251,6 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1251
1251
  textField: _angular_core.WritableSignal<string>;
1252
1252
  valueField: _angular_core.WritableSignal<string>;
1253
1253
  allowMultiple: _angular_core.WritableSignal<boolean>;
1254
- selectionBehavior: _angular_core.WritableSignal<AXTreeViewSelectionBehavior>;
1255
1254
  selectedValues: _angular_core.WritableSignal<string[]>;
1256
1255
  searchPlaceholder: _angular_core.WritableSignal<string>;
1257
1256
  excludedNodeId: _angular_core.WritableSignal<string | undefined>;
@@ -1266,6 +1265,7 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1266
1265
  protected noRecordsTitle: _angular_core.WritableSignal<string>;
1267
1266
  private currentSearchTerm;
1268
1267
  private isRefreshing;
1268
+ private isUpdatingSelection;
1269
1269
  /**
1270
1270
  * Computed property to check if we should show the "no search results" empty state.
1271
1271
  * Returns true when search is active, not searching, and no results found.
@@ -1278,6 +1278,7 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1278
1278
  private relevantNodeIds;
1279
1279
  private expandedNodesBeforeSearch;
1280
1280
  private nodesExpandedDuringSearch;
1281
+ private isInitializing;
1281
1282
  ngOnInit(): void;
1282
1283
  private initializeTree;
1283
1284
  /**
@@ -1333,8 +1334,56 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1333
1334
  protected isNodeSelected(nodeId: string | number | undefined): boolean;
1334
1335
  /**
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
1336
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;
1337
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;
1338
1387
  /**
1339
1388
  * Loads node data for IDs that are selected but not yet in the cache.
1340
1389
  * This is critical for pre-selected values in collapsed branches.
@@ -1383,6 +1432,14 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1383
1432
  * Get the display title for a node.
1384
1433
  */
1385
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;
1386
1443
  private getSelectedItems;
1387
1444
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCategoryTreeSelectorComponent, never>;
1388
1445
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryTreeSelectorComponent, "axp-entity-category-tree-selector", never, {}, {}, never, never, true, never>;
@@ -1467,12 +1524,17 @@ declare class AXPEntityCategoryWidgetEditComponent extends AXPValueWidgetCompone
1467
1524
  protected selectedItems: _angular_core.WritableSignal<any[]>;
1468
1525
  protected isLoading: _angular_core.WritableSignal<boolean>;
1469
1526
  protected isOpen: _angular_core.WritableSignal<boolean>;
1527
+ protected tagBox: _angular_core.Signal<AXTagBoxComponent | undefined>;
1528
+ protected searchTerm: _angular_core.WritableSignal<string | null>;
1470
1529
  private entityDef;
1471
1530
  protected handleAddClick(e: AXClickEvent): void;
1472
- 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>;
1473
1534
  protected handleClearClick(): void;
1535
+ protected handleRemoveItem(event: Event, index: number): Promise<void>;
1536
+ clearInput(): void;
1474
1537
  private showTreeSelector;
1475
- protected removeItem(item: any): Promise<void>;
1476
1538
  clear(): void;
1477
1539
  private findByValue;
1478
1540
  private setItems;
@@ -1697,6 +1759,8 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
1697
1759
  protected entityListTableService: AXPEntityListTableService;
1698
1760
  protected entityListToolbarService: AXPEntityListToolbarService;
1699
1761
  protected deviceService: AXPDeviceService;
1762
+ protected commandService: AXPCommandService;
1763
+ protected eventService: AXPBroadcastEventService;
1700
1764
  protected isMounted: _angular_core.WritableSignal<boolean>;
1701
1765
  readonly entity: _angular_core.WritableSignal<AXPEntity | null>;
1702
1766
  protected listNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
@@ -1721,6 +1785,7 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
1721
1785
  protected handleActionClick(item: AXPActionMenuItem): void;
1722
1786
  protected handleSecondaryActionClick(item: AXPActionMenuItem): void;
1723
1787
  protected execute(commandName: string, data: any): Promise<void>;
1788
+ protected queries: undefined;
1724
1789
  /**
1725
1790
  * Validates that all required dependencies are available
1726
1791
  */
@@ -1928,6 +1993,7 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
1928
1993
  protected disabled: _angular_core.Signal<string>;
1929
1994
  protected columns: _angular_core.Signal<string[]>;
1930
1995
  protected textField: _angular_core.Signal<string>;
1996
+ protected hasClearButton: _angular_core.Signal<boolean>;
1931
1997
  protected customFilter: _angular_core.Signal<AXDataSourceFilterOption>;
1932
1998
  protected multiple: _angular_core.Signal<boolean>;
1933
1999
  protected look: _angular_core.Signal<AXPLookupWidgetLookType>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "20.6.0-next.22",
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",
@@ -31,14 +31,14 @@
31
31
  "types": "./auth/index.d.ts",
32
32
  "default": "./fesm2022/acorex-platform-auth.mjs"
33
33
  },
34
- "./core": {
35
- "types": "./core/index.d.ts",
36
- "default": "./fesm2022/acorex-platform-core.mjs"
37
- },
38
34
  "./common": {
39
35
  "types": "./common/index.d.ts",
40
36
  "default": "./fesm2022/acorex-platform-common.mjs"
41
37
  },
38
+ "./core": {
39
+ "types": "./core/index.d.ts",
40
+ "default": "./fesm2022/acorex-platform-core.mjs"
41
+ },
42
42
  "./domain": {
43
43
  "types": "./domain/index.d.ts",
44
44
  "default": "./fesm2022/acorex-platform-domain.mjs"