@luzmo/analytics-components-kit 1.1.1 → 1.3.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 (220) hide show
  1. package/README.md +10 -2
  2. package/angular/components/interactive-viz-item.ts +41 -4
  3. package/angular/components/item-option-color-picker.ts +30 -3
  4. package/angular/components/item-option-color-range.ts +30 -3
  5. package/angular/components/item-option-guidelines.ts +31 -4
  6. package/angular/components/item-option-panel.ts +41 -4
  7. package/angular/components/item-option-slider.ts +41 -4
  8. package/angular/components/item-option.ts +41 -4
  9. package/angular/esm/components/interactive-viz-item.d.ts +14 -5
  10. package/angular/esm/components/interactive-viz-item.js +30 -4
  11. package/angular/esm/components/item-option-color-picker.d.ts +11 -4
  12. package/angular/esm/components/item-option-color-picker.js +23 -3
  13. package/angular/esm/components/item-option-color-range.d.ts +11 -4
  14. package/angular/esm/components/item-option-color-range.js +23 -3
  15. package/angular/esm/components/item-option-guidelines.d.ts +11 -4
  16. package/angular/esm/components/item-option-guidelines.js +24 -4
  17. package/angular/esm/components/item-option-panel.d.ts +13 -4
  18. package/angular/esm/components/item-option-panel.js +30 -4
  19. package/angular/esm/components/item-option-slider.d.ts +13 -4
  20. package/angular/esm/components/item-option-slider.js +30 -4
  21. package/angular/esm/components/item-option.d.ts +13 -4
  22. package/angular/esm/components/item-option.js +30 -4
  23. package/angular/package.json +2 -2
  24. package/angular/utils/option-interaction/index.d.ts +2 -0
  25. package/angular/utils/option-interaction/is-same-option-value.d.ts +10 -0
  26. package/angular/utils/option-interaction/option-interaction-controller.d.ts +54 -0
  27. package/angular/utils/option-interaction/tests/option-interaction-controller.test.d.ts +1 -0
  28. package/angular/utils/store/base-store.d.ts +9 -0
  29. package/angular/utils/store/tests/store-base-history.test.d.ts +1 -0
  30. package/components/add-to-dashboard/index.cjs +1 -1
  31. package/components/add-to-dashboard/index.js +1 -1
  32. package/components/{add-to-dashboard-NwsCPIlg.cjs → add-to-dashboard-CzIuDtAq.cjs} +1 -1
  33. package/components/{add-to-dashboard-NcVHlqrc.js → add-to-dashboard-DGC0_hRB.js} +1 -1
  34. package/components/{base-store-SgJsjLap.cjs → base-store-D3whjduR.cjs} +1 -1
  35. package/components/{base-store-g0dt7ru7.js → base-store-DQYj8A1W.js} +3 -0
  36. package/components/{chart-helpers-Dng_LGfq.js → chart-helpers-Cbl3sRra.js} +3 -2
  37. package/components/chart-helpers-fMnqHRzC.cjs +20 -0
  38. package/components/{choropleth-map-options.config-D9-u-NwX.js → choropleth-map-options.config-Blu0Z2tR.js} +1 -1
  39. package/components/{choropleth-map-options.config-CXDGMiSJ.cjs → choropleth-map-options.config-DwFJ00CS.cjs} +1 -1
  40. package/components/{color-range-utils-CUCTsRXM.js → color-range-utils-CgwRGUkg.js} +18 -18
  41. package/components/{color-range-utils-BCFQAeY1.cjs → color-range-utils-D8uygiMe.cjs} +1 -1
  42. package/components/{heat-map-options.config-ChZeslEy.js → heat-map-options.config-BQkhkLPb.js} +16 -16
  43. package/components/{heat-map-options.config-DiNa8NnG.cjs → heat-map-options.config-DjQkB039.cjs} +1 -1
  44. package/components/{heat-table-options.config-BPCszrFn.js → heat-table-options.config-CMWWTeyo.js} +1 -1
  45. package/components/{heat-table-options.config-BvE6coaV.cjs → heat-table-options.config-D21xtaIk.cjs} +1 -1
  46. package/components/index.cjs +1 -1
  47. package/components/index.js +9 -9
  48. package/components/interactive-viz-item/index.cjs +1 -1
  49. package/components/interactive-viz-item/index.d.ts +2 -1
  50. package/components/interactive-viz-item/index.js +2 -2
  51. package/components/interactive-viz-item/interactive-viz-item.d.ts +34 -2
  52. package/components/interactive-viz-item/types.d.ts +17 -0
  53. package/components/{interactive-viz-item-CofUkpP6.js → interactive-viz-item-BKLOmawA.js} +166 -100
  54. package/components/interactive-viz-item-ojdH1uk0.cjs +268 -0
  55. package/components/is-same-option-value-B2oyvEqT.js +42 -0
  56. package/components/is-same-option-value-Cf6BQcs7.cjs +20 -0
  57. package/components/item-option/helpers/control-markup.d.ts +7 -0
  58. package/components/item-option/index.cjs +1 -1
  59. package/components/item-option/index.d.ts +1 -1
  60. package/components/item-option/index.js +1 -1
  61. package/components/item-option/item-option.d.ts +23 -2
  62. package/components/item-option/types.d.ts +19 -0
  63. package/components/{item-option-Cgx3c08E.js → item-option-DKLRnicU.js} +182 -136
  64. package/components/item-option-DpLdospV.cjs +285 -0
  65. package/components/item-option-color-picker/index.cjs +1 -1
  66. package/components/item-option-color-picker/index.d.ts +1 -1
  67. package/components/item-option-color-picker/index.js +1 -1
  68. package/components/item-option-color-picker/item-option-color-picker.d.ts +17 -1
  69. package/components/item-option-color-picker-CNW7GsCO.cjs +37 -0
  70. package/components/item-option-color-picker-DDvsY7hV.js +129 -0
  71. package/components/item-option-color-range/index.cjs +1 -1
  72. package/components/item-option-color-range/index.d.ts +1 -1
  73. package/components/item-option-color-range/index.js +1 -1
  74. package/components/item-option-color-range/item-option-color-range.d.ts +20 -1
  75. package/components/item-option-color-range-BqSbuSZh.cjs +101 -0
  76. package/components/item-option-color-range-FQduqtz3.js +265 -0
  77. package/components/item-option-guidelines/index.cjs +1 -1
  78. package/components/item-option-guidelines/index.d.ts +1 -1
  79. package/components/item-option-guidelines/index.js +1 -1
  80. package/components/item-option-guidelines/item-option-guidelines.d.ts +16 -1
  81. package/components/{item-option-guidelines-DNJevmVD.js → item-option-guidelines-k5DwMONo.js} +132 -104
  82. package/components/item-option-guidelines-z9BsGR-l.cjs +138 -0
  83. package/components/item-option-panel/index.cjs +1 -1
  84. package/components/item-option-panel/index.d.ts +1 -1
  85. package/components/item-option-panel/index.js +1 -1
  86. package/components/item-option-panel/item-option-panel.d.ts +12 -1
  87. package/components/{item-option-panel-DHdnisRb.js → item-option-panel-BLXWIbjX.js} +18 -6
  88. package/components/{item-option-panel-Dl3aYBNe.cjs → item-option-panel-CU51qvgV.cjs} +6 -4
  89. package/components/item-option-slider/index.cjs +1 -1
  90. package/components/item-option-slider/index.d.ts +1 -1
  91. package/components/item-option-slider/index.js +1 -1
  92. package/components/item-option-slider/item-option-slider.d.ts +15 -2
  93. package/components/item-option-slider-BKtJfL3D.js +119 -0
  94. package/components/item-option-slider-Kz2eFBql.cjs +36 -0
  95. package/components/item-options-configs.cjs +1 -1
  96. package/components/item-options-configs.js +5 -5
  97. package/components/option-interaction-controller-B8S1N_Oo.js +90 -0
  98. package/components/option-interaction-controller-D0U-CTpZ.cjs +20 -0
  99. package/components/{route-map-options.config-DdCaVtIF.cjs → route-map-options.config-DER6ENky.cjs} +1 -1
  100. package/components/{route-map-options.config-B7vT6KG_.js → route-map-options.config-DTcS47fW.js} +1 -1
  101. package/components/{spike-map-options.config-DkmRZ1JZ.js → spike-map-options.config-CPYfKWoF.js} +1 -1
  102. package/components/{spike-map-options.config-B3hDh2qU.cjs → spike-map-options.config-DeF1Whq5.cjs} +1 -1
  103. package/components/utils/store.cjs +1 -1
  104. package/components/utils/store.js +1 -1
  105. package/custom-elements.json +418 -104
  106. package/package.json +2 -2
  107. package/react/components/interactive-viz-item.component.ts +11 -2
  108. package/react/components/item-option-color-picker.component.ts +9 -3
  109. package/react/components/item-option-color-range.component.ts +9 -3
  110. package/react/components/item-option-guidelines.component.ts +9 -3
  111. package/react/components/item-option-panel.component.ts +12 -3
  112. package/react/components/item-option-slider.component.ts +12 -3
  113. package/react/components/item-option.component.ts +12 -3
  114. package/react/esm/components/interactive-viz-item.component.d.ts +8 -2
  115. package/react/esm/components/interactive-viz-item.component.js +7 -1
  116. package/react/esm/components/item-option-color-picker.component.d.ts +6 -2
  117. package/react/esm/components/item-option-color-picker.component.js +6 -2
  118. package/react/esm/components/item-option-color-range.component.d.ts +6 -2
  119. package/react/esm/components/item-option-color-range.component.js +6 -2
  120. package/react/esm/components/item-option-guidelines.component.d.ts +6 -2
  121. package/react/esm/components/item-option-guidelines.component.js +6 -2
  122. package/react/esm/components/item-option-panel.component.d.ts +8 -2
  123. package/react/esm/components/item-option-panel.component.js +8 -2
  124. package/react/esm/components/item-option-slider.component.d.ts +8 -2
  125. package/react/esm/components/item-option-slider.component.js +8 -2
  126. package/react/esm/components/item-option.component.d.ts +8 -2
  127. package/react/esm/components/item-option.component.js +8 -2
  128. package/react/luzmo-stub.d.ts +7 -0
  129. package/react/package.json +2 -2
  130. package/standalone/add-to-dashboard.js +40 -40
  131. package/standalone/chunks/{chart-helpers-DsIGsaDc.js → chart-helpers-CR-EUEPf.js} +2 -2
  132. package/standalone/chunks/{choropleth-map-options.config-Cs4Kvr9h.js → choropleth-map-options.config-CDMjKnJD.js} +1 -1
  133. package/standalone/chunks/{color-range-utils-CKDpd3gZ.js → color-range-utils-BVyHBRiq.js} +1 -1
  134. package/standalone/chunks/de-BkB0q1Eg.js +2 -0
  135. package/standalone/chunks/display-settings-binning-BeLLxd3i.js +38 -0
  136. package/standalone/chunks/display-settings-datetime-BkeiKIVV.js +199 -0
  137. package/standalone/chunks/display-settings-grand-totals-BuhpQKJ6.js +26 -0
  138. package/standalone/chunks/display-settings-numeric-m30IYI7I.js +172 -0
  139. package/standalone/chunks/display-settings-period-over-period-CqDlOSRn.js +209 -0
  140. package/standalone/chunks/embed-Bv1ps-EM.js +260 -0
  141. package/standalone/chunks/en-63f7j4v7.js +2 -0
  142. package/standalone/chunks/en-GB-QAmXQf8W.js +2 -0
  143. package/standalone/chunks/en-US-63f7j4v7.js +2 -0
  144. package/standalone/chunks/es-Bo0jStZn.js +2 -0
  145. package/standalone/chunks/{filters-DKgJcQGP.js → filters-CxgBXUF1.js} +61 -61
  146. package/standalone/chunks/{formula-codemirror-BbyvNEVD.js → formula-codemirror-Cq94j3-f.js} +17 -17
  147. package/standalone/chunks/fr-Co_qVhhV.js +2 -0
  148. package/standalone/chunks/{heat-map-options.config-DF5kjOOe.js → heat-map-options.config-DDQMD38W.js} +1 -1
  149. package/standalone/chunks/{heat-table-options.config-DaePzfHG.js → heat-table-options.config-B4K0Ygug.js} +1 -1
  150. package/standalone/chunks/is-same-option-value-7kXNF4st.js +2 -0
  151. package/standalone/chunks/item-option-action-button-group-BoyqF9vt.js +35 -0
  152. package/standalone/chunks/item-option-base-CBcDT8MX.js +38 -0
  153. package/standalone/chunks/item-option-color-palette-picker-C9PGAv4V.js +22 -0
  154. package/standalone/chunks/item-option-color-picker-D4fVJlqF.js +19 -0
  155. package/standalone/chunks/item-option-color-range-BlAdTguE.js +83 -0
  156. package/standalone/chunks/item-option-guidelines-DMsYsHDu.js +120 -0
  157. package/standalone/chunks/{item-option-multi-language-field-DPPpN2qg.js → item-option-multi-language-field-NUbm1drg.js} +1 -1
  158. package/standalone/chunks/{item-option-number-field-CkqJjInE.js → item-option-number-field-DRp7kbHL.js} +1 -1
  159. package/standalone/chunks/item-option-panel-cXrRclzM.js +316 -0
  160. package/standalone/chunks/{item-option-picker-BnwQPT9A.js → item-option-picker-Ba09L4Cs.js} +1 -1
  161. package/standalone/chunks/item-option-position-picker-GEGTnhjw.js +14 -0
  162. package/standalone/chunks/item-option-positions-number-field-n44s1k5v.js +31 -0
  163. package/standalone/chunks/{item-option-radio-button-group-BkymJq3E.js → item-option-radio-button-group-3s_b1NvR.js} +1 -1
  164. package/standalone/chunks/item-option-slider-DtY65Gxk.js +18 -0
  165. package/standalone/chunks/item-option-switch-4sJaI0mx.js +12 -0
  166. package/standalone/chunks/{item-option-text-field-D7bkuhsv.js → item-option-text-field-Bt6Lj6kh.js} +1 -1
  167. package/standalone/chunks/{item-slot-picker-panel-D4BMxGs9.js → item-slot-picker-panel-BOSVFBIy.js} +43 -43
  168. package/standalone/chunks/load-data-fields-for-datasets-CDlut-6S.js +25 -0
  169. package/standalone/chunks/localized-decorator-DosMCCQo.js +2 -0
  170. package/standalone/chunks/{version-BW4Ixl63.js → localized-mixin-BWJj88bd.js} +1 -1
  171. package/standalone/chunks/nl-CQz2jrVx.js +2 -0
  172. package/standalone/chunks/option-interaction-controller-BuwRr21c.js +2 -0
  173. package/standalone/chunks/{route-map-options.config-D7FfzIiU.js → route-map-options.config-CGBkHnhM.js} +1 -1
  174. package/standalone/chunks/{spike-map-options.config-CZiFzDm9.js → spike-map-options.config-CSenlJ_F.js} +1 -1
  175. package/standalone/interactive-viz-item.js +62 -55
  176. package/standalone/item-grid.js +10 -10
  177. package/standalone/manifest.json +44 -43
  178. package/utils/option-interaction/index.d.ts +2 -0
  179. package/utils/option-interaction/is-same-option-value.d.ts +10 -0
  180. package/utils/option-interaction/option-interaction-controller.d.ts +54 -0
  181. package/utils/option-interaction/tests/option-interaction-controller.test.d.ts +1 -0
  182. package/utils/store/base-store.d.ts +9 -0
  183. package/utils/store/tests/store-base-history.test.d.ts +1 -0
  184. package/components/chart-helpers-ufZ6VbXs.cjs +0 -20
  185. package/components/interactive-viz-item-D537mo3l.cjs +0 -261
  186. package/components/item-option-CqGDFdPj.cjs +0 -269
  187. package/components/item-option-color-picker-BpPoOO2b.cjs +0 -34
  188. package/components/item-option-color-picker-cojuCvu5.js +0 -84
  189. package/components/item-option-color-range-CMBEx1fi.cjs +0 -98
  190. package/components/item-option-color-range-Dt7Bv06p.js +0 -217
  191. package/components/item-option-guidelines-Beh0DlG0.cjs +0 -135
  192. package/components/item-option-slider-Bo5vs6nr.js +0 -89
  193. package/components/item-option-slider-CyWKWr5D.cjs +0 -33
  194. package/standalone/chunks/color-7IgCGZKz.js +0 -2
  195. package/standalone/chunks/de-mdZT2W1G.js +0 -2
  196. package/standalone/chunks/display-settings-binning-Byffw2Kl.js +0 -38
  197. package/standalone/chunks/display-settings-datetime-CD52d6Sv.js +0 -199
  198. package/standalone/chunks/display-settings-grand-totals-Cky99LX9.js +0 -26
  199. package/standalone/chunks/display-settings-numeric-C9ea7Tgc.js +0 -172
  200. package/standalone/chunks/display-settings-period-over-period-BLSGumkD.js +0 -209
  201. package/standalone/chunks/embed-BfHBKhIe.js +0 -231
  202. package/standalone/chunks/en-CSboh17P.js +0 -2
  203. package/standalone/chunks/en-GB-HoXKQBOY.js +0 -2
  204. package/standalone/chunks/en-US-CSboh17P.js +0 -2
  205. package/standalone/chunks/es-Di5D8JFd.js +0 -2
  206. package/standalone/chunks/fr-DZku7iB9.js +0 -2
  207. package/standalone/chunks/item-option-action-button-group-BEAwPHVw.js +0 -35
  208. package/standalone/chunks/item-option-base-CRUxNhJQ.js +0 -38
  209. package/standalone/chunks/item-option-color-palette-picker-CBz61iZb.js +0 -22
  210. package/standalone/chunks/item-option-color-picker-Cr7ujQNO.js +0 -16
  211. package/standalone/chunks/item-option-color-range-CyJd1LZ_.js +0 -80
  212. package/standalone/chunks/item-option-guidelines-6NjpzS6b.js +0 -117
  213. package/standalone/chunks/item-option-panel-VxvWU56c.js +0 -298
  214. package/standalone/chunks/item-option-position-picker-Bkc4JvJX.js +0 -14
  215. package/standalone/chunks/item-option-positions-number-field-Dr_315TE.js +0 -31
  216. package/standalone/chunks/item-option-slider-l9wt7_0c.js +0 -15
  217. package/standalone/chunks/item-option-switch-DeihDHhM.js +0 -12
  218. package/standalone/chunks/load-data-fields-for-datasets-ClctSj6y.js +0 -25
  219. package/standalone/chunks/localized-decorator-DJVBmJVH.js +0 -2
  220. package/standalone/chunks/nl-CViTevL3.js +0 -2
