@acorex/platform 20.8.18 → 20.8.19

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.
@@ -1224,10 +1224,11 @@ declare class AXPPropertyViewerService {
1224
1224
 
1225
1225
  declare class AXPQuerySortsComponent {
1226
1226
  sortDefinitions: _angular_core.ModelSignal<AXPSortDefinition[]>;
1227
- sortQueries: _angular_core.WritableSignal<AXPSortQuery[]>;
1227
+ sortQueries: _angular_core.WritableSignal<AXPSortDefinition[]>;
1228
1228
  initialSortQueries: _angular_core.InputSignal<AXPSortQuery[]>;
1229
1229
  sortQueriesChange: _angular_core.OutputEmitterRef<AXPSortQuery[]>;
1230
1230
  constructor();
1231
+ private emitActiveSortQueries;
1231
1232
  protected drop(event: CdkDragDrop<unknown[]>): void;
1232
1233
  getSortDirection(item: AXPSortDefinition): "desc" | "asc" | undefined;
1233
1234
  protected changeItemSort(item: AXPSortDefinition): void;
@@ -569,7 +569,26 @@ declare class AXPEntityMasterListViewModel {
569
569
  sortedCount: () => number;
570
570
  sortedFields: _angular_core.WritableSignal<AXPEntityMasterListViewSortPropViewModel[]>;
571
571
  resetSorts(): void;
572
+ /**
573
+ * Applies active sorts in the given order (click order, saved settings, or view defaults).
574
+ */
575
+ private setActiveSortsFromQueries;
572
576
  applyViewSorts(): void;
577
+ /**
578
+ * Active sort direction for a column (synced with toolbar sort UI and dataSource).
579
+ */
580
+ getColumnSortDirection(columnName: string): 'asc' | 'desc' | undefined;
581
+ /**
582
+ * 1-based priority index when multiple columns are sorted (Ctrl+click order).
583
+ */
584
+ getColumnSortIndex(columnName: string): number | undefined;
585
+ /** True when active sorts still match the current view defaults (not yet customized). */
586
+ private isViewDefaultSorts;
587
+ /**
588
+ * Toggles column sort (asc → desc → none). Without Ctrl, only one column is active.
589
+ * With Ctrl/Cmd, multiple columns are sorted in click order (first clicked = primary).
590
+ */
591
+ toggleColumnSort(columnName: string, multiSort: boolean): Promise<void>;
573
592
  executeCommand(commandName: string, data?: any): Promise<void>;
574
593
  /**
575
594
  * Merges default category from selected category in sidebar when executing create command.
@@ -13,7 +13,7 @@ import { AXToastService } from '@acorex/components/toast';
13
13
  import { AXFormatService } from '@acorex/core/format';
14
14
  import { AXTranslationService } from '@acorex/core/translation';
15
15
  import { AXPSessionService } from '@acorex/platform/auth';
16
- import { AXPHomePageService } from '@acorex/platform/common';
16
+ import { AXPHomePageService, AXPEntityCommandScope } from '@acorex/platform/common';
17
17
  import { AXBasePageComponent } from '@acorex/components/page';
18
18
  import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
19
19
  import { AXPWidgetNode, AXPPageStatus as AXPPageStatus$1, AXPWidgetContainerComponent, AXPWidgetCoreContextChangeEvent } from '@acorex/platform/layout/widget-core';
@@ -371,6 +371,7 @@ declare abstract class AXPPopupLayoutBaseComponent extends AXBasePageComponent {
371
371
  interface AXPLayoutDetailsViewAction extends AXPActionMenuItem {
372
372
  zone: 'header' | 'footer';
373
373
  priority: 'primary' | 'secondary';
374
+ scope?: AXPEntityCommandScope;
374
375
  }
375
376
  interface AXPLayoutDetailsViewTabItem {
376
377
  id: string;
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, Signal, ComponentRef, OnInit, EventEmitter, TemplateRef, Injector, WritableSignal, SimpleChanges, ModuleWithProviders } from '@angular/core';
2
+ import { InjectionToken, Signal, ComponentRef, OnInit, EventEmitter, OnChanges, TemplateRef, Injector, WritableSignal, SimpleChanges, ModuleWithProviders } from '@angular/core';
3
3
  import { AXPOptionsData, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPExpressionEvaluatorService } from '@acorex/platform/core';
4
4
  import * as _ngrx_signals from '@ngrx/signals';
5
5
  import { AXValueChangedEvent, AXDataSource } from '@acorex/cdk/common';
@@ -825,7 +825,7 @@ declare class AXPWidgetRegistryService {
825
825
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetRegistryService>;
826
826
  }
827
827
 
828
- declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
828
+ declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent implements OnChanges {
829
829
  protected widgetRegistery: AXPWidgetRegistryService;
830
830
  private grid;
831
831
  private expressionEvaluator;
@@ -846,6 +846,12 @@ declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponen
846
846
  private _contentFooterTemplate;
847
847
  get renderFooterTemplate(): TemplateRef<unknown>;
848
848
  expandHandler: boolean;
849
+ /** When true, header click cycles sort (handled by parent; synced with list sort state). */
850
+ sortEnabled: boolean;
851
+ headerSortDirection?: 'asc' | 'desc';
852
+ /** 1-based order when multiple columns are sorted (shown when priority &gt; 1). */
853
+ headerSortPriority?: number;
854
+ readonly sortToggle: EventEmitter<MouseEvent>;
849
855
  cellTemplate: TemplateRef<unknown>;
850
856
  private _contentCellTemplate;
851
857
  get renderCellTemplate(): TemplateRef<unknown>;
@@ -865,6 +871,8 @@ declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponen
865
871
  * Supports designer select values `{ id: 'center' }`.
866
872
  */
867
873
  protected getHeaderTextAlign(): 'start' | 'center' | 'end';
874
+ protected getHeaderJustifyContent(): 'flex-start' | 'center' | 'flex-end';
875
+ protected onHeaderClick(event: MouseEvent): void;
868
876
  /**
869
877
  * When true, the cell body uses flex so `justify-content` can place content on the main axis.
870
878
  */
@@ -882,6 +890,7 @@ declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponen
882
890
  protected widgetInjector: Injector;
883
891
  protected component: any;
884
892
  ngOnInit(): Promise<void>;
893
+ ngOnChanges(): void;
885
894
  /**
886
895
  * Check if options contain any expressions that need evaluation
887
896
  */
@@ -901,7 +910,7 @@ declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponen
901
910
  getInputs(data: any): any;
902
911
  getRowInjector(data: any): Injector;
903
912
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetColumnRendererComponent, never>;
904
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetColumnRendererComponent, "axp-widget-column-renderer", never, { "caption": { "alias": "caption"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "customWidth": { "alias": "customWidth"; "required": false; }; "node": { "alias": "node"; "required": true; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; }, {}, never, never, false, never>;
913
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetColumnRendererComponent, "axp-widget-column-renderer", never, { "caption": { "alias": "caption"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "customWidth": { "alias": "customWidth"; "required": false; }; "node": { "alias": "node"; "required": true; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "sortEnabled": { "alias": "sortEnabled"; "required": false; }; "headerSortDirection": { "alias": "headerSortDirection"; "required": false; }; "headerSortPriority": { "alias": "headerSortPriority"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; }, { "sortToggle": "sortToggle"; }, never, never, false, never>;
905
914
  }
906
915
 
907
916
  type AXPWidgetRendererDirectiveOptions = AXPMetaData;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "20.8.18",
3
+ "version": "20.8.19",
4
4
  "peerDependencies": {
5
5
  "@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",
6
6
  "@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",