@luzmo/analytics-components-kit 1.3.0 → 1.4.0

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.
Files changed (118) hide show
  1. package/README.md +6 -3
  2. package/angular/components/add-to-dashboard.ts +20 -6
  3. package/angular/components/data-fields-select.ts +5 -0
  4. package/angular/components/interactive-viz-item.ts +87 -22
  5. package/angular/components/item-grid-item-actions-menu.ts +5 -0
  6. package/angular/components/item-grid.ts +7 -0
  7. package/angular/components/item-option-color-picker.ts +28 -28
  8. package/angular/components/item-option-guidelines.ts +22 -1
  9. package/angular/components/item-option-multi-language-field.ts +7 -7
  10. package/angular/components/item-option-number-field.ts +14 -14
  11. package/angular/components/item-option-positions-number-field.ts +14 -14
  12. package/angular/components/item-option-radio-button-group.ts +7 -7
  13. package/angular/components/item-option-text-field.ts +7 -7
  14. package/angular/components/item-slot-picker-panel.ts +1 -1
  15. package/angular/components/item-slot-picker.ts +7 -7
  16. package/angular/esm/components/add-to-dashboard.d.ts +8 -4
  17. package/angular/esm/components/add-to-dashboard.js +23 -7
  18. package/angular/esm/components/data-fields-select.d.ts +2 -0
  19. package/angular/esm/components/data-fields-select.js +4 -0
  20. package/angular/esm/components/interactive-viz-item.d.ts +30 -9
  21. package/angular/esm/components/interactive-viz-item.js +98 -27
  22. package/angular/esm/components/item-grid-item-actions-menu.d.ts +2 -0
  23. package/angular/esm/components/item-grid-item-actions-menu.js +4 -0
  24. package/angular/esm/components/item-grid.d.ts +3 -1
  25. package/angular/esm/components/item-grid.js +9 -1
  26. package/angular/esm/components/item-option-color-picker.d.ts +10 -10
  27. package/angular/esm/components/item-option-color-picker.js +34 -34
  28. package/angular/esm/components/item-option-guidelines.d.ts +8 -2
  29. package/angular/esm/components/item-option-guidelines.js +26 -2
  30. package/angular/esm/components/item-option-multi-language-field.d.ts +3 -3
  31. package/angular/esm/components/item-option-multi-language-field.js +10 -10
  32. package/angular/esm/components/item-option-number-field.d.ts +5 -5
  33. package/angular/esm/components/item-option-number-field.js +18 -18
  34. package/angular/esm/components/item-option-positions-number-field.d.ts +5 -5
  35. package/angular/esm/components/item-option-positions-number-field.js +18 -18
  36. package/angular/esm/components/item-option-radio-button-group.d.ts +3 -3
  37. package/angular/esm/components/item-option-radio-button-group.js +10 -10
  38. package/angular/esm/components/item-option-text-field.d.ts +3 -3
  39. package/angular/esm/components/item-option-text-field.js +10 -10
  40. package/angular/esm/components/item-slot-picker-panel.d.ts +1 -1
  41. package/angular/esm/components/item-slot-picker-panel.js +1 -1
  42. package/angular/esm/components/item-slot-picker.d.ts +3 -3
  43. package/angular/esm/components/item-slot-picker.js +9 -9
  44. package/angular/package.json +2 -2
  45. package/components/add-to-dashboard/dashboard-actions.d.ts +2 -1
  46. package/components/add-to-dashboard/index.cjs +1 -1
  47. package/components/add-to-dashboard/index.js +1 -1
  48. package/components/{add-to-dashboard-CzIuDtAq.cjs → add-to-dashboard-BtzTZdjN.cjs} +1 -1
  49. package/components/{add-to-dashboard-DGC0_hRB.js → add-to-dashboard-Bu6S3qVz.js} +125 -120
  50. package/components/chart-helpers-BHxQbLBw.cjs +20 -0
  51. package/components/{chart-helpers-Cbl3sRra.js → chart-helpers-BKeMLhov.js} +51 -38
  52. package/components/filters/index.cjs +1 -1
  53. package/components/filters/index.js +1 -1
  54. package/components/{filters-CxIzuI5q.js → filters-DEpmh9Nj.js} +113 -102
  55. package/components/filters-LDXhe1Bp.cjs +187 -0
  56. package/components/index.cjs +1 -1
  57. package/components/index.js +6 -6
  58. package/components/interactive-viz-item/helpers/chart-helpers.d.ts +2 -1
  59. package/components/interactive-viz-item/index.cjs +1 -1
  60. package/components/interactive-viz-item/index.js +3 -3
  61. package/components/interactive-viz-item/interactive-viz-item.d.ts +44 -0
  62. package/components/{interactive-viz-item-BKLOmawA.js → interactive-viz-item-Cc3Ix95e.js} +151 -110
  63. package/components/interactive-viz-item-SF12d97t.cjs +269 -0
  64. package/components/item-grid/item-grid.d.ts +1 -0
  65. package/components/item-slot-picker-panel/index.cjs +1 -1
  66. package/components/item-slot-picker-panel/index.js +1 -1
  67. package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +19 -1
  68. package/components/item-slot-picker-panel-Cw3UCK03.cjs +84 -0
  69. package/components/{item-slot-picker-panel-fJqEmxeD.js → item-slot-picker-panel-DprM9Rli.js} +64 -33
  70. package/custom-elements.json +3044 -2532
  71. package/grid-core/item-grid-base.d.ts +5 -4
  72. package/package.json +1 -1
  73. package/react/package.json +2 -2
  74. package/standalone/add-to-dashboard.js +1 -1
  75. package/standalone/chunks/{chart-helpers-CR-EUEPf.js → chart-helpers-DZsidiCl.js} +1 -1
  76. package/standalone/chunks/data-broker-DpSrH3IP.js +2 -0
  77. package/standalone/chunks/{display-settings-binning-BeLLxd3i.js → display-settings-binning-DhHlclWH.js} +1 -1
  78. package/standalone/chunks/{display-settings-datetime-BkeiKIVV.js → display-settings-datetime-C8xvOvi4.js} +1 -1
  79. package/standalone/chunks/{display-settings-grand-totals-BuhpQKJ6.js → display-settings-grand-totals-CUpigDcs.js} +1 -1
  80. package/standalone/chunks/{display-settings-numeric-m30IYI7I.js → display-settings-numeric-BLWF54Jx.js} +1 -1
  81. package/standalone/chunks/{display-settings-period-over-period-CqDlOSRn.js → display-settings-period-over-period-COd4tvUw.js} +1 -1
  82. package/standalone/chunks/en-DNsyAwgq.js +2 -0
  83. package/standalone/chunks/en-GB-Di3OzVdL.js +2 -0
  84. package/standalone/chunks/en-US-DNsyAwgq.js +2 -0
  85. package/standalone/chunks/{filters-CxgBXUF1.js → filters-lhg_WVDK.js} +72 -72
  86. package/standalone/chunks/{formula-codemirror-Cq94j3-f.js → formula-codemirror-DZMzLE2I.js} +1 -1
  87. package/standalone/chunks/{item-option-action-button-group-BoyqF9vt.js → item-option-action-button-group-Bl1HR1JK.js} +1 -1
  88. package/standalone/chunks/{item-option-base-CBcDT8MX.js → item-option-base-DF24wTyv.js} +1 -1
  89. package/standalone/chunks/{item-option-color-palette-picker-C9PGAv4V.js → item-option-color-palette-picker-MkIIn56p.js} +1 -1
  90. package/standalone/chunks/{item-option-color-picker-D4fVJlqF.js → item-option-color-picker-CxosMo_p.js} +1 -1
  91. package/standalone/chunks/{item-option-color-range-BlAdTguE.js → item-option-color-range-C7C70r4J.js} +1 -1
  92. package/standalone/chunks/{item-option-guidelines-DMsYsHDu.js → item-option-guidelines-iu8yWRzr.js} +1 -1
  93. package/standalone/chunks/{item-option-multi-language-field-NUbm1drg.js → item-option-multi-language-field-foanqCdr.js} +1 -1
  94. package/standalone/chunks/{item-option-number-field-DRp7kbHL.js → item-option-number-field-ByVD4oq0.js} +1 -1
  95. package/standalone/chunks/{item-option-panel-cXrRclzM.js → item-option-panel-Bya-K7HH.js} +2 -2
  96. package/standalone/chunks/{item-option-picker-Ba09L4Cs.js → item-option-picker-CqNNVIML.js} +1 -1
  97. package/standalone/chunks/{item-option-position-picker-GEGTnhjw.js → item-option-position-picker-BjCFVtDH.js} +1 -1
  98. package/standalone/chunks/{item-option-positions-number-field-n44s1k5v.js → item-option-positions-number-field-BJJtXZL-.js} +1 -1
  99. package/standalone/chunks/{item-option-radio-button-group-3s_b1NvR.js → item-option-radio-button-group-C5bxsD85.js} +1 -1
  100. package/standalone/chunks/{item-option-slider-DtY65Gxk.js → item-option-slider-DUXWz70B.js} +1 -1
  101. package/standalone/chunks/{item-option-switch-4sJaI0mx.js → item-option-switch-BHyJuOkP.js} +1 -1
  102. package/standalone/chunks/{item-option-text-field-Bt6Lj6kh.js → item-option-text-field-rBZY9OX4.js} +1 -1
  103. package/standalone/chunks/{item-slot-picker-panel-BOSVFBIy.js → item-slot-picker-panel-BM82vSXi.js} +74 -72
  104. package/standalone/chunks/load-data-fields-for-datasets-DS9O1oyy.js +25 -0
  105. package/standalone/chunks/localize-DLl7tgQp.js +2 -0
  106. package/standalone/interactive-viz-item.js +54 -53
  107. package/standalone/manifest.json +31 -31
  108. package/types.d.ts +1 -1
  109. package/components/chart-helpers-fMnqHRzC.cjs +0 -20
  110. package/components/filters-BPbPFOu5.cjs +0 -187
  111. package/components/interactive-viz-item-ojdH1uk0.cjs +0 -268
  112. package/components/item-slot-picker-panel-BhhN54IM.cjs +0 -82
  113. package/standalone/chunks/data-broker-DXDyIrj_.js +0 -2
  114. package/standalone/chunks/en-63f7j4v7.js +0 -2
  115. package/standalone/chunks/en-GB-QAmXQf8W.js +0 -2
  116. package/standalone/chunks/en-US-63f7j4v7.js +0 -2
  117. package/standalone/chunks/load-data-fields-for-datasets-CDlut-6S.js +0 -25
  118. package/standalone/chunks/localize-DXRmGRe-.js +0 -2