@@ -0,0 +1,209 @@
1
+
2
+ import{n as e,r as t,t as n}from"./localized-mixin-BWJj88bd.js";import{t as r}from"./localized-decorator-DosMCCQo.js";import{d as i,f as a,p as o}from"./chart-helpers-CR-EUEPf.js";import{t as s}from"./localize-DXRmGRe-.js";import{p as c,v as l}from"./item-slot-picker-panel-BOSVFBIy.js";import{html as u,property as d,query as f,state as p,unsafeCSS as m}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/checkbox.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/menu.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-group.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/field-label.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/number-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/picker.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/accordion.js";var h={none:()=>t(`None`),past:()=>t(`Past value`,{desc:`Period option`}),absoluteChange:()=>t(`Absolute change`,{desc:`Period option`}),percentageChange:()=>t(`% change`,{desc:`Period option`})},g=[{key:`periods`,i18n:()=>t(`Periods`,{desc:`Period option`})},{key:`years`,i18n:()=>t(`Years`,{desc:`Period option`})},{key:`quarters`,i18n:()=>t(`Quarters`,{desc:`Period option`})},{key:`months`,i18n:()=>t(`Months`,{desc:`Period option`})},{key:`weeks`,i18n:()=>t(`Weeks`,{desc:`Period option`})},{key:`days`,i18n:()=>t(`Days`,{desc:`Period option`})},{key:`hours`,i18n:()=>t(`Hours`,{desc:`Period option`})},{key:`minutes`,i18n:()=>t(`Minutes`,{desc:`Period option`})},{key:`seconds`,i18n:()=>t(`Seconds`,{desc:`Period option`})}],_=/* @__PURE__ */ function(e){return e.Relative=`relative`,e.UserDefined=`user-defined`,e}({}),v=[{key:`relative`,i18n:()=>t(`Relative`,{desc:`Range type option`})},{key:`user-defined`,i18n:()=>t(`User-defined`,{desc:`Range type option`})}],y=`:host{font-family:var(--luzmo-display-settings-period-over-period-font-family,var(--luzmo-font-family));font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size));color:var(--luzmo-display-settings-period-over-period-color,var(--luzmo-font-color))}:host .settings-container{flex-direction:column;gap:0;display:flex}:host .settings-container:first-of-type{margin-right:var(--luzmo-spacing-4)}:host .settings-row{justify-content:flex-start;align-items:center;gap:var(--luzmo-display-settings-period-over-period-gap,var(--display-settings-period-over-period-gap));display:flex}:host .wrap{flex-wrap:wrap}:host .setting.period-number-setting{align-items:center;display:flex}:host .dynamic-settings-container{max-width:var(--luzmo-display-setting-period-over-period-dynamic-max-width,var(--display-setting-period-over-period-dynamic-max-width))}:host luzmo-accordion{--luzmo-accordion-item-content-area-top-to-content:0;--luzmo-accordion-item-content-padding-left:var(--luzmo-spacing-1);--luzmo-accordion-item-header-bottom-margin:0;--luzmo-accordion-item-content-area-bottom-to-content:var(--luzmo-spacing-2);--accordion-item-header-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size));--accordion-item-content-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}:host .label-container{align-items:center;gap:var(--luzmo-spacing-2);display:flex}:host .academy-link{color:var(--luzmo-link-color);font-size:var(--luzmo-font-size-s);margin-left:var(--luzmo-spacing-2);text-decoration:none}:host .academy-link:hover{color:var(--luzmo-link-color-hover)}:host(:focus){--luzmo-menu-item-label-icon-color-focus:var(--luzmo-menu-item-label-icon-color-focus,var(--luzmo-font-color))}luzmo-menu-item{--luzmo-menu-item-tooltip-font-size:var(--luzmo-display-settings-tooltip-font-size)}luzmo-checkbox{--checkbox-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}luzmo-picker{--picker-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}luzmo-number-field{--text-field-placeholder-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size));--stepper-button-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}:host{--display-settings-period-over-period-gap:var(--luzmo-spacing-3);--display-settings-period-over-period-font-size:var(--luzmo-font-size);--display-setting-period-over-period-dynamic-max-width:22rem}:host([size=xs]){--display-settings-period-over-period-gap:var(--luzmo-spacing-2);--display-settings-period-over-period-font-size:var(--luzmo-font-size-xs);--display-setting-period-over-period-dynamic-max-width:17rem}:host([size=s]){--display-settings-period-over-period-gap:var(--luzmo-spacing-3);--display-settings-period-over-period-font-size:var(--luzmo-font-size-s);--display-setting-period-over-period-dynamic-max-width:19rem}:host([size=l]){--display-settings-period-over-period-gap:var(--luzmo-spacing-4);--display-settings-period-over-period-font-size:var(--luzmo-font-size-l);--display-setting-period-over-period-dynamic-max-width:26rem}:host([size=xl]){--display-settings-period-over-period-gap:var(--luzmo-spacing-5);--display-settings-period-over-period-font-size:var(--luzmo-font-size-xl);--display-setting-period-over-period-dynamic-max-width:30rem}`,b=class extends n(a(o,{validSizes:Object.values(i)})){constructor(...e){super(...e),this.slotContent={},this.allowPeriodsWithoutDatetimeColumn=!1,this.hidePastValue=!1,this.linkedDatasetDatetimeColumns=[],this.needsOffsetDatetimeColumn=()=>this.periodOverPeriodUiType===c.NoDatetimeColumnButComparisonFilters||this.periodOverPeriodUiType===c.NoDatetimeColumnAndNoComparisonFilters}static get styles(){return[m(y)]}willUpdate(e){if(super.willUpdate(e),e.has(`slotContent`)){this._periodComparison=this.slotContent?.periodOverPeriod?.type,this._numberPeriods=this.slotContent?.periodOverPeriod?.quantity;let e=this.slotContent?.periodOverPeriod?.level;this._periodLevel=typeof e==`number`&&e>=0&&e<g.length?g[e].key:this.slotContent?.periodOverPeriod?.level||`periods`,this._incompletePeriods=this.slotContent?.periodOverPeriod?.periodToDate,this._offsetDateColumn=this.slotContent?.periodOverPeriod?.offsetDateColumn,this._minLevel=this.slotContent?.periodOverPeriod?.minLevel??this.slotContent?.periodOverPeriod?.offsetDateColumn?.lowestLevel??this.slotContent?.lowestLevel??(this.slotContent?.subtype===`date`?5:9),this._rangeType=this.slotContent?.periodOverPeriod?.rangeType}this._periodComparison=this._periodComparison??`none`,this._numberPeriods=this._numberPeriods??1,this._periodLevel=this._periodLevel??`periods`,this._incompletePeriods=this._incompletePeriods??!1,this._minLevel=this._minLevel??9,this._rangeType=this._rangeType??_.Relative,this._offsetDateColumn=this._offsetDateColumn||void 0}setPeriodComparison(){let e={...this.slotContent};this.setInitialOffsetDateColumn(e),this._periodComparison=this._periodComparisonElement.value;let t=l(this.slotContent?.format),n=[`%`,`y`,`a%`,`ay`].includes(t.typeFormat),r=t.typeFormat.includes(`a`),i=r?`a`:``,a=t.comma===`,`||r?`,`:``,o=t.precision?Number.parseInt(t.precision.replace(`.`,``),10):0,s=[`z`,`az`,`y`,`ay`,`w`,`aw`].includes(t.typeFormat);this._periodComparison===`percentageChange`&&n&&(e.format=`${a}.${o}${i}${s?`z`:`f`}`),this.sendEvent(e)}setNumberOfPeriods(){this._numberPeriods=Number.parseInt(this._numberPeriodsElement.value,10);let e={...this.slotContent};this.sendEvent(e)}setPeriodLevel(){this._periodLevel=this._periodLevelElement.value;let e={...this.slotContent};this.sendEvent(e)}setOffsetDateColumn(){this._offsetDateColumn=this.linkedDatasetDatetimeColumns.find(e=>e.id===this._offsetDateColumnElement.value);let e={...this.slotContent};this.sendEvent(e)}setIncompletePeriods(){this._incompletePeriods=this._incompletePeriodsElement.checked;let e={...this.slotContent};this.sendEvent(e)}setRangeType(e){this._rangeType=e;let t={...this.slotContent};this.setInitialOffsetDateColumn(t),this.sendEvent(t)}sendEvent(e){let t={...e},n=g.findIndex(e=>e.key===this._periodLevel);t.periodOverPeriod={...e.periodOverPeriod,type:this._periodComparison,level:Math.max(n,0),quantity:this._numberPeriods,periodToDate:this._incompletePeriods,minLevel:this._minLevel,rangeType:this._rangeType,offsetDateColumn:this._offsetDateColumn},this._periodComparison===`none`&&delete t.periodOverPeriod,this.dispatchEvent(new CustomEvent(`luzmo-slot-content-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{slotContent:t}}))}incompletePeriodsSetting(){return u`
3
+ <div class="settings-row">
4
+ <div class="setting">
5
+ <luzmo-checkbox
6
+ id="incomplete-periods"
7
+ size=${this.size}
8
+ emphasized
9
+ ?checked=${this._incompletePeriods??!1}
10
+ @change=${this.setIncompletePeriods}
11
+ >
12
+ ${t(`Use period-to-date for incomplete periods`,{desc:`Checkbox label for incomplete periods`})}
13
+ </luzmo-checkbox>
14
+ </div>
15
+ </div>
16
+ `}relativeOffsetSetting(){let e=this.needsOffsetDatetimeColumn()&&!this.allowPeriodsWithoutDatetimeColumn,n=g.slice(+!!e,(this._minLevel??0)+1).map(e=>u`<luzmo-menu-item
17
+ value=${e.key}
18
+ tooltip=${e.key===`periods`?t(`Matches the date range visible in the chart or table`,{desc:`Tooltip for periods`}):``}
19
+ >
20
+ ${e.i18n()}
21
+ </luzmo-menu-item>`);return u`
22
+ <div class="settings-container" role="group" aria-label=${t(`Relative offset`,{desc:`Label for relative offset`})}>
23
+ <luzmo-field-label .size=${this.size} for="number-periods">
24
+ ${t(`Relative offset`,{desc:`Label for relative offset`})}
25
+ </luzmo-field-label>
26
+
27
+ <div class="settings-row">
28
+ <div class="setting period-number-setting">
29
+ <luzmo-number-field
30
+ id="number-periods"
31
+ label=${t(`Number of periods`,{desc:`Label for number of periods field`})}
32
+ min="1"
33
+ size=${this.size}
34
+ max="9999999999"
35
+ value=${this._numberPeriods??1}
36
+ @change=${this.setNumberOfPeriods}
37
+ ></luzmo-number-field>
38
+ </div>
39
+
40
+ <div class="setting">
41
+ <luzmo-picker
42
+ id="period-level"
43
+ size=${this.size}
44
+ variant="highlight"
45
+ value=${this._periodLevel??`periods`}
46
+ @change=${this.setPeriodLevel}
47
+ >
48
+ ${n}
49
+ </luzmo-picker>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ `}rangeTypeSetting(){let e=v.map(e=>u`<luzmo-action-button
54
+ data-range-type=${e.key}
55
+ value=${e.key}
56
+ @click=${this._handleRangeTypeClick}
57
+ >
58
+ ${e.i18n()}
59
+ </luzmo-action-button>`);return u`
60
+ <div class="settings-container">
61
+ <luzmo-field-label .size=${this.size} for="range-type">
62
+ ${t(`Range type`,{desc:`Label for range type`})}
63
+ </luzmo-field-label>
64
+
65
+ <luzmo-action-group
66
+ size=${this.size}
67
+ compact
68
+ ?emphasized=${!0}
69
+ selected=${JSON.stringify([this._rangeType])}
70
+ selects="single"
71
+ >
72
+ ${e}
73
+ </luzmo-action-group>
74
+ </div>
75
+ `}_handleRangeTypeClick(e){let t=e.currentTarget?.dataset?.rangeType;t&&this.setRangeType(t)}offsetDateColumnSetting(){let e=this.linkedDatasetDatetimeColumns.map(e=>u`<luzmo-menu-item value=${e.id}>
76
+ ${s(e.name,this.language)}
77
+ </luzmo-menu-item>`);return u`
78
+ <div class="settings-container">
79
+ <luzmo-field-label .size=${this.size} for="offset-date-column">
80
+ ${t(`Offset date column`,{desc:`Label for offset date column`})}
81
+ </luzmo-field-label>
82
+
83
+ <div class="setting">
84
+ <luzmo-picker
85
+ id="offset-date-column"
86
+ size=${this.size}
87
+ variant="highlight"
88
+ value=${this._offsetDateColumn?.id}
89
+ @change=${this.setOffsetDateColumn}
90
+ >
91
+ ${e}
92
+ </luzmo-picker>
93
+ </div>
94
+ </div>
95
+ `}comparisonTypeItems(){return Object.keys(h).filter(e=>!(this.hidePastValue&&e===`past`)).map(e=>u`<luzmo-menu-item value=${e}>
96
+ ${h[e]()}
97
+ </luzmo-menu-item>`)}typeOfComparisonSetting(){let e=this.comparisonTypeItems();return u`<div class="settings-container">
98
+ <luzmo-field-label .size=${this.size} for="period-comparison">
99
+ ${t(`Show`)}
100
+ </luzmo-field-label>
101
+ <luzmo-picker
102
+ id="period-comparison"
103
+ size=${this.size}
104
+ variant="highlight"
105
+ value=${this._periodComparison??`none`}
106
+ @change=${this.setPeriodComparison}
107
+ >
108
+ ${e}
109
+ </luzmo-picker>
110
+ </div>`}renderPeriodSettings(){return{[c.HasDatetimeColumnAndNoComparisonFilters]:()=>u`
111
+ ${this.relativeOffsetSetting()} ${this.incompletePeriodsSetting()}
112
+ `,[c.NoDatetimeColumnAndNoComparisonFilters]:()=>u`
113
+ ${this.relativeOffsetSetting()} ${this.offsetDateColumnSetting()}
114
+ ${this.incompletePeriodsSetting()}
115
+ `,[c.HasDatetimeColumnAndComparisonFilters]:()=>this._rangeType===_.Relative?u`${this.rangeTypeSetting()} ${this.relativeOffsetSetting()}
116
+ ${this.incompletePeriodsSetting()} `:u` ${this.rangeTypeSetting()} `,[c.NoDatetimeColumnButComparisonFilters]:()=>this._rangeType===_.Relative?u`
117
+ ${this.rangeTypeSetting()} ${this.relativeOffsetSetting()}
118
+ ${this.offsetDateColumnSetting()} ${this.incompletePeriodsSetting()}
119
+ `:u` ${this.rangeTypeSetting()} `,[c.OldImplementation]:()=>``}[this.periodOverPeriodUiType]?.()??``}renderOldUiPeriodSettings(){let e=g.slice(0,(this._minLevel??0)+1).map(e=>u`<luzmo-menu-item
120
+ value=${e.key}
121
+ tooltip=${e.key===`periods`?t(`Matches the date range visible in the chart or table`,{desc:`Tooltip for periods`}):``}
122
+ >
123
+ ${e.i18n()}
124
+ </luzmo-menu-item>`);return u` <div class="settings-row">
125
+ <div class="setting period-number-setting">
126
+ ${[`percentageChange`,`absoluteChange`].includes(this._periodComparison??``)?u`<luzmo-field-label .size=${this.size} for="number-periods" side-aligned="start">
127
+ ${t(`From`,{desc:`Label for number of periods`})}
128
+ </luzmo-field-label>`:``}
129
+ <luzmo-number-field
130
+ id="number-periods"
131
+ label="Number of periods"
132
+ min="1"
133
+ size=${this.size}
134
+ max="9999999999"
135
+ value=${this._numberPeriods??1}
136
+ @change=${this.setNumberOfPeriods}
137
+ ></luzmo-number-field>
138
+ </div>
139
+ <div class="setting">
140
+ <luzmo-picker
141
+ id="period-level"
142
+ size=${this.size}
143
+ variant="highlight"
144
+ value=${this._periodLevel??`periods`}
145
+ @change=${this.setPeriodLevel}
146
+ >
147
+ ${e}
148
+ </luzmo-picker>
149
+ </div>
150
+ <div>${t(`ago`,{desc:`Label for period ago`})}</div>
151
+ </div>
152
+ <div class="settings-row">
153
+ <div class="setting">
154
+ <luzmo-checkbox
155
+ id="incomplete-periods"
156
+ size=${this.size}
157
+ emphasized
158
+ ?checked=${this._incompletePeriods??!1}
159
+ @change=${this.setIncompletePeriods}
160
+ >
161
+ ${t(`Use period-to-date for incomplete periods`,{desc:`Checkbox label for incomplete periods`})}
162
+ </luzmo-checkbox>
163
+ </div>
164
+ </div>`}renderOldUi(){let e=this.comparisonTypeItems();return u`<div class="settings-container">
165
+ <div class="settings-row">
166
+ <div class="setting">
167
+ <div class="label-container">
168
+ <luzmo-field-label .size=${this.size} for="period-comparison">
169
+ ${t(`Period comparison`,{desc:`Label for period comparison`})}
170
+ </luzmo-field-label>
171
+
172
+ <a
173
+ target="_blank"
174
+ rel="noopener noreferrer"
175
+ href="https://academy.luzmo.com/article/yh728g3n"
176
+ class="academy-link"
177
+ aria-label=${t(`Learn more (opens in new tab)`,{desc:`Aria label for academy link that opens in new tab`})}
178
+ >
179
+ ${t(`Learn more`,{desc:`Label for academy link`})}
180
+ </a>
181
+ </div>
182
+
183
+ <luzmo-picker
184
+ id="period-comparison"
185
+ size=${this.size}
186
+ variant="highlight"
187
+ value=${this._periodComparison??`none`}
188
+ @change=${this.setPeriodComparison}
189
+ >
190
+ ${e}
191
+ </luzmo-picker>
192
+ </div>
193
+ </div>
194
+ ${this._periodComparison===`none`?``:this.renderOldUiPeriodSettings()}
195
+ </div>`}render(){return this.periodOverPeriodUiType===c.OldImplementation?this.renderOldUi():u`
196
+ <luzmo-accordion variant="highlight-child" class="setting">
197
+ <luzmo-accordion-item
198
+ ?open=${this._periodComparison!==`none`}
199
+ label=${t(`Period comparison`,{desc:`Label for period comparison`})}
200
+ >
201
+ <div class="settings-container dynamic-settings-container">
202
+ <div class="settings-row wrap">
203
+ ${this.typeOfComparisonSetting()}
204
+ ${this._periodComparison===`none`?``:this.renderPeriodSettings()}
205
+ </div>
206
+ </div>
207
+ </luzmo-accordion-item>
208
+ </luzmo-accordion>
209
+ `}setInitialOffsetDateColumn(e){this._offsetDateColumn=this.needsOffsetDatetimeColumn()?this.linkedDatasetDatetimeColumns[0]:void 0,e.periodOverPeriod.offsetDateColumn=this._offsetDateColumn}};e([d({type:Object,attribute:`slot-content`})],b.prototype,`slotContent`,void 0),e([d({type:String,attribute:`period-over-period-type`})],b.prototype,`periodOverPeriodUiType`,void 0),e([d({type:Boolean,attribute:`allow-periods-without-datetime-column`,reflect:!0})],b.prototype,`allowPeriodsWithoutDatetimeColumn`,void 0),e([d({type:Boolean,attribute:`hide-past-value`,reflect:!0})],b.prototype,`hidePastValue`,void 0),e([d({type:Array,attribute:`linked-dataset-datetime-columns`})],b.prototype,`linkedDatasetDatetimeColumns`,void 0),e([f(`#period-comparison`)],b.prototype,`_periodComparisonElement`,void 0),e([f(`#number-periods`)],b.prototype,`_numberPeriodsElement`,void 0),e([f(`#period-level`)],b.prototype,`_periodLevelElement`,void 0),e([f(`#offset-date-column`)],b.prototype,`_offsetDateColumnElement`,void 0),e([f(`#incomplete-periods`)],b.prototype,`_incompletePeriodsElement`,void 0),e([p()],b.prototype,`_periodComparison`,void 0),e([p()],b.prototype,`_rangeType`,void 0),b=e([r()],b),customElements.get(`luzmo-display-settings-period-over-period`)||customElements.define(`luzmo-display-settings-period-over-period`,b);