@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
@@ -1,9 +1,9 @@
1
1
 
2
- import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./localized-decorator-DJVBmJVH.js";import{t as a}from"./luzmoTrashOutline-DXZpJx7f.js";import{a as o,c as s,n as c,r as l}from"./load-data-fields-for-datasets-ClctSj6y.js";import{t as u}from"./luzmoPlus-Dyrrz0v8.js";import{t as d}from"./luzmo-icon-markup-ByaNI6dg.js";import{n as f,u as ee}from"./data-broker-DXDyIrj_.js";import{t as p}from"./localize-DXRmGRe-.js";import{t as te}from"./v4-BxSu4gkw.js";import{html as m,ifDefined as ne,nothing as h,property as g,query as re,repeat as ie,state as _,unsafeCSS as v}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/button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/divider.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.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/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.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{ElementSizes as y,LuzmoElement as b,SizedMixin as x}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/utils.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/badge.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/select.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/options.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tags.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/text-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/date-time-picker.js";var S=[``,``,``],ae=`⁣`;function C(e,t){let n=RegExp(`(${S.join(`|`)})`,`u`),r=[];for(let i of e.replaceAll(ae,``).split(n)){let e=S.indexOf(i);e===-1?i&&r.push(i):r.push(t[e])}return r}var w=()=>[{id:`? = ?`,key:`? = ?`,expression:`? = ?`,name:t(`equals`,{desc:`Filter expression for equals comparison`}),description:t(`equals`,{desc:`Filter expression for equals comparison`}),tiny:t(`eq`,{desc:`Short form of equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? != ?`,key:`? != ?`,expression:`? != ?`,name:t(`not equals`,{desc:`Filter expression for not equals comparison`}),description:t(`not equals`,{desc:`Filter expression for not equals comparison`}),tiny:t(`not eq`,{desc:`Short form of not equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? in ?`,key:`? in ?`,expression:`? in ?`,name:t(`is in`,{desc:`Filter expression for in comparison`}),description:t(`is in`,{desc:`Filter expression for in comparison`}),tiny:t(`is in`,{desc:`Filter expression for in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? not in ?`,key:`? not in ?`,expression:`? not in ?`,name:t(`is not in`,{desc:`Filter expression for not in comparison`}),description:t(`is not in`,{desc:`Filter expression for not in comparison`}),tiny:t(`is not in`,{desc:`Filter expression for not in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? like ?`,key:`? like ?`,expression:`? like ?`,name:t(`contains`,{desc:`Filter expression for contains comparison`}),description:t(`contains`,{desc:`Filter expression for contains comparison`}),tiny:t(`cont`,{desc:`Short form of contains comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not like ?`,key:`? not like ?`,expression:`? not like ?`,name:t(`does not contain`,{desc:`Filter expression for does not contain comparison`}),description:t(`does not contain`,{desc:`Filter expression for does not contain comparison`}),tiny:t(`not cont`,{desc:`Short form of does not contain comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? starts with ?`,key:`? starts with ?`,expression:`? starts with ?`,name:t(`starts with`,{desc:`Filter expression for starts with comparison`}),description:t(`starts with`,{desc:`Filter expression for starts with comparison`}),tiny:t(`starts with`,{desc:`Filter expression for starts with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not starts with ?`,key:`? not starts with ?`,expression:`? not starts with ?`,name:t(`does not start with`,{desc:`Filter expression for does not start with comparison`}),description:t(`does not start with`,{desc:`Filter expression for does not start with comparison`}),tiny:t(`not starts with`,{desc:`Short form of does not start with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? ends with ?`,key:`? ends with ?`,expression:`? ends with ?`,name:t(`ends with`,{desc:`Filter expression for ends with comparison`}),description:t(`ends with`,{desc:`Filter expression for ends with comparison`}),tiny:t(`ends with`,{desc:`Filter expression for ends with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not ends with ?`,key:`? not ends with ?`,expression:`? not ends with ?`,name:t(`does not end with`,{desc:`Filter expression for does not end with comparison`}),description:t(`does not end with`,{desc:`Filter expression for does not end with comparison`}),tiny:t(`not ends with`,{desc:`Short form of does not end with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? < ?`,key:`? < ?`,expression:`? < ?`,name:t(`less than`,{desc:`Filter expression for less than comparison`}),description:t(`less than`,{desc:`Filter expression for less than comparison`}),tiny:`<`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? <= ?`,key:`? <= ?`,expression:`? <= ?`,name:t(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),description:t(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),tiny:`<=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? > ?`,key:`? > ?`,expression:`? > ?`,name:t(`greater than`,{desc:`Filter expression for greater than comparison`}),description:t(`greater than`,{desc:`Filter expression for greater than comparison`}),tiny:`>`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? >= ?`,key:`? >= ?`,expression:`? >= ?`,name:t(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),description:t(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),tiny:`>=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? between ?`,key:`? between ?`,expression:`? between ?`,name:t(`is between`,{desc:`Filter expression for between comparison`}),description:t(`is between`,{desc:`Filter expression for between comparison`}),tiny:t(`between`,{desc:`Short form of between comparison in filter expression`}),type:[],subtype:[`ip_address`]},{id:`last_now`,key:`last_now`,expression:`last_now`,name:t(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),description:t(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),tiny:t(`last`,{desc:`Short form of last (x) periods in filter expression`}),type:[`datetime`]},{id:`last_available`,key:`last_available`,expression:`last_available`,name:t(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),description:t(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),tiny:t(`last available`,{desc:`Short form of last (x) available periods in filter expression`}),type:[`datetime`]},{id:`last_completed`,key:`last_completed`,expression:`last_completed`,name:t(`last completed period`,{desc:`Filter expression for last completed period`}),description:t(`last completed (period)`,{desc:`Filter expression for last completed period`}),tiny:t(`last completed`,{desc:`Short form of last completed period in filter expression`}),type:[`datetime`]},{id:`next_now`,key:`next_now`,expression:`next_now`,name:t(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),description:t(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),tiny:t(`next`,{desc:`Short form of next (x) periods in filter expression`}),type:[`datetime`]},{id:`more_than_ago`,key:`more_than_ago`,expression:`more_than_ago`,name:t(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),description:t(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),tiny:t(`more than ago`,{desc:`Short form of more than (x) periods ago in filter expression`}),type:[`datetime`]},{id:`or_more_ago`,key:`or_more_ago`,expression:`or_more_ago`,name:t(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),description:t(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),tiny:t(`or more ago`,{desc:`Short form of (x) periods or more ago in filter expression`}),type:[`datetime`]},{id:`next_full`,key:`next_full`,expression:`next_full`,name:t(`next full (period)`,{desc:`Filter expression for next full period`}),description:t(`next full (period)`,{desc:`Filter expression for next full period`}),tiny:t(`next full`,{desc:`Short form of next full period in filter expression`}),type:[`datetime`]},{id:`WTD`,key:`to_date`,expression:`to_date`,unit:4,name:t(`week to date`,{desc:`Filter expression for week to date`}),description:t(`week to date`,{desc:`Filter expression for week to date`}),tiny:t(`WTD`,{desc:`Short form of week to date in filter expression`}),type:[`datetime`]},{id:`MTD`,key:`to_date`,expression:`to_date`,unit:3,name:t(`month to date`,{desc:`Filter expression for month to date`}),description:t(`month to date`,{desc:`Filter expression for month to date`}),tiny:t(`MTD`,{desc:`Short form of month to date in filter expression`}),type:[`datetime`]},{id:`QTD`,key:`to_date`,expression:`to_date`,unit:2,name:t(`quarter to date`,{desc:`Filter expression for quarter to date`}),description:t(`quarter to date`,{desc:`Filter expression for quarter to date`}),tiny:t(`QTD`,{desc:`Short form of quarter to date in filter expression`}),type:[`datetime`]},{id:`YTD`,key:`to_date`,expression:`to_date`,unit:1,name:t(`year to date`,{desc:`Filter expression for year to date`}),description:t(`year to date`,{desc:`Filter expression for year to date`}),tiny:t(`YTD`,{desc:`Short form of year to date in filter expression`}),type:[`datetime`]},{id:`? is null`,key:`? is null`,expression:`? is null`,name:t(`is missing`,{desc:`Filter expression for is missing`}),description:t(`is missing`,{desc:`Filter expression for is missing`}),tiny:t(`missing`,{desc:`Short form of is missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]},{id:`? is not null`,key:`? is not null`,expression:`? is not null`,name:t(`is not missing`,{desc:`Filter expression for is not missing`}),description:t(`is not missing`,{desc:`Filter expression for is not missing`}),tiny:t(`not missing`,{desc:`Short form of is not missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]}],oe=(e,t,n)=>{let r=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`]);return!e&&!t?w():w().filter(i=>(e&&i.type.includes(e)||t&&i.subtype?.includes(t))&&!(n&&r.has(i.key)))},se=/* @__PURE__ */ new Set([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`]),ce=/* @__PURE__ */ new Set([`last_completed`,`next_full`]),le=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`]),ue=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),de=3,fe=32;function T(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function E(e){return T(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function pe(e){return e.length<=fe?{display:e,truncated:!1}:{display:`${e.slice(0,31)}…`,truncated:!0}}function D(e,t,n){try{return new Intl.ListFormat(e||void 0,{style:`long`,type:n}).format(t)}catch{return t.join(`, `)}}function O(e,t,n){let r=De(e,t,n),{display:i,truncated:a}=pe(r);return{label:i,full:r,truncated:a}}function me(n){return n===1?t(`1 item`,{desc:`One selected hierarchy value whose name is still loading`}):t(e`${n} items`,{desc:`Selected hierarchy values whose names are still loading`})}function he(){return t(`Some item names could not be retrieved`,{desc:`Tooltip when a hierarchy filter value is still an id after name lookup`})}function ge(e,t){return!!(t?.type===`hierarchy`&&t.datasetId&&t.fieldId&&!(T(e)&&e.name!==void 0)&&A(e))}function _e(e,t,n){let r=n?.datasetId,i=n?.fieldId;return!r||!i?[]:e.flatMap(e=>{if(!ge(e,n))return[];let a=A(e);return a?t.hierarchyLabels?.get(Ee(r,i,a))?[]:[a]:[]})}function ve(e,t,n){return n.hierarchyLabelsLoading&&t.length>0?{valueText:me(t.length),valuePending:!0}:n.hierarchyLabels&&!n.hierarchyLabelsLoading&&t.length>0&&!e.valueTooltip?{...e,valueTooltip:he()}:e}function ye(n,r,i){let a=n.map(e=>O(e,r,i)),o=a.map(e=>e.full),s=D(r.contentLanguage,o,`conjunction`);if(n.length===1){let[e]=a;return{valueText:e.label,valueTooltip:e.truncated?e.full:void 0}}let c=Math.min(de,a.length),l=a.length-c,u=a.slice(0,c).map(e=>e.label),d=a.some(e=>e.truncated),f;if(l>0){let n=D(r.contentLanguage,u,`unit`);f=t(e`${n}, and ${l} more`,{desc:`Filter values after the first few shown in a read-only sentence, e.g. "Dresses, Shoes, Shorts, and 1 more"`})}else f=D(r.contentLanguage,a.map(e=>e.label),`conjunction`);return{valueText:f,valueTooltip:l>0||d?s:void 0}}function k(e,t,n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){let t=String(e);return t.length>0?t:n}if(e&&typeof e==`object`){let n=p(e,t);if(n)return n}return n}function be(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function xe(e,t){let n=be(e,[`datasetId`,`dataset_id`]),r=be(e,[`columnId`,`column_id`]),i=be(e,[`formulaId`,`formula_id`]),a=typeof e.formula==`string`?e.formula:void 0,o=t.datasets.find(e=>e.id===n),s=o?k(o.name,t.contentLanguage,``):``;if(i){let e=o?.formulas?.find(e=>e.id===i),r=k(e?.name,t.contentLanguage,i);return{label:r,tooltip:s?`${s} · ${r}`:r,type:e?.type,subtype:e?.subtype,formula:!0,datasetId:n,fieldId:i}}if(a)return{label:a,tooltip:s?`${s} · ${a}`:a,formula:!0,datasetId:n};let c=!r&&typeof e.expression==`string`?e.expression:void 0;if(c)return{label:c,tooltip:s?`${s} · ${c}`:c,formula:!0,datasetId:n};let l=r?o?.columns?.find(e=>e.id===r):void 0,u=r??(typeof e.columnExpression==`string`?e.columnExpression:``),d=k(l?.name,t.contentLanguage,u);return{label:d,tooltip:s?`${s} · ${d}`:d,type:l?.type,subtype:l?.subtype,formula:!1,datasetId:n,fieldId:r}}function Se(e){let t=o.find(t=>t.level===e);return t?t.i18n():``}function Ce(n,r){switch(r){case 1:return n===1?t(e`${n} Year`,{desc:`Singular relative filter quantity in years`}):t(e`${n} Years`,{desc:`Plural relative filter quantity in years`});case 2:return n===1?t(e`${n} Quarter`,{desc:`Singular relative filter quantity in quarters`}):t(e`${n} Quarters`,{desc:`Plural relative filter quantity in quarters`});case 3:return n===1?t(e`${n} Month`,{desc:`Singular relative filter quantity in months`}):t(e`${n} Months`,{desc:`Plural relative filter quantity in months`});case 4:return n===1?t(e`${n} Week`,{desc:`Singular relative filter quantity in weeks`}):t(e`${n} Weeks`,{desc:`Plural relative filter quantity in weeks`});case 5:return n===1?t(e`${n} Day`,{desc:`Singular relative filter quantity in days`}):t(e`${n} Days`,{desc:`Plural relative filter quantity in days`});case 6:return n===1?t(e`${n} Hour`,{desc:`Singular relative filter quantity in hours`}):t(e`${n} Hours`,{desc:`Plural relative filter quantity in hours`});case 7:return n===1?t(e`${n} Minute`,{desc:`Singular relative filter quantity in minutes`}):t(e`${n} Minutes`,{desc:`Plural relative filter quantity in minutes`});case 8:return n===1?t(e`${n} Second`,{desc:`Singular relative filter quantity in seconds`}):t(e`${n} Seconds`,{desc:`Plural relative filter quantity in seconds`});case 9:return n===1?t(e`${n} Millisecond`,{desc:`Singular relative filter quantity in milliseconds`}):t(e`${n} Milliseconds`,{desc:`Plural relative filter quantity in milliseconds`});default:return t(e`${n}`,{desc:`Relative filter quantity`})}}function we(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;try{return new Intl.DateTimeFormat(t.contentLanguage||void 0,{dateStyle:`medium`,timeStyle:`short`,...t.timeZone?{timeZone:t.timeZone}:{}}).format(n)}catch{return e}}function Te(e){return/^\d{4}-\d{2}-\d{2}(?:T|$)/.test(e)}function Ee(e,t,n){return`${e}:${t}:${n}`}function A(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(T(e)&&(typeof e.id==`string`||typeof e.id==`number`))return String(e.id)}function De(e,t,n){if(n?.type===`hierarchy`&&n.datasetId&&n.fieldId&&!(T(e)&&e.name!==void 0)){let r=A(e),i=r===void 0?void 0:t.hierarchyLabels?.get(Ee(n.datasetId,n.fieldId,r));if(i)return i}if(typeof e==`number`&&Number.isFinite(e))return new Intl.NumberFormat(t.contentLanguage||void 0).format(e);if(typeof e==`string`)return Te(e)?we(e,t):e;if(typeof e==`boolean`)return String(e);if(T(e)){if(typeof e.parameter==`string`)return e.parameter;if(e.name!==void 0){let n=k(e.name,t.contentLanguage,``);if(n)return n}if(typeof e.id==`string`||typeof e.id==`number`)return String(e.id)}return``}function Oe(e,t){let n=w().filter(t=>t.expression===e),r=T(t)&&typeof t.unit==`number`?t.unit:void 0;return(e===`to_date`&&r!==void 0?n.find(e=>e.unit===r)??n[0]:n[0])?.tiny??e}function ke(n,r,i,a){if(le.has(n)||r==null)return{valueText:``};if(T(r)&&typeof r.parameter==`string`){let e=r.parameter;if(!E(r))return{valueText:e}}if(ue.has(n)&&E(r))return{valueText:``,valueField:xe(r,i)};if(n===`? between ?`&&Array.isArray(r)&&r.length===2){let n=O(r[0],i,a),o=O(r[1],i,a);return ve({valueText:t(e`${n.label} and ${o.label}`,{desc:`Inclusive range shown between two filter values`}),valueTooltip:n.truncated||o.truncated?t(e`${n.full} and ${o.full}`,{id:`filter-range-tooltip`,desc:`Full inclusive range shown in a tooltip`}):void 0},_e(r,i,a),i)}if(se.has(n)&&T(r))return{valueText:Ce(typeof r.quantity==`number`?r.quantity:1,r.unit)};if(ce.has(n)&&T(r))return{valueText:Se(r.unit)};if(Array.isArray(r))return r.length===0?{valueText:``}:ve(ye(r,i,a),_e(r,i,a),i);let o=O(r,i,a);return ve({valueText:o.label,valueTooltip:o.truncated?o.full:void 0},_e([r],i,a),i)}function Ae(e,t){let n=e.parameters?.[0];if(!T(n)||!E(n))return null;let r=xe(n,t),i=typeof e.expression==`string`?e.expression:``,a=e.parameters?.[1];return{field:r,expression:i?Oe(i,a):``,...ke(i,a,t,r)}}function je(e){return`condition`in e&&`filters`in e}function Me(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(Me);if(T(e)){if(typeof e.parameter==`string`||e.name!==void 0||E(e))return[];let t=A(e);return t?[t]:[]}let t=A(e);return t?[t]:[]}function Ne(e,t){let n=/* @__PURE__ */ new Map,r=e=>{if(je(e)){e.filters.forEach(r);return}let i=e.parameters?.[0];if(!T(i)||!E(i))return;let a=xe(i,t);if(a.type!==`hierarchy`||!a.datasetId||!a.fieldId)return;let o=[...new Set(Me(e.parameters?.[1]))];if(o.length===0)return;let s=`${a.datasetId}:${a.fieldId}`,c=n.get(s);c?c.ids=[.../* @__PURE__ */ new Set([...c.ids,...o])]:n.set(s,{datasetId:a.datasetId,...a.formula?{formulaId:a.fieldId}:{columnId:a.fieldId},ids:o})};return r(e),[...n.values()]}async function Pe(e,t){let n=/* @__PURE__ */ new Map;return await Promise.all(e.map(async e=>{let r={dataset_id:e.datasetId,column_id:e.columnId,formula_id:e.formulaId},i=await f.fetchData({dimensions:[r],where:[{expression:`? in ?`,parameters:[r,e.ids]}],limit:{by:e.ids.length,offset:0}}),a=e.columnId??e.formulaId??``;for(let r of i.data??[]){let i=r[0],o=i&&typeof i==`object`&&`id`in i?String(i.id):String(i),s=i&&typeof i==`object`&&`name`in i?p(i.name,t):``;s&&n.set(Ee(e.datasetId,a,o),s)}})),n}var Fe=20,j=class extends Error{constructor(e){super(e),this.name=`FilterUnrepresentableError`}},Ie=/* @__PURE__ */ new Set([`and`,`or`]),Le=[`datasetId`,`dataset_id`,`columnId`,`column_id`,`formulaId`,`formula_id`,`formula`,`columnExpression`,`value`,`ignoredItemIds`];function M(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function N(e){return!M(e)||e.condition!==void 0&&(typeof e.condition!=`string`||!Ie.has(e.condition.toLowerCase()))?!1:`filters`in e||`subGroups`in e}function P(e){return M(e)&&`expression`in e&&!(`condition`in e)}function F(e){return Le.some(t=>t in e)}function Re(e,t=!1){let n=[e.columnId!==void 0||e.column_id!==void 0,e.formulaId!==void 0||e.formula_id!==void 0,e.formula!==void 0].filter(Boolean).length;return n===1?!0:n>1?!1:e.columnExpression!==void 0||t&&e.expression!==void 0}function ze(e){return!P(e)||typeof e.expression!=`string`||e.expression.length===0||`parameters`in e||typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?!1:Re(e)}function Be(e){return!P(e)||!Array.isArray(e.parameters)?!1:!F(e)}function Ve(e){if(!(`parameters`in e))return;let t=Le.find(t=>t in e);if(t!==void 0)throw new j(`Filter leaf mixes "parameters" with the clean inline key "${t}".`)}function He(e){throw typeof e.expression!=`string`||e.expression.length===0?new j(`Clean filter leaf is missing a non-empty "expression".`):typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?new j(`Clean filter leaf "${e.expression}" is missing a "datasetId".`):new j(`Clean filter leaf "${e.expression}" must name exactly one of "columnId", "formulaId", "formula", or "columnExpression".`)}function Ue(e){return e===`where`||e===`having`}function I(e){if(e>20)throw new j(`Filter nesting exceeds the maximum depth of 20.`)}function We(e){if(e==null)return`empty`;if(!Array.isArray(e))return`unknown`;if(e.length===0)return`empty`;let t=!1,n=!1,r=!1,i=(e,a)=>{if(a>20)r=!0;else if(N(e)){Ue(e.clause)&&(n=!0);let t=[...Array.isArray(e.filters)?e.filters:[],...Array.isArray(e.subGroups)?e.subGroups:[]];for(let e of t)i(e,a+1)}else P(e)?`parameters`in e&&F(e)?r=!0:ze(e)?n=!0:Be(e)?t=!0:r=!0:r=!0};for(let t of e)i(t,1);return r?`unknown`:n&&t?`mixed`:n?`clean`:t?`canonical`:`empty`}var Ge=/* @__PURE__ */ new Set([`? is null`,`? is not null`]),Ke=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),qe=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? between ?`]),Je={"array[numeric]":`numeric[]`,"array[hierarchy]":`hierarchy[]`,"array[datetime]":`datetime[]`},Ye=/* @__PURE__ */ new Set([`level`,`lowestLevel`,`unnest`,`discretization`,`aggregation`,`index`,`include_nonoccurring`,`simplification`]);function L(e,t){return e!==`lowestLevel`&&!(t===null&&Ye.has(e))}function R(e){return structuredClone(e)}function Xe(e){let t=e.datasetId??e.dataset_id;if(typeof t!=`string`||t.length===0)throw new j(`Filter reference is missing a "datasetId".`);return t}function Ze(e){return M(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function Qe(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>it(e))),t}function $e(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest),t}function et(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>M(e)?z(e):e)),t}function tt(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&(t.level=e.level),M(e.discretization)&&(t.discretization=et(e.discretization)),e.unnest!==void 0&&(t.unnest=e.unnest),t}function nt(e,t){e.level!==void 0&&(t.level=R(e.level)),M(e.discretization)&&(t.discretization=et(e.discretization)),M(e.aggregation)&&(t.aggregation=tt(e.aggregation)),e.unnest!==void 0&&(t.unnest=R(e.unnest))}function rt(e,t){let n=e.columnId??e.column_id;if(n!==void 0)return{kind:`columnId`,value:n};let r=e.formulaId??e.formula_id;if(r!==void 0)return{kind:`formulaId`,value:r};if(e.formula!==void 0)return{kind:`formula`,value:e.formula};let i=e.columnExpression??(t?e.expression:void 0);if(i!==void 0)return{kind:`expression`,value:i}}function z(e,t=!0){let n={datasetId:Xe(e)},r=rt(e,t);return r!==void 0&&(r.kind===`expression`?n.expression=r.value:n[r.kind]=r.value),nt(e,n),n}function it(e){if(!M(e))throw new j(`Cannot emit a clean filter reference.`);let t={datasetId:Xe(e)};e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),M(e.aggregation)&&(t.aggregation=$e(e.aggregation)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest);let n=rt(e,!0);if(n===void 0)throw new j(`Cannot emit a clean filter reference: no column, formula, or expression.`);return n.kind===`expression`?t.columnExpression=n.value:t[n.kind]=n.value,t}function at(e){if(!M(e)||typeof e.parameter!=`string`||typeof e.type!=`string`)return e;let t=Je[e.type];return t===void 0?e:{...e,type:t}}function ot(e,t){return M(t)&&typeof t.parameter==`string`?!0:Array.isArray(t)?e!==`? between ?`||t.length===2:!1}function st(e,t){let n=e.expression,r=[z(e,!1)];if(!Ge.has(n)&&e.value!==void 0){let t=Ke.has(n)&&Ze(e.value);r.push(t?z(e.value):R(e.value))}let i={};typeof e.id==`string`&&(i.id=e.id),`ignoredItemIds`in e&&(i.ignore=R(e.ignoredItemIds)),t!==void 0&&(i.type=t);let a={expression:n,parameters:r};return Object.keys(i).length>0&&(a.properties=i),a}function ct(e){let{expression:t}=e;if(typeof t!=`string`||t.length===0)return null;let n=Array.isArray(e.parameters)?e.parameters:[];if(!M(n[0]))throw new j(`Cannot emit a clean filter reference for "${t}".`);let r={...it(n[0]),expression:t};if(!Ge.has(t)){let e=n[1];if(e===void 0)throw new j(`Filter "${t}" is missing its value operand.`);if(r.value=Ze(e)&&Ke.has(t)?it(e):at(R(e)),qe.has(t)&&!ot(t,r.value))throw new j(`Cannot emit an invalid clean filter value for "${t}".`)}let{properties:i}=e;return i?.id!==void 0&&(r.id=i.id),i!==void 0&&`ignore`in i&&(r.ignoredItemIds=R(i.ignore)),r}function lt(e){return N(e)}function ut(e){return Array.isArray(e.filters)?e.filters:[]}function dt(e,t){return e.properties?.type===`having`||e.properties?.type===`where`?e.properties.type:t??`where`}function B(e,t,n=1,r=/* @__PURE__ */ new Set){I(n);let i=e.clause??t;for(let t of ut(e))lt(t)?B(t,i,n+1,r):typeof t.expression==`string`&&t.expression.length>0&&r.add(dt(t,i));return r}function ft(e,t,n=1){I(n);let r=e.clause??t;if(e.condition===`or`&&B(e,r,n).size>1)throw new j(`An "or" group mixes "where" and "having" filters, which clean output cannot represent.`);for(let t of ut(e))lt(t)&&ft(t,r,n+1)}function pt(e,t,n,r=1){I(r);let i=e.clause??n,a=[];for(let n of ut(e)){if(lt(n)){let e=pt(n,t,i,r+1);e.filters.length>0&&a.push(e);continue}if(dt(n,i)!==t)continue;let e=ct(n);e&&a.push(e)}let o={condition:e.condition===`or`?`or`:`and`,filters:a};return e.id!==void 0&&B(e,i,r).size<=1&&(o.id=e.id),o}function mt(e){let t=e.clause;ft(e,t);let n=B(e,t);return n.size===0&&n.add(t??`where`),[`where`,`having`].filter(e=>n.has(e)).map(n=>({...pt(e,n,t),clause:n})).filter(e=>e.filters.length>0)}var ht=[`origin`,`datasetId`,`vizId`,`itemId`,`isDrilldown`,`type`];function gt(e){return typeof e==`string`&&e.toLowerCase()===`or`?`or`:`and`}function _t(e){return N(e)}function vt(e){if(!Array.isArray(e)||e.length===0)return[];let t=M(e[0])?e[0]:void 0,n=e.length>1?e[1]:void 0;return e.length>1?[t,n]:[t]}function yt(e){if(typeof e.expression!=`string`||e.expression.length===0)return null;let t={expression:e.expression,parameters:vt(e.parameters)};return e.properties!==void 0&&Object.keys(e.properties).length>0&&(t.properties=structuredClone(e.properties)),t}function bt(e,t){let n=e,r=t;for(let e of ht)n[e]!==void 0&&(r[e]=n[e])}function xt(e){if(!e||!e.filters)return{condition:`and`,filters:[],subGroups:[]};let t=[],n=[];for(let r of e.filters)if(_t(r))n.push(xt(r));else{let e=yt(r);e&&t.push(e)}let r={condition:gt(e.condition),filters:t,subGroups:n};return e.id!==void 0&&(r.id=e.id),bt(e,r),r}function St(e,t){return e?t?.format===`clean`?mt(e):[xt(e)]:[]}function Ct(e,t){let n={expression:typeof e.expression==`string`?e.expression:void 0,parameters:Array.isArray(e.parameters)?[...e.parameters]:[]},r=M(e.properties)?structuredClone(e.properties):{};return t!==void 0&&r.type===void 0&&(r.type=t),Object.keys(r).length>0&&(n.properties=r),n}function wt(e,t,n){if(N(e))return Tt(e,t,n);if(!M(e))return;let r=e.expression;if(Ve(e),ze(e))return st(e,t);if(F(e)&&He(e),Be(e))return Ct(e,t);throw new j(`Filter leaf "${String(r)}" matches neither a complete clean nor a complete canonical encoding.`)}function Tt(e,t,n){I(n);let r=Ue(e.clause)?e.clause:void 0,i=r??t,a=[];for(let t of Array.isArray(e.filters)?e.filters:[]){let e=wt(t,i,n+1);e!==void 0&&a.push(e)}for(let t of Array.isArray(e.subGroups)?e.subGroups:[])N(t)&&a.push(Tt(t,i,n+1));let o={condition:gt(e.condition),filters:a};return typeof e.id==`string`&&(o.id=e.id),r!==void 0&&(o.clause=r),bt(e,o),o}function Et(e){return!e||e.length===0?[]:e.filter(e=>N(e)).map(e=>Tt(e,void 0,1))}var Dt=`:host{font-family:var(--luzmo-font-family)}luzmo-select{width:100%}:host{--var:blue}`,V=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.hasLabel=!1,this.allowEmpty=!1,this.placeholder=``,this.disabled=!1,this.readonly=!1,this.quiet=!1,this.invalid=!1,this.isFormula=!1,this._expressionConfigurations=w()}static get styles(){return[v(Dt)]}_sendChangeEvent(){if(this.disabled||this.readonly)return;let e={expression:this.filter?.expression};this.filter?.parameters?.[1]?.unit&&(e.unit=this.filter?.parameters?.[1]?.unit),this.dispatchEvent(new CustomEvent(`luzmo-expression-selected`,{bubbles:!0,composed:!0,cancelable:!0,detail:e}))}setExpression(e){this._richExpression=e?.detail?.value?.[0];let t=this._expressionConfigurations.find(e=>e.id===this._richExpression),n=structuredClone(this.filter);n.expression=t?.expression,t?.unit&&(this._unit=t.unit,n?.parameters[0]&&(n.parameters[1]={unit:this._unit})),this.filter=n,this._sendChangeEvent()}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`type`),r=e.has(`subtype`),i=e.has(`isFormula`),a=oe(this.type,this.subtype,this.isFormula),o=[`YTD`,`QTD`,`MTD`,`WTD`];if(this.filter?.expression===`to_date`){let e=this.filter?.parameters[1]?.unit??1;this._unit=e,this._richExpression=o[e-1]??`YTD`}else this._richExpression=this.filter?.expression;(n||r||i||t)&&this.filter&&!this.disabled&&!this.readonly&&!a?.find(e=>e.expression===this.filter?.expression)?(this.invalid=!0,console.warn(`Warning: ${this.filter?.expression} is not valid given the type: ${this.type} and subtype: ${this.subtype}`)):this.invalid=!1,!this.filter?.expression&&!this.allowEmpty&&(this._richExpression=a?.[0]?.id,this.filter={...this.filter,expression:this._richExpression},this._sendChangeEvent())}render(){let e=oe(this.type,this.subtype,this.isFormula)?.map(e=>({value:e.id,label:e.description,shortLabel:e.tiny})),n=this.disabled||!this.filter?.expression&&!this.allowEmpty,r=m`<luzmo-field-label
2
+ import{i as e,n as t,r as n,t as r}from"./localized-mixin-BWJj88bd.js";import{t as i}from"./localized-decorator-DosMCCQo.js";import{t as a}from"./luzmoTrashOutline-DXZpJx7f.js";import{a as o,c as s,n as c,r as l}from"./load-data-fields-for-datasets-CDlut-6S.js";import{t as u}from"./luzmoPlus-Dyrrz0v8.js";import{t as d}from"./luzmo-icon-markup-ByaNI6dg.js";import{n as f,u as ee}from"./data-broker-DXDyIrj_.js";import{t as p}from"./localize-DXRmGRe-.js";import{t as te}from"./v4-BxSu4gkw.js";import{html as m,ifDefined as ne,nothing as h,property as g,query as re,repeat as ie,state as _,unsafeCSS as v}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/button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/divider.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.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/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.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{ElementSizes as y,LuzmoElement as b,SizedMixin as x}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/utils.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/badge.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/select.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/options.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tags.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/text-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/date-time-picker.js";var S=[``,``,``],ae=`⁣`;function C(e,t){let n=RegExp(`(${S.join(`|`)})`,`u`),r=[];for(let i of e.replaceAll(ae,``).split(n)){let e=S.indexOf(i);e===-1?i&&r.push(i):r.push(t[e])}return r}var w=()=>[{id:`? = ?`,key:`? = ?`,expression:`? = ?`,name:n(`equals`,{desc:`Filter expression for equals comparison`}),description:n(`equals`,{desc:`Filter expression for equals comparison`}),tiny:n(`eq`,{desc:`Short form of equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? != ?`,key:`? != ?`,expression:`? != ?`,name:n(`not equals`,{desc:`Filter expression for not equals comparison`}),description:n(`not equals`,{desc:`Filter expression for not equals comparison`}),tiny:n(`not eq`,{desc:`Short form of not equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? in ?`,key:`? in ?`,expression:`? in ?`,name:n(`is in`,{desc:`Filter expression for in comparison`}),description:n(`is in`,{desc:`Filter expression for in comparison`}),tiny:n(`is in`,{desc:`Filter expression for in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? not in ?`,key:`? not in ?`,expression:`? not in ?`,name:n(`is not in`,{desc:`Filter expression for not in comparison`}),description:n(`is not in`,{desc:`Filter expression for not in comparison`}),tiny:n(`is not in`,{desc:`Filter expression for not in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? like ?`,key:`? like ?`,expression:`? like ?`,name:n(`contains`,{desc:`Filter expression for contains comparison`}),description:n(`contains`,{desc:`Filter expression for contains comparison`}),tiny:n(`cont`,{desc:`Short form of contains comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not like ?`,key:`? not like ?`,expression:`? not like ?`,name:n(`does not contain`,{desc:`Filter expression for does not contain comparison`}),description:n(`does not contain`,{desc:`Filter expression for does not contain comparison`}),tiny:n(`not cont`,{desc:`Short form of does not contain comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? starts with ?`,key:`? starts with ?`,expression:`? starts with ?`,name:n(`starts with`,{desc:`Filter expression for starts with comparison`}),description:n(`starts with`,{desc:`Filter expression for starts with comparison`}),tiny:n(`starts with`,{desc:`Filter expression for starts with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not starts with ?`,key:`? not starts with ?`,expression:`? not starts with ?`,name:n(`does not start with`,{desc:`Filter expression for does not start with comparison`}),description:n(`does not start with`,{desc:`Filter expression for does not start with comparison`}),tiny:n(`not starts with`,{desc:`Short form of does not start with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? ends with ?`,key:`? ends with ?`,expression:`? ends with ?`,name:n(`ends with`,{desc:`Filter expression for ends with comparison`}),description:n(`ends with`,{desc:`Filter expression for ends with comparison`}),tiny:n(`ends with`,{desc:`Filter expression for ends with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not ends with ?`,key:`? not ends with ?`,expression:`? not ends with ?`,name:n(`does not end with`,{desc:`Filter expression for does not end with comparison`}),description:n(`does not end with`,{desc:`Filter expression for does not end with comparison`}),tiny:n(`not ends with`,{desc:`Short form of does not end with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? < ?`,key:`? < ?`,expression:`? < ?`,name:n(`less than`,{desc:`Filter expression for less than comparison`}),description:n(`less than`,{desc:`Filter expression for less than comparison`}),tiny:`<`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? <= ?`,key:`? <= ?`,expression:`? <= ?`,name:n(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),description:n(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),tiny:`<=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? > ?`,key:`? > ?`,expression:`? > ?`,name:n(`greater than`,{desc:`Filter expression for greater than comparison`}),description:n(`greater than`,{desc:`Filter expression for greater than comparison`}),tiny:`>`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? >= ?`,key:`? >= ?`,expression:`? >= ?`,name:n(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),description:n(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),tiny:`>=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? between ?`,key:`? between ?`,expression:`? between ?`,name:n(`is between`,{desc:`Filter expression for between comparison`}),description:n(`is between`,{desc:`Filter expression for between comparison`}),tiny:n(`between`,{desc:`Short form of between comparison in filter expression`}),type:[],subtype:[`ip_address`]},{id:`last_now`,key:`last_now`,expression:`last_now`,name:n(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),description:n(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),tiny:n(`last`,{desc:`Short form of last (x) periods in filter expression`}),type:[`datetime`]},{id:`last_available`,key:`last_available`,expression:`last_available`,name:n(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),description:n(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),tiny:n(`last available`,{desc:`Short form of last (x) available periods in filter expression`}),type:[`datetime`]},{id:`last_completed`,key:`last_completed`,expression:`last_completed`,name:n(`last completed period`,{desc:`Filter expression for last completed period`}),description:n(`last completed (period)`,{desc:`Filter expression for last completed period`}),tiny:n(`last completed`,{desc:`Short form of last completed period in filter expression`}),type:[`datetime`]},{id:`next_now`,key:`next_now`,expression:`next_now`,name:n(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),description:n(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),tiny:n(`next`,{desc:`Short form of next (x) periods in filter expression`}),type:[`datetime`]},{id:`more_than_ago`,key:`more_than_ago`,expression:`more_than_ago`,name:n(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),description:n(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),tiny:n(`more than ago`,{desc:`Short form of more than (x) periods ago in filter expression`}),type:[`datetime`]},{id:`or_more_ago`,key:`or_more_ago`,expression:`or_more_ago`,name:n(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),description:n(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),tiny:n(`or more ago`,{desc:`Short form of (x) periods or more ago in filter expression`}),type:[`datetime`]},{id:`next_full`,key:`next_full`,expression:`next_full`,name:n(`next full (period)`,{desc:`Filter expression for next full period`}),description:n(`next full (period)`,{desc:`Filter expression for next full period`}),tiny:n(`next full`,{desc:`Short form of next full period in filter expression`}),type:[`datetime`]},{id:`WTD`,key:`to_date`,expression:`to_date`,unit:4,name:n(`week to date`,{desc:`Filter expression for week to date`}),description:n(`week to date`,{desc:`Filter expression for week to date`}),tiny:n(`WTD`,{desc:`Short form of week to date in filter expression`}),type:[`datetime`]},{id:`MTD`,key:`to_date`,expression:`to_date`,unit:3,name:n(`month to date`,{desc:`Filter expression for month to date`}),description:n(`month to date`,{desc:`Filter expression for month to date`}),tiny:n(`MTD`,{desc:`Short form of month to date in filter expression`}),type:[`datetime`]},{id:`QTD`,key:`to_date`,expression:`to_date`,unit:2,name:n(`quarter to date`,{desc:`Filter expression for quarter to date`}),description:n(`quarter to date`,{desc:`Filter expression for quarter to date`}),tiny:n(`QTD`,{desc:`Short form of quarter to date in filter expression`}),type:[`datetime`]},{id:`YTD`,key:`to_date`,expression:`to_date`,unit:1,name:n(`year to date`,{desc:`Filter expression for year to date`}),description:n(`year to date`,{desc:`Filter expression for year to date`}),tiny:n(`YTD`,{desc:`Short form of year to date in filter expression`}),type:[`datetime`]},{id:`? is null`,key:`? is null`,expression:`? is null`,name:n(`is missing`,{desc:`Filter expression for is missing`}),description:n(`is missing`,{desc:`Filter expression for is missing`}),tiny:n(`missing`,{desc:`Short form of is missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]},{id:`? is not null`,key:`? is not null`,expression:`? is not null`,name:n(`is not missing`,{desc:`Filter expression for is not missing`}),description:n(`is not missing`,{desc:`Filter expression for is not missing`}),tiny:n(`not missing`,{desc:`Short form of is not missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]}],oe=(e,t,n)=>{let r=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`]);return!e&&!t?w():w().filter(i=>(e&&i.type.includes(e)||t&&i.subtype?.includes(t))&&!(n&&r.has(i.key)))},se=/* @__PURE__ */ new Set([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`]),ce=/* @__PURE__ */ new Set([`last_completed`,`next_full`]),le=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`]),ue=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),de=3,fe=32;function T(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function E(e){return T(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function pe(e){return e.length<=fe?{display:e,truncated:!1}:{display:`${e.slice(0,31)}…`,truncated:!0}}function D(e,t,n){try{return new Intl.ListFormat(e||void 0,{style:`long`,type:n}).format(t)}catch{return t.join(`, `)}}function O(e,t,n){let r=De(e,t,n),{display:i,truncated:a}=pe(r);return{label:i,full:r,truncated:a}}function me(t){return t===1?n(`1 item`,{desc:`One selected hierarchy value whose name is still loading`}):n(e`${t} items`,{desc:`Selected hierarchy values whose names are still loading`})}function he(){return n(`Some item names could not be retrieved`,{desc:`Tooltip when a hierarchy filter value is still an id after name lookup`})}function ge(e,t){return!!(t?.type===`hierarchy`&&t.datasetId&&t.fieldId&&!(T(e)&&e.name!==void 0)&&A(e))}function _e(e,t,n){let r=n?.datasetId,i=n?.fieldId;return!r||!i?[]:e.flatMap(e=>{if(!ge(e,n))return[];let a=A(e);return a?t.hierarchyLabels?.get(Ee(r,i,a))?[]:[a]:[]})}function ve(e,t,n){return n.hierarchyLabelsLoading&&t.length>0?{valueText:me(t.length),valuePending:!0}:n.hierarchyLabels&&!n.hierarchyLabelsLoading&&t.length>0&&!e.valueTooltip?{...e,valueTooltip:he()}:e}function ye(t,r,i){let a=t.map(e=>O(e,r,i)),o=a.map(e=>e.full),s=D(r.contentLanguage,o,`conjunction`);if(t.length===1){let[e]=a;return{valueText:e.label,valueTooltip:e.truncated?e.full:void 0}}let c=Math.min(de,a.length),l=a.length-c,u=a.slice(0,c).map(e=>e.label),d=a.some(e=>e.truncated),f;if(l>0){let t=D(r.contentLanguage,u,`unit`);f=n(e`${t}, and ${l} more`,{desc:`Filter values after the first few shown in a read-only sentence, e.g. "Dresses, Shoes, Shorts, and 1 more"`})}else f=D(r.contentLanguage,a.map(e=>e.label),`conjunction`);return{valueText:f,valueTooltip:l>0||d?s:void 0}}function k(e,t,n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){let t=String(e);return t.length>0?t:n}if(e&&typeof e==`object`){let n=p(e,t);if(n)return n}return n}function be(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function xe(e,t){let n=be(e,[`datasetId`,`dataset_id`]),r=be(e,[`columnId`,`column_id`]),i=be(e,[`formulaId`,`formula_id`]),a=typeof e.formula==`string`?e.formula:void 0,o=t.datasets.find(e=>e.id===n),s=o?k(o.name,t.contentLanguage,``):``;if(i){let e=o?.formulas?.find(e=>e.id===i),r=k(e?.name,t.contentLanguage,i);return{label:r,tooltip:s?`${s} · ${r}`:r,type:e?.type,subtype:e?.subtype,formula:!0,datasetId:n,fieldId:i}}if(a)return{label:a,tooltip:s?`${s} · ${a}`:a,formula:!0,datasetId:n};let c=!r&&typeof e.expression==`string`?e.expression:void 0;if(c)return{label:c,tooltip:s?`${s} · ${c}`:c,formula:!0,datasetId:n};let l=r?o?.columns?.find(e=>e.id===r):void 0,u=r??(typeof e.columnExpression==`string`?e.columnExpression:``),d=k(l?.name,t.contentLanguage,u);return{label:d,tooltip:s?`${s} · ${d}`:d,type:l?.type,subtype:l?.subtype,formula:!1,datasetId:n,fieldId:r}}function Se(e){let t=o.find(t=>t.level===e);return t?t.i18n():``}function Ce(t,r){switch(r){case 1:return t===1?n(e`${t} Year`,{desc:`Singular relative filter quantity in years`}):n(e`${t} Years`,{desc:`Plural relative filter quantity in years`});case 2:return t===1?n(e`${t} Quarter`,{desc:`Singular relative filter quantity in quarters`}):n(e`${t} Quarters`,{desc:`Plural relative filter quantity in quarters`});case 3:return t===1?n(e`${t} Month`,{desc:`Singular relative filter quantity in months`}):n(e`${t} Months`,{desc:`Plural relative filter quantity in months`});case 4:return t===1?n(e`${t} Week`,{desc:`Singular relative filter quantity in weeks`}):n(e`${t} Weeks`,{desc:`Plural relative filter quantity in weeks`});case 5:return t===1?n(e`${t} Day`,{desc:`Singular relative filter quantity in days`}):n(e`${t} Days`,{desc:`Plural relative filter quantity in days`});case 6:return t===1?n(e`${t} Hour`,{desc:`Singular relative filter quantity in hours`}):n(e`${t} Hours`,{desc:`Plural relative filter quantity in hours`});case 7:return t===1?n(e`${t} Minute`,{desc:`Singular relative filter quantity in minutes`}):n(e`${t} Minutes`,{desc:`Plural relative filter quantity in minutes`});case 8:return t===1?n(e`${t} Second`,{desc:`Singular relative filter quantity in seconds`}):n(e`${t} Seconds`,{desc:`Plural relative filter quantity in seconds`});case 9:return t===1?n(e`${t} Millisecond`,{desc:`Singular relative filter quantity in milliseconds`}):n(e`${t} Milliseconds`,{desc:`Plural relative filter quantity in milliseconds`});default:return n(e`${t}`,{desc:`Relative filter quantity`})}}function we(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;try{return new Intl.DateTimeFormat(t.contentLanguage||void 0,{dateStyle:`medium`,timeStyle:`short`,...t.timeZone?{timeZone:t.timeZone}:{}}).format(n)}catch{return e}}function Te(e){return/^\d{4}-\d{2}-\d{2}(?:T|$)/.test(e)}function Ee(e,t,n){return`${e}:${t}:${n}`}function A(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(T(e)&&(typeof e.id==`string`||typeof e.id==`number`))return String(e.id)}function De(e,t,n){if(n?.type===`hierarchy`&&n.datasetId&&n.fieldId&&!(T(e)&&e.name!==void 0)){let r=A(e),i=r===void 0?void 0:t.hierarchyLabels?.get(Ee(n.datasetId,n.fieldId,r));if(i)return i}if(typeof e==`number`&&Number.isFinite(e))return new Intl.NumberFormat(t.contentLanguage||void 0).format(e);if(typeof e==`string`)return Te(e)?we(e,t):e;if(typeof e==`boolean`)return String(e);if(T(e)){if(typeof e.parameter==`string`)return e.parameter;if(e.name!==void 0){let n=k(e.name,t.contentLanguage,``);if(n)return n}if(typeof e.id==`string`||typeof e.id==`number`)return String(e.id)}return``}function Oe(e,t){let n=w().filter(t=>t.expression===e),r=T(t)&&typeof t.unit==`number`?t.unit:void 0;return(e===`to_date`&&r!==void 0?n.find(e=>e.unit===r)??n[0]:n[0])?.tiny??e}function ke(t,r,i,a){if(le.has(t)||r==null)return{valueText:``};if(T(r)&&typeof r.parameter==`string`){let e=r.parameter;if(!E(r))return{valueText:e}}if(ue.has(t)&&E(r))return{valueText:``,valueField:xe(r,i)};if(t===`? between ?`&&Array.isArray(r)&&r.length===2){let t=O(r[0],i,a),o=O(r[1],i,a);return ve({valueText:n(e`${t.label} and ${o.label}`,{desc:`Inclusive range shown between two filter values`}),valueTooltip:t.truncated||o.truncated?n(e`${t.full} and ${o.full}`,{id:`filter-range-tooltip`,desc:`Full inclusive range shown in a tooltip`}):void 0},_e(r,i,a),i)}if(se.has(t)&&T(r))return{valueText:Ce(typeof r.quantity==`number`?r.quantity:1,r.unit)};if(ce.has(t)&&T(r))return{valueText:Se(r.unit)};if(Array.isArray(r))return r.length===0?{valueText:``}:ve(ye(r,i,a),_e(r,i,a),i);let o=O(r,i,a);return ve({valueText:o.label,valueTooltip:o.truncated?o.full:void 0},_e([r],i,a),i)}function Ae(e,t){let n=e.parameters?.[0];if(!T(n)||!E(n))return null;let r=xe(n,t),i=typeof e.expression==`string`?e.expression:``,a=e.parameters?.[1];return{field:r,expression:i?Oe(i,a):``,...ke(i,a,t,r)}}function je(e){return`condition`in e&&`filters`in e}function Me(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(Me);if(T(e)){if(typeof e.parameter==`string`||e.name!==void 0||E(e))return[];let t=A(e);return t?[t]:[]}let t=A(e);return t?[t]:[]}function Ne(e,t){let n=/* @__PURE__ */ new Map,r=e=>{if(je(e)){e.filters.forEach(r);return}let i=e.parameters?.[0];if(!T(i)||!E(i))return;let a=xe(i,t);if(a.type!==`hierarchy`||!a.datasetId||!a.fieldId)return;let o=[...new Set(Me(e.parameters?.[1]))];if(o.length===0)return;let s=`${a.datasetId}:${a.fieldId}`,c=n.get(s);c?c.ids=[.../* @__PURE__ */ new Set([...c.ids,...o])]:n.set(s,{datasetId:a.datasetId,...a.formula?{formulaId:a.fieldId}:{columnId:a.fieldId},ids:o})};return r(e),[...n.values()]}async function Pe(e,t){let n=/* @__PURE__ */ new Map;return await Promise.all(e.map(async e=>{let r={dataset_id:e.datasetId,column_id:e.columnId,formula_id:e.formulaId},i=await f.fetchData({dimensions:[r],where:[{expression:`? in ?`,parameters:[r,e.ids]}],limit:{by:e.ids.length,offset:0}}),a=e.columnId??e.formulaId??``;for(let r of i.data??[]){let i=r[0],o=i&&typeof i==`object`&&`id`in i?String(i.id):String(i),s=i&&typeof i==`object`&&`name`in i?p(i.name,t):``;s&&n.set(Ee(e.datasetId,a,o),s)}})),n}var Fe=20,j=class extends Error{constructor(e){super(e),this.name=`FilterUnrepresentableError`}},Ie=/* @__PURE__ */ new Set([`and`,`or`]),Le=[`datasetId`,`dataset_id`,`columnId`,`column_id`,`formulaId`,`formula_id`,`formula`,`columnExpression`,`value`,`ignoredItemIds`];function M(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function N(e){return!M(e)||e.condition!==void 0&&(typeof e.condition!=`string`||!Ie.has(e.condition.toLowerCase()))?!1:`filters`in e||`subGroups`in e}function P(e){return M(e)&&`expression`in e&&!(`condition`in e)}function F(e){return Le.some(t=>t in e)}function Re(e,t=!1){let n=[e.columnId!==void 0||e.column_id!==void 0,e.formulaId!==void 0||e.formula_id!==void 0,e.formula!==void 0].filter(Boolean).length;return n===1?!0:n>1?!1:e.columnExpression!==void 0||t&&e.expression!==void 0}function ze(e){return!P(e)||typeof e.expression!=`string`||e.expression.length===0||`parameters`in e||typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?!1:Re(e)}function Be(e){return!P(e)||!Array.isArray(e.parameters)?!1:!F(e)}function Ve(e){if(!(`parameters`in e))return;let t=Le.find(t=>t in e);if(t!==void 0)throw new j(`Filter leaf mixes "parameters" with the clean inline key "${t}".`)}function He(e){throw typeof e.expression!=`string`||e.expression.length===0?new j(`Clean filter leaf is missing a non-empty "expression".`):typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?new j(`Clean filter leaf "${e.expression}" is missing a "datasetId".`):new j(`Clean filter leaf "${e.expression}" must name exactly one of "columnId", "formulaId", "formula", or "columnExpression".`)}function Ue(e){return e===`where`||e===`having`}function I(e){if(e>20)throw new j(`Filter nesting exceeds the maximum depth of 20.`)}function We(e){if(e==null)return`empty`;if(!Array.isArray(e))return`unknown`;if(e.length===0)return`empty`;let t=!1,n=!1,r=!1,i=(e,a)=>{if(a>20)r=!0;else if(N(e)){Ue(e.clause)&&(n=!0);let t=[...Array.isArray(e.filters)?e.filters:[],...Array.isArray(e.subGroups)?e.subGroups:[]];for(let e of t)i(e,a+1)}else P(e)?`parameters`in e&&F(e)?r=!0:ze(e)?n=!0:Be(e)?t=!0:r=!0:r=!0};for(let t of e)i(t,1);return r?`unknown`:n&&t?`mixed`:n?`clean`:t?`canonical`:`empty`}var Ge=/* @__PURE__ */ new Set([`? is null`,`? is not null`]),Ke=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),qe=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? between ?`]),Je={"array[numeric]":`numeric[]`,"array[hierarchy]":`hierarchy[]`,"array[datetime]":`datetime[]`},Ye=/* @__PURE__ */ new Set([`level`,`lowestLevel`,`unnest`,`discretization`,`aggregation`,`index`,`include_nonoccurring`,`simplification`]);function L(e,t){return e!==`lowestLevel`&&!(t===null&&Ye.has(e))}function R(e){return structuredClone(e)}function Xe(e){let t=e.datasetId??e.dataset_id;if(typeof t!=`string`||t.length===0)throw new j(`Filter reference is missing a "datasetId".`);return t}function Ze(e){return M(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function Qe(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>it(e))),t}function $e(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest),t}function et(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>M(e)?z(e):e)),t}function tt(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&(t.level=e.level),M(e.discretization)&&(t.discretization=et(e.discretization)),e.unnest!==void 0&&(t.unnest=e.unnest),t}function nt(e,t){e.level!==void 0&&(t.level=R(e.level)),M(e.discretization)&&(t.discretization=et(e.discretization)),M(e.aggregation)&&(t.aggregation=tt(e.aggregation)),e.unnest!==void 0&&(t.unnest=R(e.unnest))}function rt(e,t){let n=e.columnId??e.column_id;if(n!==void 0)return{kind:`columnId`,value:n};let r=e.formulaId??e.formula_id;if(r!==void 0)return{kind:`formulaId`,value:r};if(e.formula!==void 0)return{kind:`formula`,value:e.formula};let i=e.columnExpression??(t?e.expression:void 0);if(i!==void 0)return{kind:`expression`,value:i}}function z(e,t=!0){let n={datasetId:Xe(e)},r=rt(e,t);return r!==void 0&&(r.kind===`expression`?n.expression=r.value:n[r.kind]=r.value),nt(e,n),n}function it(e){if(!M(e))throw new j(`Cannot emit a clean filter reference.`);let t={datasetId:Xe(e)};e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),M(e.aggregation)&&(t.aggregation=$e(e.aggregation)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest);let n=rt(e,!0);if(n===void 0)throw new j(`Cannot emit a clean filter reference: no column, formula, or expression.`);return n.kind===`expression`?t.columnExpression=n.value:t[n.kind]=n.value,t}function at(e){if(!M(e)||typeof e.parameter!=`string`||typeof e.type!=`string`)return e;let t=Je[e.type];return t===void 0?e:{...e,type:t}}function ot(e,t){return M(t)&&typeof t.parameter==`string`?!0:Array.isArray(t)?e!==`? between ?`||t.length===2:!1}function st(e,t){let n=e.expression,r=[z(e,!1)];if(!Ge.has(n)&&e.value!==void 0){let t=Ke.has(n)&&Ze(e.value);r.push(t?z(e.value):R(e.value))}let i={};typeof e.id==`string`&&(i.id=e.id),`ignoredItemIds`in e&&(i.ignore=R(e.ignoredItemIds)),t!==void 0&&(i.type=t);let a={expression:n,parameters:r};return Object.keys(i).length>0&&(a.properties=i),a}function ct(e){let{expression:t}=e;if(typeof t!=`string`||t.length===0)return null;let n=Array.isArray(e.parameters)?e.parameters:[];if(!M(n[0]))throw new j(`Cannot emit a clean filter reference for "${t}".`);let r={...it(n[0]),expression:t};if(!Ge.has(t)){let e=n[1];if(e===void 0)throw new j(`Filter "${t}" is missing its value operand.`);if(r.value=Ze(e)&&Ke.has(t)?it(e):at(R(e)),qe.has(t)&&!ot(t,r.value))throw new j(`Cannot emit an invalid clean filter value for "${t}".`)}let{properties:i}=e;return i?.id!==void 0&&(r.id=i.id),i!==void 0&&`ignore`in i&&(r.ignoredItemIds=R(i.ignore)),r}function lt(e){return N(e)}function ut(e){return Array.isArray(e.filters)?e.filters:[]}function dt(e,t){return e.properties?.type===`having`||e.properties?.type===`where`?e.properties.type:t??`where`}function B(e,t,n=1,r=/* @__PURE__ */ new Set){I(n);let i=e.clause??t;for(let t of ut(e))lt(t)?B(t,i,n+1,r):typeof t.expression==`string`&&t.expression.length>0&&r.add(dt(t,i));return r}function ft(e,t,n=1){I(n);let r=e.clause??t;if(e.condition===`or`&&B(e,r,n).size>1)throw new j(`An "or" group mixes "where" and "having" filters, which clean output cannot represent.`);for(let t of ut(e))lt(t)&&ft(t,r,n+1)}function pt(e,t,n,r=1){I(r);let i=e.clause??n,a=[];for(let n of ut(e)){if(lt(n)){let e=pt(n,t,i,r+1);e.filters.length>0&&a.push(e);continue}if(dt(n,i)!==t)continue;let e=ct(n);e&&a.push(e)}let o={condition:e.condition===`or`?`or`:`and`,filters:a};return e.id!==void 0&&B(e,i,r).size<=1&&(o.id=e.id),o}function mt(e){let t=e.clause;ft(e,t);let n=B(e,t);return n.size===0&&n.add(t??`where`),[`where`,`having`].filter(e=>n.has(e)).map(n=>({...pt(e,n,t),clause:n})).filter(e=>e.filters.length>0)}var ht=[`origin`,`datasetId`,`vizId`,`itemId`,`isDrilldown`,`type`];function gt(e){return typeof e==`string`&&e.toLowerCase()===`or`?`or`:`and`}function _t(e){return N(e)}function vt(e){if(!Array.isArray(e)||e.length===0)return[];let t=M(e[0])?e[0]:void 0,n=e.length>1?e[1]:void 0;return e.length>1?[t,n]:[t]}function yt(e){if(typeof e.expression!=`string`||e.expression.length===0)return null;let t={expression:e.expression,parameters:vt(e.parameters)};return e.properties!==void 0&&Object.keys(e.properties).length>0&&(t.properties=structuredClone(e.properties)),t}function bt(e,t){let n=e,r=t;for(let e of ht)n[e]!==void 0&&(r[e]=n[e])}function xt(e){if(!e||!e.filters)return{condition:`and`,filters:[],subGroups:[]};let t=[],n=[];for(let r of e.filters)if(_t(r))n.push(xt(r));else{let e=yt(r);e&&t.push(e)}let r={condition:gt(e.condition),filters:t,subGroups:n};return e.id!==void 0&&(r.id=e.id),bt(e,r),r}function St(e,t){return e?t?.format===`clean`?mt(e):[xt(e)]:[]}function Ct(e,t){let n={expression:typeof e.expression==`string`?e.expression:void 0,parameters:Array.isArray(e.parameters)?[...e.parameters]:[]},r=M(e.properties)?structuredClone(e.properties):{};return t!==void 0&&r.type===void 0&&(r.type=t),Object.keys(r).length>0&&(n.properties=r),n}function wt(e,t,n){if(N(e))return Tt(e,t,n);if(!M(e))return;let r=e.expression;if(Ve(e),ze(e))return st(e,t);if(F(e)&&He(e),Be(e))return Ct(e,t);throw new j(`Filter leaf "${String(r)}" matches neither a complete clean nor a complete canonical encoding.`)}function Tt(e,t,n){I(n);let r=Ue(e.clause)?e.clause:void 0,i=r??t,a=[];for(let t of Array.isArray(e.filters)?e.filters:[]){let e=wt(t,i,n+1);e!==void 0&&a.push(e)}for(let t of Array.isArray(e.subGroups)?e.subGroups:[])N(t)&&a.push(Tt(t,i,n+1));let o={condition:gt(e.condition),filters:a};return typeof e.id==`string`&&(o.id=e.id),r!==void 0&&(o.clause=r),bt(e,o),o}function Et(e){return!e||e.length===0?[]:e.filter(e=>N(e)).map(e=>Tt(e,void 0,1))}var Dt=`:host{font-family:var(--luzmo-font-family)}luzmo-select{width:100%}:host{--var:blue}`,V=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.hasLabel=!1,this.allowEmpty=!1,this.placeholder=``,this.disabled=!1,this.readonly=!1,this.quiet=!1,this.invalid=!1,this.isFormula=!1,this._expressionConfigurations=w()}static get styles(){return[v(Dt)]}_sendChangeEvent(){if(this.disabled||this.readonly)return;let e={expression:this.filter?.expression};this.filter?.parameters?.[1]?.unit&&(e.unit=this.filter?.parameters?.[1]?.unit),this.dispatchEvent(new CustomEvent(`luzmo-expression-selected`,{bubbles:!0,composed:!0,cancelable:!0,detail:e}))}setExpression(e){this._richExpression=e?.detail?.value?.[0];let t=this._expressionConfigurations.find(e=>e.id===this._richExpression),n=structuredClone(this.filter);n.expression=t?.expression,t?.unit&&(this._unit=t.unit,n?.parameters[0]&&(n.parameters[1]={unit:this._unit})),this.filter=n,this._sendChangeEvent()}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`type`),r=e.has(`subtype`),i=e.has(`isFormula`),a=oe(this.type,this.subtype,this.isFormula),o=[`YTD`,`QTD`,`MTD`,`WTD`];if(this.filter?.expression===`to_date`){let e=this.filter?.parameters[1]?.unit??1;this._unit=e,this._richExpression=o[e-1]??`YTD`}else this._richExpression=this.filter?.expression;(n||r||i||t)&&this.filter&&!this.disabled&&!this.readonly&&!a?.find(e=>e.expression===this.filter?.expression)?(this.invalid=!0,console.warn(`Warning: ${this.filter?.expression} is not valid given the type: ${this.type} and subtype: ${this.subtype}`)):this.invalid=!1,!this.filter?.expression&&!this.allowEmpty&&(this._richExpression=a?.[0]?.id,this.filter={...this.filter,expression:this._richExpression},this._sendChangeEvent())}render(){let e=oe(this.type,this.subtype,this.isFormula)?.map(e=>({value:e.id,label:e.description,shortLabel:e.tiny})),t=this.disabled||!this.filter?.expression&&!this.allowEmpty,r=m`<luzmo-field-label
3
3
  for="expression"
4
4
  size=${this.size}
5
- >${this.label??t(`Select an expression`,{desc:`Label for expression picker`})}</luzmo-field-label
6
- >`,i=this.hasLabel?this.placeholder??t(`Select...`):this.placeholder||this.label||t(`Filter expression`,{desc:`Accessible label for expression picker`});return m`${this.hasLabel?r:``}
5
+ >${this.label??n(`Select an expression`,{desc:`Label for expression picker`})}</luzmo-field-label
6
+ >`,i=this.hasLabel?this.placeholder??n(`Select...`):this.placeholder||this.label||n(`Filter expression`,{desc:`Accessible label for expression picker`});return m`${this.hasLabel?r:``}
7
7
  <luzmo-select
8
8
  label=${i}
9
9
  id="expression"
@@ -12,29 +12,29 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
12
12
  .quiet=${this.quiet}
13
13
  selects="single"
14
14
  .language=${this.language}
15
- ?disabled=${n}
15
+ ?disabled=${t}
16
16
  .readonly=${this.readonly}
17
17
  ?invalid=${this.invalid}
18
18
  .options=${e}
19
19
  .value=${[this._richExpression]}
20
20
  @change=${this.setExpression}
21
21
  >
22
- </luzmo-select>`}};r([g({type:String,reflect:!0})],V.prototype,`filter`,void 0),r([g({type:Boolean,attribute:`has-label`,reflect:!0})],V.prototype,`hasLabel`,void 0),r([g({type:String,reflect:!0})],V.prototype,`label`,void 0),r([g({type:Boolean,attribute:`allow-empty`,reflect:!0})],V.prototype,`allowEmpty`,void 0),r([g({type:String,attribute:`placeholder`,reflect:!0})],V.prototype,`placeholder`,void 0),r([g({type:Boolean,attribute:`disabled`,reflect:!0})],V.prototype,`disabled`,void 0),r([g({type:Boolean,reflect:!0})],V.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],V.prototype,`quiet`,void 0),r([g({type:String,attribute:`type`,reflect:!0})],V.prototype,`type`,void 0),r([g({type:String,attribute:`subtype`,reflect:!0})],V.prototype,`subtype`,void 0),r([g({type:Boolean,attribute:`invalid`,reflect:!0})],V.prototype,`invalid`,void 0),r([g({type:Boolean,attribute:`is-formula`,reflect:!0})],V.prototype,`isFormula`,void 0),r([_()],V.prototype,`_richExpression`,void 0),r([_()],V.prototype,`_unit`,void 0),V=r([i()],V),customElements.get(`luzmo-filter-expression-picker`)||customElements.define(`luzmo-filter-expression-picker`,V);var Ot=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`? between ?`,`YTD`,`QTD`,`MTD`,`WTD`,`to_date`,`last_available`,`last_completed`,`last_now`,`more_than_ago`,`or_more_ago`,`next_now`,`next_full`]),kt=/* @__PURE__ */ new Set([`? length = ?`,`? length >= ?`,`? length <= ?`]),At=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? includes all ?`,`? includes any ?`,`? includes only ?`]);function H(e,t){return!e||e===`spatial`||!t||Ot.has(t)?[]:kt.has(t)?[`numeric`]:e===`numeric`||e===`array[numeric]`?At.has(t)?[`array[numeric]`]:[`numeric`]:e===`datetime`||e===`array[datetime]`?At.has(t)?[`array[datetime]`,`datetime`]:[`datetime`,`array[datetime]`]:e===`hierarchy`||e===`array[hierarchy]`?At.has(t)?[`array[hierarchy]`]:[`hierarchy`]:[]}var jt={numeric:()=>t(`Numeric`,{id:`filter-parameter-type-numeric`,desc:`Numeric filter parameter type`}),datetime:()=>t(`Datetime`,{id:`filter-parameter-type-datetime`,desc:`Datetime filter parameter type`}),hierarchy:()=>t(`Hierarchy`,{id:`filter-parameter-type-hierarchy`,desc:`Hierarchy filter parameter type`}),"array[numeric]":()=>t(`Numeric[]`,{id:`filter-parameter-type-numeric-list`,desc:`List of numeric values filter parameter type`}),"array[datetime]":()=>t(`Datetime[]`,{id:`filter-parameter-type-datetime-list`,desc:`List of datetime values filter parameter type`}),"array[hierarchy]":()=>t(`Hierarchy[]`,{id:`filter-parameter-type-hierarchy-list`,desc:`List of hierarchy values filter parameter type`})};function Mt(e){return jt[e]?.()??e}function U(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.parameter==`string`&&typeof t.type==`string`&&`value`in t}function W(e){return`metadata.${e.trim().replace(/^metadata\./i,``)}`}function Nt(e,t,n){let r;if(t.startsWith(`array[`))r=Array.isArray(n)?structuredClone(n):[];else if(t===`numeric`)r=typeof n==`number`&&Number.isFinite(n)?n:0;else if(t===`datetime`){let e=n instanceof Date?n:new Date(typeof n==`string`?n:Date.now());r=Number.isNaN(e.getTime())?(/* @__PURE__ */ new Date()).toISOString():e.toISOString()}else r=typeof n==`string`?n:``;return{parameter:W(e),type:t,value:r}}function G(e,t){if(!t||t===`? is null`||t===`? is not null`)return;let[n]=H(e,t);if(n?.startsWith(`array[`))return[];if(n===`numeric`)return 0;if(n===`datetime`)return(/* @__PURE__ */ new Date()).toISOString();if(n===`hierarchy`)return``}var Pt=`:host{min-width:0;max-width:100%;color:var(--luzmo-font-color);font-family:var(--luzmo-font-family);font-size:var(--luzmo-font-size);align-items:center;display:inline-flex;position:relative}.parameter-control{align-items:center;gap:var(--filter-parameter-picker-gap);min-width:0;max-width:100%;display:flex}.create-row{align-items:center;gap:var(--filter-parameter-picker-panel-gap);display:flex}.parameter-trigger,.create-parameter{flex:none}.parameter-trigger{font-weight:var(--luzmo-font-weight-bold)}.selected-parameter-tags{--luzmo-tag-group-item-margin-block:0;min-width:0;max-width:100%}.selected-parameter{--luzmo-tag-max-inline-size:min(180px, 100%);min-width:0;max-width:100%}.parameter-panel{min-inline-size:var(--filter-parameter-picker-panel-min-width);padding:var(--filter-parameter-picker-panel-padding);display:block}.parameter-name-input{--luzmo-text-field-width:100%;flex:1;min-inline-size:0}.panel-content{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.validation-message{color:var(--filter-parameter-picker-error-color);font-size:var(--luzmo-font-size-s)}.parameter-options{max-block-size:var(--filter-parameter-picker-options-max-height);overflow-y:auto}.parameter-type-footer{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.parameter-type{justify-content:flex-end;align-items:center;gap:var(--luzmo-spacing-1);font-size:var(--filter-parameter-picker-type-font-size);font-weight:var(--luzmo-font-weight);display:flex}.parameter-type-icon{justify-content:center;align-items:center;min-block-size:24px;min-inline-size:24px;display:inline-flex}:host{--filter-parameter-picker-gap:var(--luzmo-spacing-2);--filter-parameter-picker-control-size:var(--luzmo-component-height);--filter-parameter-picker-panel-min-width:220px;--filter-parameter-picker-options-max-height:240px;--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-s);--filter-parameter-picker-panel-background:var(--luzmo-background-color);--filter-parameter-picker-panel-border:var(--luzmo-border-color);--filter-parameter-picker-error-color:var(--luzmo-negative-color)}:host([size=xxs]),:host([size=xs]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-2);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-2);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=s]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-l)}:host([size=xxl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-5);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-5);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xl)}`,K=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.parameters=[],this.allowedTypes=[],this.disabled=!1,this.readonly=!1,this.quiet=!1,this._open=!1,this._newParameterName=``,this._handleDocumentClick=e=>{this._open&&!e.composedPath().includes(this)&&this._close()}}static get styles(){return[...super.styles??[],v(Pt)]}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this._handleDocumentClick)}disconnectedCallback(){document.removeEventListener(`click`,this._handleDocumentClick),super.disconnectedCallback()}get _selectableParameters(){return this.parameters.filter(e=>this.allowedTypes.includes(e.type))}get _parameterOptions(){return this._selectableParameters.map(e=>({label:e.parameter.replace(/^metadata\./i,``),value:e.parameter}))}get _parameterType(){return this.selectedParameter?.type??this.allowedTypes[0]}get _duplicateName(){if(!this._hasParameterName)return!1;let e=W(this._newParameterName).toLowerCase();return this.parameters.some(t=>W(t.parameter).toLowerCase()===e)}get _triggerIconSize(){return{xxs:`xs`,xs:`xs`,s:`xs`,m:`xs`,l:`s`,xl:`m`,xxl:`l`}[this.size]??`xs`}get _hasParameterName(){return W(this._newParameterName).replace(/^metadata\./i,``).trim().length>0}_dispatchSelected(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-selected`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchCreated(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-created`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchRemoved(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-removed`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}async _handleTriggerClick(){this.disabled||this.readonly||this.allowedTypes.length===0||!this._overlay||(this._open=!0,this._newParameterName=``,this._overlay.open=!0,await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus())}_handleTriggerKeydown(e){(e.key===`Enter`||e.key===` `||e.key===`Space`)&&(e.preventDefault(),this._handleTriggerClick())}_handleOpened(){this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleClosed(){this._open=!1,this._newParameterName=``}_close(){this._overlay&&(this._overlay.open=!1),this._handleClosed(),this._triggerElement?.focusElement.focus()}_handlePanelKeydown(e){e.key===`Escape`&&(e.preventDefault(),this._close())}_handleNameInput(e){this._newParameterName=e.currentTarget.value}_selectParameter(e){this.disabled||this.readonly||(this.selectedParameter=e,this._dispatchSelected(e),this._close())}_handleOptionsChange(e){e.stopPropagation();let[t]=e.detail.value,n=this._selectableParameters.find(e=>e.parameter===t);n&&this._selectParameter(n)}async _handleCreateParameter(){if(this.disabled||this.readonly)return;let e=this.allowedTypes[0];if(!e||!this._hasParameterName||this._duplicateName)return;let t=Nt(this._newParameterName,e,this.currentValue);this.parameters=[...this.parameters,t],this._newParameterName=``,this._dispatchCreated(t),await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleNameKeydown(e){e.key===`Enter`?(e.preventDefault(),this._handleCreateParameter()):e.key===`ArrowDown`&&this._optionsElement&&(e.preventDefault(),this._optionsElement.focus())}_handleRemoveParameter(){this.disabled||this.readonly||!this.selectedParameter||this._dispatchRemoved(this.selectedParameter)}_renderParameterType(){let e=this._parameterType;if(!e)return h;let n=Mt(e);return m`
22
+ </luzmo-select>`}};t([g({type:String,reflect:!0})],V.prototype,`filter`,void 0),t([g({type:Boolean,attribute:`has-label`,reflect:!0})],V.prototype,`hasLabel`,void 0),t([g({type:String,reflect:!0})],V.prototype,`label`,void 0),t([g({type:Boolean,attribute:`allow-empty`,reflect:!0})],V.prototype,`allowEmpty`,void 0),t([g({type:String,attribute:`placeholder`,reflect:!0})],V.prototype,`placeholder`,void 0),t([g({type:Boolean,attribute:`disabled`,reflect:!0})],V.prototype,`disabled`,void 0),t([g({type:Boolean,reflect:!0})],V.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],V.prototype,`quiet`,void 0),t([g({type:String,attribute:`type`,reflect:!0})],V.prototype,`type`,void 0),t([g({type:String,attribute:`subtype`,reflect:!0})],V.prototype,`subtype`,void 0),t([g({type:Boolean,attribute:`invalid`,reflect:!0})],V.prototype,`invalid`,void 0),t([g({type:Boolean,attribute:`is-formula`,reflect:!0})],V.prototype,`isFormula`,void 0),t([_()],V.prototype,`_richExpression`,void 0),t([_()],V.prototype,`_unit`,void 0),V=t([i()],V),customElements.get(`luzmo-filter-expression-picker`)||customElements.define(`luzmo-filter-expression-picker`,V);var Ot=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`? between ?`,`YTD`,`QTD`,`MTD`,`WTD`,`to_date`,`last_available`,`last_completed`,`last_now`,`more_than_ago`,`or_more_ago`,`next_now`,`next_full`]),kt=/* @__PURE__ */ new Set([`? length = ?`,`? length >= ?`,`? length <= ?`]),At=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? includes all ?`,`? includes any ?`,`? includes only ?`]);function H(e,t){return!e||e===`spatial`||!t||Ot.has(t)?[]:kt.has(t)?[`numeric`]:e===`numeric`||e===`array[numeric]`?At.has(t)?[`array[numeric]`]:[`numeric`]:e===`datetime`||e===`array[datetime]`?At.has(t)?[`array[datetime]`,`datetime`]:[`datetime`,`array[datetime]`]:e===`hierarchy`||e===`array[hierarchy]`?At.has(t)?[`array[hierarchy]`]:[`hierarchy`]:[]}var jt={numeric:()=>n(`Numeric`,{id:`filter-parameter-type-numeric`,desc:`Numeric filter parameter type`}),datetime:()=>n(`Datetime`,{id:`filter-parameter-type-datetime`,desc:`Datetime filter parameter type`}),hierarchy:()=>n(`Hierarchy`,{id:`filter-parameter-type-hierarchy`,desc:`Hierarchy filter parameter type`}),"array[numeric]":()=>n(`Numeric[]`,{id:`filter-parameter-type-numeric-list`,desc:`List of numeric values filter parameter type`}),"array[datetime]":()=>n(`Datetime[]`,{id:`filter-parameter-type-datetime-list`,desc:`List of datetime values filter parameter type`}),"array[hierarchy]":()=>n(`Hierarchy[]`,{id:`filter-parameter-type-hierarchy-list`,desc:`List of hierarchy values filter parameter type`})};function Mt(e){return jt[e]?.()??e}function U(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.parameter==`string`&&typeof t.type==`string`&&`value`in t}function W(e){return`metadata.${e.trim().replace(/^metadata\./i,``)}`}function Nt(e,t,n){let r;if(t.startsWith(`array[`))r=Array.isArray(n)?structuredClone(n):[];else if(t===`numeric`)r=typeof n==`number`&&Number.isFinite(n)?n:0;else if(t===`datetime`){let e=n instanceof Date?n:new Date(typeof n==`string`?n:Date.now());r=Number.isNaN(e.getTime())?(/* @__PURE__ */ new Date()).toISOString():e.toISOString()}else r=typeof n==`string`?n:``;return{parameter:W(e),type:t,value:r}}function G(e,t){if(!t||t===`? is null`||t===`? is not null`)return;let[n]=H(e,t);if(n?.startsWith(`array[`))return[];if(n===`numeric`)return 0;if(n===`datetime`)return(/* @__PURE__ */ new Date()).toISOString();if(n===`hierarchy`)return``}var Pt=`:host{min-width:0;max-width:100%;color:var(--luzmo-font-color);font-family:var(--luzmo-font-family);font-size:var(--luzmo-font-size);align-items:center;display:inline-flex;position:relative}.parameter-control{align-items:center;gap:var(--filter-parameter-picker-gap);min-width:0;max-width:100%;display:flex}.create-row{align-items:center;gap:var(--filter-parameter-picker-panel-gap);display:flex}.parameter-trigger,.create-parameter{flex:none}.parameter-trigger{font-weight:var(--luzmo-font-weight-bold)}.selected-parameter-tags{--luzmo-tag-group-item-margin-block:0;min-width:0;max-width:100%}.selected-parameter{--luzmo-tag-max-inline-size:min(180px, 100%);min-width:0;max-width:100%}.parameter-panel{min-inline-size:var(--filter-parameter-picker-panel-min-width);padding:var(--filter-parameter-picker-panel-padding);display:block}.parameter-name-input{--luzmo-text-field-width:100%;flex:1;min-inline-size:0}.panel-content{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.validation-message{color:var(--filter-parameter-picker-error-color);font-size:var(--luzmo-font-size-s)}.parameter-options{max-block-size:var(--filter-parameter-picker-options-max-height);overflow-y:auto}.parameter-type-footer{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.parameter-type{justify-content:flex-end;align-items:center;gap:var(--luzmo-spacing-1);font-size:var(--filter-parameter-picker-type-font-size);font-weight:var(--luzmo-font-weight);display:flex}.parameter-type-icon{justify-content:center;align-items:center;min-block-size:24px;min-inline-size:24px;display:inline-flex}:host{--filter-parameter-picker-gap:var(--luzmo-spacing-2);--filter-parameter-picker-control-size:var(--luzmo-component-height);--filter-parameter-picker-panel-min-width:220px;--filter-parameter-picker-options-max-height:240px;--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-s);--filter-parameter-picker-panel-background:var(--luzmo-background-color);--filter-parameter-picker-panel-border:var(--luzmo-border-color);--filter-parameter-picker-error-color:var(--luzmo-negative-color)}:host([size=xxs]),:host([size=xs]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-2);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-2);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=s]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-l)}:host([size=xxl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-5);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-5);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xl)}`,K=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.parameters=[],this.allowedTypes=[],this.disabled=!1,this.readonly=!1,this.quiet=!1,this._open=!1,this._newParameterName=``,this._handleDocumentClick=e=>{this._open&&!e.composedPath().includes(this)&&this._close()}}static get styles(){return[...super.styles??[],v(Pt)]}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this._handleDocumentClick)}disconnectedCallback(){document.removeEventListener(`click`,this._handleDocumentClick),super.disconnectedCallback()}get _selectableParameters(){return this.parameters.filter(e=>this.allowedTypes.includes(e.type))}get _parameterOptions(){return this._selectableParameters.map(e=>({label:e.parameter.replace(/^metadata\./i,``),value:e.parameter}))}get _parameterType(){return this.selectedParameter?.type??this.allowedTypes[0]}get _duplicateName(){if(!this._hasParameterName)return!1;let e=W(this._newParameterName).toLowerCase();return this.parameters.some(t=>W(t.parameter).toLowerCase()===e)}get _triggerIconSize(){return{xxs:`xs`,xs:`xs`,s:`xs`,m:`xs`,l:`s`,xl:`m`,xxl:`l`}[this.size]??`xs`}get _hasParameterName(){return W(this._newParameterName).replace(/^metadata\./i,``).trim().length>0}_dispatchSelected(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-selected`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchCreated(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-created`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchRemoved(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-removed`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}async _handleTriggerClick(){this.disabled||this.readonly||this.allowedTypes.length===0||!this._overlay||(this._open=!0,this._newParameterName=``,this._overlay.open=!0,await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus())}_handleTriggerKeydown(e){(e.key===`Enter`||e.key===` `||e.key===`Space`)&&(e.preventDefault(),this._handleTriggerClick())}_handleOpened(){this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleClosed(){this._open=!1,this._newParameterName=``}_close(){this._overlay&&(this._overlay.open=!1),this._handleClosed(),this._triggerElement?.focusElement.focus()}_handlePanelKeydown(e){e.key===`Escape`&&(e.preventDefault(),this._close())}_handleNameInput(e){this._newParameterName=e.currentTarget.value}_selectParameter(e){this.disabled||this.readonly||(this.selectedParameter=e,this._dispatchSelected(e),this._close())}_handleOptionsChange(e){e.stopPropagation();let[t]=e.detail.value,n=this._selectableParameters.find(e=>e.parameter===t);n&&this._selectParameter(n)}async _handleCreateParameter(){if(this.disabled||this.readonly)return;let e=this.allowedTypes[0];if(!e||!this._hasParameterName||this._duplicateName)return;let t=Nt(this._newParameterName,e,this.currentValue);this.parameters=[...this.parameters,t],this._newParameterName=``,this._dispatchCreated(t),await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleNameKeydown(e){e.key===`Enter`?(e.preventDefault(),this._handleCreateParameter()):e.key===`ArrowDown`&&this._optionsElement&&(e.preventDefault(),this._optionsElement.focus())}_handleRemoveParameter(){this.disabled||this.readonly||!this.selectedParameter||this._dispatchRemoved(this.selectedParameter)}_renderParameterType(){let e=this._parameterType;if(!e)return h;let t=Mt(e);return m`
23
23
  <div class="parameter-type-footer">
24
24
  <luzmo-divider class="parameter-type-divider" size="s"></luzmo-divider>
25
25
  <div class="parameter-type">
26
- <span>${t(`Parameter type:`,{desc:`Label preceding the type of the filter parameter`})}</span>
27
- <span class="parameter-type-icon" tabindex="0" role="img" aria-label=${n}>
26
+ <span>${n(`Parameter type:`,{desc:`Label preceding the type of the filter parameter`})}</span>
27
+ <span class="parameter-type-icon" tabindex="0" role="img" aria-label=${t}>
28
28
  <luzmo-icon
29
29
  aria-hidden="true"
30
30
  .icon=${c({type:e},`s`)}
31
31
  size="s"
32
32
  ></luzmo-icon>
33
- <luzmo-tooltip self-managed placement="top" .size=${this.size}>${n}</luzmo-tooltip>
33
+ <luzmo-tooltip self-managed placement="top" .size=${this.size}>${t}</luzmo-tooltip>
34
34
  </span>
35
35
  </div>
36
36
  </div>
37
- `}render(){let e=this.selectedParameter?.parameter.replace(/^metadata\./i,``),n=!this._hasParameterName||this._duplicateName;return m`
37
+ `}render(){let e=this.selectedParameter?.parameter.replace(/^metadata\./i,``),t=!this._hasParameterName||this._duplicateName;return m`
38
38
  <div class="parameter-control">
39
39
  ${this.selectedParameter?m`
40
40
  <luzmo-tags class="selected-parameter-tags">
@@ -45,7 +45,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
45
45
  treatment="fill"
46
46
  ?deletable=${!this.disabled&&!this.readonly}
47
47
  ?disabled=${this.disabled}
48
- aria-label=${t(`Remove parameter`,{desc:`Detach a parameter from a filter`})}
48
+ aria-label=${n(`Remove parameter`,{desc:`Detach a parameter from a filter`})}
49
49
  @delete=${this._handleRemoveParameter}
50
50
  >
51
51
  ${e}
@@ -58,8 +58,8 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
58
58
  size=${this.size}
59
59
  ?quiet=${this.quiet||!this.selectedParameter}
60
60
  .variant=${this.selectedParameter?`primary`:`neutral`}
61
- aria-label=${t(`Use parameter`,{desc:`Open the filter parameter picker`})}
62
- .label=${t(`Use parameter`,{desc:`Open the filter parameter picker`})}
61
+ aria-label=${n(`Use parameter`,{desc:`Open the filter parameter picker`})}
62
+ .label=${n(`Use parameter`,{desc:`Open the filter parameter picker`})}
63
63
  aria-haspopup="dialog"
64
64
  aria-disabled=${this.readonly?`true`:`false`}
65
65
  aria-expanded=${this._open?`true`:`false`}
@@ -81,7 +81,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
81
81
  class="parameter-panel"
82
82
  size=${this.size}
83
83
  role="dialog"
84
- aria-label=${t(`Filter parameters`,{desc:`Filter parameter picker dialog label`})}
84
+ aria-label=${n(`Filter parameters`,{desc:`Filter parameter picker dialog label`})}
85
85
  @keydown=${this._handlePanelKeydown}
86
86
  >
87
87
  <div class="panel-content">
@@ -90,8 +90,8 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
90
90
  id="parameter-name"
91
91
  class="parameter-name-input"
92
92
  size=${this.size}
93
- .label=${t(`Parameter name`,{desc:`Name for a new filter parameter`})}
94
- .placeholder=${t(`New parameter…`,{desc:`Placeholder of the new filter parameter name field`})}
93
+ .label=${n(`Parameter name`,{desc:`Name for a new filter parameter`})}
94
+ .placeholder=${n(`New parameter…`,{desc:`Placeholder of the new filter parameter name field`})}
95
95
  .invalid=${this._duplicateName}
96
96
  .value=${this._newParameterName}
97
97
  @input=${this._handleNameInput}
@@ -101,19 +101,19 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
101
101
  class="create-parameter"
102
102
  size=${this.size}
103
103
  variant="primary"
104
- ?disabled=${n}
104
+ ?disabled=${t}
105
105
  @click=${this._handleCreateParameter}
106
106
  >
107
- ${t(`Add`,{desc:`Create a new filter parameter`})}
107
+ ${n(`Add`,{desc:`Create a new filter parameter`})}
108
108
  </luzmo-button>
109
109
  </div>
110
110
  ${this._duplicateName?m`<div class="validation-message" role="alert">
111
- ${t(`A parameter with this name already exists.`,{desc:`Duplicate filter parameter name error`})}
111
+ ${n(`A parameter with this name already exists.`,{desc:`Duplicate filter parameter name error`})}
112
112
  </div>`:h}
113
113
  ${this._parameterOptions.length>0?m`<luzmo-options
114
114
  class="parameter-options"
115
115
  size=${this.size}
116
- .label=${t(`Available parameters`,{desc:`Accessible label of the filter parameter list`})}
116
+ .label=${n(`Available parameters`,{desc:`Accessible label of the filter parameter list`})}
117
117
  .options=${this._parameterOptions}
118
118
  .value=${this.selectedParameter?[this.selectedParameter.parameter]:[]}
119
119
  @change=${this._handleOptionsChange}
@@ -123,8 +123,8 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
123
123
  </luzmo-popover>
124
124
  </luzmo-overlay>
125
125
  </div>
126
- `}};r([g({attribute:!1})],K.prototype,`parameters`,void 0),r([g({attribute:!1})],K.prototype,`allowedTypes`,void 0),r([g({attribute:!1})],K.prototype,`selectedParameter`,void 0),r([g({attribute:!1})],K.prototype,`currentValue`,void 0),r([g({type:Boolean,reflect:!0})],K.prototype,`disabled`,void 0),r([g({type:Boolean,reflect:!0})],K.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],K.prototype,`quiet`,void 0),r([_()],K.prototype,`_open`,void 0),r([_()],K.prototype,`_newParameterName`,void 0),r([re(`luzmo-overlay`)],K.prototype,`_overlay`,void 0),r([re(`.parameter-trigger`)],K.prototype,`_triggerElement`,void 0),r([re(`.parameter-options`)],K.prototype,`_optionsElement`,void 0),K=r([i()],K),typeof customElements<`u`&&!customElements.get(`luzmo-filter-parameter-picker`)&&customElements.define(`luzmo-filter-parameter-picker`,K);var Ft=`:host{flex-direction:row;min-width:0;max-width:100%;display:flex}luzmo-text-field{min-width:var(--luzmo-filter-value-picker-control-min-width,var(--filter-value-picker-control-min-width));max-width:100%}luzmo-filter-value-picker-datetime,luzmo-filter-value-picker-hierarchy,luzmo-filter-value-picker-numeric{flex:1;min-width:0;max-width:100%}:host{--filter-value-picker-control-min-width:0}`,It=`:host{gap:var(--luzmo-filter-value-picker-datetime-gap,var(--filter-value-picker-datetime-gap));flex-flow:row;width:100%;min-width:0;max-width:100%;display:flex}luzmo-date-time-picker{--luzmo-date-time-picker-min-width:var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));flex:auto;min-width:0;max-width:100%}luzmo-number-field{flex:0 1 var(--luzmo-filter-value-picker-datetime-quantity-width,var(--filter-value-picker-datetime-quantity-width));min-width:0;max-width:100%}luzmo-picker{flex:1 1 var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));min-width:0;max-width:100%}:host{--filter-value-picker-datetime-gap:var(--luzmo-spacing-3);--filter-value-picker-datetime-control-min-width:5rem;--filter-value-picker-datetime-quantity-width:4.5rem}:host([size=s]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-2)}:host([size=m]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-value-picker-datetime-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1))}:host([size=xl]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-4)}`,q=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1}static get styles(){return[v(It)]}willUpdate(e){super.willUpdate(e),e.get(`filter`)&&([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(this.filter?.expression)?this.filter.parameters[1]={quantity:this.filter?.parameters?.[1]?.quantity??1,unit:this.filter?.parameters?.[1]?.unit??1}:[`last_completed`,`next_full`,`to_date`].includes(this.filter?.expression)?this.filter.parameters[1]={unit:this.filter?.parameters?.[1]?.unit??1}:this.filter.parameters[1]=typeof this.filter.parameters[1]==`string`?this.filter.parameters[1]:(/* @__PURE__ */ new Date()).toISOString())}_sendChangeEvent(){this.filter.parameters=[{...this.filter?.parameters?.[0]},this._value],this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setDate(e){this.readonly||this.disabled||(this._value=e.detail.value,this._value!==this.filter?.parameters?.[1]&&this._sendChangeEvent())}setUnit(e){if(this.readonly||this.disabled)return;let t=o.find(t=>t.key===e?.target?.value)?.level;this.filter?.parameters?.[1]?.unit!==t&&(this._value={unit:t??1,quantity:this.filter?.parameters?.[1]?.quantity??1},this._sendChangeEvent())}setQuantity(e){if(this.readonly||this.disabled)return;let t=e?.target?.value;this.filter?.parameters?.[1]?.quantity!==t&&(this._value={quantity:t,unit:this.filter?.parameters?.[1]?.unit??1},this._sendChangeEvent())}renderDatePicker(){let e=`second`;return this.filter?.parameters?.[0]?.lowestLevel>4&&(e=this.filter?.parameters?.[0]?.lowestLevel===5?`day`:this.filter?.parameters?.[0]?.lowestLevel===6?`hour`:this.filter?.parameters?.[0]?.lowestLevel===7?`minute`:`second`),m`<luzmo-date-time-picker
127
- aria-label=${t(`Filter date`,{desc:`Aria label for filter date picker`})}
126
+ `}};t([g({attribute:!1})],K.prototype,`parameters`,void 0),t([g({attribute:!1})],K.prototype,`allowedTypes`,void 0),t([g({attribute:!1})],K.prototype,`selectedParameter`,void 0),t([g({attribute:!1})],K.prototype,`currentValue`,void 0),t([g({type:Boolean,reflect:!0})],K.prototype,`disabled`,void 0),t([g({type:Boolean,reflect:!0})],K.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],K.prototype,`quiet`,void 0),t([_()],K.prototype,`_open`,void 0),t([_()],K.prototype,`_newParameterName`,void 0),t([re(`luzmo-overlay`)],K.prototype,`_overlay`,void 0),t([re(`.parameter-trigger`)],K.prototype,`_triggerElement`,void 0),t([re(`.parameter-options`)],K.prototype,`_optionsElement`,void 0),K=t([i()],K),typeof customElements<`u`&&!customElements.get(`luzmo-filter-parameter-picker`)&&customElements.define(`luzmo-filter-parameter-picker`,K);var Ft=`:host{flex-direction:row;min-width:0;max-width:100%;display:flex}luzmo-text-field{min-width:var(--luzmo-filter-value-picker-control-min-width,var(--filter-value-picker-control-min-width));max-width:100%}luzmo-filter-value-picker-datetime,luzmo-filter-value-picker-hierarchy,luzmo-filter-value-picker-numeric{flex:1;min-width:0;max-width:100%}:host{--filter-value-picker-control-min-width:0}`,It=`:host{gap:var(--luzmo-filter-value-picker-datetime-gap,var(--filter-value-picker-datetime-gap));flex-flow:row;width:100%;min-width:0;max-width:100%;display:flex}luzmo-date-time-picker{--luzmo-date-time-picker-min-width:var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));flex:auto;min-width:0;max-width:100%}luzmo-number-field{flex:0 1 var(--luzmo-filter-value-picker-datetime-quantity-width,var(--filter-value-picker-datetime-quantity-width));min-width:0;max-width:100%}luzmo-picker{flex:1 1 var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));min-width:0;max-width:100%}:host{--filter-value-picker-datetime-gap:var(--luzmo-spacing-3);--filter-value-picker-datetime-control-min-width:5rem;--filter-value-picker-datetime-quantity-width:4.5rem}:host([size=s]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-2)}:host([size=m]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-value-picker-datetime-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1))}:host([size=xl]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-4)}`,q=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1}static get styles(){return[v(It)]}willUpdate(e){super.willUpdate(e),e.get(`filter`)&&([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(this.filter?.expression)?this.filter.parameters[1]={quantity:this.filter?.parameters?.[1]?.quantity??1,unit:this.filter?.parameters?.[1]?.unit??1}:[`last_completed`,`next_full`,`to_date`].includes(this.filter?.expression)?this.filter.parameters[1]={unit:this.filter?.parameters?.[1]?.unit??1}:this.filter.parameters[1]=typeof this.filter.parameters[1]==`string`?this.filter.parameters[1]:(/* @__PURE__ */ new Date()).toISOString())}_sendChangeEvent(){this.filter.parameters=[{...this.filter?.parameters?.[0]},this._value],this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setDate(e){this.readonly||this.disabled||(this._value=e.detail.value,this._value!==this.filter?.parameters?.[1]&&this._sendChangeEvent())}setUnit(e){if(this.readonly||this.disabled)return;let t=o.find(t=>t.key===e?.target?.value)?.level;this.filter?.parameters?.[1]?.unit!==t&&(this._value={unit:t??1,quantity:this.filter?.parameters?.[1]?.quantity??1},this._sendChangeEvent())}setQuantity(e){if(this.readonly||this.disabled)return;let t=e?.target?.value;this.filter?.parameters?.[1]?.quantity!==t&&(this._value={quantity:t,unit:this.filter?.parameters?.[1]?.unit??1},this._sendChangeEvent())}renderDatePicker(){let e=`second`;return this.filter?.parameters?.[0]?.lowestLevel>4&&(e=this.filter?.parameters?.[0]?.lowestLevel===5?`day`:this.filter?.parameters?.[0]?.lowestLevel===6?`hour`:this.filter?.parameters?.[0]?.lowestLevel===7?`minute`:`second`),m`<luzmo-date-time-picker
127
+ aria-label=${n(`Filter date`,{desc:`Aria label for filter date picker`})}
128
128
  .size=${this.size}