@@ -25,10 +25,6 @@ export class LuzmoItemOptionRadioButtonGroup implements OnChanges {
25
25
  return this.host;
26
26
  }
27
27
 
28
- /** Internal timer handle used to debounce change events. */
29
- @Input({ alias: 'debounceTimeout' })
30
- debounceTimeout?: any;
31
-
32
28
  /** The available options to choose from (key → label). */
33
29
  @Input({ alias: 'values' })
34
30
  values?: Record<string, string>;
@@ -53,6 +49,10 @@ export class LuzmoItemOptionRadioButtonGroup implements OnChanges {
53
49
  @Input({ alias: 'toValue' })
54
50
  toValue?: unknown;
55
51
 
52
+ /** Internal timer handle used to debounce change events. */
53
+ @Input({ alias: 'debounceTimeout' })
54
+ debounceTimeout?: any;
55
+
56
56
  /** Emitted when the option value changes. */
57
57
  readonly luzmoOptionChanged = output<CustomEvent<ItemOptionChangedEventDetail>>({ alias: 'luzmoOptionChanged' });
58
58
 
@@ -68,9 +68,6 @@ export class LuzmoItemOptionRadioButtonGroup implements OnChanges {
68
68
  ngOnChanges(changes: SimpleChanges): void {
69
69
  for (const key of Object.keys(changes)) {
70
70
  switch (key) {
71
- case 'debounceTimeout':
72
- this.setHostProperty('debounceTimeout', changes['debounceTimeout'].currentValue);
73
- break;
74
71
  case 'values':
75
72
  this.setHostProperty('values', changes['values'].currentValue);
76
73
  break;
@@ -89,6 +86,9 @@ export class LuzmoItemOptionRadioButtonGroup implements OnChanges {
89
86
  case 'toValue':
90
87
  this.setHostProperty('toValue', changes['toValue'].currentValue);
91
88
  break;
89
+ case 'debounceTimeout':
90
+ this.setHostProperty('debounceTimeout', changes['debounceTimeout'].currentValue);
91
+ break;
92
92
  default:
93
93
  break;
94
94
  }
@@ -25,10 +25,6 @@ export class LuzmoItemOptionTextField implements OnChanges {
25
25
  return this.host;
26
26
  }
27
27
 
28
- /** Internal timer handle used to debounce change events. */
29
- @Input({ alias: 'debounceTimeout' })
30
- debounceTimeout?: any;
31
-
32
28
  /** The current text value. */
33
29
  @Input({ alias: 'value' })
34
30
  value?: string;
@@ -49,6 +45,10 @@ export class LuzmoItemOptionTextField implements OnChanges {
49
45
  @Input({ alias: 'debounce' })
50
46
  debounce?: number;
51
47
 
48
+ /** Internal timer handle used to debounce change events. */
49
+ @Input({ alias: 'debounceTimeout' })
50
+ debounceTimeout?: any;
51
+
52
52
  /** Emitted when the option value changes. */
53
53
  readonly luzmoOptionChanged = output<CustomEvent<ItemOptionChangedEventDetail>>({ alias: 'luzmoOptionChanged' });
54
54
 
@@ -64,9 +64,6 @@ export class LuzmoItemOptionTextField implements OnChanges {
64
64
  ngOnChanges(changes: SimpleChanges): void {
65
65
  for (const key of Object.keys(changes)) {
66
66
  switch (key) {
67
- case 'debounceTimeout':
68
- this.setHostProperty('debounceTimeout', changes['debounceTimeout'].currentValue);
69
- break;
70
67
  case 'value':
71
68
  this.setHostProperty('value', changes['value'].currentValue);
72
69
  break;
@@ -82,6 +79,9 @@ export class LuzmoItemOptionTextField implements OnChanges {
82
79
  case 'debounce':
83
80
  this.setHostProperty('debounce', changes['debounce'].currentValue);
84
81
  break;
82
+ case 'debounceTimeout':
83
+ this.setHostProperty('debounceTimeout', changes['debounceTimeout'].currentValue);
84
+ break;
85
85
  default:
86
86
  break;
87
87
  }
@@ -68,7 +68,7 @@ export class LuzmoItemSlotPickerPanel implements OnChanges {
68
68
  @Input({ alias: 'datasetIds' })
69
69
  datasetIds?: string[];
70
70
 
71
- /** The currently selected dataset ID. If not provided, defaults to the first available dataset. */
71
+ /** The currently selected dataset ID. If not provided, defaults to the first available dataset, except when the panel fetches the dataset list itself. */
72
72
  @Input({ alias: 'selectedDatasetId' })
73
73
  selectedDatasetId?: string;
74
74
 
@@ -84,6 +84,10 @@ export class LuzmoItemSlotPicker implements OnChanges {
84
84
  @Input({ alias: 'selects' })
85
85
  selects?: 'single' | 'multiple';
86
86
 
87
+ /** Whether the search input is visible: `on`, `off`, or `auto`. */
88
+ @Input({ alias: 'search' })
89
+ search?: 'on' | 'off' | 'auto';
90
+
87
91
  /** Where to show icons */
88
92
  @Input({ alias: 'icons' })
89
93
  icons?: 'none' | 'menu-only' | 'all';
@@ -120,10 +124,6 @@ export class LuzmoItemSlotPicker implements OnChanges {
120
124
  @Input({ alias: 'language' })
121
125
  language?: string;
122
126
 
123
- /** Whether the search input is visible: `on`, `off`, or `auto`. */
124
- @Input({ alias: 'search' })
125
- search?: 'on' | 'off' | 'auto';
126
-
127
127
  /** The size of the element */
128
128
  @Input({ alias: 'size' })
129
129
  size?: 's' | 'm' | 'l' | 'xl';
@@ -185,6 +185,9 @@ export class LuzmoItemSlotPicker implements OnChanges {
185
185
  case 'selects':
186
186
  this.setHostProperty('selects', changes['selects'].currentValue);
187
187
  break;
188
+ case 'search':
189
+ this.setHostProperty('search', changes['search'].currentValue);
190
+ break;
188
191
  case 'icons':
189
192
  this.setHostProperty('icons', changes['icons'].currentValue);
190
193
  break;
@@ -212,9 +215,6 @@ export class LuzmoItemSlotPicker implements OnChanges {
212
215
  case 'language':
213
216
  this.setHostProperty('language', changes['language'].currentValue);
214
217
  break;
215
- case 'search':
216
- this.setHostProperty('search', changes['search'].currentValue);
217
- break;
218
218
  case 'size':
219
219
  this.setHostProperty('size', changes['size'].currentValue);
220
220
  break;
@@ -1,6 +1,6 @@
1
1
  import { OnChanges, SimpleChanges } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/add-to-dashboard';
3
- import type { LuzmoAddToDashboard as LuzmoAddToDashboardHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail } from '@luzmo/analytics-components-kit/add-to-dashboard';
3
+ import type { LuzmoAddToDashboard as LuzmoAddToDashboardHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, DashboardActions, FlexChartConfig } from '@luzmo/analytics-components-kit/add-to-dashboard';
4
4
  import type { Placement } from '@luzmo/lucero';
5
5
  import * as i0 from "@angular/core";
6
6
  export type { AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, AddToDashboardSettings, BuiltInDashboardActionsConfig, DashboardActionCallOptions, DashboardActions, DashboardListPage, DashboardListRequest, DashboardOption, FlexChartConfig } from '@luzmo/analytics-components-kit/add-to-dashboard';
@@ -12,8 +12,10 @@ export declare class LuzmoAddToDashboard implements OnChanges {
12
12
  private readonly listenerCleanup;
13
13
  /** The underlying custom element instance. Use to call imperative methods. */
14
14
  get nativeElement(): LuzmoAddToDashboardHostElement;
15
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
16
- language?: string;
15
+ /** Chart to save; `options.theme` is removed before it reaches the adapter. */
16
+ chart?: FlexChartConfig | null;
17
+ /** Host data operations. When unset, the built-in adapter on the auth properties is used. */
18
+ dashboardActions?: DashboardActions | null;
17
19
  /** Auth key for the built-in adapter. */
18
20
  authKey?: string;
19
21
  /** Auth token for the built-in adapter. */
@@ -24,6 +26,8 @@ export declare class LuzmoAddToDashboard implements OnChanges {
24
26
  placement?: Placement;
25
27
  /** When present, the button is disabled. */
26
28
  disabled?: boolean;
29
+ /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
30
+ language?: string;
27
31
  /** The size of the element */
28
32
  size?: 's' | 'm' | 'l' | 'xl';
29
33
  /** Fired after the chart was saved to a dashboard, a new dashboard or a variant. */
@@ -41,7 +45,7 @@ export declare class LuzmoAddToDashboard implements OnChanges {
41
45
  private setHostProperty;
42
46
  private bindEvents;
43
47
  static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoAddToDashboard, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoAddToDashboard, "luzmo-add-to-dashboard", ["luzmoAddToDashboard"], { "language": { "alias": "language"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "luzmoChartAdded": "luzmoChartAdded"; "luzmoChartAddFailed": "luzmoChartAddFailed"; }, never, ["*"], true, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoAddToDashboard, "luzmo-add-to-dashboard", ["luzmoAddToDashboard"], { "chart": { "alias": "chart"; "required": false; }; "dashboardActions": { "alias": "dashboardActions"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "luzmoChartAdded": "luzmoChartAdded"; "luzmoChartAddFailed": "luzmoChartAddFailed"; }, never, ["*"], true, never>;
45
49
  static ngAcceptInputType_disabled: unknown;
46
50
  }
47
51
  /** The underlying custom element type for LuzmoAddToDashboard */
@@ -15,8 +15,10 @@ export class LuzmoAddToDashboard {
15
15
  get nativeElement() {
16
16
  return this.host;
17
17
  }
18
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
19
- language;
18
+ /** Chart to save; `options.theme` is removed before it reaches the adapter. */
19
+ chart;
20
+ /** Host data operations. When unset, the built-in adapter on the auth properties is used. */
21
+ dashboardActions;
20
22
  /** Auth key for the built-in adapter. */
21
23
  authKey;
22
24
  /** Auth token for the built-in adapter. */
@@ -27,6 +29,8 @@ export class LuzmoAddToDashboard {
27
29
  placement;
28
30
  /** When present, the button is disabled. */
29
31
  disabled;
32
+ /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
33
+ language;
30
34
  /** The size of the element */
31
35
  size;
32
36
  /** Fired after the chart was saved to a dashboard, a new dashboard or a variant. */
@@ -44,8 +48,11 @@ export class LuzmoAddToDashboard {
44
48
  ngOnChanges(changes) {
45
49
  for (const key of Object.keys(changes)) {
46
50
  switch (key) {
47
- case 'language':
48
- this.setHostProperty('language', changes['language'].currentValue);
51
+ case 'chart':
52
+ this.setHostProperty('chart', changes['chart'].currentValue);
53
+ break;
54
+ case 'dashboardActions':
55
+ this.setHostProperty('dashboardActions', changes['dashboardActions'].currentValue);
49
56
  break;
50
57
  case 'authKey':
51
58
  this.setHostProperty('authKey', changes['authKey'].currentValue);
@@ -62,6 +69,9 @@ export class LuzmoAddToDashboard {
62
69
  case 'disabled':
63
70
  this.setHostProperty('disabled', changes['disabled'].currentValue);
64
71
  break;
72
+ case 'language':
73
+ this.setHostProperty('language', changes['language'].currentValue);
74
+ break;
65
75
  case 'size':
66
76
  this.setHostProperty('size', changes['size'].currentValue);
67
77
  break;
@@ -90,7 +100,7 @@ export class LuzmoAddToDashboard {
90
100
  }));
91
101
  }
92
102
  static ɵfac = function LuzmoAddToDashboard_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoAddToDashboard)(); };
93
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoAddToDashboard, selectors: [["luzmo-add-to-dashboard"]], inputs: { language: "language", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", placement: "placement", disabled: [2, "disabled", "disabled", booleanAttribute], size: "size" }, outputs: { luzmoChartAdded: "luzmoChartAdded", luzmoChartAddFailed: "luzmoChartAddFailed" }, exportAs: ["luzmoAddToDashboard"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoAddToDashboard_Template(rf, ctx) { if (rf & 1) {
103
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoAddToDashboard, selectors: [["luzmo-add-to-dashboard"]], inputs: { chart: "chart", dashboardActions: "dashboardActions", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", placement: "placement", disabled: [2, "disabled", "disabled", booleanAttribute], language: "language", size: "size" }, outputs: { luzmoChartAdded: "luzmoChartAdded", luzmoChartAddFailed: "luzmoChartAddFailed" }, exportAs: ["luzmoAddToDashboard"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoAddToDashboard_Template(rf, ctx) { if (rf & 1) {
94
104
  i0.ɵɵprojectionDef();
95
105
  i0.ɵɵprojection(0);
96
106
  } }, encapsulation: 2 });
@@ -104,9 +114,12 @@ export class LuzmoAddToDashboard {
104
114
  changeDetection: ChangeDetectionStrategy.OnPush,
105
115
  template: '<ng-content />'
106
116
  }]
107
- }], () => [], { language: [{
117
+ }], () => [], { chart: [{
108
118
  type: Input,
109
- args: [{ alias: 'language' }]
119
+ args: [{ alias: 'chart' }]
120
+ }], dashboardActions: [{
121
+ type: Input,
122
+ args: [{ alias: 'dashboardActions' }]
110
123
  }], authKey: [{
111
124
  type: Input,
112
125
  args: [{ alias: 'authKey' }]
@@ -122,6 +135,9 @@ export class LuzmoAddToDashboard {
122
135
  }], disabled: [{
123
136
  type: Input,
124
137
  args: [{ alias: 'disabled', transform: booleanAttribute }]
138
+ }], language: [{
139
+ type: Input,
140
+ args: [{ alias: 'language' }]
125
141
  }], size: [{
126
142
  type: Input,
127
143
  args: [{ alias: 'size' }]
@@ -71,6 +71,8 @@ export declare class LuzmoDataFieldsSelect implements OnChanges {
71
71
  */
72
72
  private setHostProperty;
73
73
  private bindEvents;
74
+ /** Focuses the select trigger. */
75
+ focus(options?: FocusOptions): void;
74
76
  static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoDataFieldsSelect, never>;
75
77
  static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoDataFieldsSelect, "luzmo-data-fields-select", ["luzmoDataFieldsSelect"], { "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "label": { "alias": "label"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; "levels": { "alias": "levels"; "required": false; }; "allowEmpty": { "alias": "allowEmpty"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "selects": { "alias": "selects"; "required": false; }; "value": { "alias": "value"; "required": false; }; "retrieving": { "alias": "retrieving"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "pending": { "alias": "pending"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "quiet": { "alias": "quiet"; "required": false; }; "search": { "alias": "search"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "datasetsDataFields": { "alias": "datasetsDataFields"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoDataFieldsSelected": "luzmoDataFieldsSelected"; }, never, ["*"], true, never>;
76
78
  static ngAcceptInputType_allowEmpty: unknown;
@@ -158,6 +158,10 @@ export class LuzmoDataFieldsSelect {
158
158
  this.luzmoDataFieldsSelected.emit(typed);
159
159
  }));
160
160
  }
161
+ /** Focuses the select trigger. */
162
+ focus(options) {
163
+ return this.host.focus(options);
164
+ }
161
165
  static ɵfac = function LuzmoDataFieldsSelect_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoDataFieldsSelect)(); };
162
166
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoDataFieldsSelect, selectors: [["luzmo-data-fields-select"]], inputs: { contentLanguage: "contentLanguage", label: "label", icons: "icons", levels: "levels", allowEmpty: [2, "allowEmpty", "allowEmpty", booleanAttribute], placeholder: "placeholder", selects: "selects", value: "value", retrieving: [2, "retrieving", "retrieving", booleanAttribute], invalid: [2, "invalid", "invalid", booleanAttribute], clearable: [2, "clearable", "clearable", booleanAttribute], pending: [2, "pending", "pending", booleanAttribute], disabled: [2, "disabled", "disabled", booleanAttribute], readonly: [2, "readonly", "readonly", booleanAttribute], quiet: [2, "quiet", "quiet", booleanAttribute], search: "search", placement: "placement", datasetsDataFields: "datasetsDataFields", language: "language", size: "size", autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoDataFieldsSelected: "luzmoDataFieldsSelected" }, exportAs: ["luzmoDataFieldsSelect"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoDataFieldsSelect_Template(rf, ctx) { if (rf & 1) {
163
167
  i0.ɵɵprojectionDef();
@@ -1,6 +1,7 @@
1
1
  import { OnChanges, SimpleChanges } from '@angular/core';
2
2
  import '@luzmo/analytics-components-kit/interactive-viz-item';
3
- import type { LuzmoInteractiveVizItem as LuzmoInteractiveVizItemHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, ChartFeedback, FlexChartConfig, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail, InteractiveVizItemInteractionEventDetail } from '@luzmo/analytics-components-kit/interactive-viz-item';
3
+ import type { LuzmoInteractiveVizItem as LuzmoInteractiveVizItemHostElement, AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, ChartFeedback, DashboardActions, FlexChartConfig, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail, InteractiveVizItemInteractionEventDetail } from '@luzmo/analytics-components-kit/interactive-viz-item';
4
+ import type { OptionsConfig, SlotConfig, TranslationOverrides, TranslationsFile, VizItemExportType } from '@luzmo/dashboard-contents-types';
4
5
  import type { LuzmoEmbedVizItem } from '@luzmo/embed';
5
6
  import * as i0 from "@angular/core";
6
7
  export type { AddToDashboardChartAddFailedEventDetail, AddToDashboardChartAddedEventDetail, ChartActionDescriptor, ChartActionType, ChartFeedback, ChartFeedbackRating, ChartMutationRequest, ChartOption, DashboardActions, FlexChartConfig, InlineData, InteractiveVizItemChartChangedEventDetail, InteractiveVizItemChartOptionsChangedEventDetail, InteractiveVizItemFeedbackChangedEventDetail, InteractiveVizItemInteractionEventDetail, ItemOptionInteraction, ItemOptionInteractionEventDetail, NormalizedChartConfig, Ranking, Sort } from '@luzmo/analytics-components-kit/interactive-viz-item';
@@ -12,12 +13,6 @@ export declare class LuzmoInteractiveVizItem implements OnChanges {
12
13
  private readonly listenerCleanup;
13
14
  /** The underlying custom element instance. Use to call imperative methods. */
14
15
  get nativeElement(): LuzmoInteractiveVizItemHostElement;
15
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
16
- language?: string;
17
- /** When present, renders `luzmo-add-to-dashboard` in the actions bar. */
18
- addToDashboard?: boolean;
19
- /** Click-to-filter on the embedded chart, forwarded as its `canFilter`. The `can-filter` attribute means `'all'`; unset keeps it off. */
20
- canFilter?: LuzmoEmbedVizItem['canFilter'];
21
16
  /** Loose chart config (type, options, slots, filters, inlineData); slots may use the keyed-object form. */
22
17
  chart?: FlexChartConfig | null;
23
18
  /** Current feedback (drives the thumbs up/down selection). */
@@ -40,10 +35,32 @@ export declare class LuzmoInteractiveVizItem implements OnChanges {
40
35
  hideFeedback?: boolean;
41
36
  /** When present, hides the config-panel toggle and the panel itself. */
42
37
  hideConfigPanel?: boolean;
38
+ /** When present, hides the options tab of the config panel and keeps the data tab. */
39
+ hideConfigOptions?: boolean;
40
+ /** Whether each slot in the config panel takes one field or several, forwarded to `luzmo-item-slot-picker-panel` as `selects`. */
41
+ slotSelects?: 'single' | 'multiple';
42
+ /** When present, the slot pickers in the config panel grow to full width, forwarded as `grows`. */
43
+ slotGrows?: boolean;
44
+ /** Slots configuration for the config panel, for a chart type ACK has no definition for (e.g. a custom chart). */
45
+ slotsConfiguration?: SlotConfig[] | null;
46
+ /** Options configuration for the config panel, for a chart type ACK has no definition for (e.g. a custom chart). */
47
+ customOptionsConfiguration?: OptionsConfig | null;
48
+ /** Option label translations that go with `customOptionsConfiguration`. */
49
+ customTranslations?: TranslationOverrides | TranslationsFile | null;
50
+ /** Options applied to the embedded chart only, merged one level deep over `chart.options` (e.g. `{ display: { title: false } }`). They are never emitted in chart events nor saved by add to dashboard. */
51
+ chartRenderOptions?: FlexChartConfig['options'] | null;
52
+ /** When present, renders `luzmo-add-to-dashboard` in the actions bar. */
53
+ addToDashboard?: boolean;
54
+ /** Host data operations for add to dashboard. When unset, the built-in adapter on the auth properties is used. */
55
+ dashboardActions?: DashboardActions | null;
43
56
  /** When present, chart changes are only emitted and the host sets `chart`; otherwise they are applied here and still emitted. */
44
57
  controlled?: boolean;
58
+ /** Click-to-filter on the embedded chart, forwarded as its `canFilter`. The `can-filter` attribute means `'all'`; unset keeps it off. */
59
+ canFilter?: LuzmoEmbedVizItem['canFilter'];
45
60
  /** Applies and emits option changes live while a control is dragged or a key is held, without debounce, and forwards `luzmo-option-interaction-*` events. Off by default. */
46
61
  liveInteractions?: boolean;
62
+ /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
63
+ language?: string;
47
64
  /** The size of the element */
48
65
  size?: 's' | 'm' | 'l' | 'xl';
49
66
  /** Fired when the inline actions (ranking, sort, display mode) change the chart options. Applied to `chart` first unless `controlled` is set. */
@@ -72,12 +89,16 @@ export declare class LuzmoInteractiveVizItem implements OnChanges {
72
89
  */
73
90
  private setHostProperty;
74
91
  private bindEvents;
92
+ /** Exports the embedded chart, forwarded to its `export(type)`. Waits for the embedded renderer when it has not loaded yet. Resolves without a value when there is no chart, when the embed fails, or when the chart is cleared or the element removed before the renderer loaded. */
93
+ export(type?: VizItemExportType): Promise<string | void>;
75
94
  static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoInteractiveVizItem, never>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoInteractiveVizItem, "luzmo-interactive-viz-item", ["luzmoInteractiveVizItem"], { "language": { "alias": "language"; "required": false; }; "addToDashboard": { "alias": "addToDashboard"; "required": false; }; "canFilter": { "alias": "canFilter"; "required": false; }; "chart": { "alias": "chart"; "required": false; }; "feedback": { "alias": "feedback"; "required": false; }; "messageId": { "alias": "messageId"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "hideActions": { "alias": "hideActions"; "required": false; }; "hideFeedback": { "alias": "hideFeedback"; "required": false; }; "hideConfigPanel": { "alias": "hideConfigPanel"; "required": false; }; "controlled": { "alias": "controlled"; "required": false; }; "liveInteractions": { "alias": "liveInteractions"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "luzmoChartOptionsChanged": "luzmoChartOptionsChanged"; "luzmoChartChanged": "luzmoChartChanged"; "luzmoOptionInteractionStart": "luzmoOptionInteractionStart"; "luzmoOptionInteractionEnd": "luzmoOptionInteractionEnd"; "luzmoOptionInteractionCancel": "luzmoOptionInteractionCancel"; "luzmoFeedbackChanged": "luzmoFeedbackChanged"; "luzmoChartAdded": "luzmoChartAdded"; "luzmoChartAddFailed": "luzmoChartAddFailed"; }, never, ["*"], true, never>;
77
- static ngAcceptInputType_addToDashboard: unknown;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoInteractiveVizItem, "luzmo-interactive-viz-item", ["luzmoInteractiveVizItem"], { "chart": { "alias": "chart"; "required": false; }; "feedback": { "alias": "feedback"; "required": false; }; "messageId": { "alias": "messageId"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "hideActions": { "alias": "hideActions"; "required": false; }; "hideFeedback": { "alias": "hideFeedback"; "required": false; }; "hideConfigPanel": { "alias": "hideConfigPanel"; "required": false; }; "hideConfigOptions": { "alias": "hideConfigOptions"; "required": false; }; "slotSelects": { "alias": "slotSelects"; "required": false; }; "slotGrows": { "alias": "slotGrows"; "required": false; }; "slotsConfiguration": { "alias": "slotsConfiguration"; "required": false; }; "customOptionsConfiguration": { "alias": "customOptionsConfiguration"; "required": false; }; "customTranslations": { "alias": "customTranslations"; "required": false; }; "chartRenderOptions": { "alias": "chartRenderOptions"; "required": false; }; "addToDashboard": { "alias": "addToDashboard"; "required": false; }; "dashboardActions": { "alias": "dashboardActions"; "required": false; }; "controlled": { "alias": "controlled"; "required": false; }; "canFilter": { "alias": "canFilter"; "required": false; }; "liveInteractions": { "alias": "liveInteractions"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "luzmoChartOptionsChanged": "luzmoChartOptionsChanged"; "luzmoChartChanged": "luzmoChartChanged"; "luzmoOptionInteractionStart": "luzmoOptionInteractionStart"; "luzmoOptionInteractionEnd": "luzmoOptionInteractionEnd"; "luzmoOptionInteractionCancel": "luzmoOptionInteractionCancel"; "luzmoFeedbackChanged": "luzmoFeedbackChanged"; "luzmoChartAdded": "luzmoChartAdded"; "luzmoChartAddFailed": "luzmoChartAddFailed"; }, never, ["*"], true, never>;
78
96
  static ngAcceptInputType_hideActions: unknown;
79
97
  static ngAcceptInputType_hideFeedback: unknown;
80
98
  static ngAcceptInputType_hideConfigPanel: unknown;
99
+ static ngAcceptInputType_hideConfigOptions: unknown;
100
+ static ngAcceptInputType_slotGrows: unknown;
101
+ static ngAcceptInputType_addToDashboard: unknown;
81
102
  static ngAcceptInputType_controlled: unknown;
82
103
  static ngAcceptInputType_liveInteractions: unknown;
83
104
  }
@@ -7,7 +7,10 @@ const _c0 = ["*"];
7
7
  *
8
8
  * @slot chart-actions-extra - Host-injected actions rendered at the end of the inline actions bar (e.g. copy-to-dashboard).
9
9
  * @csspart container - The viz item container.
10
+ * @csspart actions-bar - The bar above the chart holding the inline actions, the `chart-actions-extra` slot and add to dashboard.
11
+ * @csspart actions - The inline chart actions (ranking, display mode) inside the actions bar.
10
12
  * @csspart chart-container - The embedded chart wrapper.
13
+ * @csspart footer - The row below the chart holding the feedback buttons and the config-panel toggle.
11
14
  * @csspart config-panel - The expandable configuration panel.
12
15
  */
13
16
  export class LuzmoInteractiveVizItem {
@@ -20,12 +23,6 @@ export class LuzmoInteractiveVizItem {
20
23
  get nativeElement() {
21
24
  return this.host;
22
25
  }
23
- /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
24
- language;
25
- /** When present, renders `luzmo-add-to-dashboard` in the actions bar. */
26
- addToDashboard;
27
- /** Click-to-filter on the embedded chart, forwarded as its `canFilter`. The `can-filter` attribute means `'all'`; unset keeps it off. */
28
- canFilter;
29
26
  /** Loose chart config (type, options, slots, filters, inlineData); slots may use the keyed-object form. */
30
27
  chart;
31
28
  /** Current feedback (drives the thumbs up/down selection). */
@@ -48,10 +45,32 @@ export class LuzmoInteractiveVizItem {
48
45
  hideFeedback;
49
46
  /** When present, hides the config-panel toggle and the panel itself. */
50
47
  hideConfigPanel;
48
+ /** When present, hides the options tab of the config panel and keeps the data tab. */
49
+ hideConfigOptions;
50
+ /** Whether each slot in the config panel takes one field or several, forwarded to `luzmo-item-slot-picker-panel` as `selects`. */
51
+ slotSelects;
52
+ /** When present, the slot pickers in the config panel grow to full width, forwarded as `grows`. */
53
+ slotGrows;
54
+ /** Slots configuration for the config panel, for a chart type ACK has no definition for (e.g. a custom chart). */
55
+ slotsConfiguration;
56
+ /** Options configuration for the config panel, for a chart type ACK has no definition for (e.g. a custom chart). */
57
+ customOptionsConfiguration;
58
+ /** Option label translations that go with `customOptionsConfiguration`. */
59
+ customTranslations;
60
+ /** Options applied to the embedded chart only, merged one level deep over `chart.options` (e.g. `{ display: { title: false } }`). They are never emitted in chart events nor saved by add to dashboard. */
61
+ chartRenderOptions;
62
+ /** When present, renders `luzmo-add-to-dashboard` in the actions bar. */
63
+ addToDashboard;
64
+ /** Host data operations for add to dashboard. When unset, the built-in adapter on the auth properties is used. */
65
+ dashboardActions;
51
66
  /** When present, chart changes are only emitted and the host sets `chart`; otherwise they are applied here and still emitted. */
52
67
  controlled;
68
+ /** Click-to-filter on the embedded chart, forwarded as its `canFilter`. The `can-filter` attribute means `'all'`; unset keeps it off. */
69
+ canFilter;
53
70
  /** Applies and emits option changes live while a control is dragged or a key is held, without debounce, and forwards `luzmo-option-interaction-*` events. Off by default. */
54
71
  liveInteractions;
72
+ /** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
73
+ language;
55
74
  /** The size of the element */
56
75
  size;
57
76
  /** Fired when the inline actions (ranking, sort, display mode) change the chart options. Applied to `chart` first unless `controlled` is set. */
@@ -81,15 +100,6 @@ export class LuzmoInteractiveVizItem {
81
100
  ngOnChanges(changes) {
82
101
  for (const key of Object.keys(changes)) {
83
102
  switch (key) {
84
- case 'language':
85
- this.setHostProperty('language', changes['language'].currentValue);
86
- break;
87
- case 'addToDashboard':
88
- this.setHostProperty('addToDashboard', changes['addToDashboard'].currentValue);
89
- break;
90
- case 'canFilter':
91
- this.setHostProperty('canFilter', changes['canFilter'].currentValue);
92
- break;
93
103
  case 'chart':
94
104
  this.setHostProperty('chart', changes['chart'].currentValue);
95
105
  break;
@@ -123,12 +133,45 @@ export class LuzmoInteractiveVizItem {
123
133
  case 'hideConfigPanel':
124
134
  this.setHostProperty('hideConfigPanel', changes['hideConfigPanel'].currentValue);
125
135
  break;
136
+ case 'hideConfigOptions':
137
+ this.setHostProperty('hideConfigOptions', changes['hideConfigOptions'].currentValue);
138
+ break;
139
+ case 'slotSelects':
140
+ this.setHostProperty('slotSelects', changes['slotSelects'].currentValue);
141
+ break;
142
+ case 'slotGrows':
143
+ this.setHostProperty('slotGrows', changes['slotGrows'].currentValue);
144
+ break;
145
+ case 'slotsConfiguration':
146
+ this.setHostProperty('slotsConfiguration', changes['slotsConfiguration'].currentValue);
147
+ break;
148
+ case 'customOptionsConfiguration':
149
+ this.setHostProperty('customOptionsConfiguration', changes['customOptionsConfiguration'].currentValue);
150
+ break;
151
+ case 'customTranslations':
152
+ this.setHostProperty('customTranslations', changes['customTranslations'].currentValue);
153
+ break;
154
+ case 'chartRenderOptions':
155
+ this.setHostProperty('chartRenderOptions', changes['chartRenderOptions'].currentValue);
156
+ break;
157
+ case 'addToDashboard':
158
+ this.setHostProperty('addToDashboard', changes['addToDashboard'].currentValue);
159
+ break;
160
+ case 'dashboardActions':
161
+ this.setHostProperty('dashboardActions', changes['dashboardActions'].currentValue);
162
+ break;
126
163
  case 'controlled':
127
164
  this.setHostProperty('controlled', changes['controlled'].currentValue);
128
165
  break;
166
+ case 'canFilter':
167
+ this.setHostProperty('canFilter', changes['canFilter'].currentValue);
168
+ break;
129
169
  case 'liveInteractions':
130
170
  this.setHostProperty('liveInteractions', changes['liveInteractions'].currentValue);
131
171
  break;
172
+ case 'language':
173
+ this.setHostProperty('language', changes['language'].currentValue);
174
+ break;
132
175
  case 'size':
133
176
  this.setHostProperty('size', changes['size'].currentValue);
134
177
  break;
@@ -180,8 +223,12 @@ export class LuzmoInteractiveVizItem {
180
223
  this.luzmoChartAddFailed.emit(typed);
181
224
  }));
182
225
  }
226
+ /** Exports the embedded chart, forwarded to its `export(type)`. Waits for the embedded renderer when it has not loaded yet. Resolves without a value when there is no chart, when the embed fails, or when the chart is cleared or the element removed before the renderer loaded. */
227
+ export(type) {
228
+ return this.host.export(type);
229
+ }
183
230
  static ɵfac = function LuzmoInteractiveVizItem_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoInteractiveVizItem)(); };
184
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoInteractiveVizItem, selectors: [["luzmo-interactive-viz-item"]], inputs: { language: "language", addToDashboard: [2, "addToDashboard", "addToDashboard", booleanAttribute], canFilter: "canFilter", chart: "chart", feedback: "feedback", messageId: "messageId", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", contentLanguage: "contentLanguage", hideActions: [2, "hideActions", "hideActions", booleanAttribute], hideFeedback: [2, "hideFeedback", "hideFeedback", booleanAttribute], hideConfigPanel: [2, "hideConfigPanel", "hideConfigPanel", booleanAttribute], controlled: [2, "controlled", "controlled", booleanAttribute], liveInteractions: [2, "liveInteractions", "liveInteractions", booleanAttribute], size: "size" }, outputs: { luzmoChartOptionsChanged: "luzmoChartOptionsChanged", luzmoChartChanged: "luzmoChartChanged", luzmoOptionInteractionStart: "luzmoOptionInteractionStart", luzmoOptionInteractionEnd: "luzmoOptionInteractionEnd", luzmoOptionInteractionCancel: "luzmoOptionInteractionCancel", luzmoFeedbackChanged: "luzmoFeedbackChanged", luzmoChartAdded: "luzmoChartAdded", luzmoChartAddFailed: "luzmoChartAddFailed" }, exportAs: ["luzmoInteractiveVizItem"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoInteractiveVizItem_Template(rf, ctx) { if (rf & 1) {
231
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoInteractiveVizItem, selectors: [["luzmo-interactive-viz-item"]], inputs: { chart: "chart", feedback: "feedback", messageId: "messageId", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", contentLanguage: "contentLanguage", hideActions: [2, "hideActions", "hideActions", booleanAttribute], hideFeedback: [2, "hideFeedback", "hideFeedback", booleanAttribute], hideConfigPanel: [2, "hideConfigPanel", "hideConfigPanel", booleanAttribute], hideConfigOptions: [2, "hideConfigOptions", "hideConfigOptions", booleanAttribute], slotSelects: "slotSelects", slotGrows: [2, "slotGrows", "slotGrows", booleanAttribute], slotsConfiguration: "slotsConfiguration", customOptionsConfiguration: "customOptionsConfiguration", customTranslations: "customTranslations", chartRenderOptions: "chartRenderOptions", addToDashboard: [2, "addToDashboard", "addToDashboard", booleanAttribute], dashboardActions: "dashboardActions", controlled: [2, "controlled", "controlled", booleanAttribute], canFilter: "canFilter", liveInteractions: [2, "liveInteractions", "liveInteractions", booleanAttribute], language: "language", size: "size" }, outputs: { luzmoChartOptionsChanged: "luzmoChartOptionsChanged", luzmoChartChanged: "luzmoChartChanged", luzmoOptionInteractionStart: "luzmoOptionInteractionStart", luzmoOptionInteractionEnd: "luzmoOptionInteractionEnd", luzmoOptionInteractionCancel: "luzmoOptionInteractionCancel", luzmoFeedbackChanged: "luzmoFeedbackChanged", luzmoChartAdded: "luzmoChartAdded", luzmoChartAddFailed: "luzmoChartAddFailed" }, exportAs: ["luzmoInteractiveVizItem"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoInteractiveVizItem_Template(rf, ctx) { if (rf & 1) {
185
232
  i0.ɵɵprojectionDef();
186
233
  i0.ɵɵprojection(0);
187
234
  } }, encapsulation: 2 });
@@ -195,16 +242,7 @@ export class LuzmoInteractiveVizItem {
195
242
  changeDetection: ChangeDetectionStrategy.OnPush,
196
243
  template: '<ng-content />'
197
244
  }]
198
- }], () => [], { language: [{
199
- type: Input,
200
- args: [{ alias: 'language' }]
201
- }], addToDashboard: [{
202
- type: Input,
203
- args: [{ alias: 'addToDashboard', transform: booleanAttribute }]
204
- }], canFilter: [{
205
- type: Input,
206
- args: [{ alias: 'canFilter' }]
207
- }], chart: [{
245
+ }], () => [], { chart: [{
208
246
  type: Input,
209
247
  args: [{ alias: 'chart' }]
210
248
  }], feedback: [{
@@ -237,14 +275,47 @@ export class LuzmoInteractiveVizItem {
237
275
  }], hideConfigPanel: [{
238
276
  type: Input,
239
277
  args: [{ alias: 'hideConfigPanel', transform: booleanAttribute }]
278
+ }], hideConfigOptions: [{
279
+ type: Input,
280
+ args: [{ alias: 'hideConfigOptions', transform: booleanAttribute }]
281
+ }], slotSelects: [{
282
+ type: Input,
283
+ args: [{ alias: 'slotSelects' }]
284
+ }], slotGrows: [{
285
+ type: Input,
286
+ args: [{ alias: 'slotGrows', transform: booleanAttribute }]
287
+ }], slotsConfiguration: [{
288
+ type: Input,
289
+ args: [{ alias: 'slotsConfiguration' }]
290
+ }], customOptionsConfiguration: [{
291
+ type: Input,
292
+ args: [{ alias: 'customOptionsConfiguration' }]
293
+ }], customTranslations: [{
294
+ type: Input,
295
+ args: [{ alias: 'customTranslations' }]
296
+ }], chartRenderOptions: [{
297
+ type: Input,
298
+ args: [{ alias: 'chartRenderOptions' }]
299
+ }], addToDashboard: [{
300
+ type: Input,
301
+ args: [{ alias: 'addToDashboard', transform: booleanAttribute }]
302
+ }], dashboardActions: [{
303
+ type: Input,
304
+ args: [{ alias: 'dashboardActions' }]
240
305
  }], controlled: [{
241
306
  type: Input,
242
307
  args: [{ alias: 'controlled', transform: booleanAttribute }]
308
+ }], canFilter: [{
309
+ type: Input,
310
+ args: [{ alias: 'canFilter' }]
243
311
  }], liveInteractions: [{
244
312
  type: Input,
245
313
  args: [{ alias: 'liveInteractions', transform: booleanAttribute }]
314
+ }], language: [{
315
+ type: Input,
316
+ args: [{ alias: 'language' }]
246
317
  }], size: [{
247
318
  type: Input,
248
319
  args: [{ alias: 'size' }]
249
320
  }], luzmoChartOptionsChanged: [{ type: i0.Output, args: ["luzmoChartOptionsChanged"] }], luzmoChartChanged: [{ type: i0.Output, args: ["luzmoChartChanged"] }], luzmoOptionInteractionStart: [{ type: i0.Output, args: ["luzmoOptionInteractionStart"] }], luzmoOptionInteractionEnd: [{ type: i0.Output, args: ["luzmoOptionInteractionEnd"] }], luzmoOptionInteractionCancel: [{ type: i0.Output, args: ["luzmoOptionInteractionCancel"] }], luzmoFeedbackChanged: [{ type: i0.Output, args: ["luzmoFeedbackChanged"] }], luzmoChartAdded: [{ type: i0.Output, args: ["luzmoChartAdded"] }], luzmoChartAddFailed: [{ type: i0.Output, args: ["luzmoChartAddFailed"] }] }); })();
250
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoInteractiveVizItem, { className: "LuzmoInteractiveVizItem", filePath: "components/interactive-viz-item.ts", lineNumber: 22 }); })();
321
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoInteractiveVizItem, { className: "LuzmoInteractiveVizItem", filePath: "components/interactive-viz-item.ts", lineNumber: 26 }); })();
@@ -38,6 +38,8 @@ export declare class LuzmoItemGridItemActionsMenu implements OnChanges {
38
38
  */
39
39
  private setHostProperty;
40
40
  private bindEvents;
41
+ /** Focuses the first toggle action, or the first available action. */
42
+ focus(): void;
41
43
  static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoItemGridItemActionsMenu, never>;
42
44
  static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoItemGridItemActionsMenu, "luzmo-item-grid-item-actions-menu", ["luzmoItemGridItemActionsMenu"], { "placement": { "alias": "placement"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "language": { "alias": "language"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoItemGridItemAction": "luzmoItemGridItemAction"; "luzmoItemGridItemActionHover": "luzmoItemGridItemActionHover"; }, never, ["*"], true, never>;
43
45
  static ngAcceptInputType_disabled: unknown;
@@ -84,6 +84,10 @@ export class LuzmoItemGridItemActionsMenu {
84
84
  this.luzmoItemGridItemActionHover.emit(typed);
85
85
  }));
86
86
  }
87
+ /** Focuses the first toggle action, or the first available action. */
88
+ focus() {
89
+ return this.host.focus();
90
+ }
87
91
  static ɵfac = function LuzmoItemGridItemActionsMenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoItemGridItemActionsMenu)(); };
88
92
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoItemGridItemActionsMenu, selectors: [["luzmo-item-grid-item-actions-menu"]], inputs: { placement: "placement", actions: "actions", language: "language", disabled: [2, "disabled", "disabled", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoItemGridItemAction: "luzmoItemGridItemAction", luzmoItemGridItemActionHover: "luzmoItemGridItemActionHover" }, exportAs: ["luzmoItemGridItemActionsMenu"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoItemGridItemActionsMenu_Template(rf, ctx) { if (rf & 1) {
89
93
  i0.ɵɵprojectionDef();
@@ -53,6 +53,8 @@ export declare class LuzmoItemGrid implements OnChanges {
53
53
  itemStates?: ItemStates;
54
54
  /** Seed value for uncontrolled mode. The component manages state internally from this starting point. Ignored if `itemStates` is set. Only one item with one active action is supported. If multiple items or actions are provided, a warning is emitted and only the first item with its first action is applied. Use controlled mode (`itemStates`) for multiple simultaneous active items. */
55
55
  initialItemStates?: ItemStates;
56
+ /** Renders an item whose type has no renderer registered with `registerRenderer`. */
57
+ defaultRenderer?: GridItemRenderer;
56
58
  /** Fired when an item action is performed */
57
59
  readonly luzmoItemGridItemAction: import("@angular/core").OutputEmitterRef<CustomEvent<GridItemActionEventDetail>>;
58
60
  /** Bubbles from the item actions menu when the pointer enters an action. The detail has only `action` and `type`, not the item. */
@@ -74,7 +76,7 @@ export declare class LuzmoItemGrid implements OnChanges {
74
76
  private setHostProperty;
75
77
  private bindEvents;
76
78
  static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoItemGrid, never>;
77
- static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoItemGrid, "luzmo-item-grid", ["luzmoItemGrid"], { "appServer": { "alias": "appServer"; "required": false; }; "apiHost": { "alias": "apiHost"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "cacheTime": { "alias": "cacheTime"; "required": false; }; "language": { "alias": "language"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "itemActionsDocumentPopover": { "alias": "itemActionsDocumentPopover"; "required": false; }; "placementItemActionsMenu": { "alias": "placementItemActionsMenu"; "required": false; }; "defaultItemActionsMenu": { "alias": "defaultItemActionsMenu"; "required": false; }; "clonedItemPositioning": { "alias": "clonedItemPositioning"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "items": { "alias": "items"; "required": false; }; "initialItems": { "alias": "initialItems"; "required": false; }; "renderers": { "alias": "renderers"; "required": false; }; "itemStates": { "alias": "itemStates"; "required": false; }; "initialItemStates": { "alias": "initialItemStates"; "required": false; }; }, { "luzmoItemGridItemAction": "luzmoItemGridItemAction"; "luzmoItemGridItemActionHover": "luzmoItemGridItemActionHover"; "luzmoItemGridLayoutChanged": "luzmoItemGridLayoutChanged"; "luzmoItemGridReady": "luzmoItemGridReady"; "luzmoItemGridItemStatesChanged": "luzmoItemGridItemStatesChanged"; }, never, ["*"], true, never>;
79
+ static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoItemGrid, "luzmo-item-grid", ["luzmoItemGrid"], { "appServer": { "alias": "appServer"; "required": false; }; "apiHost": { "alias": "apiHost"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "cacheTime": { "alias": "cacheTime"; "required": false; }; "language": { "alias": "language"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "itemActionsDocumentPopover": { "alias": "itemActionsDocumentPopover"; "required": false; }; "placementItemActionsMenu": { "alias": "placementItemActionsMenu"; "required": false; }; "defaultItemActionsMenu": { "alias": "defaultItemActionsMenu"; "required": false; }; "clonedItemPositioning": { "alias": "clonedItemPositioning"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "items": { "alias": "items"; "required": false; }; "initialItems": { "alias": "initialItems"; "required": false; }; "renderers": { "alias": "renderers"; "required": false; }; "itemStates": { "alias": "itemStates"; "required": false; }; "initialItemStates": { "alias": "initialItemStates"; "required": false; }; "defaultRenderer": { "alias": "defaultRenderer"; "required": false; }; }, { "luzmoItemGridItemAction": "luzmoItemGridItemAction"; "luzmoItemGridItemActionHover": "luzmoItemGridItemActionHover"; "luzmoItemGridLayoutChanged": "luzmoItemGridLayoutChanged"; "luzmoItemGridReady": "luzmoItemGridReady"; "luzmoItemGridItemStatesChanged": "luzmoItemGridItemStatesChanged"; }, never, ["*"], true, never>;
78
80
  static ngAcceptInputType_viewMode: unknown;
79
81
  static ngAcceptInputType_itemActionsDocumentPopover: unknown;
80
82
  }