@masterteam/dashboard-builder 0.0.43 → 0.0.45

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,45 +1,45 @@
1
- {
2
- "name": "@masterteam/dashboard-builder",
3
- "version": "0.0.43",
4
- "publishConfig": {
5
- "directory": "../../../dist/masterteam/dashboard-builder",
6
- "linkDirectory": true,
7
- "access": "public"
8
- },
9
- "peerDependencies": {
10
- "@angular/common": "^21.2.8",
11
- "@angular/core": "^21.2.8",
12
- "@angular/forms": "^21.2.8",
13
- "@angular/cdk": "^21.2.6",
14
- "@angular/router": "^21.2.8",
15
- "@primeuix/themes": "^2.0.3",
16
- "@tailwindcss/postcss": "^4.2.2",
17
- "@jsverse/transloco": "^8.3.0",
18
- "@masterteam/components": "^0.0.204",
19
- "@masterteam/icons": "^0.0.17",
20
- "@masterteam/timeline": "^0.0.15",
21
- "angular-gridster2": "^18.0.1",
22
- "echarts": "^5.5.0",
23
- "postcss": "^8.5.9",
24
- "primeng": "21.1.5",
25
- "rxjs": "^7.8.2",
26
- "tailwindcss": "^4.2.2"
27
- },
28
- "dependencies": {
29
- "tslib": "^2.8.1",
30
- "angular-gridster2": "^18.0.1"
31
- },
32
- "sideEffects": false,
33
- "module": "fesm2022/masterteam-dashboard-builder.mjs",
34
- "typings": "types/masterteam-dashboard-builder.d.ts",
35
- "exports": {
36
- "./package.json": {
37
- "default": "./package.json"
38
- },
39
- ".": {
40
- "types": "./types/masterteam-dashboard-builder.d.ts",
41
- "default": "./fesm2022/masterteam-dashboard-builder.mjs"
42
- }
43
- },
44
- "type": "module"
45
- }
1
+ {
2
+ "name": "@masterteam/dashboard-builder",
3
+ "version": "0.0.45",
4
+ "publishConfig": {
5
+ "directory": "../../../dist/masterteam/dashboard-builder",
6
+ "linkDirectory": true,
7
+ "access": "public"
8
+ },
9
+ "peerDependencies": {
10
+ "@angular/common": "^21.2.8",
11
+ "@angular/core": "^21.2.8",
12
+ "@angular/forms": "^21.2.8",
13
+ "@angular/cdk": "^21.2.6",
14
+ "@angular/router": "^21.2.8",
15
+ "@primeuix/themes": "^2.0.3",
16
+ "@tailwindcss/postcss": "^4.2.2",
17
+ "@jsverse/transloco": "^8.3.0",
18
+ "angular-gridster2": "^18.0.1",
19
+ "echarts": "^5.5.0",
20
+ "postcss": "^8.5.9",
21
+ "primeng": "21.1.5",
22
+ "rxjs": "^7.8.2",
23
+ "tailwindcss": "^4.2.2",
24
+ "@masterteam/components": "^0.0.207",
25
+ "@masterteam/icons": "^0.0.17",
26
+ "@masterteam/timeline": "^0.0.15"
27
+ },
28
+ "dependencies": {
29
+ "tslib": "^2.8.1",
30
+ "angular-gridster2": "^18.0.1"
31
+ },
32
+ "sideEffects": false,
33
+ "module": "fesm2022/masterteam-dashboard-builder.mjs",
34
+ "typings": "types/masterteam-dashboard-builder.d.ts",
35
+ "exports": {
36
+ "./package.json": {
37
+ "default": "./package.json"
38
+ },
39
+ ".": {
40
+ "types": "./types/masterteam-dashboard-builder.d.ts",
41
+ "default": "./fesm2022/masterteam-dashboard-builder.mjs"
42
+ }
43
+ },
44
+ "type": "module"
45
+ }
@@ -488,6 +488,8 @@ interface CustomApi {
488
488
  */
489
489
  type ItemCardMenuAction = {
490
490
  type: 'configure-datasource';
491
+ } | {
492
+ type: 'actions';
491
493
  } | {
492
494
  type: 'style';
493
495
  } | {
@@ -2126,6 +2128,7 @@ declare class DashboardBuilder implements OnInit, OnDestroy {
2126
2128
  private itemStoreService;
2127
2129
  private transloco;
2128
2130
  private modalService;
2131
+ private confirmationService;
2129
2132
  /** Whether to wrap content in mt-page component */
2130
2133
  readonly isPage: _angular_core.InputSignal<boolean>;
2131
2134
  /** Page title when isPage is true */
@@ -2240,6 +2243,11 @@ declare class DashboardBuilder implements OnInit, OnDestroy {
2240
2243
  * surfaces inside the deactivated popover/wizard).
2241
2244
  */
2242
2245
  openItemFilterDrawer(chart: DashboardChartItem): void;
2246
+ /**
2247
+ * Open the dedicated actions drawer — sole owner of a chart's
2248
+ * click/interaction actions (split out of the old ManageItem "Actions" tab).
2249
+ */
2250
+ openActionsDrawer(chart: DashboardChartItem): void;
2243
2251
  /**
2244
2252
  * Apply a partial chart-config update produced by one of the dedicated
2245
2253
  * drawers (filters, style, manage-item). Updates the chart in place,
@@ -2276,6 +2284,12 @@ declare class DashboardBuilder implements OnInit, OnDestroy {
2276
2284
  isPropertiesListChart(chart: DashboardChartItem): boolean;
2277
2285
  editItem(chart: DashboardChartItem, parentItem?: DashboardChartItem, defaultTab?: 'general' | 'dataSource' | 'actions'): void;
2278
2286
  deleteItem(chart: DashboardChartItem): void;
2287
+ /**
2288
+ * Opens the shared `mt-confirmation-dialog` (via the design-system
2289
+ * `ConfirmationService`) and runs `onConfirm` only when the user accepts.
2290
+ * Replaces the old native `window.confirm()` so deletes use the themed,
2291
+ * RTL-aware confirmation consistent with the rest of the library.
2292
+ */
2279
2293
  private confirmDelete;
2280
2294
  private removeChartLocally;
2281
2295
  newChart(value: any): void;
@@ -3460,6 +3474,8 @@ declare class EChartComponent implements OnInit, AfterViewInit, OnChanges, OnDes
3460
3474
  /** Show custom legend */
3461
3475
  readonly showCustomLegend: _angular_core.Signal<boolean>;
3462
3476
  readonly customLegendIconIsRect: _angular_core.Signal<boolean>;
3477
+ /** Custom HTML legend placement from the configured legend position. */
3478
+ readonly customLegendPosition: _angular_core.Signal<"bottom" | "top" | "right" | "left">;
3463
3479
  constructor();
3464
3480
  ngOnInit(): Promise<void>;
3465
3481
  ngAfterViewInit(): void;
@@ -4893,6 +4909,13 @@ declare function formatCurrency(value: number | string | null | undefined, confi
4893
4909
  handleLang?: boolean;
4894
4910
  decimals?: number;
4895
4911
  }, langCode?: string): string;
4912
+ /**
4913
+ * Resolve the currency suffix from the host's saved currency, defaulting to
4914
+ * SAR — matches the old dashboard repo and the overview-card tooltip.
4915
+ * Reads `localStorage('currency').unit`; Arabic uses a glyph map (falling back
4916
+ * to the raw unit), English uses the unit code; falls back to SAR when unset.
4917
+ */
4918
+ declare function getCurrencySuffix(langCode?: string): string;
4896
4919
  /**
4897
4920
  * Format percentage value
4898
4921
  */
@@ -4900,7 +4923,7 @@ declare function formatPercentage(value: number | string | null | undefined, dec
4900
4923
  /**
4901
4924
  * Format number with locale
4902
4925
  */
4903
- declare function formatNumber(value: number | string | null | undefined, options?: Intl.NumberFormatOptions, langCode?: string): string;
4926
+ declare function formatNumber(value: number | string | null | undefined, options?: Intl.NumberFormatOptions, _langCode?: string): string;
4904
4927
  /**
4905
4928
  * Format date
4906
4929
  */
@@ -5698,6 +5721,12 @@ interface DefaultControlConfig {
5698
5721
  borderColor: string;
5699
5722
  borderRadius: number;
5700
5723
  padding: number;
5724
+ titleAlign: 'start' | 'center' | 'end';
5725
+ iconType: 'circle' | 'rect';
5726
+ showBorderTop: boolean;
5727
+ borderTopColor: string;
5728
+ centerHeader: boolean;
5729
+ hideHeader: boolean;
5701
5730
  }
5702
5731
  declare class DefaultControlUi implements ControlValueAccessor {
5703
5732
  readonly showIconSettings: _angular_core.InputSignal<boolean>;
@@ -5707,9 +5736,21 @@ declare class DefaultControlUi implements ControlValueAccessor {
5707
5736
  label: string;
5708
5737
  value: number;
5709
5738
  }[];
5739
+ readonly alignOptions: {
5740
+ label: string;
5741
+ value: string;
5742
+ }[];
5743
+ readonly iconTypeOptions: {
5744
+ label: string;
5745
+ value: string;
5746
+ }[];
5710
5747
  private onChange;
5711
5748
  private onTouched;
5712
5749
  readonly supportsSubtitle: _angular_core.Signal<boolean>;
5750
+ /** Layout (header/topbar) appearance section visibility. */
5751
+ readonly isLayout: _angular_core.Signal<boolean>;
5752
+ /** Header-only toggles (center / hide). */
5753
+ readonly isHeader: _angular_core.Signal<boolean>;
5713
5754
  writeValue(value: DefaultControlConfig): void;
5714
5755
  registerOnChange(fn: (value: DefaultControlConfig) => void): void;
5715
5756
  registerOnTouched(fn: () => void): void;
@@ -5722,7 +5763,14 @@ declare class ChartSettingsDrawer {
5722
5763
  private dialogRef;
5723
5764
  private transloco;
5724
5765
  private drawerConfig;
5766
+ private readonly drawerController;
5725
5767
  readonly modal: ModalService;
5768
+ /** Preview is a collapsible side pane (collapsed by default), not a tab. */
5769
+ readonly previewCollapsed: _angular_core.WritableSignal<boolean>;
5770
+ /** Drawer is compact for controls, wider while the preview is open. */
5771
+ private readonly COMPACT_WIDTH;
5772
+ private readonly EXPANDED_WIDTH;
5773
+ togglePreview(): void;
5726
5774
  private readonly chartDataService;
5727
5775
  private readonly itemStoreService;
5728
5776
  private readonly dashboardStore;
@@ -6023,6 +6071,11 @@ declare class DisplaySettings {
6023
6071
  * giant in-component map no longer needs editing per chart type.
6024
6072
  */
6025
6073
  private readonly fieldPredicate;
6074
+ /**
6075
+ * Display sections intentionally hidden from the Style drawer for now
6076
+ * (kept in the template/config so they can be re-enabled later).
6077
+ */
6078
+ private readonly hiddenFields;
6026
6079
  /** Check if a field should be shown */
6027
6080
  shouldShowField(fieldName: string): boolean;
6028
6081
  shouldShowPropertiesViewSettings(): boolean;
@@ -6408,7 +6461,7 @@ declare class PieControlUi implements ControlValueAccessor {
6408
6461
  }
6409
6462
 
6410
6463
  interface BarControlConfig {
6411
- barWidth?: number;
6464
+ barWidth?: number | null;
6412
6465
  barGap?: number;
6413
6466
  barCategoryGap?: number;
6414
6467
  barType?: 'bar' | 'line';
@@ -6422,10 +6475,10 @@ interface BarControlConfig {
6422
6475
  yAxisFontColor?: string;
6423
6476
  xAxisLineColor?: string;
6424
6477
  yAxisLineColor?: string;
6425
- gridTop?: number;
6426
- gridBottom?: number;
6427
- gridLeft?: number;
6428
- gridRight?: number;
6478
+ gridTop?: number | null;
6479
+ gridBottom?: number | null;
6480
+ gridLeft?: number | null;
6481
+ gridRight?: number | null;
6429
6482
  labelShow?: boolean;
6430
6483
  labelPosition?: 'top' | 'left' | 'right' | 'bottom' | 'inside';
6431
6484
  labelFontSize?: number;
@@ -6438,7 +6491,7 @@ interface BarControlConfig {
6438
6491
  tooltipBorderWidth?: number;
6439
6492
  borderRadius?: boolean;
6440
6493
  showValueOnlyInTooltip?: boolean;
6441
- maxCharsPerLine?: number;
6494
+ maxCharsPerLine?: number | null;
6442
6495
  isGrouped?: boolean;
6443
6496
  }
6444
6497
  declare class BarControlUi implements ControlValueAccessor {
@@ -6467,6 +6520,30 @@ declare class BarControlUi implements ControlValueAccessor {
6467
6520
  label: string;
6468
6521
  value: number;
6469
6522
  }[];
6523
+ /** ECharts barWidth presets — Auto (omit) + common pixel widths. */
6524
+ readonly barWidthOptions: ({
6525
+ label: string;
6526
+ value: null;
6527
+ } | {
6528
+ label: string;
6529
+ value: number;
6530
+ })[];
6531
+ /** ECharts grid spacing presets (px) — Default lets ECharts auto-fit. */
6532
+ readonly gridSpacingOptions: ({
6533
+ label: string;
6534
+ value: null;
6535
+ } | {
6536
+ label: string;
6537
+ value: number;
6538
+ })[];
6539
+ /** Axis-label wrap length presets — Default disables wrapping. */
6540
+ readonly maxCharsPerLineOptions: ({
6541
+ label: string;
6542
+ value: null;
6543
+ } | {
6544
+ label: string;
6545
+ value: number;
6546
+ })[];
6470
6547
  private onChange;
6471
6548
  private onTouched;
6472
6549
  writeValue(value: BarControlConfig): void;
@@ -6479,7 +6556,7 @@ declare class BarControlUi implements ControlValueAccessor {
6479
6556
  }
6480
6557
 
6481
6558
  interface StackBarControlConfig {
6482
- barWidth?: number;
6559
+ barWidth?: number | null;
6483
6560
  hasLines?: boolean;
6484
6561
  barType?: 'bar' | 'line';
6485
6562
  xAxisLabelRotate?: number;
@@ -6499,10 +6576,10 @@ interface StackBarControlConfig {
6499
6576
  tooltipBackgroundColor?: string;
6500
6577
  tooltipBorderColor?: string;
6501
6578
  tooltipBorderWidth?: number;
6502
- gridLeft?: string | number;
6503
- gridRight?: string | number;
6504
- gridTop?: string | number;
6505
- gridBottom?: string | number;
6579
+ gridLeft?: string | number | null;
6580
+ gridRight?: string | number | null;
6581
+ gridTop?: string | number | null;
6582
+ gridBottom?: string | number | null;
6506
6583
  isStacked?: boolean;
6507
6584
  borderRadius?: string | number;
6508
6585
  }
@@ -6531,6 +6608,22 @@ declare class StackBarControlUi implements ControlValueAccessor {
6531
6608
  label: string;
6532
6609
  value: number;
6533
6610
  }[];
6611
+ /** ECharts barWidth presets — Auto (omit) + common pixel widths. */
6612
+ readonly barWidthOptions: ({
6613
+ label: string;
6614
+ value: null;
6615
+ } | {
6616
+ label: string;
6617
+ value: number;
6618
+ })[];
6619
+ /** ECharts grid spacing presets (px) — Default lets ECharts auto-fit. */
6620
+ readonly gridSpacingOptions: ({
6621
+ label: string;
6622
+ value: null;
6623
+ } | {
6624
+ label: string;
6625
+ value: number;
6626
+ })[];
6534
6627
  private onChange;
6535
6628
  private onTouched;
6536
6629
  writeValue(value: StackBarControlConfig): void;
@@ -6545,9 +6638,12 @@ declare class StackBarControlUi implements ControlValueAccessor {
6545
6638
  /**
6546
6639
  * Manage Item Component (Drawer)
6547
6640
  *
6548
- * Main drawer component for configuring chart/widget items.
6549
- * Uses tabs to organize different configuration sections.
6550
- * Provides ManageItemService for state sharing between child components.
6641
+ * Datasource-only editor for a chart/widget item. Title editing and click
6642
+ * actions are owned by their own dedicated card-menu drawers ("Edit item" and
6643
+ * "Actions"), so this drawer focuses entirely on the data source. The chart
6644
+ * preview is a collapsible right pane (collapsed by default) — use the drawer's
6645
+ * built-in maximize toggle to widen the whole drawer when more room is needed.
6646
+ * Provides ManageItemService for state sharing with the datasource editor.
6551
6647
  */
6552
6648
  declare class ManageItem implements OnInit {
6553
6649
  private _dashboardService;
@@ -6555,7 +6651,7 @@ declare class ManageItem implements OnInit {
6555
6651
  private _dialogConfig;
6556
6652
  readonly modal: ModalService;
6557
6653
  ref: ModalRef<any> | null;
6558
- private transloco;
6654
+ private readonly drawerController;
6559
6655
  /** Input data from drawer - supports both input() and dialog data */
6560
6656
  readonly data: _angular_core.InputSignal<{
6561
6657
  chart?: DashboardChartItem;
@@ -6568,23 +6664,7 @@ declare class ManageItem implements OnInit {
6568
6664
  };
6569
6665
  services?: readonly string[] | null;
6570
6666
  informativeContext?: DashboardInformativeContext | null;
6571
- /**
6572
- * Pass-2: which tab to open the drawer on. Configure CTA on the empty
6573
- * chart card sends `dataSource` so the user lands directly on the
6574
- * datasource flow rather than on General.
6575
- */
6576
- defaultTab?: "general" | "dataSource" | "actions";
6577
6667
  } | null>;
6578
- /** Whether chart type is pre-selected (hides type selection) */
6579
- readonly hasPreselectedType: _angular_core.Signal<boolean>;
6580
- /** Tab options with translation keys */
6581
- readonly tabOptions: _angular_core.Signal<{
6582
- label: string;
6583
- value: string;
6584
- icon: string;
6585
- }[]>;
6586
- /** Active tab */
6587
- readonly activeTab: _angular_core.WritableSignal<string>;
6588
6668
  /** Chart configuration being edited - from service */
6589
6669
  readonly config: _angular_core.Signal<ItemConfig | null>;
6590
6670
  /** Chart type ID - from service */
@@ -6597,20 +6677,21 @@ declare class ManageItem implements OnInit {
6597
6677
  readonly isNew: _angular_core.Signal<any>;
6598
6678
  /** Optional informative authoring context */
6599
6679
  readonly informativeContext: _angular_core.Signal<any>;
6680
+ /** Preview pane is collapsed by default; the form gets the full width. */
6681
+ readonly previewCollapsed: _angular_core.WritableSignal<boolean>;
6682
+ /** Drawer is ~half width for the form alone, wider while the preview is open. */
6683
+ private readonly COMPACT_WIDTH;
6684
+ private readonly EXPANDED_WIDTH;
6600
6685
  /** Saving state */
6601
6686
  readonly saving: _angular_core.WritableSignal<boolean>;
6602
6687
  /** Validation state */
6603
6688
  readonly isValid: _angular_core.Signal<boolean>;
6604
6689
  ngOnInit(): void;
6690
+ togglePreview(): void;
6605
6691
  save(): void;
6606
6692
  cancel(): void;
6607
- /** Update config from child components */
6608
- onConfigUpdate(partialConfig: Partial<ItemConfig>): void;
6609
- onChartTypeChange(type: ChartTypeConfig): void;
6610
- /** Update service config */
6693
+ /** Update service config from the datasource editor */
6611
6694
  onServiceConfigUpdate(partialConfig: Partial<ItemConfig['serviceConfig']>): void;
6612
- /** Update client config */
6613
- onClientConfigUpdate(partialConfig: Partial<ItemConfig['clientConfig']>): void;
6614
6695
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ManageItem, never>;
6615
6696
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ManageItem, "mt-manage-item", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6616
6697
  }
@@ -6788,12 +6869,6 @@ declare class TableQuery implements ControlValueAccessor {
6788
6869
  createAggregationFormGroup(agg?: Partial<AggregationProperty>): FormGroup;
6789
6870
  addAggregation(): void;
6790
6871
  removeAggregation(index: number): void;
6791
- selectedProperties(): string[];
6792
- pivotProperties(): string[];
6793
- moveSelectedProperty(index: number, direction: -1 | 1): void;
6794
- movePivotProperty(index: number, direction: -1 | 1): void;
6795
- getPropertyLabel(key: string): string;
6796
- private moveProperty;
6797
6872
  trackByIndex(index: number): number;
6798
6873
  private normalizeAggregateFunction;
6799
6874
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableQuery, never>;
@@ -6865,29 +6940,41 @@ declare class DataSourceSettings {
6865
6940
  /** Loading states */
6866
6941
  readonly loadingProperties: _angular_core.WritableSignal<boolean>;
6867
6942
  /**
6868
- * Pass-2: progressive-disclosure mode. `simple` shows only required fields
6869
- * + the most-common fields per chart type. `advanced` reveals every field
6870
- * (including custom API, source links, and per-property advanced options).
6871
- * No fields are removed in either mode — only their visibility is gated.
6872
- */
6873
- readonly disclosureMode: _angular_core.WritableSignal<"advanced" | "simple">;
6874
- /** Whether the user is in advanced mode. */
6875
- readonly isAdvanced: _angular_core.Signal<boolean>;
6876
- /** Toggle simple/advanced. */
6877
- onDisclosureToggle(advanced: boolean): void;
6878
- /** Tab state: 'selection' or 'customApi' */
6879
- readonly activeTab: _angular_core.WritableSignal<"selection" | "customApi">;
6880
- /** Selection mode inside the selection tab */
6943
+ * Data source mode a top-level either/or kept as a separated area above the
6944
+ * tabs: build a selection-based query OR fetch from a custom API endpoint.
6945
+ * Picking one hides the other.
6946
+ */
6947
+ readonly dataSourceMode: _angular_core.WritableSignal<"selection" | "customApi">;
6948
+ /**
6949
+ * Active tab within the selection cycle: Selection (pick modules) · Source
6950
+ * Links (joins, only with >1 selection) · Query (fields).
6951
+ */
6952
+ readonly activeSection: _angular_core.WritableSignal<"query" | "selection" | "sourceLinks">;
6953
+ /** Selection mode inside the selection tab (informative authoring). */
6881
6954
  readonly selectionMode: _angular_core.WritableSignal<"advanced" | "context">;
6882
6955
  readonly contextTargetSelector: _angular_core.WritableSignal<string | null>;
6883
6956
  readonly contextTargetApplyToken: _angular_core.WritableSignal<number>;
6884
6957
  /** Saved workspace id is preserved for existing configs, but no workspace endpoint is called. */
6885
6958
  readonly selectedWorkspaceId: _angular_core.WritableSignal<string | number | null>;
6886
- /** Tab options for display */
6887
- readonly tabOptions: _angular_core.Signal<{
6959
+ /**
6960
+ * Whether the Custom API mode is offered. Layout / snapshot / phaseGate
6961
+ * types have a fixed data path, so they skip the mode switch.
6962
+ */
6963
+ readonly supportsCustomApi: _angular_core.Signal<boolean>;
6964
+ /**
6965
+ * Sub-navigation tabs for the selection cycle: Selection · Source Links
6966
+ * (only when there is more than one selection) · Query.
6967
+ */
6968
+ readonly sectionOptions: _angular_core.Signal<{
6888
6969
  id: string;
6889
6970
  label: string;
6971
+ icon: string;
6890
6972
  }[]>;
6973
+ /** The active tab clamped to one that is actually available. */
6974
+ readonly visibleSection: _angular_core.Signal<string>;
6975
+ onSectionChange(id: string): void;
6976
+ /** Switch data source mode. Selecting "selection" drops any custom API. */
6977
+ onModeChange(mode: 'selection' | 'customApi'): void;
6891
6978
  /** Custom API configuration */
6892
6979
  readonly customApi: _angular_core.WritableSignal<CustomApi | null>;
6893
6980
  /** Internal selections state */
@@ -6920,12 +7007,10 @@ declare class DataSourceSettings {
6920
7007
  /** Track last loaded module signature to prevent duplicate requests */
6921
7008
  private lastLoadedSignature;
6922
7009
  /**
6923
- * Pass-2 guard: track whether we've already initialized the activeTab from
6924
- * a saved config. The Custom API Selection auto-switch should only run
6925
- * on the first config load, not on every subsequent edit; otherwise the
6926
- * user gets yanked off the Custom API tab when editing a sibling field.
7010
+ * Pick the initial tab from the saved config only once, so later local
7011
+ * edits don't yank the user off whatever tab they're working in.
6927
7012
  */
6928
- private tabInitializedFromConfig;
7013
+ private sectionInitialized;
6929
7014
  constructor();
6930
7015
  /**
6931
7016
  * Load properties for all selections using bulk API
@@ -7051,10 +7136,6 @@ declare class DataSourceSettings {
7051
7136
  * Handle isNormalized change
7052
7137
  */
7053
7138
  onIsNormalizedChange(value: boolean): void;
7054
- /**
7055
- * Handle tab change
7056
- */
7057
- onTabChange(tabId: string): void;
7058
7139
  /**
7059
7140
  * Handle custom API change
7060
7141
  */
@@ -7102,7 +7183,11 @@ declare class ActionsSettings {
7102
7183
  readonly config: _angular_core.InputSignal<ItemConfig | null>;
7103
7184
  /** Emit client config changes */
7104
7185
  readonly clientConfigChange: _angular_core.OutputEmitterRef<Partial<ClientConfig>>;
7105
- /** Action type options - using valid icons from icons.json */
7186
+ /**
7187
+ * Action type options. "Open Dialog" is intentionally NOT selectable here —
7188
+ * a dialog is created via the card's "Add dialog" action, which adds an
7189
+ * `openDialog` action. Existing openDialog actions are shown read-only.
7190
+ */
7106
7191
  readonly actionTypeOptions: readonly ActionTypeOption[];
7107
7192
  /** Trigger type options - using valid icons from icons.json */
7108
7193
  readonly triggerOptions: readonly TriggerOption[];
@@ -7124,6 +7209,11 @@ declare class ActionsSettings {
7124
7209
  * Add a new action
7125
7210
  */
7126
7211
  addAction(): void;
7212
+ /**
7213
+ * Whether an action is a dialog action (added via the card's "Add dialog"
7214
+ * flow). These are shown read-only here — managed from the dialog feature.
7215
+ */
7216
+ isDialogAction(action: ActionConfig): boolean;
7127
7217
  /**
7128
7218
  * Remove an action
7129
7219
  */
@@ -7238,5 +7328,5 @@ declare class GetChartActionsPipe implements PipeTransform {
7238
7328
  */
7239
7329
  declare function cloneDeep<T>(obj: T): T;
7240
7330
 
7241
- export { ActionsSettings, BarChartHandler, BarControlUi, CHART_CAPABILITIES, CHART_TYPES, CONFIG_DOMAINS, CardContentComponent, CardFilterComponent, CardInfoComponent, ChartCardComponent, ChartDataService, ChartFilterDrawer, ChartSettingsDrawer, ChartViewer, ComparisonChartHandler, DashboardBuilder, DashboardBuilderService, DashboardItem, DashboardItemStoreService, DashboardList, DashboardStoreService, DashboardViewer, DataSourceSettings, DatasourcePanelComponent, DefaultControlUi, DisplaySettings, DynamicFiltersComponent, DynamicFiltersConfig, EChartComponent, PropertiesCardComponent as EntitiesPreviewCardComponent, EntityInfoComponent, EntityPreviewCardComponent, FilterBuilderComponent, FilterByGroupPipe, FilterChipsBarComponent, GaugeChartHandler, GeneralSettings, GetChartActionsPipe, GuidedConfigDialogComponent, HTTPMethod, HeaderCardComponent, ITEM_GUIDANCE_REGISTRY, ItemCardMenuComponent, ItemConfigPopoverComponent, ItemContextToolbarComponent, ItemGuidanceService, LevelCardHandler, LineChartHandler, ListStatisticCardComponent, ManageBreadcrumb, ManageFilterOnPage, ManageItem, ManageItemService, ManagePages, MapChartHandler, OverviewCardHandler, POPOVER_TABS, POPOVER_TAB_SPECS, PhaseGateStepperHandler, PieChartHandler, PieControlUi, PropertiesCardComponent, RingGaugeChartHandler, SPlusChartHandler, STYLE_PRESETS, SchemaControlRendererComponent, SkeletonCardComponent, SnapshotHandler, SplitterChartHandler, StackBarChartHandler, StackBarControlUi, StaticFiltersComponent, StatisticCardComponent, TableCardComponent, TableViewHandler, TimelineHandler, TopbarCardComponent, addCommasToNumber, applyBehaviorToPersisted, applyControlPatchToPersisted, applyControlPatchesToPersisted, applyFilterChipsToPersisted, applyLabelLegendFormatToPersisted, applyLayoutToPersisted, applyStyleToPersisted, applyTitleToPersisted, axisFormatters, behaviorToUi, bindingKey, buildAssembly, buildDisplayFieldPredicate, cloneDeep, createAxisFormatter, createTooltipFormatter, datasourceToUi, deepMerge, describeGuidance, domainsForCapability, dynamicReorder, dynamicTextReplace, fieldsToUi, filtersToUi, findDomain, findPreset, flattenSchema, formatCurrency, formatDate, formatForEditor, formatNumber, formatPercentage, formatValue, formatWordsUnderBar, formatXAxis, generalConfiguration, getBinding, getCapabilityById, getColorFromConditions, getControlSchema, getFallbackControlSchema, getLocalizedTitle, getNestedData, groupDatesByYearAndMonth, groupIssuesByDomain, handleFilterForCard, handleFilterForSnapshot, handleFiltersForCustom, hasBlockingIssues, isMobilePlatform, labelLegendFormatToUi, layoutToUi, listBindings, listBindingsForChart, listControlSchemaIds, listControlSchemas, moduleIdFromSelector, normalizeAggregateFunction, normalizeBeforeRequest, normalizeBeforeSave, normalizeChartTypeForRequest, normalizeFilterOperation, normalizeFilters, normalizeOnLoad, parseAdvancedJson, persistedToUi, presetsForCapability, readBoundValue, readByPath, resolveCapability, resolveDisplayFields, selectorFromLegacy, setByPath, sortChartData, sortDataTableView, styleToUi, switchAllKeysSmall, switchAllKeysToLower, titleToUi, toBackendChartType, toBackendSourceLink, validate };
7331
+ export { ActionsSettings, BarChartHandler, BarControlUi, CHART_CAPABILITIES, CHART_TYPES, CONFIG_DOMAINS, CardContentComponent, CardFilterComponent, CardInfoComponent, ChartCardComponent, ChartDataService, ChartFilterDrawer, ChartSettingsDrawer, ChartViewer, ComparisonChartHandler, DashboardBuilder, DashboardBuilderService, DashboardItem, DashboardItemStoreService, DashboardList, DashboardStoreService, DashboardViewer, DataSourceSettings, DatasourcePanelComponent, DefaultControlUi, DisplaySettings, DynamicFiltersComponent, DynamicFiltersConfig, EChartComponent, PropertiesCardComponent as EntitiesPreviewCardComponent, EntityInfoComponent, EntityPreviewCardComponent, FilterBuilderComponent, FilterByGroupPipe, FilterChipsBarComponent, GaugeChartHandler, GeneralSettings, GetChartActionsPipe, GuidedConfigDialogComponent, HTTPMethod, HeaderCardComponent, ITEM_GUIDANCE_REGISTRY, ItemCardMenuComponent, ItemConfigPopoverComponent, ItemContextToolbarComponent, ItemGuidanceService, LevelCardHandler, LineChartHandler, ListStatisticCardComponent, ManageBreadcrumb, ManageFilterOnPage, ManageItem, ManageItemService, ManagePages, MapChartHandler, OverviewCardHandler, POPOVER_TABS, POPOVER_TAB_SPECS, PhaseGateStepperHandler, PieChartHandler, PieControlUi, PropertiesCardComponent, RingGaugeChartHandler, SPlusChartHandler, STYLE_PRESETS, SchemaControlRendererComponent, SkeletonCardComponent, SnapshotHandler, SplitterChartHandler, StackBarChartHandler, StackBarControlUi, StaticFiltersComponent, StatisticCardComponent, TableCardComponent, TableViewHandler, TimelineHandler, TopbarCardComponent, addCommasToNumber, applyBehaviorToPersisted, applyControlPatchToPersisted, applyControlPatchesToPersisted, applyFilterChipsToPersisted, applyLabelLegendFormatToPersisted, applyLayoutToPersisted, applyStyleToPersisted, applyTitleToPersisted, axisFormatters, behaviorToUi, bindingKey, buildAssembly, buildDisplayFieldPredicate, cloneDeep, createAxisFormatter, createTooltipFormatter, datasourceToUi, deepMerge, describeGuidance, domainsForCapability, dynamicReorder, dynamicTextReplace, fieldsToUi, filtersToUi, findDomain, findPreset, flattenSchema, formatCurrency, formatDate, formatForEditor, formatNumber, formatPercentage, formatValue, formatWordsUnderBar, formatXAxis, generalConfiguration, getBinding, getCapabilityById, getColorFromConditions, getControlSchema, getCurrencySuffix, getFallbackControlSchema, getLocalizedTitle, getNestedData, groupDatesByYearAndMonth, groupIssuesByDomain, handleFilterForCard, handleFilterForSnapshot, handleFiltersForCustom, hasBlockingIssues, isMobilePlatform, labelLegendFormatToUi, layoutToUi, listBindings, listBindingsForChart, listControlSchemaIds, listControlSchemas, moduleIdFromSelector, normalizeAggregateFunction, normalizeBeforeRequest, normalizeBeforeSave, normalizeChartTypeForRequest, normalizeFilterOperation, normalizeFilters, normalizeOnLoad, parseAdvancedJson, persistedToUi, presetsForCapability, readBoundValue, readByPath, resolveCapability, resolveDisplayFields, selectorFromLegacy, setByPath, sortChartData, sortDataTableView, styleToUi, switchAllKeysSmall, switchAllKeysToLower, titleToUi, toBackendChartType, toBackendSourceLink, validate };
7242
7332
  export type { ActionConfig, ApiResponse, BackendChartType, BarChartData, BehaviorUi, BindingScope, BreadcrumbItem, BulkLinkChartRequest, BulkLinkChartResponse, BulkPropertiesRequest, BulkPropertiesResponse, BulkPropertiesResponseItem, BulkPropertiesResponseItemDto, BulkPropertyRequestItem, CardBorderStyleConfig, CardInfoConfig$1 as CardInfoConfig, CardStyleConfig$1 as CardStyleConfig, CatalogPropertyDto, ChartActionEvent, ChartActionsContext, ChartCapability, ChartCapabilityLegacyAliases, RequestType$1 as ChartCapabilityRequestType, ChartData, ChartDataHandled, ChartDomainSupport, ChartLabel, ChartLinkConfiguration, ChartTypeConfig, ClientConfig, ComponentType, ConfigDomainKey, ConfigDomainSpec, ConfigLookupShape, ConfigViewAssembly, ControlBinding, ControlBindingIndex, ControlBindingValueAdapter, ControlDomain, ControlField, ControlFieldType, ControlOption, ControlPatch, ControlSchema, ControlSection, ControlSectionScope, ControlVisiblePredicate, CustomApi, DashboardBuilderData, DashboardChartItem, DashboardChartTemplate, DashboardDialogItem, DashboardInformativeContext, DashboardItemStore, DashboardListEvent, DashboardPage, DashboardSaveRequestOptions, DashboardTargetOption, DashboardTargetPathStep, DashboardTargetTemplateFilter, DashboardTargetTemplateSelection, DashboardTargetTemplateSourceLink, DashboardTargetsContextInfo, DashboardTargetsResponse, DatasourceUi, DisplayConfig, DisplayField, DisplayFieldQuery, DisplaySchema, EChartSeriesItem, ExcelSheet, FieldAssignment, FieldsUi, FilterChip, FilterConfig, FilterOperator, FilterOption, FilterScope, FilterSource, FiltersUi, FlattenedControl, FormatXAxisConfig$1 as FormatXAxisConfig, GroupedModuleOption, GuidanceInput, GuidedConfigDialogData, GuidedConfigDialogResult, GuidedStep, HandleAction, HeaderCardConfig$1 as HeaderCardConfig, IModule, IModuleType, IProperty, IPropertyWithGroup, ISelection, ItemCardMenuAction, ItemConfig, ItemConfigPopoverData, ItemConfigPopoverResult, ItemContextAction, ItemGuidanceAction, ItemGuidanceDescriptor, ItemGuidanceSeverity, ItemGuidanceState, LabelLegendFormatUi, LayoutUi, LevelCardData, LevelCardProperty, LinkChartRequest, LocalizedName, ManageFilterOnPageResult, ModuleItem, ModuleSelectOption, ModuleType, ModuleValue, ModulesTreeRequest, ModulesTreeResponse, ParseResult, PersistedItemConfig, PhaseGateProperty, PhaseGateStep, PieChartData, PopoverTab, PopoverTabSpec, Product, PropertiesResponse, PropertyItem, PropertyItemOption, PropertyItemsResponse, QueryEditorKind, QueryField, QuerySchema, QuickManageType, RendererKey, Report, ReportChartLink, ReportDashboardConfig, ReportExcelConfig, ReportType, ReportUrl, RequestType, RuntimeItemConfig, SelectionFilter, ServiceConfig, ServiceItem, SourceLink, StaticFilterConfig, StaticFilterItem, StatisticCardData, StyleConfig, StylePreset, StylePresetKey, StyleUi, TableColumn$1 as TableColumn, TableViewData, TimelineData, TimelineItem, TitleUi, UiItemConfig, UnlinkChartRequest, ValidateOptions, ValidationIssue, ValidationSeverity };