129
129
  .quiet=${this.quiet}
130
130
  .readonly=${this.readonly}
@@ -134,7 +134,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
134
134
  @change=${this.setDate}
135
135
  .value=${this.filter?.parameters?.[1]}
136
136
  ></luzmo-date-time-picker>`}renderQuantityField(){return m`<luzmo-number-field
137
- label=${t(`Quantity`,{desc:`Label for quantity number field`})}
137
+ label=${n(`Quantity`,{desc:`Label for quantity number field`})}
138
138
  .size=${this.size}
139
139
  .quiet=${this.quiet}
140
140
  .readonly=${this.readonly}
@@ -144,18 +144,18 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
144
144
  @change=${this.setQuantity}
145
145
  ></luzmo-number-field>`}renderUnitPicker(){let e=o.map(e=>m`<luzmo-menu-item .value=${e.key}>
146
146
  ${e.i18n()}
147
- </luzmo-menu-item>`),n=o.find(e=>e.level===this.filter?.parameters?.[1]?.unit)?.key??o?.[0]?.key;return m`<luzmo-picker
148
- .label=${t(`Time unit`,{desc:`Aria label for time unit picker`})}
147
+ </luzmo-menu-item>`),t=o.find(e=>e.level===this.filter?.parameters?.[1]?.unit)?.key??o?.[0]?.key;return m`<luzmo-picker
148
+ .label=${n(`Time unit`,{desc:`Aria label for time unit picker`})}
149
149
  .size=${this.size}
