@luzmo/analytics-components-kit 1.2.1 → 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 (159) hide show
  1. package/README.md +8 -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 +89 -24
  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 +32 -11
  21. package/angular/esm/components/interactive-viz-item.js +99 -28
  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-NwsCPIlg.cjs → add-to-dashboard-BtzTZdjN.cjs} +1 -1
  49. package/components/{add-to-dashboard-NcVHlqrc.js → add-to-dashboard-Bu6S3qVz.js} +125 -120
  50. package/components/chart-helpers-BHxQbLBw.cjs +20 -0
  51. package/components/{chart-helpers-Dng_LGfq.js → chart-helpers-BKeMLhov.js} +53 -39
  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.d.ts +1 -1
  61. package/components/interactive-viz-item/index.js +3 -3
  62. package/components/interactive-viz-item/interactive-viz-item.d.ts +47 -1
  63. package/components/interactive-viz-item/types.d.ts +4 -0
  64. package/components/interactive-viz-item-Cc3Ix95e.js +630 -0
  65. package/components/interactive-viz-item-SF12d97t.cjs +269 -0
  66. package/components/item-grid/item-grid.d.ts +1 -0
  67. package/components/item-slot-picker-panel/index.cjs +1 -1
  68. package/components/item-slot-picker-panel/index.js +1 -1
  69. package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +19 -1
  70. package/components/item-slot-picker-panel-Cw3UCK03.cjs +84 -0
  71. package/components/{item-slot-picker-panel-fJqEmxeD.js → item-slot-picker-panel-DprM9Rli.js} +64 -33
  72. package/custom-elements.json +3051 -2531
  73. package/grid-core/item-grid-base.d.ts +5 -4
  74. package/package.json +2 -2
  75. package/react/package.json +2 -2
  76. package/standalone/add-to-dashboard.js +40 -40
  77. package/standalone/chunks/{chart-helpers-DsIGsaDc.js → chart-helpers-DZsidiCl.js} +2 -2
  78. package/standalone/chunks/{choropleth-map-options.config-rUJsEJcm.js → choropleth-map-options.config-CDMjKnJD.js} +1 -1
  79. package/standalone/chunks/{color-range-utils-DxOtqAKB.js → color-range-utils-BVyHBRiq.js} +1 -1
  80. package/standalone/chunks/data-broker-DpSrH3IP.js +2 -0
  81. package/standalone/chunks/de-BkB0q1Eg.js +2 -0
  82. package/standalone/chunks/display-settings-binning-DhHlclWH.js +38 -0
  83. package/standalone/chunks/display-settings-datetime-C8xvOvi4.js +199 -0
  84. package/standalone/chunks/display-settings-grand-totals-CUpigDcs.js +26 -0
  85. package/standalone/chunks/display-settings-numeric-BLWF54Jx.js +172 -0
  86. package/standalone/chunks/display-settings-period-over-period-COd4tvUw.js +209 -0
  87. package/standalone/chunks/embed-Bv1ps-EM.js +260 -0
  88. package/standalone/chunks/en-DNsyAwgq.js +2 -0
  89. package/standalone/chunks/en-GB-Di3OzVdL.js +2 -0
  90. package/standalone/chunks/en-US-DNsyAwgq.js +2 -0
  91. package/standalone/chunks/es-Bo0jStZn.js +2 -0
  92. package/standalone/chunks/{filters-DKgJcQGP.js → filters-lhg_WVDK.js} +108 -108
  93. package/standalone/chunks/{formula-codemirror-BbyvNEVD.js → formula-codemirror-DZMzLE2I.js} +17 -17
  94. package/standalone/chunks/fr-Co_qVhhV.js +2 -0
  95. package/standalone/chunks/{heat-map-options.config-D93AeYFi.js → heat-map-options.config-DDQMD38W.js} +1 -1
  96. package/standalone/chunks/{heat-table-options.config-ZVML76FK.js → heat-table-options.config-B4K0Ygug.js} +1 -1
  97. package/standalone/chunks/{is-same-option-value-Di-A7Wmg.js → is-same-option-value-7kXNF4st.js} +1 -1
  98. package/standalone/chunks/item-option-action-button-group-Bl1HR1JK.js +35 -0
  99. package/standalone/chunks/item-option-base-DF24wTyv.js +38 -0
  100. package/standalone/chunks/item-option-color-palette-picker-MkIIn56p.js +22 -0
  101. package/standalone/chunks/item-option-color-picker-CxosMo_p.js +19 -0
  102. package/standalone/chunks/item-option-color-range-C7C70r4J.js +83 -0
  103. package/standalone/chunks/item-option-guidelines-iu8yWRzr.js +120 -0
  104. package/standalone/chunks/{item-option-multi-language-field-DPPpN2qg.js → item-option-multi-language-field-foanqCdr.js} +1 -1
  105. package/standalone/chunks/{item-option-number-field-CkqJjInE.js → item-option-number-field-ByVD4oq0.js} +1 -1
  106. package/standalone/chunks/item-option-panel-Bya-K7HH.js +316 -0
  107. package/standalone/chunks/{item-option-picker-BnwQPT9A.js → item-option-picker-CqNNVIML.js} +1 -1
  108. package/standalone/chunks/item-option-position-picker-BjCFVtDH.js +14 -0
  109. package/standalone/chunks/item-option-positions-number-field-BJJtXZL-.js +31 -0
  110. package/standalone/chunks/{item-option-radio-button-group-BkymJq3E.js → item-option-radio-button-group-C5bxsD85.js} +1 -1
  111. package/standalone/chunks/item-option-slider-DUXWz70B.js +18 -0
  112. package/standalone/chunks/item-option-switch-BHyJuOkP.js +12 -0
  113. package/standalone/chunks/{item-option-text-field-D7bkuhsv.js → item-option-text-field-rBZY9OX4.js} +1 -1
  114. package/standalone/chunks/{item-slot-picker-panel-D4BMxGs9.js → item-slot-picker-panel-BM82vSXi.js} +101 -99
  115. package/standalone/chunks/load-data-fields-for-datasets-DS9O1oyy.js +25 -0
  116. package/standalone/chunks/localize-DLl7tgQp.js +2 -0
  117. package/standalone/chunks/localized-decorator-DosMCCQo.js +2 -0
  118. package/standalone/chunks/{version-BW4Ixl63.js → localized-mixin-BWJj88bd.js} +1 -1
  119. package/standalone/chunks/nl-CQz2jrVx.js +2 -0
  120. package/standalone/chunks/{option-interaction-controller-BslAXAHF.js → option-interaction-controller-BuwRr21c.js} +1 -1
  121. package/standalone/chunks/{route-map-options.config-Dwy0JSVq.js → route-map-options.config-CGBkHnhM.js} +1 -1
  122. package/standalone/chunks/{spike-map-options.config-DFmuNxym.js → spike-map-options.config-CSenlJ_F.js} +1 -1
  123. package/standalone/interactive-viz-item.js +88 -84
  124. package/standalone/item-grid.js +10 -10
  125. package/standalone/manifest.json +46 -46
  126. package/types.d.ts +1 -1
  127. package/components/chart-helpers-ufZ6VbXs.cjs +0 -20
  128. package/components/filters-BPbPFOu5.cjs +0 -187
  129. package/components/interactive-viz-item-CwRRaCZB.js +0 -583
  130. package/components/interactive-viz-item-CxdrGRKc.cjs +0 -265
  131. package/components/item-slot-picker-panel-BhhN54IM.cjs +0 -82
  132. package/standalone/chunks/data-broker-DXDyIrj_.js +0 -2
  133. package/standalone/chunks/de-mdZT2W1G.js +0 -2
  134. package/standalone/chunks/display-settings-binning-Byffw2Kl.js +0 -38
  135. package/standalone/chunks/display-settings-datetime-CD52d6Sv.js +0 -199
  136. package/standalone/chunks/display-settings-grand-totals-Cky99LX9.js +0 -26
  137. package/standalone/chunks/display-settings-numeric-C9ea7Tgc.js +0 -172
  138. package/standalone/chunks/display-settings-period-over-period-BLSGumkD.js +0 -209
  139. package/standalone/chunks/embed-CBu7iQRx.js +0 -231
  140. package/standalone/chunks/en-CSboh17P.js +0 -2
  141. package/standalone/chunks/en-GB-HoXKQBOY.js +0 -2
  142. package/standalone/chunks/en-US-CSboh17P.js +0 -2
  143. package/standalone/chunks/es-Di5D8JFd.js +0 -2
  144. package/standalone/chunks/fr-DZku7iB9.js +0 -2
  145. package/standalone/chunks/item-option-action-button-group-BEAwPHVw.js +0 -35
  146. package/standalone/chunks/item-option-base-CRUxNhJQ.js +0 -38
  147. package/standalone/chunks/item-option-color-palette-picker-CBz61iZb.js +0 -22
  148. package/standalone/chunks/item-option-color-picker-lLvBPnKA.js +0 -19
  149. package/standalone/chunks/item-option-color-range-BqeatOei.js +0 -83
  150. package/standalone/chunks/item-option-guidelines-Cop8rM8y.js +0 -120
  151. package/standalone/chunks/item-option-panel-CzSKFCVl.js +0 -316
  152. package/standalone/chunks/item-option-position-picker-Bkc4JvJX.js +0 -14
  153. package/standalone/chunks/item-option-positions-number-field-Dr_315TE.js +0 -31
  154. package/standalone/chunks/item-option-slider-K_bsNci8.js +0 -18
  155. package/standalone/chunks/item-option-switch-DeihDHhM.js +0 -12
  156. package/standalone/chunks/load-data-fields-for-datasets-ClctSj6y.js +0 -25
  157. package/standalone/chunks/localize-DXRmGRe-.js +0 -2
  158. package/standalone/chunks/localized-decorator-DJVBmJVH.js +0 -2
  159. package/standalone/chunks/nl-CViTevL3.js +0 -2
