@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
@@ -22,16 +22,16 @@ import { i as e, n as t, t as n } from "./base-rAte-QzM.js";
22
22
  import { t as r } from "./decorate-B2TzfnLZ.js";
23
23
  import { t as i } from "./localized-mixin-FPDNaZhb.js";
24
24
  import { n as a } from "./is-same-option-value-B2oyvEqT.js";
25
- import { c as o, i as s, l as c, n as l, o as u, r as d, t as f, u as p } from "./chart-helpers-Cbl3sRra.js";
26
- import { t as m } from "./create-lazy-loader-BFqDG_WK.js";
27
- import { luzmoAlignLeft as h, luzmoInfoCircle as g, luzmoThumbsDown as _, luzmoThumbsUp as v } from "@luzmo/icons";
25
+ import { a as o, d as s, i as c, l, n as u, r as d, s as f, t as p, u as m } from "./chart-helpers-BKeMLhov.js";
26
+ import { t as h } from "./create-lazy-loader-BFqDG_WK.js";
27
+ import { luzmoAlignLeft as g, luzmoInfoCircle as _, luzmoThumbsDown as v, luzmoThumbsUp as y } from "@luzmo/icons";
28
28
  import "@luzmo/lucero/action-button";
29
29
  import "@luzmo/lucero/icon";
30
30
  import "@luzmo/lucero/overlay";
31
31
  import "@luzmo/lucero/popover";
32
- import { html as y, nothing as b, unsafeCSS as x } from "lit";
33
- import { property as S, state as C } from "lit/decorators.js";
34
- import { msg as w } from "@lit/localize";
32
+ import { html as b, nothing as x, unsafeCSS as S } from "lit";
33
+ import { property as C, query as w, state as T } from "lit/decorators.js";
34
+ import { msg as E } from "@lit/localize";
35
35
  import "@luzmo/embed";
36
36
  import "@luzmo/lucero/action-group";
37
37
  import "@luzmo/lucero/field-label";
@@ -40,17 +40,19 @@ import "@luzmo/lucero/picker";
40
40
  import "@luzmo/lucero/progress-circle";
41
41
  import "@luzmo/lucero/tabs";
42
42
  // src/components/interactive-viz-item/interactive-viz-item.module.scss?inline