150
150
  .quiet=${this.quiet}
151
151
  .readonly=${this.readonly}
152
152
  .disabled=${this.disabled}
153
- .value=${n}
153
+ .value=${t}
154
154
  @change=${this.setUnit}
155
155
  variant="highlight"
156
156
  >${e}</luzmo-picker
157
- >`}render(){let e=this.filter?.expression;return[`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(e)?m`${this.renderQuantityField()}${this.renderUnitPicker()}`:[`last_completed`,`next_full`].includes(e)?this.renderUnitPicker():this.renderDatePicker()}};r([g({type:String,attribute:`content-language`,reflect:!0})],q.prototype,`contentLanguage`,void 0),r([g({type:String,attribute:`time-zone`,reflect:!0})],q.prototype,`timeZone`,void 0),r([g({type:Object,reflect:!1})],q.prototype,`filter`,void 0),r([g({type:Boolean,reflect:!0})],q.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],q.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],q.prototype,`disabled`,void 0),q=r([i()],q),customElements.get(`luzmo-filter-value-picker-datetime`)||customElements.define(`luzmo-filter-value-picker-datetime`,q);var Lt=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-select,luzmo-text-field{min-width:var(--luzmo-filter-value-picker-hierarchy-control-min-width,var(--filter-value-picker-hierarchy-control-min-width));flex:auto;max-width:100%}.missing-value{color:var(--luzmo-filter-value-picker-hierarchy-missing-value-color,#767676)}:host{--filter-value-picker-hierarchy-control-min-width:0}`,Rt=5e3,J=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._hierarchyValues=[],this._retrieving=!1,this._search=``,this._error=null,this._pending=!1,this._allValuesRetrieved=!1,this._hierarchyRequestGeneration=0,this._runningQueries=[]}static get styles(){return[v(Lt)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),f.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`),n=t?.expression,r=t?.parameters?.[0],i=this.filter?.parameters?.[0],a=(r?.columnId||r?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||r?.datasetId!==i?.datasetId;this.filter?.parameters?.[1]!==this._lastResolvedOutput&&(this._lastResolutionKey=void 0),a&&(this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1),a&&([`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter?.expression)||![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(n))&&(this._hierarchyValues=[],this._allValuesRetrieved=!1),[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter.expression)&&this._hierarchyValues.length===0&&this._restoreCachedFirstPage()}}updated(e){if(super.updated(e),!e.has(`filter`)||!this.filter)return;let t=e.get(`filter`)?.expression,n=[`? = ?`,`? != ?`].includes(this.filter.expression)&&t!==void 0&&![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(t);n&&this._hierarchyValues.length>0?this._resolveSingleSelectValue():n&&!this._retrieving&&queueMicrotask(()=>{[`? = ?`,`? != ?`].includes(this.filter?.expression)&&this._hierarchyValues.length===0&&!this._retrieving&&this._fetchHierarchyValues(0,!0)})}_buildHierarchyQuery(e=0,t=this._search){let n=this.filter?.parameters?.[0];if(!n?.datasetId||!n.columnId&&!n.formulaId)return null;let r={column_id:n.columnId,formula_id:n.formulaId,dataset_id:n.datasetId},i={dimensions:[r],where:[],order:[{...r,order:`asc`}],limit:{by:Rt,offset:e}};return t&&i.where.push({expression:`? like ?`,parameters:[r,t]}),i}_getValues(e){return e&&Array.isArray(e.data)?e.data.map(e=>e[0]):[]}_applyHierarchyResult(e,t,n){let r=this._getValues(e);n||(this._allValuesRetrieved=r.length<Rt),this._hierarchyValues=t>0?[...this._hierarchyValues,...r]:r}_restoreCachedFirstPage(){let e=this._buildHierarchyQuery(0,``);if(!e)return!1;let t=f.getCachedData(e);return t?(this._applyHierarchyResult(t,0,``),this._retrieving=!1,this._error=null,!0):!1}_getMemberLabel(e){let t=p(e?.name,this.contentLanguage,{allowEmpty:!0});return typeof t==`string`?t:``}_findExactMember(e){return this._hierarchyValues.find(t=>String(t?.id)===e||this._getMemberLabel(t)===e)}_resolveSingleSelectValue(){if(![`? = ?`,`? != ?`].includes(this.filter?.expression)||this._hierarchyValues.length===0)return;let e=this.filter?.parameters?.[1];if(typeof e!=`string`&&typeof e!=`number`)return;let t=String(e),n=this._findExactMember(t),r=t.toLocaleLowerCase(this.contentLanguage),i=n??this._hierarchyValues.find(e=>String(e?.id).toLocaleLowerCase(this.contentLanguage).includes(r)||this._getMemberLabel(e).toLocaleLowerCase(this.contentLanguage).includes(r)),a=(n??i??this._hierarchyValues[0])?.id;if(typeof a!=`string`&&typeof a!=`number`)return;let o=this.filter.parameters[0],s=[o.datasetId,o.columnId??o.formulaId,this.filter.expression,String(e),String(a)].join(`|`);s!==this._lastResolutionKey&&(this._lastResolutionKey=s,this._lastResolvedOutput=a,this._value=a,this.filter={...this.filter,parameters:[{...this.filter.parameters[0]},a]},this._sendChangeEvent())}async _fetchHierarchyValues(e=0,t=!1){let n=this._search;if(!n&&this._allValuesRetrieved||e===0&&!n&&(this._restoreCachedFirstPage()||this._hierarchyValues.length>0)){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let r=this.filter.parameters[0],i=r.columnId,a=r.formulaId,o=r.datasetId;if(!i&&!a){this._retrieving=!1,this._error=`Missing column id or formula id`;return}if(!o){this._retrieving=!1,this._error=`Missing dataset id`;return}let s=this._buildHierarchyQuery(e,n);if(!s)return;let c=this._hierarchyRequestGeneration;this._pending=t,this._retrieving=!0,this._error=null;let l=new AbortController,u=new Promise((e,t)=>{f.fetchData(s).then(e).catch(t),l.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),t({status:`aborted`})})}),d={promise:u,abortController:l};this._runningQueries.push(d);try{let r=await u;if(c!==this._hierarchyRequestGeneration)return;this._applyHierarchyResult(r,e,n),t&&!n&&this._resolveSingleSelectValue()}catch(e){if(c!==this._hierarchyRequestGeneration||e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._hierarchyValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==u),c===this._hierarchyRequestGeneration&&(this._pending=!1,this._retrieving=!1)}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setHierarchy(e){if(this.readonly||this.disabled)return;let t;t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:[`? = ?`,`? != ?`].includes(this.filter?.expression)?e?.detail?.value?.[0]:e?.target?.value,this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},this._value]},this._sendChangeEvent())}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._hierarchyValues.length-1&&this._fetchHierarchyValues(this._hierarchyValues.length)}renderTextField(){return m`<luzmo-text-field
158
- label=${t(`Filter value`,{desc:`Label for filter value text field`})}
157
+ >`}render(){let e=this.filter?.expression;return[`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(e)?m`${this.renderQuantityField()}${this.renderUnitPicker()}`:[`last_completed`,`next_full`].includes(e)?this.renderUnitPicker():this.renderDatePicker()}};t([g({type:String,attribute:`content-language`,reflect:!0})],q.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],q.prototype,`timeZone`,void 0),t([g({type:Object,reflect:!1})],q.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],q.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],q.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],q.prototype,`disabled`,void 0),q=t([i()],q),customElements.get(`luzmo-filter-value-picker-datetime`)||customElements.define(`luzmo-filter-value-picker-datetime`,q);var Lt=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-select,luzmo-text-field{min-width:var(--luzmo-filter-value-picker-hierarchy-control-min-width,var(--filter-value-picker-hierarchy-control-min-width));flex:auto;max-width:100%}.missing-value{color:var(--luzmo-filter-value-picker-hierarchy-missing-value-color,#767676)}:host{--filter-value-picker-hierarchy-control-min-width:0}`,Rt=5e3,J=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._hierarchyValues=[],this._retrieving=!1,this._search=``,this._error=null,this._pending=!1,this._allValuesRetrieved=!1,this._hierarchyRequestGeneration=0,this._runningQueries=[]}static get styles(){return[v(Lt)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),f.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`),n=t?.expression,r=t?.parameters?.[0],i=this.filter?.parameters?.[0],a=(r?.columnId||r?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||r?.datasetId!==i?.datasetId;this.filter?.parameters?.[1]!==this._lastResolvedOutput&&(this._lastResolutionKey=void 0),a&&(this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1),a&&([`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter?.expression)||![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(n))&&(this._hierarchyValues=[],this._allValuesRetrieved=!1),[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter.expression)&&this._hierarchyValues.length===0&&this._restoreCachedFirstPage()}}updated(e){if(super.updated(e),!e.has(`filter`)||!this.filter)return;let t=e.get(`filter`)?.expression,n=[`? = ?`,`? != ?`].includes(this.filter.expression)&&t!==void 0&&![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(t);n&&this._hierarchyValues.length>0?this._resolveSingleSelectValue():n&&!this._retrieving&&queueMicrotask(()=>{[`? = ?`,`? != ?`].includes(this.filter?.expression)&&this._hierarchyValues.length===0&&!this._retrieving&&this._fetchHierarchyValues(0,!0)})}_buildHierarchyQuery(e=0,t=this._search){let n=this.filter?.parameters?.[0];if(!n?.datasetId||!n.columnId&&!n.formulaId)return null;let r={column_id:n.columnId,formula_id:n.formulaId,dataset_id:n.datasetId},i={dimensions:[r],where:[],order:[{...r,order:`asc`}],limit:{by:Rt,offset:e}};return t&&i.where.push({expression:`? like ?`,parameters:[r,t]}),i}_getValues(e){return e&&Array.isArray(e.data)?e.data.map(e=>e[0]):[]}_applyHierarchyResult(e,t,n){let r=this._getValues(e);n||(this._allValuesRetrieved=r.length<Rt),this._hierarchyValues=t>0?[...this._hierarchyValues,...r]:r}_restoreCachedFirstPage(){let e=this._buildHierarchyQuery(0,``);if(!e)return!1;let t=f.getCachedData(e);return t?(this._applyHierarchyResult(t,0,``),this._retrieving=!1,this._error=null,!0):!1}_getMemberLabel(e){let t=p(e?.name,this.contentLanguage,{allowEmpty:!0});return typeof t==`string`?t:``}_findExactMember(e){return this._hierarchyValues.find(t=>String(t?.id)===e||this._getMemberLabel(t)===e)}_resolveSingleSelectValue(){if(![`? = ?`,`? != ?`].includes(this.filter?.expression)||this._hierarchyValues.length===0)return;let e=this.filter?.parameters?.[1];if(typeof e!=`string`&&typeof e!=`number`)return;let t=String(e),n=this._findExactMember(t),r=t.toLocaleLowerCase(this.contentLanguage),i=n??this._hierarchyValues.find(e=>String(e?.id).toLocaleLowerCase(this.contentLanguage).includes(r)||this._getMemberLabel(e).toLocaleLowerCase(this.contentLanguage).includes(r)),a=(n??i??this._hierarchyValues[0])?.id;if(typeof a!=`string`&&typeof a!=`number`)return;let o=this.filter.parameters[0],s=[o.datasetId,o.columnId??o.formulaId,this.filter.expression,String(e),String(a)].join(`|`);s!==this._lastResolutionKey&&(this._lastResolutionKey=s,this._lastResolvedOutput=a,this._value=a,this.filter={...this.filter,parameters:[{...this.filter.parameters[0]},a]},this._sendChangeEvent())}async _fetchHierarchyValues(e=0,t=!1){let n=this._search;if(!n&&this._allValuesRetrieved||e===0&&!n&&(this._restoreCachedFirstPage()||this._hierarchyValues.length>0)){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let r=this.filter.parameters[0],i=r.columnId,a=r.formulaId,o=r.datasetId;if(!i&&!a){this._retrieving=!1,this._error=`Missing column id or formula id`;return}if(!o){this._retrieving=!1,this._error=`Missing dataset id`;return}let s=this._buildHierarchyQuery(e,n);if(!s)return;let c=this._hierarchyRequestGeneration;this._pending=t,this._retrieving=!0,this._error=null;let l=new AbortController,u=new Promise((e,t)=>{f.fetchData(s).then(e).catch(t),l.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),t({status:`aborted`})})}),d={promise:u,abortController:l};this._runningQueries.push(d);try{let r=await u;if(c!==this._hierarchyRequestGeneration)return;this._applyHierarchyResult(r,e,n),t&&!n&&this._resolveSingleSelectValue()}catch(e){if(c!==this._hierarchyRequestGeneration||e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._hierarchyValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==u),c===this._hierarchyRequestGeneration&&(this._pending=!1,this._retrieving=!1)}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setHierarchy(e){if(this.readonly||this.disabled)return;let t;t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:[`? = ?`,`? != ?`].includes(this.filter?.expression)?e?.detail?.value?.[0]:e?.target?.value,this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},this._value]},this._sendChangeEvent())}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._hierarchyValues.length-1&&this._fetchHierarchyValues(this._hierarchyValues.length)}renderTextField(){return m`<luzmo-text-field
158
+ label=${n(`Filter value`,{desc:`Label for filter value text field`})}
159
159
  .size=${this.size}
160
160
  .quiet=${this.quiet}
161
161
  .readonly=${this.readonly}
@@ -163,7 +163,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
163
163
  @change=${this.setHierarchy}
164
164
  @input=${this.setHierarchy}
165
165
  .value=${this.filter?.parameters?.[1]??``}
166
- ></luzmo-text-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchHierarchyValues()},500))}resetSearchString(){this._search=``,this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1,this._restoreCachedFirstPage()}onOpened(){this._fetchHierarchyValues()}_getSelectedOptionValue(){let e=this.filter?.parameters?.[1];return typeof e!=`string`&&typeof e!=`number`?e:this._findExactMember(String(e))?.id??e}renderHierarchyPicker(){if(this._error)return m`<div class="error" role="alert">Error: ${this._error}</div>`;let e=(this._search?this._hierarchyValues.filter(e=>p(e.name,this.contentLanguage,{allowEmpty:!0})?.toLowerCase().includes(this._search.toLowerCase())||e.toString().toLowerCase().includes(this._search.toLowerCase())):this._hierarchyValues).map(e=>{let t=p(e?.name,this.contentLanguage)??`N/A`;return typeof t!=`string`&&(t=`N/A`),{value:e?.id,label:t}}),n=this.filter?.expression,r=[`? = ?`,`? != ?`].includes(n),i=t(`Selected {count} items`),a=t(`Search`),o=t(`No data`),s=t(`No results`),c=t(`Select...`);return m`<luzmo-select
166
+ ></luzmo-text-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchHierarchyValues()},500))}resetSearchString(){this._search=``,this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1,this._restoreCachedFirstPage()}onOpened(){this._fetchHierarchyValues()}_getSelectedOptionValue(){let e=this.filter?.parameters?.[1];return typeof e!=`string`&&typeof e!=`number`?e:this._findExactMember(String(e))?.id??e}renderHierarchyPicker(){if(this._error)return m`<div class="error" role="alert">Error: ${this._error}</div>`;let e=(this._search?this._hierarchyValues.filter(e=>p(e.name,this.contentLanguage,{allowEmpty:!0})?.toLowerCase().includes(this._search.toLowerCase())||e.toString().toLowerCase().includes(this._search.toLowerCase())):this._hierarchyValues).map(e=>{let t=p(e?.name,this.contentLanguage)??`N/A`;return typeof t!=`string`&&(t=`N/A`),{value:e?.id,label:t}}),t=this.filter?.expression,r=[`? = ?`,`? != ?`].includes(t),i=n(`Selected {count} items`),a=n(`Search`),o=n(`No data`),s=n(`No results`),c=n(`Select...`);return m`<luzmo-select
167
167
  .size=${this.size}
168
168
  .label=${c}
169
169
  .retrieving=${this._retrieving}
@@ -188,7 +188,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
188
188
  .options=${e}
189
189
  .value=${r?[this._getSelectedOptionValue()]:this.filter?.parameters?.[1]}
190
190
  >
191
- </luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(e)?this.renderHierarchyPicker():this.renderTextField()}};r([g({type:String,attribute:`api-url`,reflect:!0})],J.prototype,`apiUrl`,void 0),r([g({type:String,attribute:`auth-key`,reflect:!0})],J.prototype,`authKey`,void 0),r([g({type:String,attribute:`auth-token`,reflect:!0})],J.prototype,`authToken`,void 0),r([g({type:Number,attribute:`cache-time`,reflect:!0})],J.prototype,`cacheTime`,void 0),r([g({type:String,attribute:`content-language`,reflect:!0})],J.prototype,`contentLanguage`,void 0),r([g({type:Object,reflect:!1})],J.prototype,`filter`,void 0),r([g({type:Boolean,reflect:!0})],J.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],J.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],J.prototype,`disabled`,void 0),r([_()],J.prototype,`_hierarchyValues`,void 0),r([_()],J.prototype,`_retrieving`,void 0),r([_()],J.prototype,`_search`,void 0),r([_()],J.prototype,`_error`,void 0),r([_()],J.prototype,`_pending`,void 0),J=r([i()],J),customElements.get(`luzmo-filter-value-picker-hierarchy`)||customElements.define(`luzmo-filter-value-picker-hierarchy`,J);var zt=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-number-field,luzmo-select{min-width:var(--luzmo-filter-value-picker-numeric-control-min-width,var(--filter-value-picker-numeric-control-min-width));flex:auto;max-width:100%}.missing-value{opacity:.4}:host{--filter-value-picker-numeric-control-min-width:0}`,Bt=5e3,Y=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._numericValues=[],this._retrieving=!0,this._search=``,this._error=null,this._allValuesRetrieved=!1,this._runningQueries=[]}static get styles(){return[v(zt)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),f.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`)?.expression,n=this.filter?.expression;((e.get(`filter`)?.parameters?.[0]?.columnId||e.get(`filter`)?.parameters?.[0]?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||![`? in ?`,`? not in ?`].includes(t))&&[`? in ?`,`? not in ?`].includes(n)&&(this._numericValues=[],this._allValuesRetrieved=!1,this._retrieving=!0)}}async _fetchNumericValues(e=0){if(this._allValuesRetrieved){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let t=this.filter.parameters[0],n=t.columnId,r=t.formulaId,i=t.datasetId;if(!n&&!r){this._retrieving=!1,this._error=`Missing column id or formula id`;return}if(!i){this._retrieving=!1,this._error=`Missing dataset id`;return}this._retrieving=!0,this._error=null;let a={expression:`? like ?`,parameters:[{dataset_id:i,expression:`CAST({${i}:${n??r}},hierarchy)`},this._search]},o={dimensions:[{column_id:n,formula_id:r,dataset_id:i}],where:[],order:[{column_id:n,formula_id:r,dataset_id:i,order:`asc`}],limit:{by:Bt,offset:e}};this._search&&!this._allValuesRetrieved&&o.where.push(a);let s=new AbortController,c=new Promise((e,t)=>{f.fetchData(o).then(e).catch(t),s.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),t({status:`aborted`})})}),l={promise:c,abortController:s};this._runningQueries.push(l);try{let t=await c,n=t&&Array.isArray(t.data)?t.data.map(e=>e[0]):[];this._search||(this._allValuesRetrieved=n.length<Bt),this._numericValues=e>0?[...this._numericValues,...n]:n}catch(e){if(e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._numericValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==c),this._retrieving=!1}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setValue(e){if(this.readonly||this.disabled)return;let t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:e?.target?.value;this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._sendChangeEvent())}selectValue(e){if(this.readonly||this.disabled)return;let t=(e.detail?.value??``).map(e=>Number.parseFloat(e));this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._value=t,this._sendChangeEvent()}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._numericValues.length-1&&this._fetchNumericValues(this._numericValues.length)}renderNumberField(){return m`<luzmo-number-field
191
+ </luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(e)?this.renderHierarchyPicker():this.renderTextField()}};t([g({type:String,attribute:`api-url`,reflect:!0})],J.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],J.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],J.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],J.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],J.prototype,`contentLanguage`,void 0),t([g({type:Object,reflect:!1})],J.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],J.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],J.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],J.prototype,`disabled`,void 0),t([_()],J.prototype,`_hierarchyValues`,void 0),t([_()],J.prototype,`_retrieving`,void 0),t([_()],J.prototype,`_search`,void 0),t([_()],J.prototype,`_error`,void 0),t([_()],J.prototype,`_pending`,void 0),J=t([i()],J),customElements.get(`luzmo-filter-value-picker-hierarchy`)||customElements.define(`luzmo-filter-value-picker-hierarchy`,J);var zt=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-number-field,luzmo-select{min-width:var(--luzmo-filter-value-picker-numeric-control-min-width,var(--filter-value-picker-numeric-control-min-width));flex:auto;max-width:100%}.missing-value{opacity:.4}:host{--filter-value-picker-numeric-control-min-width:0}`,Bt=5e3,Y=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._numericValues=[],this._retrieving=!0,this._search=``,this._error=null,this._allValuesRetrieved=!1,this._runningQueries=[]}static get styles(){return[v(zt)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),f.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`)?.expression,n=this.filter?.expression;((e.get(`filter`)?.parameters?.[0]?.columnId||e.get(`filter`)?.parameters?.[0]?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||![`? in ?`,`? not in ?`].includes(t))&&[`? in ?`,`? not in ?`].includes(n)&&(this._numericValues=[],this._allValuesRetrieved=!1,this._retrieving=!0)}}async _fetchNumericValues(e=0){if(this._allValuesRetrieved){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let t=this.filter.parameters[0],n=t.columnId,r=t.formulaId,i=t.datasetId;if(!n&&!r){this._retrieving=!1,this._error=`Missing column id or formula id`;return}if(!i){this._retrieving=!1,this._error=`Missing dataset id`;return}this._retrieving=!0,this._error=null;let a={expression:`? like ?`,parameters:[{dataset_id:i,expression:`CAST({${i}:${n??r}},hierarchy)`},this._search]},o={dimensions:[{column_id:n,formula_id:r,dataset_id:i}],where:[],order:[{column_id:n,formula_id:r,dataset_id:i,order:`asc`}],limit:{by:Bt,offset:e}};this._search&&!this._allValuesRetrieved&&o.where.push(a);let s=new AbortController,c=new Promise((e,t)=>{f.fetchData(o).then(e).catch(t),s.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),t({status:`aborted`})})}),l={promise:c,abortController:s};this._runningQueries.push(l);try{let t=await c,n=t&&Array.isArray(t.data)?t.data.map(e=>e[0]):[];this._search||(this._allValuesRetrieved=n.length<Bt),this._numericValues=e>0?[...this._numericValues,...n]:n}catch(e){if(e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._numericValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==c),this._retrieving=!1}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setValue(e){if(this.readonly||this.disabled)return;let t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:e?.target?.value;this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._sendChangeEvent())}selectValue(e){if(this.readonly||this.disabled)return;let t=(e.detail?.value??``).map(e=>Number.parseFloat(e));this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._value=t,this._sendChangeEvent()}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._numericValues.length-1&&this._fetchNumericValues(this._numericValues.length)}renderNumberField(){return m`<luzmo-number-field
192
192
  label="Numeric filter value"
193
193
  grows
194
194
  .size=${this.size}
@@ -198,7 +198,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
198
198
  @change=${this.setValue}
199
199
  @input=${this.setValue}
200
200
  .value=${this.filter?.parameters?.[1]}
201
- ></luzmo-number-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchNumericValues()},500))}resetSearchString(){this._search=``}onOpened(){this._fetchNumericValues()}renderValuePicker(){if(this._error)return m`<div class="error" role="alert">${this._error}</div>`;let e=this._numericValues.filter(e=>e.toString().toLowerCase().includes(this._search.toLowerCase())).map(e=>({value:e,label:e})),n=t(`Selected {count} items`),r=t(`Search`),i=t(`No data`),a=t(`No results`),o=t(`Select...`);return m`<luzmo-select
201
+ ></luzmo-number-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchNumericValues()},500))}resetSearchString(){this._search=``}onOpened(){this._fetchNumericValues()}renderValuePicker(){if(this._error)return m`<div class="error" role="alert">${this._error}</div>`;let e=this._numericValues.filter(e=>e.toString().toLowerCase().includes(this._search.toLowerCase())).map(e=>({value:e,label:e})),t=n(`Selected {count} items`),r=n(`Search`),i=n(`No data`),a=n(`No results`),o=n(`Select...`);return m`<luzmo-select
202
202
  .size=${this.size}
203
203
  .label=${o}
204
204
  .retrieving=${this._retrieving}
@@ -210,7 +210,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
210
210
  .disabled=${this.disabled}
211
211
  no-wrap
212
212
  ?invalid=${!!this._error}
213
- .multipleLabelTemplate=${n}
213
+ .multipleLabelTemplate=${t}
214
214
  .searchLabel=${r}
215
215
  .noDataLabel=${i}
216
216
  .noResultsLabel=${a}
@@ -222,7 +222,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
222
222
  .options=${e}
223
223
  .value=${this.filter?.parameters?.[1]}
224
224
  >
225
- </luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`].includes(e)?this.renderValuePicker():this.renderNumberField()}};r([g({type:String,attribute:`api-url`,reflect:!0})],Y.prototype,`apiUrl`,void 0),r([g({type:String,attribute:`auth-key`,reflect:!0})],Y.prototype,`authKey`,void 0),r([g({type:String,attribute:`auth-token`,reflect:!0})],Y.prototype,`authToken`,void 0),r([g({type:Number,attribute:`cache-time`,reflect:!0})],Y.prototype,`cacheTime`,void 0),r([g({type:String,attribute:`content-language`,reflect:!0})],Y.prototype,`contentLanguage`,void 0),r([g({type:Object,reflect:!1})],Y.prototype,`filter`,void 0),r([g({type:Boolean,reflect:!0})],Y.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],Y.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],Y.prototype,`disabled`,void 0),r([_()],Y.prototype,`_numericValues`,void 0),r([_()],Y.prototype,`_retrieving`,void 0),r([_()],Y.prototype,`_search`,void 0),r([_()],Y.prototype,`_error`,void 0),Y=r([i()],Y),customElements.get(`luzmo-filter-value-picker-numeric`)||customElements.define(`luzmo-filter-value-picker-numeric`,Y);var X=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._expressionsWithoutValuePicker=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`])}static get styles(){return[v(Ft)]}_sendChangeEvent(e){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:e}}))}setFilterValue(e){e.stopPropagation(),!(this.readonly||this.disabled)&&this._sendChangeEvent(e?.detail?.value)}renderNumericValuePicker(){return m`<luzmo-filter-value-picker-numeric
225
+ </luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`].includes(e)?this.renderValuePicker():this.renderNumberField()}};t([g({type:String,attribute:`api-url`,reflect:!0})],Y.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],Y.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],Y.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],Y.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],Y.prototype,`contentLanguage`,void 0),t([g({type:Object,reflect:!1})],Y.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],Y.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],Y.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],Y.prototype,`disabled`,void 0),t([_()],Y.prototype,`_numericValues`,void 0),t([_()],Y.prototype,`_retrieving`,void 0),t([_()],Y.prototype,`_search`,void 0),t([_()],Y.prototype,`_error`,void 0),Y=t([i()],Y),customElements.get(`luzmo-filter-value-picker-numeric`)||customElements.define(`luzmo-filter-value-picker-numeric`,Y);var X=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._expressionsWithoutValuePicker=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`])}static get styles(){return[v(Ft)]}_sendChangeEvent(e){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:e}}))}setFilterValue(e){e.stopPropagation(),!(this.readonly||this.disabled)&&this._sendChangeEvent(e?.detail?.value)}renderNumericValuePicker(){return m`<luzmo-filter-value-picker-numeric
226
226
  .apiUrl=${this.apiUrl}