@@ -0,0 +1,630 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2026 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ import "./tokens-6HmQYnEP.js";
21
+ import { i as e, n as t, t as n } from "./base-rAte-QzM.js";
22
+ import { t as r } from "./decorate-B2TzfnLZ.js";
23
+ import { t as i } from "./localized-mixin-FPDNaZhb.js";
24
+ import { n as a } from "./is-same-option-value-B2oyvEqT.js";
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
+ import "@luzmo/lucero/action-button";
29
+ import "@luzmo/lucero/icon";
30
+ import "@luzmo/lucero/overlay";
31
+ import "@luzmo/lucero/popover";
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
+ import "@luzmo/embed";
36
+ import "@luzmo/lucero/action-group";
37
+ import "@luzmo/lucero/field-label";
38
+ import "@luzmo/lucero/number-field";
39
+ import "@luzmo/lucero/picker";
40
+ import "@luzmo/lucero/progress-circle";
41
+ import "@luzmo/lucero/tabs";
42
+ // src/components/interactive-viz-item/interactive-viz-item.module.scss?inline
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
+ "luzmo-filters",
45
+ "luzmo-item-option-panel",
46
+ "luzmo-item-slot-picker-panel"
47
+ ], A = h(() => Promise.all([
48
+ import("./filters/index.js"),
49
+ import("./item-option-panel/index.js"),
50
+ import("./item-slot-picker-panel/index.js")
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
+ 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.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) => {
56
+ this.chart && this._emitChart({
57
+ ...this.chart,
58
+ slots: e.detail.slotsContents
59
+ });
60
+ }, this._handleFiltersChanged = (e) => {
61
+ this.chart && this._emitChart({
62
+ ...this.chart,
63
+ filters: e.detail.filters
64
+ });
65
+ }, this._handleOptionsChanged = (e) => {
66
+ if (!this.chart) return;
67
+ let { options: t, interaction: n } = e.detail;
68
+ if (!t) return;
69
+ if (n) {
70
+ let e = this._openInteractions.get(n.id);
71
+ if (!e || !this._isCurrentContext(e)) {
72
+ e?.generation === this._interactionGeneration && this._invalidateInteractions();
73
+ return;
74
+ }
75
+ }
76
+ let r = this.chart.options.theme ?? {};
77
+ this._emitChart({
78
+ ...this.chart,
79
+ options: {
80
+ ...t,
81
+ theme: r
82
+ }
83
+ }, n);
84
+ }, this._handleInteractionStart = (e) => {
85
+ if (!this.chart) return;
86
+ let t = {
87
+ chart: this.chart,
88
+ generation: this._interactionGeneration,
89
+ auth: this._auth
90
+ };
91
+ this._openInteractions.set(e.detail.id, t), this._dispatchInteraction(e, t);
92
+ }, this._handleInteractionClosed = (e) => {
93
+ let t = this._openInteractions.get(e.detail.id);
94
+ this._openInteractions.delete(e.detail.id), this._openInteractions.size === 0 && (this._ownCharts = this._ownCharts.slice(-1)), t && this._dispatchInteraction(e, t);
95
+ };
96
+ }
97
+ static get styles() {
98
+ return [S(D)];
99
+ }
100
+ get _effectiveContentLanguage() {
101
+ return this.contentLanguage || this.language;
102
+ }
103
+ _dispatch(e, t) {
104
+ let n = new CustomEvent(e, {
105
+ detail: t,
106
+ bubbles: !0,
107
+ composed: !0
108
+ });
109
+ this.dispatchEvent(n);
110
+ }
111
+ get _chartActions() {
112
+ return this.chart ? u(f(this.chart)) : [];
113
+ }
114
+ get _rating() {
115
+ return this.feedback?.rating ?? 0;
116
+ }
117
+ get _canShowConfigPanel() {
118
+ return !this.chart || this.hideConfigPanel ? !1 : !this.chart.inlineData || c(f(this.chart).slots).length > 0;
119
+ }
120
+ async _toggleConfigPanel() {
121
+ if (this._configPanelLoadFailed = !1, this._configPanelOpen) this.endInteraction(), this._configPanelOpen = !1;
122
+ else if (!this._configPanelPending) {
123
+ if (!M()) {
124
+ this._configPanelPending = !0;
125
+ try {
126
+ await j();
127
+ } catch (e) {
128
+ console.warn("Failed to load the chart configuration panel:", e), this._configPanelLoadFailed = !0;
129
+ return;
130
+ } finally {
131
+ this._configPanelPending = !1;
132
+ }
133
+ }
134
+ this.isConnected && this._canShowConfigPanel && (this._configPanelOpen = !0);
135
+ }
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
+ }
156
+ endInteraction() {
157
+ this.renderRoot?.querySelector("luzmo-item-option-panel")?.endInteraction?.();
158
+ }
159
+ disconnectedCallback() {
160
+ super.disconnectedCallback(), this._cancelExportWaits();
161
+ }
162
+ willUpdate(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");
167
+ }
168
+ _emitOptions(e) {
169
+ !this.controlled && this.chart && (this.chart = {
170
+ ...this.chart,
171
+ options: e
172
+ }), this._dispatch("luzmo-chart-options-changed", { options: e });
173
+ }
174
+ _invalidatesInteractions(e) {
175
+ return e.has("authKey") || e.has("authToken") || e.has("apiUrl") || e.has("hideConfigPanel") ? !0 : e.has("chart") && [...this._openInteractions.values()].some((e) => !this._isCurrentChart(e));
176
+ }
177
+ _invalidateInteractions() {
178
+ this._interactionGeneration++, this.endInteraction();
179
+ }
180
+ get _auth() {
181
+ return [
182
+ this.authKey,
183
+ this.authToken,
184
+ this.apiUrl
185
+ ];
186
+ }
187
+ _isCurrentChart(e) {
188
+ let t = this.chart;
189
+ return t === e.chart || this._ownCharts.some((e) => e === t) || [...this._ownCharts].reverse().some((e) => F(e, t)) || F(e.chart, t);
190
+ }
191
+ _isCurrentContext(e) {
192
+ return e.generation === this._interactionGeneration && e.auth.every((e, t) => e === this._auth[t]) && this._isCurrentChart(e);
193
+ }
194
+ _emitChart(e, t) {
195
+ this._ownCharts = this._openInteractions.size > 0 ? [...this._ownCharts, e] : [e], this.controlled || (this.chart = e), this._dispatch("luzmo-chart-changed", t ? {
196
+ chart: e,
197
+ interaction: t
198
+ } : { chart: e });
199
+ }
200
+ _handleDropdownChange(e, t) {
201
+ if (!this.chart) return;
202
+ t.stopPropagation();
203
+ let n = t.detail, r = typeof n == "string" ? n : n?.value ?? t.target?.value;
204
+ if (!r) return;
205
+ let i = p({
206
+ ...f(this.chart),
207
+ options: this.chart.options
208
+ }, {
209
+ type: "chartAction",
210
+ actionType: e.mutationType,
211
+ key: r
212
+ });
213
+ this._emitOptions(i.options);
214
+ }
215
+ _currentRanking(e) {
216
+ return e.ranking ?? {
217
+ active: !1,
218
+ number: 5,
219
+ direction: l.Top
220
+ };
221
+ }
222
+ _currentSort(e) {
223
+ return e.sort ?? {
224
+ direction: s.Desc,
225
+ by: m.Measure
226
+ };
227
+ }
228
+ _emitRankAndSort(e, t) {
229
+ this.chart && this._emitOptions({
230
+ ...this.chart.options,
231
+ ranking: e,
232
+ sort: t
233
+ });
234
+ }
235
+ _renderOptionDropdown(e) {
236
+ let t = e.values ?? [], n = e.currentValue || t[0]?.key || "";
237
+ return b`
238
+ <luzmo-picker
239
+ size=${this.size}
240
+ variant="highlight"
241
+ value=${n}
242
+ @change=${(t) => this._handleDropdownChange(e, t)}
243
+ >
244
+ ${t.map((e) => b`<luzmo-menu-item value=${e.key}>${e.label}</luzmo-menu-item>`)}
245
+ </luzmo-picker>
246
+ `;
247
+ }
248
+ _renderRankingPicker(e) {
249
+ let t = this._currentRanking(e), n = this._currentSort(e);
250
+ if (!t.active) return b`
251
+ <luzmo-action-button
252
+ size=${this.size}
253
+ @click=${() => this._emitRankAndSort({
254
+ active: !0,
255
+ number: 5,
256
+ direction: l.Top
257
+ }, n)}
258
+ >
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" })}
261
+ </luzmo-action-button>
262
+ `;
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`
265
+ <luzmo-action-button size=${this.size} id=${this._rankingTriggerId}>
266
+ <luzmo-icon slot="icon" size="xs" .icon=${g}></luzmo-icon>
267
+ ${r} ${t.number || 5}
268
+ </luzmo-action-button>
269
+
270
+ <luzmo-overlay type="auto" placement="bottom-start" trigger=${`${this._rankingTriggerId}@click`}>
271
+ <luzmo-popover>
272
+ <div class="ranking-content">
273
+ <div class="ranking-row">
274
+ <luzmo-action-group
275
+ size=${this.size}
276
+ compact
277
+ selects="single"
278
+ .selected=${[t.direction]}
279
+ @change=${(t) => this._handleDirectionChange(e, t)}
280
+ >
281
+ <luzmo-action-button value="top" emphasized
282
+ >${E("Top", { desc: "Ranking direction: keep the highest values" })}</luzmo-action-button
283
+ >
284
+ <luzmo-action-button value="bottom" emphasized
285
+ >${E("Bottom", { desc: "Ranking direction: keep the lowest values" })}</luzmo-action-button
286
+ >
287
+ </luzmo-action-group>
288
+
289
+ <luzmo-number-field
290
+ class="ranking-number"
291
+ size=${this.size}
292
+ hide-stepper
293
+ min="1"
294
+ max="100"
295
+ step="1"
296
+ .value=${t.number}
297
+ @change=${(t) => this._handleNumberChange(e, t)}
298
+ @input=${(t) => this._handleNumberChange(e, t)}
299
+ ></luzmo-number-field>
300
+ </div>
301
+
302
+ <div class="ranking-row">
303
+ <luzmo-action-group
304
+ size=${this.size}
305
+ compact
306
+ selects="single"
307
+ .selected=${[n.by]}
308
+ @change=${(t) => this._handleSortByChange(e, t)}
309
+ >
310
+ <luzmo-action-button value="measure" emphasized>123</luzmo-action-button>
311
+ <luzmo-action-button value="category" emphasized>ABC</luzmo-action-button>
312
+ </luzmo-action-group>
313
+
314
+ <luzmo-action-group
315
+ size=${this.size}
316
+ compact
317
+ selects="single"
318
+ .selected=${[n.direction]}
319
+ @change=${(t) => this._handleSortDirectionChange(e, t)}
320
+ >
321
+ <luzmo-action-button
322
+ value="desc"
323
+ emphasized
324
+ label=${E("Sort descending", { desc: "Sort chart values in descending order" })}
325
+ >
326
+ <luzmo-icon slot="icon" size="xs" .icon=${g}></luzmo-icon>
327
+ </luzmo-action-button>
328
+ <luzmo-action-button
329
+ value="asc"
330
+ emphasized
331
+ label=${E("Sort ascending", { desc: "Sort chart values in ascending order" })}
332
+ >
333
+ <luzmo-icon slot="icon" size="xs" class="icon-flipped" .icon=${g}></luzmo-icon>
334
+ </luzmo-action-button>
335
+ </luzmo-action-group>
336
+ </div>
337
+ </div>
338
+ </luzmo-popover>
339
+ </luzmo-overlay>
340
+ `;
341
+ }
342
+ _handleDirectionChange(e, t) {
343
+ t.stopPropagation();
344
+ let n = t.target?.selected;
345
+ n?.length && this._emitRankAndSort({
346
+ ...this._currentRanking(e),
347
+ direction: n[0]
348
+ }, this._currentSort(e));
349
+ }
350
+ _handleNumberChange(e, t) {
351
+ t.stopPropagation();
352
+ let n = t.target?.value, r = typeof n == "number" ? n : Number.parseInt(String(n), 10);
353
+ !Number.isNaN(r) && r >= 1 && this._emitRankAndSort({
354
+ ...this._currentRanking(e),
355
+ number: r
356
+ }, this._currentSort(e));
357
+ }
358
+ _handleSortByChange(e, t) {
359
+ t.stopPropagation();
360
+ let n = t.target?.selected;
361
+ n?.length && this._emitRankAndSort(this._currentRanking(e), {
362
+ ...this._currentSort(e),
363
+ by: n[0]
364
+ });
365
+ }
366
+ _handleSortDirectionChange(e, t) {
367
+ t.stopPropagation();
368
+ let n = t.target?.selected;
369
+ n?.length && this._emitRankAndSort(this._currentRanking(e), {
370
+ ...this._currentSort(e),
371
+ direction: n[0]
372
+ });
373
+ }
374
+ _renderAddToDashboard() {
375
+ return this.addToDashboard ? b`
376
+ <luzmo-add-to-dashboard
377
+ size=${this.size}
378
+ language=${this.language}
379
+ .chart=${this.chart}
380
+ .dashboardActions=${this.dashboardActions}
381
+ .authKey=${this.authKey}
382
+ .authToken=${this.authToken}
383
+ .apiUrl=${this.apiUrl}
384
+ ></luzmo-add-to-dashboard>
385
+ ` : x;
386
+ }
387
+ _renderActions() {
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))}
393
+ </div>
394
+ <slot name="chart-actions-extra" @slotchange=${this._handleActionsSlotChange}></slot>
395
+ ${this._renderAddToDashboard()}
396
+ </div>
397
+ `;
398
+ }
399
+ _renderChart() {
400
+ if (!this.chart) return x;
401
+ let e = f(this.chart);
402
+ return b`
403
+ <div class="chart-container" part="chart-container">
404
+ <luzmo-embed-viz-item
405
+ .type=${e.type}
406
+ .options=${o(e.options, this.chartRenderOptions)}
407
+ .slots=${e.slots}
408
+ .filters=${e.filters ?? []}
409
+ .inlineData=${e.inlineData}
410
+ .authKey=${this.authKey}
411
+ .authToken=${this.authToken}
412
+ .apiHost=${this.apiUrl}
413
+ .appServer=${this.appServer}
414
+ .language=${this._effectiveContentLanguage}
415
+ .canFilter=${this.canFilter ?? !1}
416
+ ></luzmo-embed-viz-item>
417
+ </div>
418
+ `;
419
+ }
420
+ _renderFeedback() {
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`
425
+ <luzmo-action-group quiet size=${this.size}>
426
+ <luzmo-action-button
427
+ class="rating-btn-positive"
428
+ value="positive"
429
+ quiet
430
+ label=${E("Good response", { desc: "Accessible label for the positive feedback button" })}
431
+ ?selected=${this._rating === 1}
432
+ @click=${() => this._toggleRating(!0)}
433
+ >
434
+ <luzmo-icon slot="icon" size="s" .icon=${y}></luzmo-icon>
435
+ </luzmo-action-button>
436
+ <luzmo-action-button
437
+ class="rating-btn-negative"
438
+ value="negative"
439
+ quiet
440
+ label=${E("Bad response", { desc: "Accessible label for the negative feedback button" })}
441
+ ?selected=${this._rating === -1}
442
+ @click=${() => this._toggleRating(!1)}
443
+ >
444
+ <luzmo-icon slot="icon" size="s" .icon=${v}></luzmo-icon>
445
+ </luzmo-action-button>
446
+ </luzmo-action-group>
447
+ ` : x}
448
+ ${t ? b`
449
+ <luzmo-action-button
450
+ class="config-toggle"
451
+ size=${this.size}
452
+ quiet
453
+ ?selected=${this._configPanelOpen}
454
+ aria-expanded=${this._configPanelOpen}
455
+ aria-label=${this._configPanelPending ? n : E("Configure chart", { desc: "Accessible label for the chart config toggle" })}
456
+ @click=${() => this._toggleConfigPanel()}
457
+ >
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>`}
459
+ </luzmo-action-button>
460
+ <span class="sr-only" role="status" aria-live="polite">${this._configPanelPending ? n : ""}</span>
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}
463
+ </div>
464
+ `;
465
+ }
466
+ _toggleRating(e) {
467
+ let t = e ? 1 : -1, n = this._rating === t ? 0 : t;
468
+ this._dispatch("luzmo-feedback-changed", {
469
+ rating: n,
470
+ comment: this.feedback?.comment
471
+ });
472
+ }
473
+ _renderFilters(e, t) {
474
+ return e.inlineData ? x : b`
475
+ <div class="edit-column edit-column-filters">
476
+ <luzmo-field-label size=${this.size}
477
+ >${E("Filters", { desc: "Label for the filters section" })}</luzmo-field-label
478
+ >
479
+ <luzmo-filters
480
+ size=${this.size}
481
+ .datasetIds=${t}
482
+ .filters=${e.filters ?? []}
483
+ .authKey=${this.authKey}
484
+ .authToken=${this.authToken}
485
+ .apiUrl=${this.apiUrl}
486
+ .language=${this.language}
487
+ .contentLanguage=${this._effectiveContentLanguage}
488
+ @luzmo-filters-changed=${this._handleFiltersChanged}
489
+ ></luzmo-filters>
490
+ </div>
491
+ `;
492
+ }
493
+ _renderConfigPanel() {
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`
497
+ <div class="config-panel" part="config-panel">
498
+ <luzmo-tabs selected="data" size=${this.size}>
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>`}
501
+
502
+ <luzmo-tab-panel value="data">
503
+ <div class="edit-grid">
504
+ <div class="edit-column">
505
+ <luzmo-item-slot-picker-panel
506
+ size=${this.size}
507
+ slot-menu-placement="bottom-end"
508
+ selects=${this.slotSelects}
509
+ ?grows=${this.slotGrows}
510
+ .itemType=${e.type}
511
+ .slotsConfiguration=${this.slotsConfiguration ?? void 0}
512
+ .slotsContents=${t}
513
+ .datasetIds=${n}
514
+ .authKey=${this.authKey}
515
+ .authToken=${this.authToken}
516
+ .apiUrl=${this.apiUrl}
517
+ .language=${this.language}
518
+ .contentLanguage=${this._effectiveContentLanguage}
519
+ @luzmo-slots-contents-changed=${this._handleSlotsChanged}
520
+ ></luzmo-item-slot-picker-panel>
521
+ </div>
522
+ ${this._renderFilters(e, n)}
523
+ </div>
524
+ </luzmo-tab-panel>
525
+
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
+ `}
548
+ </luzmo-tabs>
549
+ </div>
550
+ `;
551
+ }
552
+ _dispatchInteraction(e, { chart: t, generation: n }) {
553
+ e.stopPropagation(), this._dispatch(e.type, {
554
+ ...e.detail,
555
+ chart: t,
556
+ generation: n
557
+ });
558
+ }
559
+ render() {
560
+ return this.chart ? b`
561
+ <div class="answer" part="container">
562
+ ${this._renderActions()} ${this._renderChart()} ${this._renderFeedback()} ${this._renderConfigPanel()}
563
+ </div>
564
+ ` : b`
565
+ <div
566
+ class="answer"
567
+ part="container"
568
+ ></div>
569
+ `;
570
+ }
571
+ };
572
+ // src/components/interactive-viz-item/index.ts
573
+ r([C({ type: Object })], I.prototype, "chart", void 0), r([C({ type: Object })], I.prototype, "feedback", void 0), r([C({
574
+ type: String,
575
+ attribute: "message-id"
576
+ })], I.prototype, "messageId", void 0), r([C({
577
+ type: String,
578
+ attribute: "auth-key"
579
+ })], I.prototype, "authKey", void 0), r([C({
580
+ type: String,
581
+ attribute: "auth-token"
582
+ })], I.prototype, "authToken", void 0), r([C({
583
+ type: String,
584
+ attribute: "api-url"
585
+ })], I.prototype, "apiUrl", void 0), r([C({
586
+ type: String,
587
+ attribute: "app-server"
588
+ })], I.prototype, "appServer", void 0), r([C({
589
+ type: String,
590
+ attribute: "content-language"
591
+ })], I.prototype, "contentLanguage", void 0), r([C({
592
+ type: Boolean,
593
+ attribute: "hide-actions",
594
+ reflect: !0
595
+ })], I.prototype, "hideActions", void 0), r([C({
596
+ type: Boolean,
597
+ attribute: "hide-feedback",
598
+ reflect: !0
599
+ })], I.prototype, "hideFeedback", void 0), r([C({
600
+ type: Boolean,
601
+ attribute: "hide-config-panel",
602
+ reflect: !0
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({
616
+ type: Boolean,
617
+ attribute: "add-to-dashboard",
618
+ reflect: !0
619
+ })], I.prototype, "addToDashboard", void 0), r([C({ attribute: !1 })], I.prototype, "dashboardActions", void 0), r([C({
620
+ type: Boolean,
621
+ reflect: !0
622
+ })], I.prototype, "controlled", void 0), r([C({
623
+ attribute: "can-filter",
624
+ converter: { fromAttribute: (e) => e === null ? void 0 : "all" }
625
+ })], I.prototype, "canFilter", void 0), r([C({
626
+ type: Boolean,
627
+ reflect: !0,
628
+ attribute: "live-interactions"
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 };