43
- var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.answer{width:100%;display:block}.chart-actions-bar{justify-content:space-between;align-items:flex-start;gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));padding-block:var(--luzmo-interactive-viz-item-actions-padding-block,var(--interactive-viz-item-actions-padding-block));flex-wrap:nowrap;margin-block-start:var(--luzmo-interactive-viz-item-actions-margin-block-start,var(--interactive-viz-item-actions-margin-block-start));display:flex}.chart-actions-primary{gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.ranking-content{gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-3);flex-direction:column;display:flex}.ranking-row{gap:var(--luzmo-spacing-3);align-items:center;display:flex}.ranking-number{width:4rem}.icon-flipped{transform:scaleY(-1)}.chart-container{border-radius:var(--luzmo-interactive-viz-item-chart-border-radius,var(--interactive-viz-item-chart-border-radius));height:var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height));overflow:hidden}.chart-container luzmo-embed-viz-item{width:100%;height:100%;display:block}.feedback-row{padding-block:var(--luzmo-interactive-viz-item-feedback-padding-block,var(--interactive-viz-item-feedback-padding-block));justify-content:space-between;align-items:center;display:flex}.rating-btn-positive{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.rating-btn-negative{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.config-toggle{--luzmo-action-button-border-radius:32px;margin-inline-start:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.config-panel{border:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));border-radius:var(--luzmo-interactive-viz-item-config-panel-border-radius,var(--interactive-viz-item-config-panel-border-radius));padding:var(--luzmo-interactive-viz-item-config-panel-padding,var(--interactive-viz-item-config-panel-padding));background:var(--luzmo-interactive-viz-item-config-panel-background,var(--interactive-viz-item-config-panel-background));margin-block-start:var(--luzmo-spacing-2)}.config-panel luzmo-tab-panel[selected]{padding-block-start:var(--luzmo-spacing-4);display:block}.config-panel luzmo-item-option-panel,.config-panel luzmo-item-slot-picker-panel,.config-panel luzmo-filters{width:100%;max-height:15rem;scrollbar-width:thin;scrollbar-color:var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color)) transparent;padding-inline-end:var(--luzmo-spacing-3);overflow-y:auto}.edit-grid{min-height:12.5rem;display:flex}.edit-column{gap:var(--luzmo-spacing-3);flex-direction:column;display:flex}.edit-column:first-child{flex-shrink:0;max-width:15rem}.edit-column-filters{border-inline-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));flex:1;min-width:18.75rem;padding-inline-start:var(--luzmo-spacing-5)}@container (width<=520px){.edit-grid{flex-direction:column}.edit-column,.edit-column:first-child{width:100%;min-width:0;max-width:100%}.edit-column-filters{border-inline-start:none;border-block-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));min-width:0;margin-block-start:var(--luzmo-spacing-3);padding-block-start:var(--luzmo-spacing-4);padding-inline-start:0}}@container (width<=768px){.chart-container{height:calc(var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height)) - var(--luzmo-interactive-viz-item-chart-narrow-offset,var(--interactive-viz-item-chart-narrow-offset)))}}:host{--interactive-viz-item-actions-gap:var(--luzmo-spacing-3);--interactive-viz-item-actions-padding-block:var(--luzmo-spacing-3);--interactive-viz-item-actions-margin-block-start:var(--luzmo-spacing-5);--interactive-viz-item-chart-height:20rem;--interactive-viz-item-chart-narrow-offset:2.5rem;--interactive-viz-item-chart-border-radius:var(--luzmo-border-radius);--interactive-viz-item-feedback-padding-block:var(--luzmo-spacing-4);--interactive-viz-item-config-panel-padding:var(--luzmo-spacing-5);--interactive-viz-item-config-panel-border-color:var(--luzmo-border-color);--interactive-viz-item-config-panel-border-radius:var(--luzmo-border-radius);--interactive-viz-item-config-panel-background:var(--luzmo-background-color);--interactive-viz-item-rating-positive-color:var(--luzmo-positive-color,#12855a);--interactive-viz-item-rating-negative-color:var(--luzmo-negative-color,#ca221c);--interactive-viz-item-rating-selected-background:var(--luzmo-background-color-focus,#0000000f)}:host([size=s]){--interactive-viz-item-chart-height:17.5rem}:host([size=l]){--interactive-viz-item-chart-height:22rem}:host([size=xl]){--interactive-viz-item-chart-height:24rem}", E = m(() => import("./add-to-dashboard/index.js")).load, D = [
43
+ var D = ":host{box-sizing:border-box;display:block;container-type:inline-size}.answer{width:100%;display:block}.chart-actions-bar{justify-content:space-between;align-items:flex-start;gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));padding-block:var(--luzmo-interactive-viz-item-actions-padding-block,var(--interactive-viz-item-actions-padding-block));flex-wrap:nowrap;margin-block-start:var(--luzmo-interactive-viz-item-actions-margin-block-start,var(--interactive-viz-item-actions-margin-block-start));display:flex}.chart-actions-bar[hidden]{display:none}.chart-actions-primary{gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.ranking-content{gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-3);flex-direction:column;display:flex}.ranking-row{gap:var(--luzmo-spacing-3);align-items:center;display:flex}.ranking-number{width:4rem}.icon-flipped{transform:scaleY(-1)}.chart-container{border-radius:var(--luzmo-interactive-viz-item-chart-border-radius,var(--interactive-viz-item-chart-border-radius));height:var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height));overflow:hidden}.chart-container luzmo-embed-viz-item{width:100%;height:100%;display:block}.feedback-row{padding-block:var(--luzmo-interactive-viz-item-feedback-padding-block,var(--interactive-viz-item-feedback-padding-block));justify-content:space-between;align-items:center;display:flex}.rating-btn-positive{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.rating-btn-negative{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.config-toggle{--luzmo-action-button-border-radius:32px;margin-inline-start:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.config-panel{border:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));border-radius:var(--luzmo-interactive-viz-item-config-panel-border-radius,var(--interactive-viz-item-config-panel-border-radius));padding:var(--luzmo-interactive-viz-item-config-panel-padding,var(--interactive-viz-item-config-panel-padding));background:var(--luzmo-interactive-viz-item-config-panel-background,var(--interactive-viz-item-config-panel-background));margin-block-start:var(--luzmo-spacing-2)}.config-panel luzmo-tab-panel[selected]{padding-block-start:var(--luzmo-spacing-4);display:block}.config-panel luzmo-item-option-panel,.config-panel luzmo-item-slot-picker-panel,.config-panel luzmo-filters{width:100%;max-height:15rem;scrollbar-width:thin;scrollbar-color:var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color)) transparent;padding-inline-end:var(--luzmo-spacing-3);overflow-y:auto}.edit-grid{min-height:12.5rem;display:flex}.edit-column{gap:var(--luzmo-spacing-3);flex-direction:column;display:flex}.edit-column:first-child{flex-shrink:0;max-width:15rem}.edit-column-filters{border-inline-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));flex:1;min-width:18.75rem;padding-inline-start:var(--luzmo-spacing-5)}@container (width<=520px){.edit-grid{flex-direction:column}.edit-column,.edit-column:first-child{width:100%;min-width:0;max-width:100%}.edit-column-filters{border-inline-start:none;border-block-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));min-width:0;margin-block-start:var(--luzmo-spacing-3);padding-block-start:var(--luzmo-spacing-4);padding-inline-start:0}}@container (width<=768px){.chart-container{height:calc(var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height)) - var(--luzmo-interactive-viz-item-chart-narrow-offset,var(--interactive-viz-item-chart-narrow-offset)))}}:host{--interactive-viz-item-actions-gap:var(--luzmo-spacing-3);--interactive-viz-item-actions-padding-block:var(--luzmo-spacing-3);--interactive-viz-item-actions-margin-block-start:var(--luzmo-spacing-5);--interactive-viz-item-chart-height:20rem;--interactive-viz-item-chart-narrow-offset:2.5rem;--interactive-viz-item-chart-border-radius:var(--luzmo-border-radius);--interactive-viz-item-feedback-padding-block:var(--luzmo-spacing-4);--interactive-viz-item-config-panel-padding:var(--luzmo-spacing-5);--interactive-viz-item-config-panel-border-color:var(--luzmo-border-color);--interactive-viz-item-config-panel-border-radius:var(--luzmo-border-radius);--interactive-viz-item-config-panel-background:var(--luzmo-background-color);--interactive-viz-item-rating-positive-color:var(--luzmo-positive-color,#12855a);--interactive-viz-item-rating-negative-color:var(--luzmo-negative-color,#ca221c);--interactive-viz-item-rating-selected-background:var(--luzmo-background-color-focus,#0000000f)}:host([size=s]){--interactive-viz-item-chart-height:17.5rem}:host([size=l]){--interactive-viz-item-chart-height:22rem}:host([size=xl]){--interactive-viz-item-chart-height:24rem}", O = h(() => import("./add-to-dashboard/index.js")).load, k = [
44
44
  "luzmo-filters",
45
45
  "luzmo-item-option-panel",
46
46
  "luzmo-item-slot-picker-panel"
47
- ], O = m(() => Promise.all([
47
+ ], A = h(() => Promise.all([
48
48
  import("./filters/index.js"),
49
49
  import("./item-option-panel/index.js"),
50
50
  import("./item-slot-picker-panel/index.js")
51
- ])), k = O.load, A = () => O.isLoaded() || D.every((e) => customElements.get(e) !== void 0), j = 0, M = {}, N = (e, t) => t !== null && a(JSON.parse(JSON.stringify(e)), JSON.parse(JSON.stringify(t))), P = class extends i(t(e, { validSizes: Object.values(n) })) {
51
+ ])), j = A.load, M = () => A.isLoaded() || k.every((e) => customElements.get(e) !== void 0), N = 0, P = {}, F = (e, t) => t !== null && a(JSON.parse(JSON.stringify(e)), JSON.parse(JSON.stringify(t))), I = class extends i(t(e, { validSizes: Object.values(n) })) {
52
52
  constructor(...e) {
53
- super(...e), this.chart = null, this.feedback = null, this.messageId = "", this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.contentLanguage = "", this.hideActions = !1, this.hideFeedback = !1, this.hideConfigPanel = !1, this.addToDashboard = !1, this.dashboardActions = null, this.controlled = !1, this.liveInteractions = !1, this._configPanelOpen = !1, this._configPanelPending = !1, this._configPanelLoadFailed = !1, this._rankingTriggerId = `interactive-viz-item-ranking-${++j}`, this._interactionGeneration = 0, this._openInteractions = /* @__PURE__ */ new Map(), this._ownCharts = [], this._handleSlotsChanged = (e) => {
53
+ super(...e), this.chart = null, this.feedback = null, this.messageId = "", this.authKey = "", this.authToken = "", this.apiUrl = "https://api.luzmo.com", this.appServer = "https://app.luzmo.com", this.contentLanguage = "", this.hideActions = !1, this.hideFeedback = !1, this.hideConfigPanel = !1, this.hideConfigOptions = !1, this.slotSelects = "multiple", this.slotGrows = !1, this.slotsConfiguration = null, this.customOptionsConfiguration = null, this.customTranslations = null, this.chartRenderOptions = null, this.addToDashboard = !1, this.dashboardActions = null, this.controlled = !1, this.liveInteractions = !1, this._configPanelOpen = !1, this._actionsSlotHasContent = !1, this._configPanelPending = !1, this._configPanelLoadFailed = !1, this._rankingTriggerId = `interactive-viz-item-ranking-${++N}`, this._interactionGeneration = 0, this._openInteractions = /* @__PURE__ */ new Map(), this._ownCharts = [], this._handleActionsSlotChange = (e) => {
54
+ this._actionsSlotHasContent = e.target.assignedElements({ flatten: !0 }).length > 0;
55
+ }, this._handleSlotsChanged = (e) => {
54
56
  this.chart && this._emitChart({
55
57
  ...this.chart,
56
58
  slots: e.detail.slotsContents
@@ -93,7 +95,7 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
93
95
  };
94
96
  }
95
97
  static get styles() {
96
- return [x(T)];
98
+ return [S(D)];
97
99
  }
98
100
  get _effectiveContentLanguage() {
99
101
  return this.contentLanguage || this.language;
@@ -107,21 +109,21 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
107
109
  this.dispatchEvent(n);
108
110
  }
109
111
  get _chartActions() {
110
- return this.chart ? l(u(this.chart)) : [];
112
+ return this.chart ? u(f(this.chart)) : [];
111
113
  }
112
114
  get _rating() {
113
115
  return this.feedback?.rating ?? 0;
114
116
  }
115
117
  get _canShowConfigPanel() {
116
- return !this.chart || this.hideConfigPanel ? !1 : !this.chart.inlineData || s(u(this.chart).slots).length > 0;
118
+ return !this.chart || this.hideConfigPanel ? !1 : !this.chart.inlineData || c(f(this.chart).slots).length > 0;
117
119
  }
118
120
  async _toggleConfigPanel() {
119
121
  if (this._configPanelLoadFailed = !1, this._configPanelOpen) this.endInteraction(), this._configPanelOpen = !1;
120
122
  else if (!this._configPanelPending) {
121
- if (!A()) {
123
+ if (!M()) {
122
124
  this._configPanelPending = !0;
123
125
  try {
124
- await k();
126
+ await j();
125
127
  } catch (e) {
126
128
  console.warn("Failed to load the chart configuration panel:", e), this._configPanelLoadFailed = !0;
127
129
  return;
@@ -132,11 +134,36 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
132
134
  this.isConnected && this._canShowConfigPanel && (this._configPanelOpen = !0);
133
135
  }
134
136
  }
137
+ async export(e) {
138
+ await this.updateComplete;
139
+ let t = this._embed;
140
+ if (this.chart && t && (t.chartElement || await this._waitForEmbedRendered(t))) return await t.export(e);
141
+ }
142
+ _waitForEmbedRendered(e) {
143
+ if (!this.isConnected) return Promise.resolve(!1);
144
+ this._exportWaitAbort ??= new AbortController();
145
+ let t = this._exportWaitAbort.signal;
146
+ return new Promise((n) => {
147
+ let r = new AbortController(), i = (e) => {
148
+ r.abort(), n(e);
149
+ }, { signal: a } = r;
150
+ e.addEventListener("rendered", () => i(!0), { signal: a }), e.addEventListener("error", () => i(!1), { signal: a }), t.addEventListener("abort", () => i(!1), { signal: a });
151
+ });
152
+ }
153
+ _cancelExportWaits() {
154
+ this._exportWaitAbort?.abort(), this._exportWaitAbort = void 0;
155
+ }
135
156
  endInteraction() {
136
157
  this.renderRoot?.querySelector("luzmo-item-option-panel")?.endInteraction?.();
137
158
  }
159
+ disconnectedCallback() {
160
+ super.disconnectedCallback(), this._cancelExportWaits();
161
+ }
138
162
  willUpdate(e) {
139
- super.willUpdate(e), this._openInteractions.size > 0 && this._invalidatesInteractions(e) && this._invalidateInteractions(), e.has("addToDashboard") && this.addToDashboard && E().catch((e) => console.warn("Failed to load add to dashboard:", e));
163
+ super.willUpdate(e), e.has("chart") && !this.chart && this._cancelExportWaits(), this._openInteractions.size > 0 && this._invalidatesInteractions(e) && this._invalidateInteractions(), e.has("addToDashboard") && this.addToDashboard && O().catch((e) => console.warn("Failed to load add to dashboard:", e));
164
+ }
165
+ updated(e) {
166
+ super.updated(e), e.has("hideConfigOptions") && this.hideConfigOptions && this._configTabs && (this._configTabs.selected = "data");
140
167
  }
141
168
  _emitOptions(e) {
142
169
  !this.controlled && this.chart && (this.chart = {
@@ -159,7 +186,7 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
159
186
  }
160
187
  _isCurrentChart(e) {
161
188
  let t = this.chart;
162
- return t === e.chart || this._ownCharts.some((e) => e === t) || [...this._ownCharts].reverse().some((e) => N(e, t)) || N(e.chart, t);
189
+ return t === e.chart || this._ownCharts.some((e) => e === t) || [...this._ownCharts].reverse().some((e) => F(e, t)) || F(e.chart, t);
163
190
  }
164
191
  _isCurrentContext(e) {
165
192
  return e.generation === this._interactionGeneration && e.auth.every((e, t) => e === this._auth[t]) && this._isCurrentChart(e);
@@ -175,8 +202,8 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
175
202
  t.stopPropagation();
176
203
  let n = t.detail, r = typeof n == "string" ? n : n?.value ?? t.target?.value;
177
204
  if (!r) return;
178
- let i = f({
179
- ...u(this.chart),
205
+ let i = p({
206
+ ...f(this.chart),
180
207
  options: this.chart.options
181
208
  }, {
182
209
  type: "chartAction",
@@ -189,13 +216,13 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
189
216
  return e.ranking ?? {
190
217
  active: !1,
191
218
  number: 5,
192
- direction: o.Top
219
+ direction: l.Top
193
220
  };
194
221
  }
195
222
  _currentSort(e) {
196
223
  return e.sort ?? {
197
- direction: p.Desc,
198
- by: c.Measure
224
+ direction: s.Desc,
225
+ by: m.Measure
199
226
  };
200
227
  }
201
228
  _emitRankAndSort(e, t) {
@@ -207,36 +234,36 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
207
234
  }
208
235
  _renderOptionDropdown(e) {
209
236
  let t = e.values ?? [], n = e.currentValue || t[0]?.key || "";
210
- return y`
237
+ return b`
211
238
  <luzmo-picker
212
239
  size=${this.size}
213
240
  variant="highlight"
214
241
  value=${n}
215
242
  @change=${(t) => this._handleDropdownChange(e, t)}
216
243
  >
217
- ${t.map((e) => y`<luzmo-menu-item value=${e.key}>${e.label}</luzmo-menu-item>`)}
244
+ ${t.map((e) => b`<luzmo-menu-item value=${e.key}>${e.label}</luzmo-menu-item>`)}
218
245
  </luzmo-picker>
219
246
  `;
220
247
  }
221
248
  _renderRankingPicker(e) {
222
249
  let t = this._currentRanking(e), n = this._currentSort(e);
223
- if (!t.active) return y`
250
+ if (!t.active) return b`
224
251
  <luzmo-action-button
225
252
  size=${this.size}
226
253
  @click=${() => this._emitRankAndSort({
227
254
  active: !0,
228
255
  number: 5,
229
- direction: o.Top
256
+ direction: l.Top
230
257
  }, n)}
231
258
  >
232
- <luzmo-icon slot="icon" size="xs" .icon=${h}></luzmo-icon>
233
- ${w("Show top 5", { desc: "Label to activate top-N ranking on a chart" })}
259
+ <luzmo-icon slot="icon" size="xs" .icon=${g}></luzmo-icon>
260
+ ${E("Show top 5", { desc: "Label to activate top-N ranking on a chart" })}
234
261
  </luzmo-action-button>
235
262
  `;
236
- let r = t.direction === o.Bottom ? w("Bottom", { desc: "Ranking direction: keep the lowest values" }) : w("Top", { desc: "Ranking direction: keep the highest values" });
237
- return y`
263
+ let r = t.direction === l.Bottom ? E("Bottom", { desc: "Ranking direction: keep the lowest values" }) : E("Top", { desc: "Ranking direction: keep the highest values" });
264
+ return b`
238
265
  <luzmo-action-button size=${this.size} id=${this._rankingTriggerId}>
239
- <luzmo-icon slot="icon" size="xs" .icon=${h}></luzmo-icon>
266
+ <luzmo-icon slot="icon" size="xs" .icon=${g}></luzmo-icon>
240
267
  ${r} ${t.number || 5}
241
268
  </luzmo-action-button>
242
269
 
@@ -252,10 +279,10 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
252
279
  @change=${(t) => this._handleDirectionChange(e, t)}
253
280
  >
254
281
  <luzmo-action-button value="top" emphasized
255
- >${w("Top", { desc: "Ranking direction: keep the highest values" })}</luzmo-action-button
282
+ >${E("Top", { desc: "Ranking direction: keep the highest values" })}</luzmo-action-button
256
283
  >
257
284
  <luzmo-action-button value="bottom" emphasized
258
- >${w("Bottom", { desc: "Ranking direction: keep the lowest values" })}</luzmo-action-button
285
+ >${E("Bottom", { desc: "Ranking direction: keep the lowest values" })}</luzmo-action-button
259
286
  >
260
287
  </luzmo-action-group>
261
288
 
@@ -294,16 +321,16 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
294
321
  <luzmo-action-button
295
322
  value="desc"
296
323
  emphasized
297
- label=${w("Sort descending", { desc: "Sort chart values in descending order" })}
324
+ label=${E("Sort descending", { desc: "Sort chart values in descending order" })}
298
325
  >
299
- <luzmo-icon slot="icon" size="xs" .icon=${h}></luzmo-icon>
326
+ <luzmo-icon slot="icon" size="xs" .icon=${g}></luzmo-icon>
300
327
  </luzmo-action-button>
301
328
  <luzmo-action-button
302
329
  value="asc"
303
330
  emphasized
304
- label=${w("Sort ascending", { desc: "Sort chart values in ascending order" })}
331
+ label=${E("Sort ascending", { desc: "Sort chart values in ascending order" })}
305
332
  >
306
- <luzmo-icon slot="icon" size="xs" class="icon-flipped" .icon=${h}></luzmo-icon>
333
+ <luzmo-icon slot="icon" size="xs" class="icon-flipped" .icon=${g}></luzmo-icon>
307
334
  </luzmo-action-button>
308
335
  </luzmo-action-group>
309
336
  </div>
@@ -345,7 +372,7 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
345
372
  });
346
373
  }
347
374
  _renderAddToDashboard() {
348
- return this.addToDashboard ? y`
375
+ return this.addToDashboard ? b`
349
376
  <luzmo-add-to-dashboard
350
377
  size=${this.size}
351
378
  language=${this.language}
@@ -355,33 +382,28 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
355
382
  .authToken=${this.authToken}
356
383
  .apiUrl=${this.apiUrl}
357
384
  ></luzmo-add-to-dashboard>
358
- ` : b;
385
+ ` : x;
359
386
  }
360
387
  _renderActions() {
361
- return this.hideActions ? y`
362
- <div class="chart-actions-bar">
363
- <div class="chart-actions-primary"></div>
364
- <slot name="chart-actions-extra"></slot>
365
- ${this._renderAddToDashboard()}
366
- </div>
367
- ` : y`
368
- <div class="chart-actions-bar">
369
- <div class="chart-actions-primary">
370
- ${this._chartActions.map((e) => e.type === "optionDropdown" ? this._renderOptionDropdown(e) : this._renderRankingPicker(e))}
388
+ let e = this.hideActions && !this.addToDashboard && !this._actionsSlotHasContent;
389
+ return b`
390
+ <div class="chart-actions-bar" part="actions-bar" ?hidden=${e}>
391
+ <div class="chart-actions-primary" part="actions">
392
+ ${this.hideActions ? x : this._chartActions.map((e) => e.type === "optionDropdown" ? this._renderOptionDropdown(e) : this._renderRankingPicker(e))}
371
393
  </div>
372
- <slot name="chart-actions-extra"></slot>
394
+ <slot name="chart-actions-extra" @slotchange=${this._handleActionsSlotChange}></slot>
373
395
  ${this._renderAddToDashboard()}
374
396
  </div>
375
397
  `;
376
398
  }
377
399
  _renderChart() {
378
- if (!this.chart) return b;
379
- let e = u(this.chart);
380
- return y`
400
+ if (!this.chart) return x;
401
+ let e = f(this.chart);
402
+ return b`
381
403
  <div class="chart-container" part="chart-container">
382
404
  <luzmo-embed-viz-item
383
405
  .type=${e.type}
384
- .options=${e.options}
406
+ .options=${o(e.options, this.chartRenderOptions)}
385
407
  .slots=${e.slots}
386
408
  .filters=${e.filters ?? []}
387
409
  .inlineData=${e.inlineData}
@@ -396,48 +418,48 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
396
418
  `;
397
419
  }
398
420
  _renderFeedback() {
399
- let e = !this.hideFeedback && !!this.messageId, t = this._canShowConfigPanel, n = w("Loading", { desc: "Loading spinner label" });
400
- return !e && !t ? b : y`
401
- <div class="feedback-row">
402
- ${e ? y`
421
+ let e = !this.hideFeedback && !!this.messageId, t = this._canShowConfigPanel, n = E("Loading", { desc: "Loading spinner label" });
422
+ return !e && !t ? x : b`
423
+ <div class="feedback-row" part="footer">
424
+ ${e ? b`
403
425
  <luzmo-action-group quiet size=${this.size}>
404
426
  <luzmo-action-button
405
427
  class="rating-btn-positive"
406
428
  value="positive"
407
429
  quiet
408
- label=${w("Good response", { desc: "Accessible label for the positive feedback button" })}
430
+ label=${E("Good response", { desc: "Accessible label for the positive feedback button" })}
409
431
  ?selected=${this._rating === 1}
410
432
  @click=${() => this._toggleRating(!0)}
411
433
  >
412
- <luzmo-icon slot="icon" size="s" .icon=${v}></luzmo-icon>
434
+ <luzmo-icon slot="icon" size="s" .icon=${y}></luzmo-icon>
413
435
  </luzmo-action-button>
414
436
  <luzmo-action-button
415
437
  class="rating-btn-negative"
416
438
  value="negative"
417
439
  quiet
418
- label=${w("Bad response", { desc: "Accessible label for the negative feedback button" })}
440
+ label=${E("Bad response", { desc: "Accessible label for the negative feedback button" })}
419
441
  ?selected=${this._rating === -1}
420
442
  @click=${() => this._toggleRating(!1)}
421
443
  >
422
- <luzmo-icon slot="icon" size="s" .icon=${_}></luzmo-icon>
444
+ <luzmo-icon slot="icon" size="s" .icon=${v}></luzmo-icon>
423
445
  </luzmo-action-button>
424
446
  </luzmo-action-group>
425
- ` : b}
426
- ${t ? y`
447
+ ` : x}
448
+ ${t ? b`
427
449
  <luzmo-action-button
428
450
  class="config-toggle"
429
451
  size=${this.size}
430
452
  quiet
431
453
  ?selected=${this._configPanelOpen}
432
454
  aria-expanded=${this._configPanelOpen}
433
- aria-label=${this._configPanelPending ? n : w("Configure chart", { desc: "Accessible label for the chart config toggle" })}
455
+ aria-label=${this._configPanelPending ? n : E("Configure chart", { desc: "Accessible label for the chart config toggle" })}
434
456
  @click=${() => this._toggleConfigPanel()}
435
457
  >
436
- ${this._configPanelPending ? y`<luzmo-progress-circle slot="icon" size="s" indeterminate .label=${n}></luzmo-progress-circle>` : y`<luzmo-icon slot="icon" size="s" .icon=${g}></luzmo-icon>`}
458
+ ${this._configPanelPending ? b`<luzmo-progress-circle slot="icon" size="s" indeterminate .label=${n}></luzmo-progress-circle>` : b`<luzmo-icon slot="icon" size="s" .icon=${_}></luzmo-icon>`}
437
459
  </luzmo-action-button>
438
460
  <span class="sr-only" role="status" aria-live="polite">${this._configPanelPending ? n : ""}</span>
439
- <span class="sr-only" role="alert">${this._configPanelLoadFailed ? w("Failed to load the chart configuration. Please try again.", { desc: "Error message when the chart config panel fails to load" }) : ""}</span>
440
- ` : b}
461
+ <span class="sr-only" role="alert">${this._configPanelLoadFailed ? E("Failed to load the chart configuration. Please try again.", { desc: "Error message when the chart config panel fails to load" }) : ""}</span>
462
+ ` : x}
441
463
  </div>
442
464
  `;
443
465
  }
@@ -449,10 +471,10 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
449
471
  });
450
472
  }
451
473
  _renderFilters(e, t) {
452
- return e.inlineData ? b : y`
474
+ return e.inlineData ? x : b`
453
475
  <div class="edit-column edit-column-filters">
454
476
  <luzmo-field-label size=${this.size}
455
- >${w("Filters", { desc: "Label for the filters section" })}</luzmo-field-label
477
+ >${E("Filters", { desc: "Label for the filters section" })}</luzmo-field-label
456
478
  >
457
479
  <luzmo-filters
458
480
  size=${this.size}
@@ -469,13 +491,13 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
469
491
  `;
470
492
  }
471
493
  _renderConfigPanel() {
472
- if (!this.chart || !this._canShowConfigPanel || !this._configPanelOpen) return b;
473
- let e = this.chart, t = d(e.slots ?? []), n = s(t), r = e.options.theme ?? M;
474
- return y`
494
+ if (!this.chart || !this._canShowConfigPanel || !this._configPanelOpen) return x;
495
+ let e = this.chart, t = d(e.slots ?? []), n = c(t), r = e.options.theme ?? P;
496
+ return b`
475
497
  <div class="config-panel" part="config-panel">
476
498
  <luzmo-tabs selected="data" size=${this.size}>
477
- <luzmo-tab value="data">${w("Data", { desc: "Label for the data section" })}</luzmo-tab>
478
- <luzmo-tab value="options">${w("Options", { desc: "Label for the options section" })}</luzmo-tab>
499
+ <luzmo-tab value="data">${E("Data", { desc: "Label for the data section" })}</luzmo-tab>
500
+ ${this.hideConfigOptions ? x : b`<luzmo-tab value="options">${E("Options", { desc: "Label for the options section" })}</luzmo-tab>`}
479
501
 
480
502
  <luzmo-tab-panel value="data">
481
503
  <div class="edit-grid">
@@ -483,7 +505,10 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
483
505
  <luzmo-item-slot-picker-panel
484
506
  size=${this.size}
485
507
  slot-menu-placement="bottom-end"
508
+ selects=${this.slotSelects}
509
+ ?grows=${this.slotGrows}
486
510
  .itemType=${e.type}
511
+ .slotsConfiguration=${this.slotsConfiguration ?? void 0}
487
512
  .slotsContents=${t}
488
513
  .datasetIds=${n}
489
514
  .authKey=${this.authKey}
@@ -498,24 +523,28 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
498
523
  </div>
499
524
  </luzmo-tab-panel>
500
525
 
501
- <luzmo-tab-panel value="options">
502
- <luzmo-item-option-panel
503
- size=${this.size}
504
- .itemType=${e.type}
505
- .options=${e.options || {}}
506
- .slots=${t}
507
- .theme=${r}
508
- .authKey=${this.authKey}
509
- .authToken=${this.authToken}
510
- .apiUrl=${this.apiUrl}
511
- .language=${this.language}
512
- ?live-interactions=${this.liveInteractions}
513
- @luzmo-options-changed=${this._handleOptionsChanged}
514
- @luzmo-option-interaction-start=${this._handleInteractionStart}
515
- @luzmo-option-interaction-end=${this._handleInteractionClosed}
516
- @luzmo-option-interaction-cancel=${this._handleInteractionClosed}
517
- ></luzmo-item-option-panel>
518
- </luzmo-tab-panel>
526
+ ${this.hideConfigOptions ? x : b`
527
+ <luzmo-tab-panel value="options">
528
+ <luzmo-item-option-panel
529
+ size=${this.size}
530
+ .itemType=${e.type}
531
+ .options=${e.options || {}}
532
+ .slots=${t}
533
+ .customOptionsConfiguration=${this.customOptionsConfiguration ?? void 0}
534
+ .customTranslations=${this.customTranslations ?? void 0}
535
+ .theme=${r}
536
+ .authKey=${this.authKey}
537
+ .authToken=${this.authToken}
538
+ .apiUrl=${this.apiUrl}
539
+ .language=${this.language}
540
+ ?live-interactions=${this.liveInteractions}
541
+ @luzmo-options-changed=${this._handleOptionsChanged}
542
+ @luzmo-option-interaction-start=${this._handleInteractionStart}
543
+ @luzmo-option-interaction-end=${this._handleInteractionClosed}
544
+ @luzmo-option-interaction-cancel=${this._handleInteractionClosed}
545
+ ></luzmo-item-option-panel>
546
+ </luzmo-tab-panel>
547
+ `}
519
548
  </luzmo-tabs>
520
549
  </div>
521
550
  `;
@@ -528,11 +557,11 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
528
557
  });
529
558
  }
530
559
  render() {
531
- return this.chart ? y`
560
+ return this.chart ? b`
532
561
  <div class="answer" part="container">
533
562
  ${this._renderActions()} ${this._renderChart()} ${this._renderFeedback()} ${this._renderConfigPanel()}
534
563
  </div>
535
- ` : y`
564
+ ` : b`
536
565
  <div
537
566
  class="answer"
538
567
  part="container"
@@ -541,49 +570,61 @@ var T = ":host{box-sizing:border-box;display:block;container-type:inline-size}.a
541
570
  }
542
571
  };
543
572
  // src/components/interactive-viz-item/index.ts
544
- r([S({ type: Object })], P.prototype, "chart", void 0), r([S({ type: Object })], P.prototype, "feedback", void 0), r([S({
573
+ r([C({ type: Object })], I.prototype, "chart", void 0), r([C({ type: Object })], I.prototype, "feedback", void 0), r([C({
545
574
  type: String,
546
575
  attribute: "message-id"
547
- })], P.prototype, "messageId", void 0), r([S({
576
+ })], I.prototype, "messageId", void 0), r([C({
548
577
  type: String,
549
578
  attribute: "auth-key"
550
- })], P.prototype, "authKey", void 0), r([S({
579
+ })], I.prototype, "authKey", void 0), r([C({
551
580
  type: String,
552
581
  attribute: "auth-token"
553
- })], P.prototype, "authToken", void 0), r([S({
582
+ })], I.prototype, "authToken", void 0), r([C({
554
583
  type: String,
555
584
  attribute: "api-url"
556
- })], P.prototype, "apiUrl", void 0), r([S({
585
+ })], I.prototype, "apiUrl", void 0), r([C({
557
586
  type: String,
558
587
  attribute: "app-server"
559
- })], P.prototype, "appServer", void 0), r([S({
588
+ })], I.prototype, "appServer", void 0), r([C({
560
589
  type: String,
561
590
  attribute: "content-language"
562
- })], P.prototype, "contentLanguage", void 0), r([S({
591
+ })], I.prototype, "contentLanguage", void 0), r([C({
563
592
  type: Boolean,
564
593
  attribute: "hide-actions",
565
594
  reflect: !0
566
- })], P.prototype, "hideActions", void 0), r([S({
595
+ })], I.prototype, "hideActions", void 0), r([C({
567
596
  type: Boolean,
568
597
  attribute: "hide-feedback",
569
598
  reflect: !0
570
- })], P.prototype, "hideFeedback", void 0), r([S({
599
+ })], I.prototype, "hideFeedback", void 0), r([C({
571
600
  type: Boolean,
572
601
  attribute: "hide-config-panel",
573
602
  reflect: !0
574
- })], P.prototype, "hideConfigPanel", void 0), r([S({
603
+ })], I.prototype, "hideConfigPanel", void 0), r([C({
604
+ type: Boolean,
605
+ attribute: "hide-config-options",
606
+ reflect: !0
607
+ })], I.prototype, "hideConfigOptions", void 0), r([C({
608
+ type: String,
609
+ attribute: "slot-selects",
610
+ reflect: !0
611
+ })], I.prototype, "slotSelects", void 0), r([C({
612
+ type: Boolean,
613
+ attribute: "slot-grows",
614
+ reflect: !0
615
+ })], I.prototype, "slotGrows", void 0), r([C({ attribute: !1 })], I.prototype, "slotsConfiguration", void 0), r([C({ attribute: !1 })], I.prototype, "customOptionsConfiguration", void 0), r([C({ attribute: !1 })], I.prototype, "customTranslations", void 0), r([C({ attribute: !1 })], I.prototype, "chartRenderOptions", void 0), r([C({
575
616
  type: Boolean,
576
617
  attribute: "add-to-dashboard",
577
618
  reflect: !0
578
- })], P.prototype, "addToDashboard", void 0), r([S({ attribute: !1 })], P.prototype, "dashboardActions", void 0), r([S({
619
+ })], I.prototype, "addToDashboard", void 0), r([C({ attribute: !1 })], I.prototype, "dashboardActions", void 0), r([C({
579
620
  type: Boolean,
580
621
  reflect: !0
581
- })], P.prototype, "controlled", void 0), r([S({
622
+ })], I.prototype, "controlled", void 0), r([C({
582
623
  attribute: "can-filter",
583
624
  converter: { fromAttribute: (e) => e === null ? void 0 : "all" }
584
- })], P.prototype, "canFilter", void 0), r([S({
625
+ })], I.prototype, "canFilter", void 0), r([C({
585
626
  type: Boolean,
586
627
  reflect: !0,
587
628
  attribute: "live-interactions"
588
- })], P.prototype, "liveInteractions", void 0), r([C()], P.prototype, "_configPanelOpen", void 0), r([C()], P.prototype, "_configPanelPending", void 0), r([C()], P.prototype, "_configPanelLoadFailed", void 0), customElements.get("luzmo-interactive-viz-item") || customElements.define("luzmo-interactive-viz-item", P);
589
- export { P as t };
629
+ })], I.prototype, "liveInteractions", void 0), r([T()], I.prototype, "_configPanelOpen", void 0), r([T()], I.prototype, "_actionsSlotHasContent", void 0), r([w("luzmo-embed-viz-item")], I.prototype, "_embed", void 0), r([w("luzmo-tabs")], I.prototype, "_configTabs", void 0), r([T()], I.prototype, "_configPanelPending", void 0), r([T()], I.prototype, "_configPanelLoadFailed", void 0), customElements.get("luzmo-interactive-viz-item") || customElements.define("luzmo-interactive-viz-item", I);
630
+ export { I as t };