227
227
  .authKey=${this.authKey}
228
228
  .authToken=${this.authToken}
@@ -263,7 +263,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
263
263
  .disabled=${this.disabled}
264
264
  @luzmo-filter-value-changed=${this.setFilterValue}
265
265
  ></luzmo-filter-value-picker-datetime>`}renderDisabledTextField(){let e=this.filter?.parameters?.[1]??``;return m`<luzmo-text-field
266
- label=${t(`Filter value`,{desc:`Label for filter value text field`})}
266
+ label=${n(`Filter value`,{desc:`Label for filter value text field`})}
267
267
  .size=${this.size}
268
268
  .value=${e}
269
269
  .disabled=${!0}
@@ -271,7 +271,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
271
271
 
272
272
  `:[`numeric`,`hierarchy`,`datetime`].includes(e)?e===`numeric`?this.renderNumericValuePicker():e===`datetime`?this.renderDateTimeValuePicker():this.renderHierarchyValuePicker():typeof this.filter?.parameters?.[1]==`string`?this.renderDisabledTextField():m`
273
273
 
274
- `}};r([g({type:String,attribute:`api-url`,reflect:!0})],X.prototype,`apiUrl`,void 0),r([g({type:String,attribute:`auth-key`,reflect:!0})],X.prototype,`authKey`,void 0),r([g({type:String,attribute:`auth-token`,reflect:!0})],X.prototype,`authToken`,void 0),r([g({type:Number,attribute:`cache-time`,reflect:!0})],X.prototype,`cacheTime`,void 0),r([g({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),r([g({type:String,attribute:`time-zone`,reflect:!0})],X.prototype,`timeZone`,void 0),r([g({type:String,attribute:`value-type`,reflect:!0})],X.prototype,`valueType`,void 0),r([g({type:Object,reflect:!1})],X.prototype,`filter`,void 0),r([g({type:Boolean,reflect:!0})],X.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],X.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],X.prototype,`disabled`,void 0),customElements.get(`luzmo-filter-value-picker`)||customElements.define(`luzmo-filter-value-picker`,X);var Vt=`:host{box-sizing:border-box;min-width:0;max-width:100%;font-family:var(--luzmo-font-family);color:var(--luzmo-font-color);flex-direction:row;display:flex}:host([display=text]){vertical-align:middle;align-items:center;max-width:100%;display:inline-flex}.filter-item-text{min-width:0;max-width:100%;font-size:var(--luzmo-filter-item-text-font-size,var(--filter-item-text-font-size));white-space:normal;flex-wrap:wrap;align-items:center;column-gap:.25em;line-height:1.5;display:inline-flex}.filter-item-text-field{white-space:nowrap}.filter-item-column-badge{white-space:nowrap;align-items:center;display:inline-flex}.filter-item-text-field-icon{margin-inline-end:var(--luzmo-filter-item-text-icon-gap,var(--filter-item-text-icon-gap))}.filter-item-column-badge luzmo-icon{--luzmo-icon-vertical-align:0}.filter-item-text-expression{color:var(--luzmo-filter-item-text-expression-color,var(--filter-item-text-expression-color));font-weight:var(--luzmo-filter-item-text-expression-font-weight,var(--filter-item-text-expression-font-weight))}:host([column-display=outline]) .filter-item-column-badge luzmo-badge{--luzmo-badge-border-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-border-color-full));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-filter-item-column-badge-color,var(--luzmo-font-color)))}:host([column-display=subtle]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:color-mix(in srgb, var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard)) 10%, var(--luzmo-background-color));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color)}:host([column-display=fill]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard));--luzmo-badge-border-color:transparent;--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-background-color))}.filter-item-text-value{align-items:center;gap:var(--luzmo-spacing-1);display:inline-flex}.filter-item-text-value luzmo-progress-circle{--luzmo-progress-circle-size:var(--filter-item-progress-circle-size)}.filter-item-text-value--has-tooltip{text-underline-offset:.15em;cursor:help;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor}[role=group]{box-sizing:border-box;align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-flow:wrap;width:100%;min-width:0;max-width:100%;display:flex}luzmo-data-fields-select{flex:0 1 var(--luzmo-filter-item-field-width,var(--filter-item-field-width));min-width:min(100%, var(--luzmo-filter-item-field-min-width,var(--filter-item-field-min-width)));max-width:100%}luzmo-filter-expression-picker{flex:0 0 var(--luzmo-filter-item-expression-width,var(--filter-item-expression-width));max-width:100%}.value-controls{align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-wrap:nowrap;flex:var(--luzmo-filter-item-value-grow,var(--filter-item-value-grow)) 1 var(--luzmo-filter-item-value-width,var(--filter-item-value-width));min-width:min(100%, var(--luzmo-filter-item-value-min-width,var(--filter-item-value-min-width)));max-width:100%;display:flex}luzmo-filter-value-picker{flex:auto;min-width:0;max-width:100%}luzmo-filter-parameter-picker{flex:0 auto;min-width:0;max-width:100%}:host{--filter-item-gap:var(--luzmo-spacing-3);--filter-item-field-width:auto;--filter-item-expression-width:auto;--filter-item-value-width:auto;--filter-item-value-grow:0;--filter-item-field-min-width:4.5rem;--filter-item-value-min-width:4.5rem;--filter-item-text-font-size:var(--luzmo-font-size-m);--filter-item-text-icon-gap:var(--luzmo-spacing-1);--filter-item-text-expression-color:var(--luzmo-font-color);--filter-item-text-expression-font-weight:var(--luzmo-font-weight);--filter-item-progress-circle-size:var(--luzmo-component-height)}:host([size=s]){--filter-item-gap:var(--luzmo-spacing-2);--filter-item-text-font-size:var(--luzmo-font-size-s);--filter-item-progress-circle-size:var(--luzmo-component-height-s)}:host([size=m]){--filter-item-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-item-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filter-item-text-font-size:var(--luzmo-font-size-l);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-l)}:host([size=xl]){--filter-item-gap:var(--luzmo-spacing-4);--filter-item-text-font-size:var(--luzmo-font-size-xl);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-xl)}`,Z=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filter={},this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this.allowParameters=!1,this.parameters=[],this._loading=!1,this._datasetsDataFields=[],this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hierarchyRequest=0}static get styles(){return[v(Vt)]}connectedCallback(){if(super.connectedCallback(),this.textContext)return;let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),e.authKey=this.authKey||``,e.authToken=this.authToken||``,f.configure(e),this.hasUpdated&&this.display===`text`&&this._loadHierarchyLabelsForText()}disconnectedCallback(){super.disconnectedCallback(),this._hierarchyRequest+=1}_clearTypeState(){this._type=void 0,this._subType=void 0,this._isFormula=void 0}async _fetchDatasetDataFields(){if(!this.datasetIds||this.datasetIds.length===0){this._error=`Missing dataset ids to fetch columns & formulas`,this._datasetsDataFields=[],this._loading=!1;return}let{valid:e,invalid:t}=ee(this.datasetIds);if(t.length>0&&console.warn(`[LuzmoFilterItem] Invalid dataset IDs provided (not valid UUIDs): ${t.join(`, `)}. These will be skipped.`),e.length===0)this._error=`Invalid dataset IDs provided. Dataset IDs must be valid UUIDs.`,this._datasetsDataFields=[],this._loading=!1;else{this._loading=!0,this._error=null;try{let t=await f.fetchDatasetsWithColumnsAndFormulas(e);for(let e of t)for(let t of[...e.columns,...e.formulas])t.datasetId=e.id;this._datasetsDataFields=t}catch(e){console.error(`Error fetching dataset columns & formulas:`,e),this._error=e instanceof Error?e.message:`Unknown error`,this._datasetsDataFields=[]}finally{this._loading=!1}}}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`datasetIds`),r=e.has(`authKey`),i=e.has(`authToken`),a=e.has(`_datasetsDataFields`),o=e.has(`parameters`);if(!this.textContext&&this.display===`text`&&(t||a||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForText(),t||n||a&&(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)&&this.filter?.parameters?.[0]?.datasetId){if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)this._clearTypeState();else{let e=this._datasetsDataFields.find(e=>e.id===this.filter.parameters?.[0]?.datasetId);if(e){let t=!1;for(let n of[...e.columns||[],...e?.formulas||[]])if(n.id===this.filter.parameters?.[0]?.columnId||n.id===this.filter.parameters?.[0]?.formulaId){this._type=n.type,this._subType=n.subtype,this._isFormula=n.id===this.filter.parameters?.[0]?.formulaId,t=!0;break}t||this._clearTypeState()}else this._clearTypeState()}}if(!this.textContext&&(r||i)){let e={authKey:this.authKey||``,authToken:this.authToken||``};f.configure(e)}!this.textContext&&(n||r||i)&&this._fetchDatasetDataFields();let s=this.filter?.parameters?.[1],c=e.get(`filter`),l=!!c&&c.expression!==this.filter?.expression;if(this.allowParameters&&this._type&&(o||e.has(`_type`)||l)&&U(s)){let t=this.parameters.find(e=>e.parameter===s.parameter),n=H(this._type,this.filter?.expression),r=o||e.has(`_type`);if(l&&!n.includes(s.type)||r&&(!t||!n.includes(t.type))){let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}else if(r&&t&&JSON.stringify(t)!==JSON.stringify(s)){let e=structuredClone(this.filter);e.parameters[1]=structuredClone(t),this.filter=e,this._sendChangeEvent()}}}async _loadHierarchyLabelsForText(){let e=++this._hierarchyRequest,t=this._filterTextContext(),n=Ne({condition:`and`,filters:[this.filter]},t);if(n.length===0)this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;else{this._hierarchyLabelsLoading=!0;try{let t=await Pe(n,this.contentLanguage);e===this._hierarchyRequest&&(this._hierarchyLabels=t)}catch(t){e===this._hierarchyRequest&&console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_sendChangeEvent(){this.readonly||this.disabled||this.dispatchEvent(new CustomEvent(`luzmo-filter-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{filter:this.filter}}))}setFilterDataField(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=e.detail?.dataFields?.[0],n=this._type,r=this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId,i=!!this.filter?.parameters?.[0]?.formulaId,a=t?.columnId||t?.formulaId,o=U(this.filter?.parameters?.[1]);this._type=t?.type,this._subType=t?.subtype,this._isFormula=!!t?.formulaId;let s=oe(this._type,this._subType,this._isFormula);this.filter=structuredClone(this.filter??{}),s?.includes(this.filter?.expression)||(this.filter.expression=s?.[0]?.expression),this.filter.parameters=this.filter?.parameters??[],this.filter.parameters[0]={datasetId:t?.datasetId},this._isFormula?this.filter.parameters[0].formulaId=t?.formulaId:this.filter.parameters[0].columnId=t?.columnId;let c=this.filter.properties??{};if(this._isFormula?i&&c.type!==void 0||(this.filter.properties={...c,type:`having`}):(c.type===void 0||i&&c.type===`having`)&&(this.filter.properties={...c,type:`where`}),t?.lowestLevel,n!==this._type)this._type===`hierarchy`?(this.filter.expression=`? like ?`,this.filter.parameters[1]=``):this._type===`numeric`?(this.filter.expression=`? > ?`,this.filter.parameters[1]=0):this._type===`datetime`?(this.filter.expression=`? < ?`,this.filter.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()):(this.filter.expression=`? is not null`,this.filter.parameters=[this.filter.parameters[0]]);else if(o&&r!==a){let e=G(this._type,this.filter.expression);this.filter.parameters=e===void 0?[this.filter.parameters[0]]:[this.filter.parameters[0],e]}else r!==a&&this._type===`hierarchy`&&(this.filter.parameters[1]=[`? in ?`,`? not in ?`].includes(this.filter.expression)?[]:``);this._sendChangeEvent()}setFilterExpression(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=structuredClone(this.filter??{}),n=t.expression;if(t.expression=e.detail?.expression,n!==t.expression){if(U(t.parameters?.[1])){let e=t.parameters[1];if(!H(this._type,t.expression).some(t=>t===e.type)){let e=G(this._type,t.expression);t.parameters=e===void 0?[t.parameters[0]]:[t.parameters[0],e]}}else if([`? is null`,`? is not null`].includes(t.expression))t.parameters=[t.parameters[0]];else if(this._type===`datetime`){if([`YTD`,`QTD`,`MTD`,`WTD`].includes(t.expression)){let n=e?.detail?.unit;n&&(t.parameters[1]={unit:typeof n==`number`?n:1})}else if([`last_completed`,`next_full`,`to_date`].includes(t.expression)){let e=t?.parameters?.[1]?.unit;t.parameters[1]={unit:typeof e==`number`?e:1}}else if([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(t.expression)){let e=t?.parameters?.[1]?.unit,n=t?.parameters?.[1]?.quantity;t.parameters[1]={unit:typeof e==`number`?e:1,quantity:typeof n==`number`?n:1}}else t.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()}else if(this._type===`hierarchy`){if([`? in ?`,`? not in ?`].includes(t.expression))[`? = ?`,`? != ?`].includes(n)?t.parameters[1]=t.parameters[1]?[t.parameters[1]]:[]:t.parameters[1]=[];else if([`? = ?`,`? != ?`].includes(t.expression)){if([`? in ?`,`? not in ?`].includes(n))t.parameters[1]=Array.isArray(t.parameters[1])&&t.parameters[1][0]!=null?t.parameters[1][0]:``;else{let e=t.parameters[1];t.parameters[1]=typeof e==`string`||typeof e==`number`?e:``}}else t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?``:t.parameters[1]??``}else this._type===`numeric`&&([`? in ?`,`? not in ?`].includes(t.expression)&&[`? in ?`,`? not in ?`].includes(n)?t.parameters[1]=t.parameters[1]??[]:[`? in ?`,`? not in ?`].includes(t.expression)?t.parameters[1]=[]:t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?0:t.parameters[1]??0);this.filter=t,this._sendChangeEvent()}}setFilterValue(e){this.readonly||this.disabled||this._cannotReferenceColumn()||(this.filter.parameters[1]=e?.detail?.value,this._sendChangeEvent())}handleFilterParameterSelected(e){if(this.readonly||this.disabled)return;let t=e.detail?.parameter;if(!t)return;let n=structuredClone(this.filter??{});n.parameters=n.parameters??[],n.parameters[1]=structuredClone(t),this.filter=n,this._sendChangeEvent()}handleFilterParameterRemoved(){if(this.readonly||this.disabled||!U(this.filter?.parameters?.[1]))return;let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}_cannotReferenceColumn(){if(!(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId))return!1;if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)return!0;let e=this.filter?.parameters?.[0]?.datasetId,t=this._datasetsDataFields.find(t=>t.id===e);return!t||![...t.columns||[],...t.formulas||[]].find(e=>e.id===this.filter?.parameters?.[0]?.columnId||e.id===this.filter?.parameters?.[0]?.formulaId)}renderDataFieldPicker(){let e=this._cannotReferenceColumn(),n=e?t(`Unknown`):void 0,r=e||this._loading?``:this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId;return m`<luzmo-data-fields-select
274
+ `}};t([g({type:String,attribute:`api-url`,reflect:!0})],X.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],X.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],X.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],X.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],X.prototype,`timeZone`,void 0),t([g({type:String,attribute:`value-type`,reflect:!0})],X.prototype,`valueType`,void 0),t([g({type:Object,reflect:!1})],X.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],X.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],X.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],X.prototype,`disabled`,void 0),customElements.get(`luzmo-filter-value-picker`)||customElements.define(`luzmo-filter-value-picker`,X);var Vt=`:host{box-sizing:border-box;min-width:0;max-width:100%;font-family:var(--luzmo-font-family);color:var(--luzmo-font-color);flex-direction:row;display:flex}:host([display=text]){vertical-align:middle;align-items:center;max-width:100%;display:inline-flex}.filter-item-text{min-width:0;max-width:100%;font-size:var(--luzmo-filter-item-text-font-size,var(--filter-item-text-font-size));white-space:normal;flex-wrap:wrap;align-items:center;column-gap:.25em;line-height:1.5;display:inline-flex}.filter-item-text-field{white-space:nowrap}.filter-item-column-badge{white-space:nowrap;align-items:center;display:inline-flex}.filter-item-text-field-icon{margin-inline-end:var(--luzmo-filter-item-text-icon-gap,var(--filter-item-text-icon-gap))}.filter-item-column-badge luzmo-icon{--luzmo-icon-vertical-align:0}.filter-item-text-expression{color:var(--luzmo-filter-item-text-expression-color,var(--filter-item-text-expression-color));font-weight:var(--luzmo-filter-item-text-expression-font-weight,var(--filter-item-text-expression-font-weight))}:host([column-display=outline]) .filter-item-column-badge luzmo-badge{--luzmo-badge-border-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-border-color-full));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-filter-item-column-badge-color,var(--luzmo-font-color)))}:host([column-display=subtle]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:color-mix(in srgb, var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard)) 10%, var(--luzmo-background-color));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color)}:host([column-display=fill]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard));--luzmo-badge-border-color:transparent;--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-background-color))}.filter-item-text-value{align-items:center;gap:var(--luzmo-spacing-1);display:inline-flex}.filter-item-text-value luzmo-progress-circle{--luzmo-progress-circle-size:var(--filter-item-progress-circle-size)}.filter-item-text-value--has-tooltip{text-underline-offset:.15em;cursor:help;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor}[role=group]{box-sizing:border-box;align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-flow:wrap;width:100%;min-width:0;max-width:100%;display:flex}luzmo-data-fields-select{flex:0 1 var(--luzmo-filter-item-field-width,var(--filter-item-field-width));min-width:min(100%, var(--luzmo-filter-item-field-min-width,var(--filter-item-field-min-width)));max-width:100%}luzmo-filter-expression-picker{flex:0 0 var(--luzmo-filter-item-expression-width,var(--filter-item-expression-width));max-width:100%}.value-controls{align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-wrap:nowrap;flex:var(--luzmo-filter-item-value-grow,var(--filter-item-value-grow)) 1 var(--luzmo-filter-item-value-width,var(--filter-item-value-width));min-width:min(100%, var(--luzmo-filter-item-value-min-width,var(--filter-item-value-min-width)));max-width:100%;display:flex}luzmo-filter-value-picker{flex:auto;min-width:0;max-width:100%}luzmo-filter-parameter-picker{flex:0 auto;min-width:0;max-width:100%}:host{--filter-item-gap:var(--luzmo-spacing-3);--filter-item-field-width:auto;--filter-item-expression-width:auto;--filter-item-value-width:auto;--filter-item-value-grow:0;--filter-item-field-min-width:4.5rem;--filter-item-value-min-width:4.5rem;--filter-item-text-font-size:var(--luzmo-font-size-m);--filter-item-text-icon-gap:var(--luzmo-spacing-1);--filter-item-text-expression-color:var(--luzmo-font-color);--filter-item-text-expression-font-weight:var(--luzmo-font-weight);--filter-item-progress-circle-size:var(--luzmo-component-height)}:host([size=s]){--filter-item-gap:var(--luzmo-spacing-2);--filter-item-text-font-size:var(--luzmo-font-size-s);--filter-item-progress-circle-size:var(--luzmo-component-height-s)}:host([size=m]){--filter-item-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-item-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filter-item-text-font-size:var(--luzmo-font-size-l);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-l)}:host([size=xl]){--filter-item-gap:var(--luzmo-spacing-4);--filter-item-text-font-size:var(--luzmo-font-size-xl);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-xl)}`,Z=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filter={},this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this.allowParameters=!1,this.parameters=[],this._loading=!1,this._datasetsDataFields=[],this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hierarchyRequest=0}static get styles(){return[v(Vt)]}connectedCallback(){if(super.connectedCallback(),this.textContext)return;let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),e.authKey=this.authKey||``,e.authToken=this.authToken||``,f.configure(e),this.hasUpdated&&this.display===`text`&&this._loadHierarchyLabelsForText()}disconnectedCallback(){super.disconnectedCallback(),this._hierarchyRequest+=1}_clearTypeState(){this._type=void 0,this._subType=void 0,this._isFormula=void 0}async _fetchDatasetDataFields(){if(!this.datasetIds||this.datasetIds.length===0){this._error=`Missing dataset ids to fetch columns & formulas`,this._datasetsDataFields=[],this._loading=!1;return}let{valid:e,invalid:t}=ee(this.datasetIds);if(t.length>0&&console.warn(`[LuzmoFilterItem] Invalid dataset IDs provided (not valid UUIDs): ${t.join(`, `)}. These will be skipped.`),e.length===0)this._error=`Invalid dataset IDs provided. Dataset IDs must be valid UUIDs.`,this._datasetsDataFields=[],this._loading=!1;else{this._loading=!0,this._error=null;try{let t=await f.fetchDatasetsWithColumnsAndFormulas(e);for(let e of t)for(let t of[...e.columns,...e.formulas])t.datasetId=e.id;this._datasetsDataFields=t}catch(e){console.error(`Error fetching dataset columns & formulas:`,e),this._error=e instanceof Error?e.message:`Unknown error`,this._datasetsDataFields=[]}finally{this._loading=!1}}}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`datasetIds`),r=e.has(`authKey`),i=e.has(`authToken`),a=e.has(`_datasetsDataFields`),o=e.has(`parameters`);if(!this.textContext&&this.display===`text`&&(t||a||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForText(),t||n||a&&(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)&&this.filter?.parameters?.[0]?.datasetId){if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)this._clearTypeState();else{let e=this._datasetsDataFields.find(e=>e.id===this.filter.parameters?.[0]?.datasetId);if(e){let t=!1;for(let n of[...e.columns||[],...e?.formulas||[]])if(n.id===this.filter.parameters?.[0]?.columnId||n.id===this.filter.parameters?.[0]?.formulaId){this._type=n.type,this._subType=n.subtype,this._isFormula=n.id===this.filter.parameters?.[0]?.formulaId,t=!0;break}t||this._clearTypeState()}else this._clearTypeState()}}if(!this.textContext&&(r||i)){let e={authKey:this.authKey||``,authToken:this.authToken||``};f.configure(e)}!this.textContext&&(n||r||i)&&this._fetchDatasetDataFields();let s=this.filter?.parameters?.[1],c=e.get(`filter`),l=!!c&&c.expression!==this.filter?.expression;if(this.allowParameters&&this._type&&(o||e.has(`_type`)||l)&&U(s)){let t=this.parameters.find(e=>e.parameter===s.parameter),n=H(this._type,this.filter?.expression),r=o||e.has(`_type`);if(l&&!n.includes(s.type)||r&&(!t||!n.includes(t.type))){let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}else if(r&&t&&JSON.stringify(t)!==JSON.stringify(s)){let e=structuredClone(this.filter);e.parameters[1]=structuredClone(t),this.filter=e,this._sendChangeEvent()}}}async _loadHierarchyLabelsForText(){let e=++this._hierarchyRequest,t=this._filterTextContext(),n=Ne({condition:`and`,filters:[this.filter]},t);if(n.length===0)this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;else{this._hierarchyLabelsLoading=!0;try{let t=await Pe(n,this.contentLanguage);e===this._hierarchyRequest&&(this._hierarchyLabels=t)}catch(t){e===this._hierarchyRequest&&console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_sendChangeEvent(){this.readonly||this.disabled||this.dispatchEvent(new CustomEvent(`luzmo-filter-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{filter:this.filter}}))}setFilterDataField(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=e.detail?.dataFields?.[0],n=this._type,r=this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId,i=!!this.filter?.parameters?.[0]?.formulaId,a=t?.columnId||t?.formulaId,o=U(this.filter?.parameters?.[1]);this._type=t?.type,this._subType=t?.subtype,this._isFormula=!!t?.formulaId;let s=oe(this._type,this._subType,this._isFormula);this.filter=structuredClone(this.filter??{}),s?.includes(this.filter?.expression)||(this.filter.expression=s?.[0]?.expression),this.filter.parameters=this.filter?.parameters??[],this.filter.parameters[0]={datasetId:t?.datasetId},this._isFormula?this.filter.parameters[0].formulaId=t?.formulaId:this.filter.parameters[0].columnId=t?.columnId;let c=this.filter.properties??{};if(this._isFormula?i&&c.type!==void 0||(this.filter.properties={...c,type:`having`}):(c.type===void 0||i&&c.type===`having`)&&(this.filter.properties={...c,type:`where`}),t?.lowestLevel,n!==this._type)this._type===`hierarchy`?(this.filter.expression=`? like ?`,this.filter.parameters[1]=``):this._type===`numeric`?(this.filter.expression=`? > ?`,this.filter.parameters[1]=0):this._type===`datetime`?(this.filter.expression=`? < ?`,this.filter.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()):(this.filter.expression=`? is not null`,this.filter.parameters=[this.filter.parameters[0]]);else if(o&&r!==a){let e=G(this._type,this.filter.expression);this.filter.parameters=e===void 0?[this.filter.parameters[0]]:[this.filter.parameters[0],e]}else r!==a&&this._type===`hierarchy`&&(this.filter.parameters[1]=[`? in ?`,`? not in ?`].includes(this.filter.expression)?[]:``);this._sendChangeEvent()}setFilterExpression(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=structuredClone(this.filter??{}),n=t.expression;if(t.expression=e.detail?.expression,n!==t.expression){if(U(t.parameters?.[1])){let e=t.parameters[1];if(!H(this._type,t.expression).some(t=>t===e.type)){let e=G(this._type,t.expression);t.parameters=e===void 0?[t.parameters[0]]:[t.parameters[0],e]}}else if([`? is null`,`? is not null`].includes(t.expression))t.parameters=[t.parameters[0]];else if(this._type===`datetime`){if([`YTD`,`QTD`,`MTD`,`WTD`].includes(t.expression)){let n=e?.detail?.unit;n&&(t.parameters[1]={unit:typeof n==`number`?n:1})}else if([`last_completed`,`next_full`,`to_date`].includes(t.expression)){let e=t?.parameters?.[1]?.unit;t.parameters[1]={unit:typeof e==`number`?e:1}}else if([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(t.expression)){let e=t?.parameters?.[1]?.unit,n=t?.parameters?.[1]?.quantity;t.parameters[1]={unit:typeof e==`number`?e:1,quantity:typeof n==`number`?n:1}}else t.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()}else if(this._type===`hierarchy`){if([`? in ?`,`? not in ?`].includes(t.expression))[`? = ?`,`? != ?`].includes(n)?t.parameters[1]=t.parameters[1]?[t.parameters[1]]:[]:t.parameters[1]=[];else if([`? = ?`,`? != ?`].includes(t.expression)){if([`? in ?`,`? not in ?`].includes(n))t.parameters[1]=Array.isArray(t.parameters[1])&&t.parameters[1][0]!=null?t.parameters[1][0]:``;else{let e=t.parameters[1];t.parameters[1]=typeof e==`string`||typeof e==`number`?e:``}}else t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?``:t.parameters[1]??``}else this._type===`numeric`&&([`? in ?`,`? not in ?`].includes(t.expression)&&[`? in ?`,`? not in ?`].includes(n)?t.parameters[1]=t.parameters[1]??[]:[`? in ?`,`? not in ?`].includes(t.expression)?t.parameters[1]=[]:t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?0:t.parameters[1]??0);this.filter=t,this._sendChangeEvent()}}setFilterValue(e){this.readonly||this.disabled||this._cannotReferenceColumn()||(this.filter.parameters[1]=e?.detail?.value,this._sendChangeEvent())}handleFilterParameterSelected(e){if(this.readonly||this.disabled)return;let t=e.detail?.parameter;if(!t)return;let n=structuredClone(this.filter??{});n.parameters=n.parameters??[],n.parameters[1]=structuredClone(t),this.filter=n,this._sendChangeEvent()}handleFilterParameterRemoved(){if(this.readonly||this.disabled||!U(this.filter?.parameters?.[1]))return;let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}_cannotReferenceColumn(){if(!(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId))return!1;if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)return!0;let e=this.filter?.parameters?.[0]?.datasetId,t=this._datasetsDataFields.find(t=>t.id===e);return!t||![...t.columns||[],...t.formulas||[]].find(e=>e.id===this.filter?.parameters?.[0]?.columnId||e.id===this.filter?.parameters?.[0]?.formulaId)}renderDataFieldPicker(){let e=this._cannotReferenceColumn(),t=e?n(`Unknown`):void 0,r=e||this._loading?``:this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId;return m`<luzmo-data-fields-select
275
275
  .language=${this.language}
276
276
  .contentLanguage=${this.contentLanguage}
277
277
  .size=${this.size}
@@ -279,7 +279,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
279
279
  selects="single"
280
280
  levels="off"
281
281
  .datasetsDataFields=${this._datasetsDataFields}
282
- placeholder=${ne(n)}
282
+ placeholder=${ne(t)}
283
283
  .invalid=${!!this._error||e}
284
284
  ?disabled=${e||this.disabled}
285
285
  .readonly=${this.readonly}
@@ -339,9 +339,9 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
339
339
  title=${e.tooltip}
340
340
  ><span class="filter-item-text-field-icon filters-text-field-icon" aria-hidden="true">${t?d(t):h}</span
341
341
  ><span class="filter-item-text-field-label filters-text-field-label">${e.label}</span></span
342
- >`}_renderTextValue(e){if(e.valueField)return this._renderTextField(e.valueField);if(!e.valueText)return h;let n=e.valuePending?m`<luzmo-progress-circle
342
+ >`}_renderTextValue(e){if(e.valueField)return this._renderTextField(e.valueField);if(!e.valueText)return h;let t=e.valuePending?m`<luzmo-progress-circle
343
343
  indeterminate
344
- .label=${t(`Loading item names`,{desc:`Accessible label while hierarchy item names load beside the item count`})}
344
+ .label=${n(`Loading item names`,{desc:`Accessible label while hierarchy item names load beside the item count`})}
345
345
  .size=${this.size}
346
346
  ></luzmo-progress-circle>`:h;return e.valueTooltip?m`<span
347
347
  class="filter-item-text-value filter-item-text-value--has-tooltip filters-text-value filters-text-value--has-tooltip outline-value outline-value--has-tooltip"
@@ -350,19 +350,19 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
350
350
  >${e.valueText}<luzmo-tooltip self-managed placement="top" .size=${this.size}
351
351
  >${e.valueTooltip}</luzmo-tooltip
352
352
  ></span
353
- >`:m`<span class="filter-item-text-value filters-text-value outline-value" aria-live="polite">${e.valueText}${n}</span>`}_renderTextDisplay(){let n=Ae(this.filter,this._filterTextContext());if(!n)return m`
353
+ >`:m`<span class="filter-item-text-value filters-text-value outline-value" aria-live="polite">${e.valueText}${t}</span>`}_renderTextDisplay(){let t=Ae(this.filter,this._filterTextContext());if(!t)return m`
354
354
  <span
355
355
  class="filter-item-text"
356
356
  part="filter-item-text"
357
357
  ></span>
358
- `;let r=this._renderTextField(n.field),i=m`<span class="filter-item-text-expression filters-text-expression outline-expression"
359
- >${n.expression}</span
360
- >`,a=n.valueField||n.valueText?this._renderTextValue(n):h,o=n.expression&&a!==h?C(t(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filter-item-field-expression-value`,desc:`Field, expression, and value in a read-only filter sentence`}),[r,i,a]):n.expression?C(t(e`${S[0]}\u2063 ${S[1]}`,{id:`filter-item-field-expression`,desc:`Field and expression in a read-only filter sentence without a value`}),[r,i]):a===h?r:C(t(e`${S[0]}\u2063 ${S[1]}`,{id:`filter-item-field-value`,desc:`Field and value in a read-only filter sentence without an expression`}),[r,a]);return m`<span class="filter-item-text" part="filter-item-text">${o}</span>`}render(){if(this.display===`text`)return this._renderTextDisplay();let e=U(this.filter?.parameters?.[1]);return m`<div role="group" aria-label=${t(`Filter condition`,{desc:`Accessible label for filter item group`})}>
358
+ `;let r=this._renderTextField(t.field),i=m`<span class="filter-item-text-expression filters-text-expression outline-expression"
359
+ >${t.expression}</span
360
+ >`,a=t.valueField||t.valueText?this._renderTextValue(t):h,o=t.expression&&a!==h?C(n(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filter-item-field-expression-value`,desc:`Field, expression, and value in a read-only filter sentence`}),[r,i,a]):t.expression?C(n(e`${S[0]}\u2063 ${S[1]}`,{id:`filter-item-field-expression`,desc:`Field and expression in a read-only filter sentence without a value`}),[r,i]):a===h?r:C(n(e`${S[0]}\u2063 ${S[1]}`,{id:`filter-item-field-value`,desc:`Field and value in a read-only filter sentence without an expression`}),[r,a]);return m`<span class="filter-item-text" part="filter-item-text">${o}</span>`}render(){if(this.display===`text`)return this._renderTextDisplay();let e=U(this.filter?.parameters?.[1]);return m`<div role="group" aria-label=${n(`Filter condition`,{desc:`Accessible label for filter item group`})}>
361
361
  ${this.renderDataFieldPicker()} ${this.renderExpressionPicker()}
362
362
  <div class="value-controls">
363
363
  ${e?null:this.renderValuePicker()} ${this.renderParameterPicker()}
364
364
  </div>
365
- </div>`}};r([g({type:String,attribute:`api-url`,reflect:!0})],Z.prototype,`apiUrl`,void 0),r([g({type:String,attribute:`auth-key`,reflect:!0})],Z.prototype,`authKey`,void 0),r([g({type:String,attribute:`auth-token`,reflect:!0})],Z.prototype,`authToken`,void 0),r([g({type:Number,attribute:`cache-time`,reflect:!0})],Z.prototype,`cacheTime`,void 0),r([g({type:String,reflect:!0})],Z.prototype,`contentLanguage`,void 0),r([g({type:String,attribute:`time-zone`,reflect:!0})],Z.prototype,`timeZone`,void 0),r([g({type:Array,attribute:`dataset-ids`,reflect:!0})],Z.prototype,`datasetIds`,void 0),r([g({type:Object,reflect:!1})],Z.prototype,`filter`,void 0),r([g({type:String,reflect:!0})],Z.prototype,`display`,void 0),r([g({type:String,attribute:`column-display`,reflect:!0})],Z.prototype,`columnDisplay`,void 0),r([g({type:Boolean,reflect:!0})],Z.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],Z.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],Z.prototype,`disabled`,void 0),r([g({attribute:!1})],Z.prototype,`textContext`,void 0),r([g({type:Boolean,attribute:`allow-parameters`,reflect:!0})],Z.prototype,`allowParameters`,void 0),r([g({attribute:!1})],Z.prototype,`parameters`,void 0),r([_()],Z.prototype,`_type`,void 0),r([_()],Z.prototype,`_subType`,void 0),r([_()],Z.prototype,`_isFormula`,void 0),r([_()],Z.prototype,`_error`,void 0),r([_()],Z.prototype,`_loading`,void 0),r([_()],Z.prototype,`_datasetsDataFields`,void 0),r([_()],Z.prototype,`_hierarchyLabels`,void 0),r([_()],Z.prototype,`_hierarchyLabelsLoading`,void 0),Z=r([i()],Z),customElements.get(`luzmo-filter-item`)||customElements.define(`luzmo-filter-item`,Z);var Ht=`:host{font-family:var(--luzmo-filters-font-family,var(--luzmo-font-family));color:var(--luzmo-filters-font-color,var(--luzmo-font-color));max-width:100%;display:block;container-type:inline-size}.filter-group-container{max-width:100%;padding:calc(var(--luzmo-indicator-gap) + 2 * var(--luzmo-indicator-width));overflow-x:hidden}.filter-group{flex-direction:row;min-width:0;max-width:100%;display:flex}.filter-group.nested{margin-top:var(--luzmo-filters-nested-group-margin-top,var(--filters-nested-group-margin-top));margin-bottom:var(--luzmo-filters-nested-group-margin-bottom,var(--filters-nested-group-margin-bottom))}.group-content{flex-direction:column;flex:1;min-width:0;display:flex}.filters-list{gap:var(--luzmo-filters-filters-list-gap,var(--filters-filters-list-gap));flex-direction:column;min-width:0;max-width:100%;display:flex}.filter-item-wrapper{align-items:flex-start;min-width:0;max-width:100%;display:flex;position:relative}.filter-item-content{align-items:flex-start;gap:var(--luzmo-filters-filter-line-gap,var(--filters-filter-line-gap));flex-wrap:nowrap;flex:1;min-width:0;display:flex}.filter-item-content luzmo-filter-item{flex:1;min-width:0}.filter-item-content .delete-filter-button{flex-shrink:0;align-self:flex-end;margin-inline-start:auto}.condition-wrapper{flex:0 0 var(--luzmo-filters-condition-warpper-width,var(--filters-condition-warpper-width));justify-content:center;align-items:center;display:flex;position:relative}.condition-wrapper:before{content:"";left:50%;top:var(--luzmo-filters-vertical-line-top,var(--filters-vertical-line-top));bottom:var(--luzmo-filters-vertical-line-bottom,var(--filters-vertical-line-bottom));width:var(--luzmo-filters-vertical-line-width,var(--filters-vertical-line-width));background:var(--luzmo-filters-vertical-line-color,var(--luzmo-border-color));position:absolute}.condition-badge{min-width:auto;padding-inline:var(--luzmo-filters-condition-padding-horizontal,var(--filters-condition-padding-horizontal));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));text-transform:uppercase;background:var(--luzmo-filters-condition-badge-background,var(--luzmo-primary));color:var(--luzmo-filters-condition-badge-color,var(--luzmo-primary-inverse-color));border-radius:var(--luzmo-filters-condition-badge-border-radius,var(--luzmo-border-radius));box-shadow:0 0 0 var(--luzmo-filters-condition-badge-halo,var(--filters-condition-badge-halo)) var(--luzmo-filters-condition-badge-background,var(--luzmo-background-color))}.condition-badge:hover{background:var(--luzmo-filters-condition-badge-background-hover,var(--luzmo-primary-hover))}.group-actions{margin-top:var(--luzmo-filters-group-actions-margin-top,var(--filters-group-actions-margin-top));gap:var(--luzmo-filters-group-actions-gap,var(--filters-group-actions-gap));flex-wrap:wrap;display:flex}.delete-group-button{margin-left:auto}.add-root-group-container{margin-top:var(--luzmo-filters-add-root-group-container-margin-top,var(--filters-add-root-group-container-margin-top));padding-left:0}.add-subgroup-button,.add-filter-button{--luzmo-action-button-text-to-visual:var(--luzmo-filters-group-actions-text-to-visual,var(--filters-group-actions-text-to-visual));--luzmo-action-button-content-color-default:var(--luzmo-filters-group-actions-color,var(--luzmo-primary-hover));--luzmo-action-button-content-color-hover:var(--luzmo-filters-group-actions-color-hover,var(--luzmo-primary-hover));--luzmo-action-button-content-color-down:var(--luzmo-filters-group-actions-color-down,var(--luzmo-primary-down));--luzmo-action-button-content-color-focus:var(--luzmo-filters-group-actions-color-focus,var(--luzmo-primary-focus))}.add-group-button{--luzmo-button-padding-label-to-icon:var(--luzmo-filters-add-group-button-text-to-visual,var(--filters-add-group-button-text-to-visual))}.dataset-ids-empty-message{color:var(--luzmo-filters-error-message-color,var(--luzmo-disabled-color));font-size:var(--luzmo-filters-error-message-font-size,var(--filters-font-size))}@container (width<=480px){.condition-badge{--luzmo-action-button-font-size:.6875rem;--luzmo-action-button-height:1.2rem;--luzmo-button-line-height:1.2rem;font-size:.6875rem;line-height:1.2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}:host([dir=rtl]) .condition-badge{transform:translate(-50%,-50%)rotate(90deg)}}.filters-loading{min-height:var(--filters-progress-circle-size);align-items:center;display:inline-flex}.filters-loading luzmo-progress-circle{--luzmo-progress-circle-size:var(--filters-progress-circle-size)}.filters-text,.filters-outline{font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));line-height:1.5}.filters-outline{--filters-outline-sentence-padding-block:calc((var(--filters-outline-row-min-height) - 1lh) / 2)}luzmo-filter-item[display=text]{--luzmo-filter-item-column-badge-color:var(--luzmo-filters-column-badge-color);--luzmo-filter-item-column-badge-font-color:var(--luzmo-filters-column-badge-font-color);--luzmo-filter-item-text-font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));--luzmo-filter-item-text-expression-color:var(--luzmo-filters-expression-color,var(--filters-expression-color));--luzmo-filter-item-text-expression-font-weight:var(--luzmo-filters-expression-font-weight,var(--filters-expression-font-weight))}.filters-text luzmo-filter-item[display=text],.filters-text-group luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-icon-gap,var(--filters-text-icon-gap))}.outline-sentence>luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap))}.filters-text{white-space:pre-wrap;word-break:break-word}.filters-text .filters-text-condition{margin-inline:0}.filters-text-condition,.filters-text-paren{vertical-align:middle}.filters-text-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight))}.outline-group{gap:var(--luzmo-spacing-1);flex-direction:column;min-width:0;display:flex}.outline-children>.outline-group:not(:first-child){margin-top:calc(var(--luzmo-spacing-1) + var(--filters-outline-sentence-padding-block) + var(--filters-outline-join-spacing) - var(--luzmo-spacing-2))}.outline-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-size:var(--luzmo-filters-outline-condition-font-size,var(--filters-outline-condition-font-size));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));letter-spacing:.04em}.outline-children{gap:var(--luzmo-spacing-2);min-width:0;flex-direction:column;margin-inline-start:var(--luzmo-filters-outline-children-margin-inline-start,var(--filters-outline-children-margin-inline-start));padding-inline-start:var(--luzmo-filters-outline-children-padding-inline-start,var(--filters-outline-children-padding-inline-start));display:flex;position:relative}.outline-children:not(.outline-children--single):before{content:"";inset-inline-start:0;inset-block:var(--luzmo-filters-outline-bracket-inset,var(--filters-outline-bracket-inset));width:var(--luzmo-spacing-2);border-inline-start:1px solid var(--luzmo-border-color);border-block-start:1px solid var(--luzmo-border-color);border-block-end:1px solid var(--luzmo-border-color);border-start-start-radius:var(--luzmo-border-radius);border-end-start-radius:var(--luzmo-border-radius);position:absolute}.outline-children--single{margin-inline-start:0;padding-inline-start:0}.outline-row{align-items:flex-start;column-gap:var(--luzmo-spacing-2);min-width:0;min-height:var(--filters-outline-row-min-height);flex-wrap:nowrap;display:flex}.outline-sentence{align-items:center;gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap));min-width:0;padding-block:var(--filters-outline-sentence-padding-block);flex-wrap:wrap;flex:auto;display:flex}.outline-delete{flex:none;align-self:flex-end;margin-inline-start:auto}:host{--filters-condition-warpper-width:56px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-3);--filters-filters-list-gap:var(--luzmo-spacing-3);--filters-nested-group-margin-top:var(--luzmo-spacing-3);--filters-nested-group-margin-bottom:var(--luzmo-spacing-3);--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-vertical-line-width:1px;--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-3);--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-4);--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size);--filters-text-font-size:var(--luzmo-font-size-m);--filters-outline-row-min-height:var(--luzmo-component-height);--filters-progress-circle-size:var(--luzmo-component-height);--filters-text-part-gap:var(--luzmo-spacing-2);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-2);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-2);--filters-expression-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-expression-font-weight:var(--luzmo-font-weight);--filters-condition-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-condition-font-weight:var(--luzmo-font-weight);--filters-condition-font-weight-emphasized:var(--luzmo-font-weight-bold);--filters-outline-condition-font-size:var(--luzmo-font-size-s)}:host([size=s]){--filters-condition-warpper-width:48px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-group-actions-text-to-visual:var(--luzmo-spacing-1);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-2);--filters-group-actions-gap:var(--luzmo-spacing-2);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-3);--filters-filter-line-gap:var(--luzmo-spacing-2);--filters-group-actions-margin-top:var(--luzmo-spacing-2);--filters-error-message-font-size:var(--luzmo-font-size-s);--filters-text-font-size:var(--luzmo-font-size-s);--filters-outline-row-min-height:var(--luzmo-component-height-s);--filters-progress-circle-size:var(--luzmo-component-height-s);--filters-text-part-gap:var(--luzmo-spacing-1);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-1);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-1);--filters-outline-join-spacing:var(--luzmo-spacing-1);--filters-outline-condition-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filters-condition-warpper-width:64px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:var(--luzmo-spacing-4);--filters-nested-group-margin-top:var(--luzmo-spacing-4);--filters-nested-group-margin-bottom:var(--luzmo-spacing-4);--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size-l);--filters-text-font-size:var(--luzmo-font-size-l);--filters-outline-row-min-height:var(--luzmo-component-height-l);--filters-progress-circle-size:var(--luzmo-component-height-l);--filters-text-part-gap:var(--luzmo-spacing-3);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-3);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-4);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filters-condition-warpper-width:72px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-add-group-button-text-to-visual:var(--luzmo-spacing-4);--filters-group-actions-gap:var(--luzmo-spacing-4);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-5);--filters-filter-line-gap:var(--luzmo-spacing-4);--filters-group-actions-margin-top:var(--luzmo-spacing-4);--filters-error-message-font-size:var(--luzmo-font-size-xl);--filters-text-font-size:var(--luzmo-font-size-xl);--filters-outline-row-min-height:var(--luzmo-component-height-xl);--filters-progress-circle-size:var(--luzmo-component-height-xl);--filters-text-part-gap:var(--luzmo-spacing-4);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-4);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-5);--filters-outline-bracket-inset:var(--luzmo-spacing-3);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-l)}@container (width<=480px){.filter-group-container{--filters-condition-warpper-width:32px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:var(--luzmo-spacing-5)}}`;function Ut(e){if(e instanceof j)return e;throw e}var Wt={and:()=>t(`AND`,{desc:`Logical AND condition for combining filters`}),or:()=>t(`OR`,{desc:`Logical OR condition for combining filters`})};function Q(e){return e===`and`?`or`:`and`}var $=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filters=[],this.format=`canonical`,this.simple=!1,this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.allowParameters=!1,this.parameters=[],this.debounce=300,this._internalFilterGroup=null,this._datasets=[],this._datasetsLoading=!1,this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hasSyntheticRoot=!1,this._datasetRequest=0,this._hierarchyRequest=0,this._debounceTimeout=null,this._filterKeys=/* @__PURE__ */ new WeakMap}static get styles(){return[v(Ht)]}_filterKey(e){let t=this._filterKeys.get(e);return t||(t={},this._filterKeys.set(e,t)),t}_preserveFilterKeys(e,t){this._isGroup(e)===this._isGroup(t)&&(this._filterKeys.set(t,this._filterKey(e)),this._isGroup(e)&&this._isGroup(t)&&t.filters.forEach((t,n)=>{let r=e.filters[n];r&&this._preserveFilterKeys(r,t)}))}_isCurrentGroup(e){return this._internalFilterGroup!==null&&(e===this._internalFilterGroup||this._findParentGroup(this._internalFilterGroup,e)!==null)}get _oneSizeSmaller(){return{xxs:`xxs`,xs:`xs`,s:`xs`,m:`s`,l:`m`,xl:`l`,xxl:`xl`}[this.size]||`s`}get _isDatasetIdsEmpty(){return!this.datasetIds||this.datasetIds.length===0}get _hasUnsupportedConditions(){let e=t=>t.condition===`or`||t.filters.some(t=>this._isGroup(t)&&e(t));return this.simple&&this._internalFilterGroup!==null&&e(this._internalFilterGroup)}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.display!==`rich`&&this._loadDatasetsForDisplay()}disconnectedCallback(){super.disconnectedCallback(),this._datasetRequest+=1,this._hierarchyRequest+=1,this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null)}willUpdate(e){if(super.willUpdate(e),e.has(`filters`))try{let e=Et(this.filters),t=this._internalFilterGroup;this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null),e.length===0?(this._internalFilterGroup=null,this._hasSyntheticRoot=!1):e.length===1?(this._internalFilterGroup=structuredClone(e[0]),this._hasSyntheticRoot=!1):(this._internalFilterGroup={condition:`and`,filters:structuredClone(e)},this._hasSyntheticRoot=!0),t&&this._internalFilterGroup&&this._preserveFilterKeys(t,this._internalFilterGroup)}catch(t){console.warn(`[${this.localName}] Keeping the current filters, the new value cannot be normalized:`,Ut(t)),this.filters=e.get(`filters`)??[]}this.display!==`rich`&&(e.has(`display`)||e.has(`datasetIds`)||e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`cacheTime`))&&this._loadDatasetsForDisplay(),this.display!==`rich`&&(e.has(`filters`)||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForDisplay()}async _loadDatasetsForDisplay(){let e=++this._datasetRequest;if(!this.datasetIds||this.datasetIds.length===0){this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();return}let{valid:t,invalid:n}=ee(this.datasetIds);if(n.length>0&&console.warn(`[${this.localName}] Invalid dataset IDs provided (not valid UUIDs): ${n.join(`, `)}. These will be skipped.`),t.length===0)this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();else{this._datasetsLoading=!0,this._configureDataBroker();try{let n=await f.fetchDatasetsWithColumnsAndFormulas(t);if(!this.isConnected||e!==this._datasetRequest)return;this._datasets=n}catch(t){if(!this.isConnected||e!==this._datasetRequest)return;console.error(`[${this.localName}] Error fetching dataset columns & formulas:`,t),this._datasets=[]}finally{this.isConnected&&e===this._datasetRequest&&(this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay())}}}_configureDataBroker(){let e={authKey:this.authKey||``,authToken:this.authToken||``};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),f.configure(e)}async _loadHierarchyLabelsForDisplay(){let e=++this._hierarchyRequest;if(this.display===`rich`||!this._internalFilterGroup){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;return}let t=Ne(this._internalFilterGroup,this._filterTextContext());if(t.length===0){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1}else{this._hierarchyLabelsLoading=!0,this._configureDataBroker();try{let n=await Pe(t,this.contentLanguage);if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=n}catch(t){if(!this.isConnected||e!==this._hierarchyRequest)return;console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{this.isConnected&&e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_filterTextContext(){return{datasets:this._datasets,contentLanguage:this.contentLanguage,timeZone:this.timeZone,hierarchyLabels:this._hierarchyLabels,hierarchyLabelsLoading:this._hierarchyLabelsLoading}}_generateEmptyGroup(){return{id:te(),condition:`and`,filters:[]}}_generateEmptyFilter(){return{expression:void 0,parameters:[],properties:{id:te()}}}_rootGroupsForExport(){if(!this._internalFilterGroup)return[];let e=this._internalFilterGroup.filters.length>0&&this._internalFilterGroup.filters.every(e=>this._isGroup(e));return this._hasSyntheticRoot&&e?structuredClone(this._internalFilterGroup.filters):[structuredClone(this._internalFilterGroup)]}_getFiltersForExport(){let e=this._rootGroupsForExport(),t=this.format===`clean`?`clean`:`canonical`;if(e.length===0)return{filters:[],format:t};if(t===`clean`)try{return{filters:e.flatMap(e=>St(e,{format:`clean`})),format:`clean`}}catch(e){console.warn(`[${this.localName}] Cannot emit clean filters, falling back to canonical output:`,Ut(e))}return{filters:e.flatMap(e=>St(e)),format:`canonical`}}_sendChangeEvent(){this._debounceTimeout&&clearTimeout(this._debounceTimeout);let e=()=>{this._debounceTimeout=null,!this._hasUnsupportedConditions&&this.dispatchEvent(new CustomEvent(`luzmo-filters-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:this._getFiltersForExport()}))};this.debounce>0?this._debounceTimeout=setTimeout(e,this.debounce):e()}_isGroup(e){return`condition`in e&&`filters`in e}_handleParameterCreated(e){let t=e.detail?.parameter;this.readonly||!t||this.parameters.some(({parameter:e})=>e===t.parameter)||(this.parameters=[...this.parameters,t])}_toggleCondition(e){this.readonly||this.simple||(e.condition=Q(e.condition),e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1),this.requestUpdate(),this._sendChangeEvent())}_addFilter(e){if(this.readonly||this._isDatasetIdsEmpty||this._hasUnsupportedConditions)return;let t=e;t||=(this._internalFilterGroup||=this._generateEmptyGroup(),this._internalFilterGroup),t.filters.push(this._generateEmptyFilter()),this.requestUpdate(),this._sendChangeEvent()}_addSubGroup(e){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this.requestUpdate(),this._sendChangeEvent()}_removeFilter(e,t){if(this.readonly||!this._internalFilterGroup||!this._isCurrentGroup(e)||this._hasUnsupportedConditions)return;let n=e.filters.findIndex(e=>this._filterKey(e)===t);if(n!==-1){if(e.filters.splice(n,1),e!==this._internalFilterGroup&&e.filters.length===0){let t=this._findParentGroup(this._internalFilterGroup,e);if(t){let n=t.filters.indexOf(e);n!==-1&&t.filters.splice(n,1)}}this._collapseGroupsAfterDelete(),this.requestUpdate(),this._sendChangeEvent()}}_updateFilter(e,t,n){n.stopPropagation();let r=n.currentTarget;if(this.readonly||!r?.isConnected||this._hasUnsupportedConditions||!this._isCurrentGroup(e))return;let i=e.filters.findIndex(e=>this._filterKey(e)===t);i!==-1&&(this._isGroup(e.filters[i])||(this._filterKeys.set(n.detail.filter,t),e.filters[i]=n.detail.filter,this._sendChangeEvent()))}_addGroup(){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;this._internalFilterGroup||=this._generateEmptyGroup();let e=this._generateEmptyGroup();e.condition=Q(this._internalFilterGroup.condition),e.filters.push(this._internalFilterGroup);let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this._internalFilterGroup=e,this._hasSyntheticRoot=!1,this.requestUpdate(),this._sendChangeEvent()}_renderFilterItem(e,n){return m`
365
+ </div>`}};t([g({type:String,attribute:`api-url`,reflect:!0})],Z.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],Z.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],Z.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],Z.prototype,`cacheTime`,void 0),t([g({type:String,reflect:!0})],Z.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],Z.prototype,`timeZone`,void 0),t([g({type:Array,attribute:`dataset-ids`,reflect:!0})],Z.prototype,`datasetIds`,void 0),t([g({type:Object,reflect:!1})],Z.prototype,`filter`,void 0),t([g({type:String,reflect:!0})],Z.prototype,`display`,void 0),t([g({type:String,attribute:`column-display`,reflect:!0})],Z.prototype,`columnDisplay`,void 0),t([g({type:Boolean,reflect:!0})],Z.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],Z.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],Z.prototype,`disabled`,void 0),t([g({attribute:!1})],Z.prototype,`textContext`,void 0),t([g({type:Boolean,attribute:`allow-parameters`,reflect:!0})],Z.prototype,`allowParameters`,void 0),t([g({attribute:!1})],Z.prototype,`parameters`,void 0),t([_()],Z.prototype,`_type`,void 0),t([_()],Z.prototype,`_subType`,void 0),t([_()],Z.prototype,`_isFormula`,void 0),t([_()],Z.prototype,`_error`,void 0),t([_()],Z.prototype,`_loading`,void 0),t([_()],Z.prototype,`_datasetsDataFields`,void 0),t([_()],Z.prototype,`_hierarchyLabels`,void 0),t([_()],Z.prototype,`_hierarchyLabelsLoading`,void 0),Z=t([i()],Z),customElements.get(`luzmo-filter-item`)||customElements.define(`luzmo-filter-item`,Z);var Ht=`:host{font-family:var(--luzmo-filters-font-family,var(--luzmo-font-family));color:var(--luzmo-filters-font-color,var(--luzmo-font-color));max-width:100%;display:block;container-type:inline-size}.filter-group-container{max-width:100%;padding:calc(var(--luzmo-indicator-gap) + 2 * var(--luzmo-indicator-width));overflow-x:hidden}.filter-group{flex-direction:row;min-width:0;max-width:100%;display:flex}.filter-group.nested{margin-top:var(--luzmo-filters-nested-group-margin-top,var(--filters-nested-group-margin-top));margin-bottom:var(--luzmo-filters-nested-group-margin-bottom,var(--filters-nested-group-margin-bottom))}.group-content{flex-direction:column;flex:1;min-width:0;display:flex}.filters-list{gap:var(--luzmo-filters-filters-list-gap,var(--filters-filters-list-gap));flex-direction:column;min-width:0;max-width:100%;display:flex}.filter-item-wrapper{align-items:flex-start;min-width:0;max-width:100%;display:flex;position:relative}.filter-item-content{align-items:flex-start;gap:var(--luzmo-filters-filter-line-gap,var(--filters-filter-line-gap));flex-wrap:nowrap;flex:1;min-width:0;display:flex}.filter-item-content luzmo-filter-item{flex:1;min-width:0}.filter-item-content .delete-filter-button{flex-shrink:0;align-self:flex-end;margin-inline-start:auto}.condition-wrapper{flex:0 0 var(--luzmo-filters-condition-warpper-width,var(--filters-condition-warpper-width));justify-content:center;align-items:center;display:flex;position:relative}.condition-wrapper:before{content:"";left:50%;top:var(--luzmo-filters-vertical-line-top,var(--filters-vertical-line-top));bottom:var(--luzmo-filters-vertical-line-bottom,var(--filters-vertical-line-bottom));width:var(--luzmo-filters-vertical-line-width,var(--filters-vertical-line-width));background:var(--luzmo-filters-vertical-line-color,var(--luzmo-border-color));position:absolute}.condition-badge{min-width:auto;padding-inline:var(--luzmo-filters-condition-padding-horizontal,var(--filters-condition-padding-horizontal));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));text-transform:uppercase;background:var(--luzmo-filters-condition-badge-background,var(--luzmo-primary));color:var(--luzmo-filters-condition-badge-color,var(--luzmo-primary-inverse-color));border-radius:var(--luzmo-filters-condition-badge-border-radius,var(--luzmo-border-radius));box-shadow:0 0 0 var(--luzmo-filters-condition-badge-halo,var(--filters-condition-badge-halo)) var(--luzmo-filters-condition-badge-background,var(--luzmo-background-color))}.condition-badge:hover{background:var(--luzmo-filters-condition-badge-background-hover,var(--luzmo-primary-hover))}.group-actions{margin-top:var(--luzmo-filters-group-actions-margin-top,var(--filters-group-actions-margin-top));gap:var(--luzmo-filters-group-actions-gap,var(--filters-group-actions-gap));flex-wrap:wrap;display:flex}.delete-group-button{margin-left:auto}.add-root-group-container{margin-top:var(--luzmo-filters-add-root-group-container-margin-top,var(--filters-add-root-group-container-margin-top));padding-left:0}.add-subgroup-button,.add-filter-button{--luzmo-action-button-text-to-visual:var(--luzmo-filters-group-actions-text-to-visual,var(--filters-group-actions-text-to-visual));--luzmo-action-button-content-color-default:var(--luzmo-filters-group-actions-color,var(--luzmo-primary-hover));--luzmo-action-button-content-color-hover:var(--luzmo-filters-group-actions-color-hover,var(--luzmo-primary-hover));--luzmo-action-button-content-color-down:var(--luzmo-filters-group-actions-color-down,var(--luzmo-primary-down));--luzmo-action-button-content-color-focus:var(--luzmo-filters-group-actions-color-focus,var(--luzmo-primary-focus))}.add-group-button{--luzmo-button-padding-label-to-icon:var(--luzmo-filters-add-group-button-text-to-visual,var(--filters-add-group-button-text-to-visual))}.dataset-ids-empty-message{color:var(--luzmo-filters-error-message-color,var(--luzmo-disabled-color));font-size:var(--luzmo-filters-error-message-font-size,var(--filters-font-size))}@container (width<=480px){.condition-badge{--luzmo-action-button-font-size:.6875rem;--luzmo-action-button-height:1.2rem;--luzmo-button-line-height:1.2rem;font-size:.6875rem;line-height:1.2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}:host([dir=rtl]) .condition-badge{transform:translate(-50%,-50%)rotate(90deg)}}.filters-loading{min-height:var(--filters-progress-circle-size);align-items:center;display:inline-flex}.filters-loading luzmo-progress-circle{--luzmo-progress-circle-size:var(--filters-progress-circle-size)}.filters-text,.filters-outline{font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));line-height:1.5}.filters-outline{--filters-outline-sentence-padding-block:calc((var(--filters-outline-row-min-height) - 1lh) / 2)}luzmo-filter-item[display=text]{--luzmo-filter-item-column-badge-color:var(--luzmo-filters-column-badge-color);--luzmo-filter-item-column-badge-font-color:var(--luzmo-filters-column-badge-font-color);--luzmo-filter-item-text-font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));--luzmo-filter-item-text-expression-color:var(--luzmo-filters-expression-color,var(--filters-expression-color));--luzmo-filter-item-text-expression-font-weight:var(--luzmo-filters-expression-font-weight,var(--filters-expression-font-weight))}.filters-text luzmo-filter-item[display=text],.filters-text-group luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-icon-gap,var(--filters-text-icon-gap))}.outline-sentence>luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap))}.filters-text{white-space:pre-wrap;word-break:break-word}.filters-text .filters-text-condition{margin-inline:0}.filters-text-condition,.filters-text-paren{vertical-align:middle}.filters-text-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight))}.outline-group{gap:var(--luzmo-spacing-1);flex-direction:column;min-width:0;display:flex}.outline-children>.outline-group:not(:first-child){margin-top:calc(var(--luzmo-spacing-1) + var(--filters-outline-sentence-padding-block) + var(--filters-outline-join-spacing) - var(--luzmo-spacing-2))}.outline-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-size:var(--luzmo-filters-outline-condition-font-size,var(--filters-outline-condition-font-size));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));letter-spacing:.04em}.outline-children{gap:var(--luzmo-spacing-2);min-width:0;flex-direction:column;margin-inline-start:var(--luzmo-filters-outline-children-margin-inline-start,var(--filters-outline-children-margin-inline-start));padding-inline-start:var(--luzmo-filters-outline-children-padding-inline-start,var(--filters-outline-children-padding-inline-start));display:flex;position:relative}.outline-children:not(.outline-children--single):before{content:"";inset-inline-start:0;inset-block:var(--luzmo-filters-outline-bracket-inset,var(--filters-outline-bracket-inset));width:var(--luzmo-spacing-2);border-inline-start:1px solid var(--luzmo-border-color);border-block-start:1px solid var(--luzmo-border-color);border-block-end:1px solid var(--luzmo-border-color);border-start-start-radius:var(--luzmo-border-radius);border-end-start-radius:var(--luzmo-border-radius);position:absolute}.outline-children--single{margin-inline-start:0;padding-inline-start:0}.outline-row{align-items:flex-start;column-gap:var(--luzmo-spacing-2);min-width:0;min-height:var(--filters-outline-row-min-height);flex-wrap:nowrap;display:flex}.outline-sentence{align-items:center;gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap));min-width:0;padding-block:var(--filters-outline-sentence-padding-block);flex-wrap:wrap;flex:auto;display:flex}.outline-delete{flex:none;align-self:flex-end;margin-inline-start:auto}:host{--filters-condition-warpper-width:56px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-3);--filters-filters-list-gap:var(--luzmo-spacing-3);--filters-nested-group-margin-top:var(--luzmo-spacing-3);--filters-nested-group-margin-bottom:var(--luzmo-spacing-3);--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-vertical-line-width:1px;--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-3);--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-4);--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size);--filters-text-font-size:var(--luzmo-font-size-m);--filters-outline-row-min-height:var(--luzmo-component-height);--filters-progress-circle-size:var(--luzmo-component-height);--filters-text-part-gap:var(--luzmo-spacing-2);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-2);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-2);--filters-expression-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-expression-font-weight:var(--luzmo-font-weight);--filters-condition-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-condition-font-weight:var(--luzmo-font-weight);--filters-condition-font-weight-emphasized:var(--luzmo-font-weight-bold);--filters-outline-condition-font-size:var(--luzmo-font-size-s)}:host([size=s]){--filters-condition-warpper-width:48px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-group-actions-text-to-visual:var(--luzmo-spacing-1);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-2);--filters-group-actions-gap:var(--luzmo-spacing-2);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-3);--filters-filter-line-gap:var(--luzmo-spacing-2);--filters-group-actions-margin-top:var(--luzmo-spacing-2);--filters-error-message-font-size:var(--luzmo-font-size-s);--filters-text-font-size:var(--luzmo-font-size-s);--filters-outline-row-min-height:var(--luzmo-component-height-s);--filters-progress-circle-size:var(--luzmo-component-height-s);--filters-text-part-gap:var(--luzmo-spacing-1);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-1);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-1);--filters-outline-join-spacing:var(--luzmo-spacing-1);--filters-outline-condition-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filters-condition-warpper-width:64px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:var(--luzmo-spacing-4);--filters-nested-group-margin-top:var(--luzmo-spacing-4);--filters-nested-group-margin-bottom:var(--luzmo-spacing-4);--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size-l);--filters-text-font-size:var(--luzmo-font-size-l);--filters-outline-row-min-height:var(--luzmo-component-height-l);--filters-progress-circle-size:var(--luzmo-component-height-l);--filters-text-part-gap:var(--luzmo-spacing-3);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-3);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-4);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filters-condition-warpper-width:72px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-add-group-button-text-to-visual:var(--luzmo-spacing-4);--filters-group-actions-gap:var(--luzmo-spacing-4);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-5);--filters-filter-line-gap:var(--luzmo-spacing-4);--filters-group-actions-margin-top:var(--luzmo-spacing-4);--filters-error-message-font-size:var(--luzmo-font-size-xl);--filters-text-font-size:var(--luzmo-font-size-xl);--filters-outline-row-min-height:var(--luzmo-component-height-xl);--filters-progress-circle-size:var(--luzmo-component-height-xl);--filters-text-part-gap:var(--luzmo-spacing-4);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-4);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-5);--filters-outline-bracket-inset:var(--luzmo-spacing-3);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-l)}@container (width<=480px){.filter-group-container{--filters-condition-warpper-width:32px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:var(--luzmo-spacing-5)}}`;function Ut(e){if(e instanceof j)return e;throw e}var Wt={and:()=>n(`AND`,{desc:`Logical AND condition for combining filters`}),or:()=>n(`OR`,{desc:`Logical OR condition for combining filters`})};function Q(e){return e===`and`?`or`:`and`}var $=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filters=[],this.format=`canonical`,this.simple=!1,this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.allowParameters=!1,this.parameters=[],this.debounce=300,this._internalFilterGroup=null,this._datasets=[],this._datasetsLoading=!1,this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hasSyntheticRoot=!1,this._datasetRequest=0,this._hierarchyRequest=0,this._debounceTimeout=null,this._filterKeys=/* @__PURE__ */ new WeakMap}static get styles(){return[v(Ht)]}_filterKey(e){let t=this._filterKeys.get(e);return t||(t={},this._filterKeys.set(e,t)),t}_preserveFilterKeys(e,t){this._isGroup(e)===this._isGroup(t)&&(this._filterKeys.set(t,this._filterKey(e)),this._isGroup(e)&&this._isGroup(t)&&t.filters.forEach((t,n)=>{let r=e.filters[n];r&&this._preserveFilterKeys(r,t)}))}_isCurrentGroup(e){return this._internalFilterGroup!==null&&(e===this._internalFilterGroup||this._findParentGroup(this._internalFilterGroup,e)!==null)}get _oneSizeSmaller(){return{xxs:`xxs`,xs:`xs`,s:`xs`,m:`s`,l:`m`,xl:`l`,xxl:`xl`}[this.size]||`s`}get _isDatasetIdsEmpty(){return!this.datasetIds||this.datasetIds.length===0}get _hasUnsupportedConditions(){let e=t=>t.condition===`or`||t.filters.some(t=>this._isGroup(t)&&e(t));return this.simple&&this._internalFilterGroup!==null&&e(this._internalFilterGroup)}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.display!==`rich`&&this._loadDatasetsForDisplay()}disconnectedCallback(){super.disconnectedCallback(),this._datasetRequest+=1,this._hierarchyRequest+=1,this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null)}willUpdate(e){if(super.willUpdate(e),e.has(`filters`))try{let e=Et(this.filters),t=this._internalFilterGroup;this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null),e.length===0?(this._internalFilterGroup=null,this._hasSyntheticRoot=!1):e.length===1?(this._internalFilterGroup=structuredClone(e[0]),this._hasSyntheticRoot=!1):(this._internalFilterGroup={condition:`and`,filters:structuredClone(e)},this._hasSyntheticRoot=!0),t&&this._internalFilterGroup&&this._preserveFilterKeys(t,this._internalFilterGroup)}catch(t){console.warn(`[${this.localName}] Keeping the current filters, the new value cannot be normalized:`,Ut(t)),this.filters=e.get(`filters`)??[]}this.display!==`rich`&&(e.has(`display`)||e.has(`datasetIds`)||e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`cacheTime`))&&this._loadDatasetsForDisplay(),this.display!==`rich`&&(e.has(`filters`)||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForDisplay()}async _loadDatasetsForDisplay(){let e=++this._datasetRequest;if(!this.datasetIds||this.datasetIds.length===0){this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();return}let{valid:t,invalid:n}=ee(this.datasetIds);if(n.length>0&&console.warn(`[${this.localName}] Invalid dataset IDs provided (not valid UUIDs): ${n.join(`, `)}. These will be skipped.`),t.length===0)this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();else{this._datasetsLoading=!0,this._configureDataBroker();try{let n=await f.fetchDatasetsWithColumnsAndFormulas(t);if(!this.isConnected||e!==this._datasetRequest)return;this._datasets=n}catch(t){if(!this.isConnected||e!==this._datasetRequest)return;console.error(`[${this.localName}] Error fetching dataset columns & formulas:`,t),this._datasets=[]}finally{this.isConnected&&e===this._datasetRequest&&(this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay())}}}_configureDataBroker(){let e={authKey:this.authKey||``,authToken:this.authToken||``};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),f.configure(e)}async _loadHierarchyLabelsForDisplay(){let e=++this._hierarchyRequest;if(this.display===`rich`||!this._internalFilterGroup){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;return}let t=Ne(this._internalFilterGroup,this._filterTextContext());if(t.length===0){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1}else{this._hierarchyLabelsLoading=!0,this._configureDataBroker();try{let n=await Pe(t,this.contentLanguage);if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=n}catch(t){if(!this.isConnected||e!==this._hierarchyRequest)return;console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{this.isConnected&&e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_filterTextContext(){return{datasets:this._datasets,contentLanguage:this.contentLanguage,timeZone:this.timeZone,hierarchyLabels:this._hierarchyLabels,hierarchyLabelsLoading:this._hierarchyLabelsLoading}}_generateEmptyGroup(){return{id:te(),condition:`and`,filters:[]}}_generateEmptyFilter(){return{expression:void 0,parameters:[],properties:{id:te()}}}_rootGroupsForExport(){if(!this._internalFilterGroup)return[];let e=this._internalFilterGroup.filters.length>0&&this._internalFilterGroup.filters.every(e=>this._isGroup(e));return this._hasSyntheticRoot&&e?structuredClone(this._internalFilterGroup.filters):[structuredClone(this._internalFilterGroup)]}_getFiltersForExport(){let e=this._rootGroupsForExport(),t=this.format===`clean`?`clean`:`canonical`;if(e.length===0)return{filters:[],format:t};if(t===`clean`)try{return{filters:e.flatMap(e=>St(e,{format:`clean`})),format:`clean`}}catch(e){console.warn(`[${this.localName}] Cannot emit clean filters, falling back to canonical output:`,Ut(e))}return{filters:e.flatMap(e=>St(e)),format:`canonical`}}_sendChangeEvent(){this._debounceTimeout&&clearTimeout(this._debounceTimeout);let e=()=>{this._debounceTimeout=null,!this._hasUnsupportedConditions&&this.dispatchEvent(new CustomEvent(`luzmo-filters-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:this._getFiltersForExport()}))};this.debounce>0?this._debounceTimeout=setTimeout(e,this.debounce):e()}_isGroup(e){return`condition`in e&&`filters`in e}_handleParameterCreated(e){let t=e.detail?.parameter;this.readonly||!t||this.parameters.some(({parameter:e})=>e===t.parameter)||(this.parameters=[...this.parameters,t])}_toggleCondition(e){this.readonly||this.simple||(e.condition=Q(e.condition),e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1),this.requestUpdate(),this._sendChangeEvent())}_addFilter(e){if(this.readonly||this._isDatasetIdsEmpty||this._hasUnsupportedConditions)return;let t=e;t||=(this._internalFilterGroup||=this._generateEmptyGroup(),this._internalFilterGroup),t.filters.push(this._generateEmptyFilter()),this.requestUpdate(),this._sendChangeEvent()}_addSubGroup(e){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this.requestUpdate(),this._sendChangeEvent()}_removeFilter(e,t){if(this.readonly||!this._internalFilterGroup||!this._isCurrentGroup(e)||this._hasUnsupportedConditions)return;let n=e.filters.findIndex(e=>this._filterKey(e)===t);if(n!==-1){if(e.filters.splice(n,1),e!==this._internalFilterGroup&&e.filters.length===0){let t=this._findParentGroup(this._internalFilterGroup,e);if(t){let n=t.filters.indexOf(e);n!==-1&&t.filters.splice(n,1)}}this._collapseGroupsAfterDelete(),this.requestUpdate(),this._sendChangeEvent()}}_updateFilter(e,t,n){n.stopPropagation();let r=n.currentTarget;if(this.readonly||!r?.isConnected||this._hasUnsupportedConditions||!this._isCurrentGroup(e))return;let i=e.filters.findIndex(e=>this._filterKey(e)===t);i!==-1&&(this._isGroup(e.filters[i])||(this._filterKeys.set(n.detail.filter,t),e.filters[i]=n.detail.filter,this._sendChangeEvent()))}_addGroup(){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;this._internalFilterGroup||=this._generateEmptyGroup();let e=this._generateEmptyGroup();e.condition=Q(this._internalFilterGroup.condition),e.filters.push(this._internalFilterGroup);let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this._internalFilterGroup=e,this._hasSyntheticRoot=!1,this.requestUpdate(),this._sendChangeEvent()}_renderFilterItem(e,t){return m`
366
366
  <div class="filter-item-wrapper">
367
367
  <div class="filter-item-content">
368
368
  <luzmo-filter-item
@@ -380,7 +380,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
380
380
  .size=${this.size}
381
381
  .quiet=${this.quiet}
382
382
  .readonly=${this.readonly}
383
- @luzmo-filter-changed=${this._updateFilter.bind(this,n,this._filterKey(e))}
383
+ @luzmo-filter-changed=${this._updateFilter.bind(this,t,this._filterKey(e))}
384
384
  @luzmo-parameter-created=${this._handleParameterCreated}
385
385
  ></luzmo-filter-item>
386
386
  <luzmo-action-button
@@ -388,16 +388,16 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
388
388
  .size=${this.size}
389
389
  quiet
390
390
  aria-disabled=${this.readonly?`true`:h}
391
- .label=${t(`Remove filter`,{desc:`Aria label for remove filter button`})}
392
- @click=${this._removeFilter.bind(this,n,this._filterKey(e))}
391
+ .label=${n(`Remove filter`,{desc:`Aria label for remove filter button`})}
392
+ @click=${this._removeFilter.bind(this,t,this._filterKey(e))}
393
393
  >
394
394
  <luzmo-icon slot="icon" .icon=${a} .size=${this.size}></luzmo-icon>
395
395
  </luzmo-action-button>
396
396
  </div>
397
397
  </div>
398
- `}_renderGroup(e,n=!1){let r=e.filters.length>0,i=e.filters.length>1,a=Wt[e.condition]?.()??e.condition;return m`
399
- <div class="filter-group ${n&&!this.simple?`nested`:``}" role="group">
400
- ${!this.simple&&(n||i)?m`
398
+ `}_renderGroup(e,t=!1){let r=e.filters.length>0,i=e.filters.length>1,a=Wt[e.condition]?.()??e.condition;return m`
399
+ <div class="filter-group ${t&&!this.simple?`nested`:``}" role="group">
400
+ ${!this.simple&&(t||i)?m`
401
401
  <div class="condition-wrapper">
402
402
  ${i?m`
403
403
  <luzmo-action-button
@@ -406,7 +406,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
406
406
  quiet
407
407
  aria-disabled=${this.readonly?`true`:h}
408
408
  aria-pressed=${e.condition===`and`?`true`:`false`}
409
- .label=${t(`Toggle filter condition, currently `,{desc:`Aria label prefix for filter condition toggle`})+a}
409
+ .label=${n(`Toggle filter condition, currently `,{desc:`Aria label prefix for filter condition toggle`})+a}
410
410
  @click=${this._toggleCondition.bind(this,e)}
411
411
  >
412
412
  ${a}
@@ -433,7 +433,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
433
433
  @click=${this._addFilter.bind(this,e)}
434
434
  >
435
435
  <luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
436
- ${t(`Filter`,{desc:`Add filter button label`})}
436
+ ${n(`Filter`,{desc:`Add filter button label`})}
437
437
  </luzmo-action-button>
438
438
 
439
439
  ${this.simple?h:m`<luzmo-action-button
@@ -445,7 +445,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
445
445
  @click=${this._addSubGroup.bind(this,e)}
446
446
  >
447
447
  <luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
448
- ${t(`Subgroup`,{desc:`Add subgroup button label`})}
448
+ ${n(`Subgroup`,{desc:`Add subgroup button label`})}
449
449
  </luzmo-action-button>`}
450
450
  </div>
451
451
  </div>
@@ -461,20 +461,20 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
461
461
  .timeZone=${this.timeZone}
462
462
  .size=${this.size}
463
463
  readonly
464
- ></luzmo-filter-item>`:h}_renderTextGroup(n,r){let i=[];for(let e of n.filters){let t=this._isGroup(e)?this._renderTextGroup(e,!1):this._renderTextLeaf(e);t!==h&&i.push(t)}if(i.length===0)return h;if(i.length===1)return i[0];let a=m`<span class="filters-text-condition">${Wt[n.condition]()}</span>`,o=n.condition===`or`?t(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filters-sentence-or`,desc:`Left filter sentence, logical OR condition, and right filter sentence`}):t(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filters-sentence-and`,desc:`Left filter sentence, logical AND condition, and right filter sentence`}),s=i.slice(1).reduce((e,t)=>C(o,[m`${e}`,a,t]),[i[0]]);return r?m`${s}`:m`<span class="filters-text-group"
465
- >${C(t(e`(${S[0]})`,{id:`filters-sentence-parentheses`,desc:`Nested filter sentence wrapped in parentheses`}),[m`${s}`]).map(e=>typeof e==`string`?m`<span class="filters-text-paren">${e}</span>`:e)}</span
466
- >`}_renderDatasetLoading(){let e=t(`Loading filters`,{desc:`Accessible label while filter column names are loading`});return m`<div class="filters-loading" role="status">
464
+ ></luzmo-filter-item>`:h}_renderTextGroup(t,r){let i=[];for(let e of t.filters){let t=this._isGroup(e)?this._renderTextGroup(e,!1):this._renderTextLeaf(e);t!==h&&i.push(t)}if(i.length===0)return h;if(i.length===1)return i[0];let a=m`<span class="filters-text-condition">${Wt[t.condition]()}</span>`,o=t.condition===`or`?n(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filters-sentence-or`,desc:`Left filter sentence, logical OR condition, and right filter sentence`}):n(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filters-sentence-and`,desc:`Left filter sentence, logical AND condition, and right filter sentence`}),s=i.slice(1).reduce((e,t)=>C(o,[m`${e}`,a,t]),[i[0]]);return r?m`${s}`:m`<span class="filters-text-group"
465
+ >${C(n(e`(${S[0]})`,{id:`filters-sentence-parentheses`,desc:`Nested filter sentence wrapped in parentheses`}),[m`${s}`]).map(e=>typeof e==`string`?m`<span class="filters-text-paren">${e}</span>`:e)}</span
466
+ >`}_renderDatasetLoading(){let e=n(`Loading filters`,{desc:`Accessible label while filter column names are loading`});return m`<div class="filters-loading" role="status">
467
467
  <luzmo-progress-circle indeterminate .label=${e} .size=${this.size}></luzmo-progress-circle>
468
468
  </div>`}_renderTextDisplay(){return m`<span class="filters-text" part="filters-text"
469
469
  >${this._internalFilterGroup?this._renderTextGroup(this._internalFilterGroup,!0):h}</span
470
- >`}_deleteOutlineFilter(e,t){this.readonly||this.display!==`outline`||this._removeFilter(e,t)}_renderOutlineRow(e,n){let r=this._renderTextLeaf(e);if(r===h)return h;let i=t(`Remove filter`,{desc:`Aria label for remove filter button`});return m`<div class="outline-row" part="filters-outline-row">
470
+ >`}_deleteOutlineFilter(e,t){this.readonly||this.display!==`outline`||this._removeFilter(e,t)}_renderOutlineRow(e,t){let r=this._renderTextLeaf(e);if(r===h)return h;let i=n(`Remove filter`,{desc:`Aria label for remove filter button`});return m`<div class="outline-row" part="filters-outline-row">
471
471
  <span class="outline-sentence">${r}</span>
472
472
  ${this.readonly?h:m`<luzmo-action-button
473
473
  class="delete-filter-button outline-delete"
474
474
  .size=${this.size}
475
475
  quiet
476
476
  .label=${i}
477
- @click=${()=>this._deleteOutlineFilter(n,this._filterKey(e))}
477
+ @click=${()=>this._deleteOutlineFilter(t,this._filterKey(e))}
478
478
  >
479
479
  <luzmo-icon slot="icon" .icon=${a} .size=${this.size}></luzmo-icon>
480
480
  </luzmo-action-button>`}
@@ -486,11 +486,11 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
486
486
  </div>`}_renderOutlineDisplay(){return m`<div class="filters-outline" part="filters-outline">
487
487
  ${this._internalFilterGroup?this._renderOutlineGroup(this._internalFilterGroup):h}
488
488
  </div>`}render(){if(this._hasUnsupportedConditions&&this.display!==`text`)return m`<div class="filter-group-container" role="status">
489
- ${t(`Filters containing OR cannot be edited in AND-only mode.`,{desc:`Explains why existing OR filters are not editable in the simplified filter editor`})}
489
+ ${n(`Filters containing OR cannot be edited in AND-only mode.`,{desc:`Explains why existing OR filters are not editable in the simplified filter editor`})}
490
490
  </div>`;if(this.display===`text`||this.display===`outline`)return this._datasetsLoading&&this._datasets.length===0?this._renderDatasetLoading():this.display===`text`?this._renderTextDisplay():this._renderOutlineDisplay();if(this._isDatasetIdsEmpty)return m`
491
491
  <div class="filter-group-container">
492
492
  <div class="dataset-ids-empty-message" role="status">
493
- ${t(`Cannot retrieve dataset data fields`,{desc:`Error message when datasetIds is empty`})}
493
+ ${n(`Cannot retrieve dataset data fields`,{desc:`Error message when datasetIds is empty`})}
494
494
  </div>
495
495
  </div>
496
496
  `;if(!this._internalFilterGroup||this._internalFilterGroup.filters.length===0)return m`
@@ -505,7 +505,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
505
505
  @click=${()=>this._addFilter()}
506
506
  >
507
507
  <luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
508
- ${t(`Add filter`,{desc:`Add filter button label`})}
508
+ ${n(`Add filter`,{desc:`Add filter button label`})}
509
509
  </luzmo-button>
510
510
  </div>
511
511
  `;let e=this._internalFilterGroup.filters.length>1;return m`
@@ -524,9 +524,9 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
524
524
  @click=${this._addGroup}
525
525
  >
526
526
  <luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
527
- ${t(`Group`,{desc:`Add group button label`})}
527
+ ${n(`Group`,{desc:`Add group button label`})}
528
528
  </luzmo-button>
529
529
  </div>
530
530
  `:``}
531
531
  </div>
532
- `}};r([g({type:String,attribute:`api-url`,reflect:!0})],$.prototype,`apiUrl`,void 0),r([g({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),r([g({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),r([g({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),r([g({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),r([g({type:String,attribute:`time-zone`,reflect:!0})],$.prototype,`timeZone`,void 0),r([g({type:Array,attribute:`dataset-ids`,reflect:!0})],$.prototype,`datasetIds`,void 0),r([g({type:Array,reflect:!1})],$.prototype,`filters`,void 0),r([g({type:String,reflect:!0})],$.prototype,`format`,void 0),r([g({type:Boolean,reflect:!0})],$.prototype,`simple`,void 0),r([g({type:String,reflect:!0})],$.prototype,`display`,void 0),r([g({type:String,attribute:`column-display`,reflect:!0})],$.prototype,`columnDisplay`,void 0),r([g({type:Boolean,reflect:!0})],$.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],$.prototype,`readonly`,void 0),r([g({type:Boolean,attribute:`allow-parameters`,reflect:!0})],$.prototype,`allowParameters`,void 0),r([g({attribute:!1})],$.prototype,`parameters`,void 0),r([g({type:Number,reflect:!0})],$.prototype,`debounce`,void 0),r([_()],$.prototype,`_internalFilterGroup`,void 0),r([_()],$.prototype,`_datasets`,void 0),r([_()],$.prototype,`_datasetsLoading`,void 0),r([_()],$.prototype,`_hierarchyLabels`,void 0),r([_()],$.prototype,`_hierarchyLabelsLoading`,void 0),$=r([i()],$),customElements.get(`luzmo-filters`)||customElements.define(`luzmo-filters`,$);export{j as FilterUnrepresentableError,$ as LuzmoFilters,Fe as MAX_FILTER_NESTING_DEPTH,We as detectFiltersFormat,Et as reverseTransformFilters,gt as toLogicalCondition,St as transformFilters};
532
+ `}};t([g({type:String,attribute:`api-url`,reflect:!0})],$.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],$.prototype,`timeZone`,void 0),t([g({type:Array,attribute:`dataset-ids`,reflect:!0})],$.prototype,`datasetIds`,void 0),t([g({type:Array,reflect:!1})],$.prototype,`filters`,void 0),t([g({type:String,reflect:!0})],$.prototype,`format`,void 0),t([g({type:Boolean,reflect:!0})],$.prototype,`simple`,void 0),t([g({type:String,reflect:!0})],$.prototype,`display`,void 0),t([g({type:String,attribute:`column-display`,reflect:!0})],$.prototype,`columnDisplay`,void 0),t([g({type:Boolean,reflect:!0})],$.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],$.prototype,`readonly`,void 0),t([g({type:Boolean,attribute:`allow-parameters`,reflect:!0})],$.prototype,`allowParameters`,void 0),t([g({attribute:!1})],$.prototype,`parameters`,void 0),t([g({type:Number,reflect:!0})],$.prototype,`debounce`,void 0),t([_()],$.prototype,`_internalFilterGroup`,void 0),t([_()],$.prototype,`_datasets`,void 0),t([_()],$.prototype,`_datasetsLoading`,void 0),t([_()],$.prototype,`_hierarchyLabels`,void 0),t([_()],$.prototype,`_hierarchyLabelsLoading`,void 0),$=t([i()],$),customElements.get(`luzmo-filters`)||customElements.define(`luzmo-filters`,$);export{j as FilterUnrepresentableError,$ as LuzmoFilters,Fe as MAX_FILTER_NESTING_DEPTH,We as detectFiltersFormat,Et as reverseTransformFilters,gt as toLogicalCondition,St as transformFilters};