@luzmo/analytics-components-kit 1.2.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +8 -3
  2. package/angular/components/add-to-dashboard.ts +20 -6
  3. package/angular/components/data-fields-select.ts +5 -0
  4. package/angular/components/interactive-viz-item.ts +89 -24
  5. package/angular/components/item-grid-item-actions-menu.ts +5 -0
  6. package/angular/components/item-grid.ts +7 -0
  7. package/angular/components/item-option-color-picker.ts +28 -28
  8. package/angular/components/item-option-guidelines.ts +22 -1
  9. package/angular/components/item-option-multi-language-field.ts +7 -7
  10. package/angular/components/item-option-number-field.ts +14 -14
  11. package/angular/components/item-option-positions-number-field.ts +14 -14
  12. package/angular/components/item-option-radio-button-group.ts +7 -7
  13. package/angular/components/item-option-text-field.ts +7 -7
  14. package/angular/components/item-slot-picker-panel.ts +1 -1
  15. package/angular/components/item-slot-picker.ts +7 -7
  16. package/angular/esm/components/add-to-dashboard.d.ts +8 -4
  17. package/angular/esm/components/add-to-dashboard.js +23 -7
  18. package/angular/esm/components/data-fields-select.d.ts +2 -0
  19. package/angular/esm/components/data-fields-select.js +4 -0
  20. package/angular/esm/components/interactive-viz-item.d.ts +32 -11
  21. package/angular/esm/components/interactive-viz-item.js +99 -28
  22. package/angular/esm/components/item-grid-item-actions-menu.d.ts +2 -0
  23. package/angular/esm/components/item-grid-item-actions-menu.js +4 -0
  24. package/angular/esm/components/item-grid.d.ts +3 -1
  25. package/angular/esm/components/item-grid.js +9 -1
  26. package/angular/esm/components/item-option-color-picker.d.ts +10 -10
  27. package/angular/esm/components/item-option-color-picker.js +34 -34
  28. package/angular/esm/components/item-option-guidelines.d.ts +8 -2
  29. package/angular/esm/components/item-option-guidelines.js +26 -2
  30. package/angular/esm/components/item-option-multi-language-field.d.ts +3 -3
  31. package/angular/esm/components/item-option-multi-language-field.js +10 -10
  32. package/angular/esm/components/item-option-number-field.d.ts +5 -5
  33. package/angular/esm/components/item-option-number-field.js +18 -18
  34. package/angular/esm/components/item-option-positions-number-field.d.ts +5 -5
  35. package/angular/esm/components/item-option-positions-number-field.js +18 -18
  36. package/angular/esm/components/item-option-radio-button-group.d.ts +3 -3
  37. package/angular/esm/components/item-option-radio-button-group.js +10 -10
  38. package/angular/esm/components/item-option-text-field.d.ts +3 -3
  39. package/angular/esm/components/item-option-text-field.js +10 -10
  40. package/angular/esm/components/item-slot-picker-panel.d.ts +1 -1
  41. package/angular/esm/components/item-slot-picker-panel.js +1 -1
  42. package/angular/esm/components/item-slot-picker.d.ts +3 -3
  43. package/angular/esm/components/item-slot-picker.js +9 -9
  44. package/angular/package.json +2 -2
  45. package/components/add-to-dashboard/dashboard-actions.d.ts +2 -1
  46. package/components/add-to-dashboard/index.cjs +1 -1
  47. package/components/add-to-dashboard/index.js +1 -1
  48. package/components/{add-to-dashboard-NwsCPIlg.cjs → add-to-dashboard-BtzTZdjN.cjs} +1 -1
  49. package/components/{add-to-dashboard-NcVHlqrc.js → add-to-dashboard-Bu6S3qVz.js} +125 -120
  50. package/components/chart-helpers-BHxQbLBw.cjs +20 -0
  51. package/components/{chart-helpers-Dng_LGfq.js → chart-helpers-BKeMLhov.js} +53 -39
  52. package/components/filters/index.cjs +1 -1
  53. package/components/filters/index.js +1 -1
  54. package/components/{filters-CxIzuI5q.js → filters-DEpmh9Nj.js} +113 -102
  55. package/components/filters-LDXhe1Bp.cjs +187 -0
  56. package/components/index.cjs +1 -1
  57. package/components/index.js +6 -6
  58. package/components/interactive-viz-item/helpers/chart-helpers.d.ts +2 -1
  59. package/components/interactive-viz-item/index.cjs +1 -1
  60. package/components/interactive-viz-item/index.d.ts +1 -1
  61. package/components/interactive-viz-item/index.js +3 -3
  62. package/components/interactive-viz-item/interactive-viz-item.d.ts +47 -1
  63. package/components/interactive-viz-item/types.d.ts +4 -0
  64. package/components/interactive-viz-item-Cc3Ix95e.js +630 -0
  65. package/components/interactive-viz-item-SF12d97t.cjs +269 -0
  66. package/components/item-grid/item-grid.d.ts +1 -0
  67. package/components/item-slot-picker-panel/index.cjs +1 -1
  68. package/components/item-slot-picker-panel/index.js +1 -1
  69. package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +19 -1
  70. package/components/item-slot-picker-panel-Cw3UCK03.cjs +84 -0
  71. package/components/{item-slot-picker-panel-fJqEmxeD.js → item-slot-picker-panel-DprM9Rli.js} +64 -33
  72. package/custom-elements.json +3051 -2531
  73. package/grid-core/item-grid-base.d.ts +5 -4
  74. package/package.json +2 -2
  75. package/react/package.json +2 -2
  76. package/standalone/add-to-dashboard.js +40 -40
  77. package/standalone/chunks/{chart-helpers-DsIGsaDc.js → chart-helpers-DZsidiCl.js} +2 -2
  78. package/standalone/chunks/{choropleth-map-options.config-rUJsEJcm.js → choropleth-map-options.config-CDMjKnJD.js} +1 -1
  79. package/standalone/chunks/{color-range-utils-DxOtqAKB.js → color-range-utils-BVyHBRiq.js} +1 -1
  80. package/standalone/chunks/data-broker-DpSrH3IP.js +2 -0
  81. package/standalone/chunks/de-BkB0q1Eg.js +2 -0
  82. package/standalone/chunks/display-settings-binning-DhHlclWH.js +38 -0
  83. package/standalone/chunks/display-settings-datetime-C8xvOvi4.js +199 -0
  84. package/standalone/chunks/display-settings-grand-totals-CUpigDcs.js +26 -0
  85. package/standalone/chunks/display-settings-numeric-BLWF54Jx.js +172 -0
  86. package/standalone/chunks/display-settings-period-over-period-COd4tvUw.js +209 -0
  87. package/standalone/chunks/embed-Bv1ps-EM.js +260 -0
  88. package/standalone/chunks/en-DNsyAwgq.js +2 -0
  89. package/standalone/chunks/en-GB-Di3OzVdL.js +2 -0
  90. package/standalone/chunks/en-US-DNsyAwgq.js +2 -0
  91. package/standalone/chunks/es-Bo0jStZn.js +2 -0
  92. package/standalone/chunks/{filters-DKgJcQGP.js → filters-lhg_WVDK.js} +108 -108
  93. package/standalone/chunks/{formula-codemirror-BbyvNEVD.js → formula-codemirror-DZMzLE2I.js} +17 -17
  94. package/standalone/chunks/fr-Co_qVhhV.js +2 -0
  95. package/standalone/chunks/{heat-map-options.config-D93AeYFi.js → heat-map-options.config-DDQMD38W.js} +1 -1
  96. package/standalone/chunks/{heat-table-options.config-ZVML76FK.js → heat-table-options.config-B4K0Ygug.js} +1 -1
  97. package/standalone/chunks/{is-same-option-value-Di-A7Wmg.js → is-same-option-value-7kXNF4st.js} +1 -1
  98. package/standalone/chunks/item-option-action-button-group-Bl1HR1JK.js +35 -0
  99. package/standalone/chunks/item-option-base-DF24wTyv.js +38 -0
  100. package/standalone/chunks/item-option-color-palette-picker-MkIIn56p.js +22 -0
  101. package/standalone/chunks/item-option-color-picker-CxosMo_p.js +19 -0
  102. package/standalone/chunks/item-option-color-range-C7C70r4J.js +83 -0
  103. package/standalone/chunks/item-option-guidelines-iu8yWRzr.js +120 -0
  104. package/standalone/chunks/{item-option-multi-language-field-DPPpN2qg.js → item-option-multi-language-field-foanqCdr.js} +1 -1
  105. package/standalone/chunks/{item-option-number-field-CkqJjInE.js → item-option-number-field-ByVD4oq0.js} +1 -1
  106. package/standalone/chunks/item-option-panel-Bya-K7HH.js +316 -0
  107. package/standalone/chunks/{item-option-picker-BnwQPT9A.js → item-option-picker-CqNNVIML.js} +1 -1
  108. package/standalone/chunks/item-option-position-picker-BjCFVtDH.js +14 -0
  109. package/standalone/chunks/item-option-positions-number-field-BJJtXZL-.js +31 -0
  110. package/standalone/chunks/{item-option-radio-button-group-BkymJq3E.js → item-option-radio-button-group-C5bxsD85.js} +1 -1
  111. package/standalone/chunks/item-option-slider-DUXWz70B.js +18 -0
  112. package/standalone/chunks/item-option-switch-BHyJuOkP.js +12 -0
  113. package/standalone/chunks/{item-option-text-field-D7bkuhsv.js → item-option-text-field-rBZY9OX4.js} +1 -1
  114. package/standalone/chunks/{item-slot-picker-panel-D4BMxGs9.js → item-slot-picker-panel-BM82vSXi.js} +101 -99
  115. package/standalone/chunks/load-data-fields-for-datasets-DS9O1oyy.js +25 -0
  116. package/standalone/chunks/localize-DLl7tgQp.js +2 -0
  117. package/standalone/chunks/localized-decorator-DosMCCQo.js +2 -0
  118. package/standalone/chunks/{version-BW4Ixl63.js → localized-mixin-BWJj88bd.js} +1 -1
  119. package/standalone/chunks/nl-CQz2jrVx.js +2 -0
  120. package/standalone/chunks/{option-interaction-controller-BslAXAHF.js → option-interaction-controller-BuwRr21c.js} +1 -1
  121. package/standalone/chunks/{route-map-options.config-Dwy0JSVq.js → route-map-options.config-CGBkHnhM.js} +1 -1
  122. package/standalone/chunks/{spike-map-options.config-DFmuNxym.js → spike-map-options.config-CSenlJ_F.js} +1 -1
  123. package/standalone/interactive-viz-item.js +88 -84
  124. package/standalone/item-grid.js +10 -10
  125. package/standalone/manifest.json +46 -46
  126. package/types.d.ts +1 -1
  127. package/components/chart-helpers-ufZ6VbXs.cjs +0 -20
  128. package/components/filters-BPbPFOu5.cjs +0 -187
  129. package/components/interactive-viz-item-CwRRaCZB.js +0 -583
  130. package/components/interactive-viz-item-CxdrGRKc.cjs +0 -265
  131. package/components/item-slot-picker-panel-BhhN54IM.cjs +0 -82
  132. package/standalone/chunks/data-broker-DXDyIrj_.js +0 -2
  133. package/standalone/chunks/de-mdZT2W1G.js +0 -2
  134. package/standalone/chunks/display-settings-binning-Byffw2Kl.js +0 -38
  135. package/standalone/chunks/display-settings-datetime-CD52d6Sv.js +0 -199
  136. package/standalone/chunks/display-settings-grand-totals-Cky99LX9.js +0 -26
  137. package/standalone/chunks/display-settings-numeric-C9ea7Tgc.js +0 -172
  138. package/standalone/chunks/display-settings-period-over-period-BLSGumkD.js +0 -209
  139. package/standalone/chunks/embed-CBu7iQRx.js +0 -231
  140. package/standalone/chunks/en-CSboh17P.js +0 -2
  141. package/standalone/chunks/en-GB-HoXKQBOY.js +0 -2
  142. package/standalone/chunks/en-US-CSboh17P.js +0 -2
  143. package/standalone/chunks/es-Di5D8JFd.js +0 -2
  144. package/standalone/chunks/fr-DZku7iB9.js +0 -2
  145. package/standalone/chunks/item-option-action-button-group-BEAwPHVw.js +0 -35
  146. package/standalone/chunks/item-option-base-CRUxNhJQ.js +0 -38
  147. package/standalone/chunks/item-option-color-palette-picker-CBz61iZb.js +0 -22
  148. package/standalone/chunks/item-option-color-picker-lLvBPnKA.js +0 -19
  149. package/standalone/chunks/item-option-color-range-BqeatOei.js +0 -83
  150. package/standalone/chunks/item-option-guidelines-Cop8rM8y.js +0 -120
  151. package/standalone/chunks/item-option-panel-CzSKFCVl.js +0 -316
  152. package/standalone/chunks/item-option-position-picker-Bkc4JvJX.js +0 -14
  153. package/standalone/chunks/item-option-positions-number-field-Dr_315TE.js +0 -31
  154. package/standalone/chunks/item-option-slider-K_bsNci8.js +0 -18
  155. package/standalone/chunks/item-option-switch-DeihDHhM.js +0 -12
  156. package/standalone/chunks/load-data-fields-for-datasets-ClctSj6y.js +0 -25
  157. package/standalone/chunks/localize-DXRmGRe-.js +0 -2
  158. package/standalone/chunks/localized-decorator-DJVBmJVH.js +0 -2
  159. package/standalone/chunks/nl-CViTevL3.js +0 -2
@@ -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-DS9O1oyy.js";import{t as u}from"./luzmoPlus-Dyrrz0v8.js";import{t as d}from"./luzmo-icon-markup-ByaNI6dg.js";import{y as f}from"./chart-helpers-DZsidiCl.js";import{n as p}from"./data-broker-DpSrH3IP.js";import{t as m}from"./localize-DLl7tgQp.js";import{t as ee}from"./v4-BxSu4gkw.js";import{html as h,ifDefined as te,nothing as g,property as _,query as ne,repeat as re,state as v,unsafeCSS as y}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 b,LuzmoElement as x,SizedMixin as S}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 C=[``,``,``],ie=`⁣`;function w(e,t){let n=RegExp(`(${C.join(`|`)})`,`u`),r=[];for(let i of e.replaceAll(ie,``).split(n)){let e=C.indexOf(i);e===-1?i&&r.push(i):r.push(t[e])}return r}var T=()=>[{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`]}],ae=(e,t,n)=>{let r=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`]);return!e&&!t?T():T().filter(i=>(e&&i.type.includes(e)||t&&i.subtype?.includes(t))&&!(n&&r.has(i.key)))},oe=/* @__PURE__ */ new Set([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`]),se=/* @__PURE__ */ new Set([`last_completed`,`next_full`]),ce=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`]),le=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),ue=3,de=32;function E(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function D(e){return E(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 fe(e){return e.length<=de?{display:e,truncated:!1}:{display:`${e.slice(0,31)}…`,truncated:!0}}function O(e,t,n){try{return new Intl.ListFormat(e||void 0,{style:`long`,type:n}).format(t)}catch{return t.join(`, `)}}function k(e,t,n){let r=we(e,t,n),{display:i,truncated:a}=fe(r);return{label:i,full:r,truncated:a}}function pe(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 me(){return n(`Some item names could not be retrieved`,{desc:`Tooltip when a hierarchy filter value is still an id after name lookup`})}function he(e,t){return!!(t?.type===`hierarchy`&&t.datasetId&&t.fieldId&&!(E(e)&&e.name!==void 0)&&N(e))}function A(e,t,n){let r=n?.datasetId,i=n?.fieldId;return!r||!i?[]:e.flatMap(e=>{if(!he(e,n))return[];let a=N(e);return a?t.hierarchyLabels?.get(Ce(r,i,a))?[]:[a]:[]})}function j(e,t,n){return n.hierarchyLabelsLoading&&t.length>0?{valueText:pe(t.length),valuePending:!0}:n.hierarchyLabels&&!n.hierarchyLabelsLoading&&t.length>0&&!e.valueTooltip?{...e,valueTooltip:me()}:e}function ge(t,r,i){let a=t.map(e=>k(e,r,i)),o=a.map(e=>e.full),s=O(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(ue,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=O(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=O(r.contentLanguage,a.map(e=>e.label),`conjunction`);return{valueText:f,valueTooltip:l>0||d?s:void 0}}function M(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=m(e,t);if(n)return n}return n}function _e(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function ve(e,t){let n=_e(e,[`datasetId`,`dataset_id`]),r=_e(e,[`columnId`,`column_id`]),i=_e(e,[`formulaId`,`formula_id`]),a=typeof e.formula==`string`?e.formula:void 0,o=t.datasets.find(e=>e.id===n),s=o?M(o.name,t.contentLanguage,``):``;if(i){let e=o?.formulas?.find(e=>e.id===i),r=M(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=M(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 ye(e){let t=o.find(t=>t.level===e);return t?t.i18n():``}function be(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 xe(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 Se(e){return/^\d{4}-\d{2}-\d{2}(?:T|$)/.test(e)}function Ce(e,t,n){return`${e}:${t}:${n}`}function N(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(E(e)&&(typeof e.id==`string`||typeof e.id==`number`))return String(e.id)}function we(e,t,n){if(n?.type===`hierarchy`&&n.datasetId&&n.fieldId&&!(E(e)&&e.name!==void 0)){let r=N(e),i=r===void 0?void 0:t.hierarchyLabels?.get(Ce(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 Se(e)?xe(e,t):e;if(typeof e==`boolean`)return String(e);if(E(e)){if(typeof e.parameter==`string`)return e.parameter;if(e.name!==void 0){let n=M(e.name,t.contentLanguage,``);if(n)return n}if(typeof e.id==`string`||typeof e.id==`number`)return String(e.id)}return``}function Te(e,t){let n=T().filter(t=>t.expression===e),r=E(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 Ee(t,r,i,a){if(ce.has(t)||r==null)return{valueText:``};if(E(r)&&typeof r.parameter==`string`){let e=r.parameter;if(!D(r))return{valueText:e}}if(le.has(t)&&D(r))return{valueText:``,valueField:ve(r,i)};if(t===`? between ?`&&Array.isArray(r)&&r.length===2){let t=k(r[0],i,a),o=k(r[1],i,a);return j({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},A(r,i,a),i)}if(oe.has(t)&&E(r))return{valueText:be(typeof r.quantity==`number`?r.quantity:1,r.unit)};if(se.has(t)&&E(r))return{valueText:ye(r.unit)};if(Array.isArray(r))return r.length===0?{valueText:``}:j(ge(r,i,a),A(r,i,a),i);let o=k(r,i,a);return j({valueText:o.label,valueTooltip:o.truncated?o.full:void 0},A([r],i,a),i)}function De(e,t){let n=e.parameters?.[0];if(!E(n)||!D(n))return null;let r=ve(n,t),i=typeof e.expression==`string`?e.expression:``,a=e.parameters?.[1];return{field:r,expression:i?Te(i,a):``,...Ee(i,a,t,r)}}function Oe(e){return`condition`in e&&`filters`in e}function ke(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(ke);if(E(e)){if(typeof e.parameter==`string`||e.name!==void 0||D(e))return[];let t=N(e);return t?[t]:[]}let t=N(e);return t?[t]:[]}function Ae(e,t){let n=/* @__PURE__ */ new Map,r=e=>{if(Oe(e)){e.filters.forEach(r);return}let i=e.parameters?.[0];if(!E(i)||!D(i))return;let a=ve(i,t);if(a.type!==`hierarchy`||!a.datasetId||!a.fieldId)return;let o=[...new Set(ke(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 je(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 p.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?m(i.name,t):``;s&&n.set(Ce(e.datasetId,a,o),s)}})),n}var Me=20,P=class extends Error{constructor(e){super(e),this.name=`FilterUnrepresentableError`}},Ne=/* @__PURE__ */ new Set([`and`,`or`]),Pe=[`datasetId`,`dataset_id`,`columnId`,`column_id`,`formulaId`,`formula_id`,`formula`,`columnExpression`,`value`,`ignoredItemIds`];function F(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function I(e){return!F(e)||e.condition!==void 0&&(typeof e.condition!=`string`||!Ne.has(e.condition.toLowerCase()))?!1:`filters`in e||`subGroups`in e}function Fe(e){return F(e)&&`expression`in e&&!(`condition`in e)}function Ie(e){return Pe.some(t=>t in e)}function Le(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 Re(e){return!Fe(e)||typeof e.expression!=`string`||e.expression.length===0||`parameters`in e||typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?!1:Le(e)}function ze(e){return!Fe(e)||!Array.isArray(e.parameters)?!1:!Ie(e)}function Be(e){if(!(`parameters`in e))return;let t=Pe.find(t=>t in e);if(t!==void 0)throw new P(`Filter leaf mixes "parameters" with the clean inline key "${t}".`)}function Ve(e){throw typeof e.expression!=`string`||e.expression.length===0?new P(`Clean filter leaf is missing a non-empty "expression".`):typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?new P(`Clean filter leaf "${e.expression}" is missing a "datasetId".`):new P(`Clean filter leaf "${e.expression}" must name exactly one of "columnId", "formulaId", "formula", or "columnExpression".`)}function He(e){return e===`where`||e===`having`}function L(e){if(e>20)throw new P(`Filter nesting exceeds the maximum depth of 20.`)}function Ue(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(I(e)){He(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 Fe(e)?`parameters`in e&&Ie(e)?r=!0:Re(e)?n=!0:ze(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 We=/* @__PURE__ */ new Set([`? is null`,`? is not null`]),Ge=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),Ke=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? between ?`]),qe={"array[numeric]":`numeric[]`,"array[hierarchy]":`hierarchy[]`,"array[datetime]":`datetime[]`},Je=/* @__PURE__ */ new Set([`level`,`lowestLevel`,`unnest`,`discretization`,`aggregation`,`index`,`include_nonoccurring`,`simplification`]);function R(e,t){return e!==`lowestLevel`&&!(t===null&&Je.has(e))}function z(e){return structuredClone(e)}function Ye(e){let t=e.datasetId??e.dataset_id;if(typeof t!=`string`||t.length===0)throw new P(`Filter reference is missing a "datasetId".`);return t}function Xe(e){return F(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 Ze(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 Qe(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&&R(`level`,e.level)&&(t.level=e.level),F(e.discretization)&&(t.discretization=Ze(e.discretization)),e.unnest!==void 0&&R(`unnest`,e.unnest)&&(t.unnest=e.unnest),t}function $e(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=>F(e)?rt(e):e)),t}function et(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),F(e.discretization)&&(t.discretization=$e(e.discretization)),e.unnest!==void 0&&(t.unnest=e.unnest),t}function tt(e,t){e.level!==void 0&&(t.level=z(e.level)),F(e.discretization)&&(t.discretization=$e(e.discretization)),F(e.aggregation)&&(t.aggregation=et(e.aggregation)),e.unnest!==void 0&&(t.unnest=z(e.unnest))}function nt(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 rt(e,t=!0){let n={datasetId:Ye(e)},r=nt(e,t);return r!==void 0&&(r.kind===`expression`?n.expression=r.value:n[r.kind]=r.value),tt(e,n),n}function it(e){if(!F(e))throw new P(`Cannot emit a clean filter reference.`);let t={datasetId:Ye(e)};e.level!==void 0&&R(`level`,e.level)&&(t.level=e.level),F(e.discretization)&&(t.discretization=Ze(e.discretization)),F(e.aggregation)&&(t.aggregation=Qe(e.aggregation)),e.unnest!==void 0&&R(`unnest`,e.unnest)&&(t.unnest=e.unnest);let n=nt(e,!0);if(n===void 0)throw new P(`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(!F(e)||typeof e.parameter!=`string`||typeof e.type!=`string`)return e;let t=qe[e.type];return t===void 0?e:{...e,type:t}}function ot(e,t){return F(t)&&typeof t.parameter==`string`?!0:Array.isArray(t)?e!==`? between ?`||t.length===2:!1}function st(e,t){let n=e.expression,r=[rt(e,!1)];if(!We.has(n)&&e.value!==void 0){let t=Ge.has(n)&&Xe(e.value);r.push(t?rt(e.value):z(e.value))}let i={};typeof e.id==`string`&&(i.id=e.id),`ignoredItemIds`in e&&(i.ignore=z(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(!F(n[0]))throw new P(`Cannot emit a clean filter reference for "${t}".`);let r={...it(n[0]),expression:t};if(!We.has(t)){let e=n[1];if(e===void 0)throw new P(`Filter "${t}" is missing its value operand.`);if(r.value=Xe(e)&&Ge.has(t)?it(e):at(z(e)),Ke.has(t)&&!ot(t,r.value))throw new P(`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=z(i.ignore)),r}function lt(e){return I(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){L(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){L(n);let r=e.clause??t;if(e.condition===`or`&&B(e,r,n).size>1)throw new P(`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){L(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 I(e)}function vt(e){if(!Array.isArray(e)||e.length===0)return[];let t=F(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)]:[]}var Ct=[[`dataset_id`,`datasetId`],[`column_id`,`columnId`],[`formula_id`,`formulaId`]];function wt(e){if(!Xe(e)||!Ct.some(([t])=>t in e))return e;let t={...e};for(let[e,n]of Ct)e in t&&(t[n]??=t[e],delete t[e]);return t}function Tt(e,t){let n={expression:typeof e.expression==`string`?e.expression:void 0,parameters:Array.isArray(e.parameters)?e.parameters.map(wt):[]},r=F(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 Et(e,t,n){if(I(e))return Dt(e,t,n);if(!F(e))return;let r=e.expression;if(Be(e),Re(e))return st(e,t);if(Ie(e)&&Ve(e),ze(e))return Tt(e,t);throw new P(`Filter leaf "${String(r)}" matches neither a complete clean nor a complete canonical encoding.`)}function Dt(e,t,n){L(n);let r=He(e.clause)?e.clause:void 0,i=r??t,a=[];for(let t of Array.isArray(e.filters)?e.filters:[]){let e=Et(t,i,n+1);e!==void 0&&a.push(e)}for(let t of Array.isArray(e.subGroups)?e.subGroups:[])I(t)&&a.push(Dt(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 Ot(e){return!e||e.length===0?[]:e.filter(e=>I(e)).map(e=>Dt(e,void 0,1))}var kt=`:host{font-family:var(--luzmo-font-family)}luzmo-select{width:100%}:host{--var:blue}`,V=class extends r(S(x,{validSizes:Object.values(b)})){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=T()}static get styles(){return[y(kt)]}_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=ae(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=ae(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=h`<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 h`${this.hasLabel?r:``}
7
7
  <luzmo-select
8
8
  label=${i}
9
9
  id="expression"
@@ -12,31 +12,31 @@ 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([_({type:String,reflect:!0})],V.prototype,`filter`,void 0),t([_({type:Boolean,attribute:`has-label`,reflect:!0})],V.prototype,`hasLabel`,void 0),t([_({type:String,reflect:!0})],V.prototype,`label`,void 0),t([_({type:Boolean,attribute:`allow-empty`,reflect:!0})],V.prototype,`allowEmpty`,void 0),t([_({type:String,attribute:`placeholder`,reflect:!0})],V.prototype,`placeholder`,void 0),t([_({type:Boolean,attribute:`disabled`,reflect:!0})],V.prototype,`disabled`,void 0),t([_({type:Boolean,reflect:!0})],V.prototype,`readonly`,void 0),t([_({type:Boolean,reflect:!0})],V.prototype,`quiet`,void 0),t([_({type:String,attribute:`type`,reflect:!0})],V.prototype,`type`,void 0),t([_({type:String,attribute:`subtype`,reflect:!0})],V.prototype,`subtype`,void 0),t([_({type:Boolean,attribute:`invalid`,reflect:!0})],V.prototype,`invalid`,void 0),t([_({type:Boolean,attribute:`is-formula`,reflect:!0})],V.prototype,`isFormula`,void 0),t([v()],V.prototype,`_richExpression`,void 0),t([v()],V.prototype,`_unit`,void 0),V=t([i()],V),customElements.get(`luzmo-filter-expression-picker`)||customElements.define(`luzmo-filter-expression-picker`,V);var At=/* @__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`]),jt=/* @__PURE__ */ new Set([`? length = ?`,`? length >= ?`,`? length <= ?`]),Mt=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? includes all ?`,`? includes any ?`,`? includes only ?`]);function H(e,t){return!e||e===`spatial`||!t||At.has(t)?[]:jt.has(t)?[`numeric`]:e===`numeric`||e===`array[numeric]`?Mt.has(t)?[`array[numeric]`]:[`numeric`]:e===`datetime`||e===`array[datetime]`?Mt.has(t)?[`array[datetime]`,`datetime`]:[`datetime`,`array[datetime]`]:e===`hierarchy`||e===`array[hierarchy]`?Mt.has(t)?[`array[hierarchy]`]:[`hierarchy`]:[]}var Nt={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 Pt(e){return Nt[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 Ft(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 It=`: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(S(x,{validSizes:Object.values(b)})){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??[],y(It)]}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=Ft(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 g;let t=Pt(e);return h`
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 h`
38
38
  <div class="parameter-control">
39
- ${this.selectedParameter?m`
39
+ ${this.selectedParameter?h`
40
40
  <luzmo-tags class="selected-parameter-tags">
41
41
  <luzmo-tag
42
42
  class="selected-parameter"
@@ -45,21 +45,21 @@ 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}
52
52
  </luzmo-tag>
53
53
  </luzmo-tags>
54
- `:h}
54
+ `:g}
55
55
  <luzmo-action-button
56
56
  id="parameter-trigger"
57
57
  class="parameter-trigger"
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,30 +101,30 @@ 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
- ${this._duplicateName?m`<div class="validation-message" role="alert">
111
- ${t(`A parameter with this name already exists.`,{desc:`Duplicate filter parameter name error`})}
112
- </div>`:h}
113
- ${this._parameterOptions.length>0?m`<luzmo-options
110
+ ${this._duplicateName?h`<div class="validation-message" role="alert">
111
+ ${n(`A parameter with this name already exists.`,{desc:`Duplicate filter parameter name error`})}
112
+ </div>`:g}
113
+ ${this._parameterOptions.length>0?h`<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}
120
- ></luzmo-options>`:h}
120
+ ></luzmo-options>`:g}
121
121
  ${this._renderParameterType()}
122
122
  </div>
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([_({attribute:!1})],K.prototype,`parameters`,void 0),t([_({attribute:!1})],K.prototype,`allowedTypes`,void 0),t([_({attribute:!1})],K.prototype,`selectedParameter`,void 0),t([_({attribute:!1})],K.prototype,`currentValue`,void 0),t([_({type:Boolean,reflect:!0})],K.prototype,`disabled`,void 0),t([_({type:Boolean,reflect:!0})],K.prototype,`readonly`,void 0),t([_({type:Boolean,reflect:!0})],K.prototype,`quiet`,void 0),t([v()],K.prototype,`_open`,void 0),t([v()],K.prototype,`_newParameterName`,void 0),t([ne(`luzmo-overlay`)],K.prototype,`_overlay`,void 0),t([ne(`.parameter-trigger`)],K.prototype,`_triggerElement`,void 0),t([ne(`.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 Lt=`: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}`,Rt=`: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(S(x,{validSizes:Object.values(b)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1}static get styles(){return[y(Rt)]}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`),h`<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}
@@ -133,8 +133,8 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
133
133
  .timeZone=${this.timeZone}
134
134
  @change=${this.setDate}
135
135
  .value=${this.filter?.parameters?.[1]}
136
- ></luzmo-date-time-picker>`}renderQuantityField(){return m`<luzmo-number-field
137
- label=${t(`Quantity`,{desc:`Label for quantity number field`})}
136
+ ></luzmo-date-time-picker>`}renderQuantityField(){return h`<luzmo-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}
@@ -142,20 +142,20 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
142
142
  .value=${this.filter?.parameters?.[1]?.quantity}
143
143
  @input=${this.setQuantity}
144
144
  @change=${this.setQuantity}
145
- ></luzmo-number-field>`}renderUnitPicker(){let e=o.map(e=>m`<luzmo-menu-item .value=${e.key}>
145
+ ></luzmo-number-field>`}renderUnitPicker(){let e=o.map(e=>h`<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 h`<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)?h`${this.renderQuantityField()}${this.renderUnitPicker()}`:[`last_completed`,`next_full`].includes(e)?this.renderUnitPicker():this.renderDatePicker()}};t([_({type:String,attribute:`content-language`,reflect:!0})],q.prototype,`contentLanguage`,void 0),t([_({type:String,attribute:`time-zone`,reflect:!0})],q.prototype,`timeZone`,void 0),t([_({type:Object,reflect:!1})],q.prototype,`filter`,void 0),t([_({type:Boolean,reflect:!0})],q.prototype,`quiet`,void 0),t([_({type:Boolean,reflect:!0})],q.prototype,`readonly`,void 0),t([_({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 zt=`: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}`,Bt=5e3,J=class extends r(S(x,{validSizes:Object.values(b)})){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[y(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),p.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:Bt,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<Bt),this._hierarchyValues=t>0?[...this._hierarchyValues,...r]:r}_restoreCachedFirstPage(){let e=this._buildHierarchyQuery(0,``);if(!e)return!1;let t=p.getCachedData(e);return t?(this._applyHierarchyResult(t,0,``),this._retrieving=!1,this._error=null,!0):!1}_getMemberLabel(e){let t=m(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)=>{p.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 h`<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 h`<div class="error" role="alert">Error: ${this._error}</div>`;let e=(this._search?this._hierarchyValues.filter(e=>m(e.name,this.contentLanguage,{allowEmpty:!0})?.toLowerCase().includes(this._search.toLowerCase())||e.toString().toLowerCase().includes(this._search.toLowerCase())):this._hierarchyValues).map(e=>{let t=m(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 h`<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([_({type:String,attribute:`api-url`,reflect:!0})],J.prototype,`apiUrl`,void 0),t([_({type:String,attribute:`auth-key`,reflect:!0})],J.prototype,`authKey`,void 0),t([_({type:String,attribute:`auth-token`,reflect:!0})],J.prototype,`authToken`,void 0),t([_({type:Number,attribute:`cache-time`,reflect:!0})],J.prototype,`cacheTime`,void 0),t([_({type:String,attribute:`content-language`,reflect:!0})],J.prototype,`contentLanguage`,void 0),t([_({type:Object,reflect:!1})],J.prototype,`filter`,void 0),t([_({type:Boolean,reflect:!0})],J.prototype,`quiet`,void 0),t([_({type:Boolean,reflect:!0})],J.prototype,`readonly`,void 0),t([_({type:Boolean,reflect:!0})],J.prototype,`disabled`,void 0),t([v()],J.prototype,`_hierarchyValues`,void 0),t([v()],J.prototype,`_retrieving`,void 0),t([v()],J.prototype,`_search`,void 0),t([v()],J.prototype,`_error`,void 0),t([v()],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 Vt=`: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}`,Ht=5e3,Y=class extends r(S(x,{validSizes:Object.values(b)})){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[y(Vt)]}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),p.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:Ht,offset:e}};this._search&&!this._allValuesRetrieved&&o.where.push(a);let s=new AbortController,c=new Promise((e,t)=>{p.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<Ht),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 h`<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 h`<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 h`<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([_({type:String,attribute:`api-url`,reflect:!0})],Y.prototype,`apiUrl`,void 0),t([_({type:String,attribute:`auth-key`,reflect:!0})],Y.prototype,`authKey`,void 0),t([_({type:String,attribute:`auth-token`,reflect:!0})],Y.prototype,`authToken`,void 0),t([_({type:Number,attribute:`cache-time`,reflect:!0})],Y.prototype,`cacheTime`,void 0),t([_({type:String,attribute:`content-language`,reflect:!0})],Y.prototype,`contentLanguage`,void 0),t([_({type:Object,reflect:!1})],Y.prototype,`filter`,void 0),t([_({type:Boolean,reflect:!0})],Y.prototype,`quiet`,void 0),t([_({type:Boolean,reflect:!0})],Y.prototype,`readonly`,void 0),t([_({type:Boolean,reflect:!0})],Y.prototype,`disabled`,void 0),t([v()],Y.prototype,`_numericValues`,void 0),t([v()],Y.prototype,`_retrieving`,void 0),t([v()],Y.prototype,`_search`,void 0),t([v()],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(S(x,{validSizes:Object.values(b)})){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[y(Lt)]}_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 h`<luzmo-filter-value-picker-numeric
226
226
  .apiUrl=${this.apiUrl}
227
227
  .authKey=${this.authKey}
228
228
  .authToken=${this.authToken}
@@ -235,7 +235,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
235
235
  .readonly=${this.readonly}
236
236
  .disabled=${this.disabled}
237
237
  @luzmo-filter-value-changed=${this.setFilterValue}
238
- ></luzmo-filter-value-picker-numeric>`}renderHierarchyValuePicker(){return m`<luzmo-filter-value-picker-hierarchy
238
+ ></luzmo-filter-value-picker-numeric>`}renderHierarchyValuePicker(){return h`<luzmo-filter-value-picker-hierarchy
239
239
  .apiUrl=${this.apiUrl}
240
240
  .authKey=${this.authKey}
241
241
  .authToken=${this.authToken}
@@ -248,7 +248,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
248
248
  .readonly=${this.readonly}
249
249
  .disabled=${this.disabled}
250
250
  @luzmo-filter-value-changed=${this.setFilterValue}
251
- ></luzmo-filter-value-picker-hierarchy>`}renderDateTimeValuePicker(){return m`<luzmo-filter-value-picker-datetime
251
+ ></luzmo-filter-value-picker-hierarchy>`}renderDateTimeValuePicker(){return h`<luzmo-filter-value-picker-datetime
252
252
  .apiUrl=${this.apiUrl}
253
253
  .authKey=${this.authKey}
254
254
  .authToken=${this.authToken}
@@ -262,16 +262,16 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
262
262
  .readonly=${this.readonly}
263
263
  .disabled=${this.disabled}
264
264
  @luzmo-filter-value-changed=${this.setFilterValue}
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`})}
265
+ ></luzmo-filter-value-picker-datetime>`}renderDisabledTextField(){let e=this.filter?.parameters?.[1]??``;return h`<luzmo-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}
270
- ></luzmo-text-field>`}render(){let e=this.valueType??``,t=this.filter?.expression;return!t||this._expressionsWithoutValuePicker.has(t)?m`
270
+ ></luzmo-text-field>`}render(){let e=this.valueType??``,t=this.filter?.expression;return!t||this._expressionsWithoutValuePicker.has(t)?h`
271
271
 
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`
272
+ `:[`numeric`,`hierarchy`,`datetime`].includes(e)?e===`numeric`?this.renderNumericValuePicker():e===`datetime`?this.renderDateTimeValuePicker():this.renderHierarchyValuePicker():typeof this.filter?.parameters?.[1]==`string`?this.renderDisabledTextField():h`
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([_({type:String,attribute:`api-url`,reflect:!0})],X.prototype,`apiUrl`,void 0),t([_({type:String,attribute:`auth-key`,reflect:!0})],X.prototype,`authKey`,void 0),t([_({type:String,attribute:`auth-token`,reflect:!0})],X.prototype,`authToken`,void 0),t([_({type:Number,attribute:`cache-time`,reflect:!0})],X.prototype,`cacheTime`,void 0),t([_({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),t([_({type:String,attribute:`time-zone`,reflect:!0})],X.prototype,`timeZone`,void 0),t([_({type:String,attribute:`value-type`,reflect:!0})],X.prototype,`valueType`,void 0),t([_({type:Object,reflect:!1})],X.prototype,`filter`,void 0),t([_({type:Boolean,reflect:!0})],X.prototype,`quiet`,void 0),t([_({type:Boolean,reflect:!0})],X.prototype,`readonly`,void 0),t([_({type:Boolean,reflect:!0})],X.prototype,`disabled`,void 0),customElements.get(`luzmo-filter-value-picker`)||customElements.define(`luzmo-filter-value-picker`,X);var Ut=`: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(S(x,{validSizes:Object.values(b)})){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[y(Ut)]}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||``,p.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}=f(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 p.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||``};p.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=Ae({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 je(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=ae(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 h`<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=${te(t)}
283
283
  .invalid=${!!this._error||e}
284
284
  ?disabled=${e||this.disabled}
285
285
  .readonly=${this.readonly}
@@ -287,7 +287,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
287
287
  .pending=${this._loading}
288
288
  .quiet=${this.quiet}
289
289
  @luzmo-data-fields-selected=${this.setFilterDataField}
290
- ></luzmo-data-fields-select>`}renderExpressionPicker(){let e=this._cannotReferenceColumn(),t=this.filter?.parameters?.[0],n=!t?.datasetId||!t?.columnId&&!t?.formulaId||e;return m`<luzmo-filter-expression-picker
290
+ ></luzmo-data-fields-select>`}renderExpressionPicker(){let e=this._cannotReferenceColumn(),t=this.filter?.parameters?.[0],n=!t?.datasetId||!t?.columnId&&!t?.formulaId||e;return h`<luzmo-filter-expression-picker
291
291
  .language=${this.language}
292
292
  .size=${this.size}
293
293
  .type=${this._type}
@@ -298,7 +298,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
298
298
  .readonly=${this.readonly}
299
299
  .quiet=${this.quiet}
300
300
  @luzmo-expression-selected=${this.setFilterExpression}
301
- ></luzmo-filter-expression-picker>`}renderValuePicker(){let e=this._cannotReferenceColumn(),t=this.filter?.parameters?.[0],n=!t?.datasetId||!t?.columnId&&!t?.formulaId||e;return m`<luzmo-filter-value-picker
301
+ ></luzmo-filter-expression-picker>`}renderValuePicker(){let e=this._cannotReferenceColumn(),t=this.filter?.parameters?.[0],n=!t?.datasetId||!t?.columnId&&!t?.formulaId||e;return h`<luzmo-filter-value-picker
302
302
  .apiUrl=${this.apiUrl}
303
303
  .authKey=${this.authKey}
304
304
  .authToken=${this.authToken}
@@ -313,7 +313,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
313
313
  .readonly=${this.readonly}
314
314
  .quiet=${this.quiet}
315
315
  @luzmo-filter-value-changed=${this.setFilterValue}
316
- ></luzmo-filter-value-picker>`}renderParameterPicker(){if(!this.allowParameters)return null;let e=H(this._type,this.filter?.expression);if(e.length===0)return null;let t=U(this.filter?.parameters?.[1])?this.filter.parameters[1]:void 0;return m`<luzmo-filter-parameter-picker
316
+ ></luzmo-filter-value-picker>`}renderParameterPicker(){if(!this.allowParameters)return null;let e=H(this._type,this.filter?.expression);if(e.length===0)return null;let t=U(this.filter?.parameters?.[1])?this.filter.parameters[1]:void 0;return h`<luzmo-filter-parameter-picker
317
317
  .language=${this.language}
318
318
  .size=${this.size}
319
319
  .parameters=${this.parameters}
@@ -325,44 +325,44 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
325
325
  .quiet=${this.quiet}
326
326
  @luzmo-parameter-selected=${this.handleFilterParameterSelected}
327
327
  @luzmo-parameter-removed=${this.handleFilterParameterRemoved}
328
- ></luzmo-filter-parameter-picker>`}_filterTextContext(){return this.textContext??{datasets:this._datasetsDataFields,contentLanguage:this.contentLanguage,timeZone:this.timeZone,hierarchyLabels:this._hierarchyLabels,hierarchyLabelsLoading:this._hierarchyLabelsLoading}}get _columnBadgeSize(){return{xxs:`xs`,xs:`xs`,s:`xs`,m:`s`,l:`m`,xl:`l`,xxl:`xl`}[this.size]??`s`}_textFieldIcon(e,t){return e.formula?l({formulaId:`formula`},t):c({type:e.type??`hierarchy`,subtype:e.subtype},t)}_renderTextField(e){if(this.columnDisplay!==`text`){let t=this._columnBadgeSize,n=this._textFieldIcon(e,t);return m`<span
328
+ ></luzmo-filter-parameter-picker>`}_filterTextContext(){return this.textContext??{datasets:this._datasetsDataFields,contentLanguage:this.contentLanguage,timeZone:this.timeZone,hierarchyLabels:this._hierarchyLabels,hierarchyLabelsLoading:this._hierarchyLabelsLoading}}get _columnBadgeSize(){return{xxs:`xs`,xs:`xs`,s:`xs`,m:`s`,l:`m`,xl:`l`,xxl:`xl`}[this.size]??`s`}_textFieldIcon(e,t){return e.formula?l({formulaId:`formula`},t):c({type:e.type??`hierarchy`,subtype:e.subtype},t)}_renderTextField(e){if(this.columnDisplay!==`text`){let t=this._columnBadgeSize,n=this._textFieldIcon(e,t);return h`<span
329
329
  class="filter-item-column-badge filters-text-field"
330
330
  part="filter-item-text-field"
331
331
  title=${e.tooltip}
332
332
  >
333
333
  <luzmo-badge role="none" .size=${t} .treatment=${this.columnDisplay}>
334
- ${n?m`<luzmo-icon slot="icon" .icon=${n} .size=${t}></luzmo-icon>`:h}${e.label}
334
+ ${n?h`<luzmo-icon slot="icon" .icon=${n} .size=${t}></luzmo-icon>`:g}${e.label}
335
335
  </luzmo-badge>
336
- </span>`}let t=this._textFieldIcon(e,`s`);return m`<span
336
+ </span>`}let t=this._textFieldIcon(e,`s`);return h`<span
337
337
  class="filter-item-text-field filters-text-field"
338
338
  part="filter-item-text-field"
339
339
  title=${e.tooltip}
340
- ><span class="filter-item-text-field-icon filters-text-field-icon" aria-hidden="true">${t?d(t):h}</span
340
+ ><span class="filter-item-text-field-icon filters-text-field-icon" aria-hidden="true">${t?d(t):g}</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 g;let t=e.valuePending?h`<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
- ></luzmo-progress-circle>`:h;return e.valueTooltip?m`<span
346
+ ></luzmo-progress-circle>`:g;return e.valueTooltip?h`<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"
348
348
  tabindex="0"
349
349
  aria-live="polite"
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
+ >`:h`<span class="filter-item-text-value filters-text-value outline-value" aria-live="polite">${e.valueText}${t}</span>`}_renderTextDisplay(){let t=De(this.filter,this._filterTextContext());if(!t)return h`
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=h`<span class="filter-item-text-expression filters-text-expression outline-expression"
359
+ >${t.expression}</span
360
+ >`,a=t.valueField||t.valueText?this._renderTextValue(t):g,o=t.expression&&a!==g?w(n(e`${C[0]}\u2063 ${C[1]}\u2063 ${C[2]}`,{id:`filter-item-field-expression-value`,desc:`Field, expression, and value in a read-only filter sentence`}),[r,i,a]):t.expression?w(n(e`${C[0]}\u2063 ${C[1]}`,{id:`filter-item-field-expression`,desc:`Field and expression in a read-only filter sentence without a value`}),[r,i]):a===g?r:w(n(e`${C[0]}\u2063 ${C[1]}`,{id:`filter-item-field-value`,desc:`Field and value in a read-only filter sentence without an expression`}),[r,a]);return h`<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 h`<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([_({type:String,attribute:`api-url`,reflect:!0})],Z.prototype,`apiUrl`,void 0),t([_({type:String,attribute:`auth-key`,reflect:!0})],Z.prototype,`authKey`,void 0),t([_({type:String,attribute:`auth-token`,reflect:!0})],Z.prototype,`authToken`,void 0),t([_({type:Number,attribute:`cache-time`,reflect:!0})],Z.prototype,`cacheTime`,void 0),t([_({type:String,reflect:!0})],Z.prototype,`contentLanguage`,void 0),t([_({type:String,attribute:`time-zone`,reflect:!0})],Z.prototype,`timeZone`,void 0),t([_({type:Array,attribute:`dataset-ids`,reflect:!0})],Z.prototype,`datasetIds`,void 0),t([_({type:Object,reflect:!1})],Z.prototype,`filter`,void 0),t([_({type:String,reflect:!0})],Z.prototype,`display`,void 0),t([_({type:String,attribute:`column-display`,reflect:!0})],Z.prototype,`columnDisplay`,void 0),t([_({type:Boolean,reflect:!0})],Z.prototype,`quiet`,void 0),t([_({type:Boolean,reflect:!0})],Z.prototype,`readonly`,void 0),t([_({type:Boolean,reflect:!0})],Z.prototype,`disabled`,void 0),t([_({attribute:!1})],Z.prototype,`textContext`,void 0),t([_({type:Boolean,attribute:`allow-parameters`,reflect:!0})],Z.prototype,`allowParameters`,void 0),t([_({attribute:!1})],Z.prototype,`parameters`,void 0),t([v()],Z.prototype,`_type`,void 0),t([v()],Z.prototype,`_subType`,void 0),t([v()],Z.prototype,`_isFormula`,void 0),t([v()],Z.prototype,`_error`,void 0),t([v()],Z.prototype,`_loading`,void 0),t([v()],Z.prototype,`_datasetsDataFields`,void 0),t([v()],Z.prototype,`_hierarchyLabels`,void 0),t([v()],Z.prototype,`_hierarchyLabelsLoading`,void 0),Z=t([i()],Z),customElements.get(`luzmo-filter-item`)||customElements.define(`luzmo-filter-item`,Z);var Wt=`: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 Gt(e){if(e instanceof P)return e;throw e}var Kt={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(S(x,{validSizes:Object.values(b)})){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[y(Wt)]}_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=Ot(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:`,Gt(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}=f(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 p.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),p.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=Ae(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 je(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:ee(),condition:`and`,filters:[]}}_generateEmptyFilter(){return{expression:void 0,parameters:[],properties:{id:ee()}}}_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:`,Gt(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 h`
366
366
  <div class="filter-item-wrapper">
367
367
  <div class="filter-item-content">
368
368
  <luzmo-filter-item
@@ -380,44 +380,44 @@ 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
387
387
  class="delete-filter-button"
388
388
  .size=${this.size}
389
389
  quiet
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))}
390
+ aria-disabled=${this.readonly?`true`:g}
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=Kt[e.condition]?.()??e.condition;return h`
399
+ <div class="filter-group ${t&&!this.simple?`nested`:``}" role="group">
400
+ ${!this.simple&&(t||i)?h`
401
401
  <div class="condition-wrapper">
402
- ${i?m`
402
+ ${i?h`
403
403
  <luzmo-action-button
404
404
  class="condition-badge"
405
405
  .size=${this._oneSizeSmaller}
406
406
  quiet
407
- aria-disabled=${this.readonly?`true`:h}
407
+ aria-disabled=${this.readonly?`true`:g}
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}
413
413
  </luzmo-action-button>
414
- `:h}
414
+ `:g}
415
415
  </div>
416
- `:h}
416
+ `:g}
417
417
  <div class="group-content">
418
- ${r?m`
418
+ ${r?h`
419
419
  <div class="filters-list">
420
- ${ie(e.filters,e=>this._filterKey(e),t=>m`
420
+ ${re(e.filters,e=>this._filterKey(e),t=>h`
421
421
  ${this._isGroup(t)?this._renderGroup(t,!0):this._renderFilterItem(t,e)}
422
422
  `)}
423
423
  </div>
@@ -428,29 +428,29 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
428
428
  class="add-filter-button"
429
429
  .size=${this.size}
430
430
  quiet
431
- aria-disabled=${this.readonly?`true`:h}
431
+ aria-disabled=${this.readonly?`true`:g}
432
432
  ?disabled=${this._isDatasetIdsEmpty}
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
- ${this.simple?h:m`<luzmo-action-button
439
+ ${this.simple?g:h`<luzmo-action-button
440
440
  class="add-subgroup-button"
441
441
  .size=${this.size}
442
442
  quiet
443
- aria-disabled=${this.readonly?`true`:h}
443
+ aria-disabled=${this.readonly?`true`:g}
444
444
  ?disabled=${this._isDatasetIdsEmpty}
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>
452
452
  </div>
453
- `}_findParentGroup(e,t){for(let n of e.filters){if(n===t)return e;if(this._isGroup(n)){let e=this._findParentGroup(n,t);if(e)return e}}return null}_collapseIfNeeded(e){if(e.filters.length===1&&this._isGroup(e.filters[0])){let t=e.filters[0];e.condition=t.condition,e.filters=t.filters,e.id=t.id,e.clause=t.clause,e.origin=t.origin,e.datasetId=t.datasetId,e.vizId=t.vizId,e.itemId=t.itemId,e.isDrilldown=t.isDrilldown,e.type=t.type,e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1)}}_collapseGroupsAfterDelete(){if(!this._internalFilterGroup)return;let e=t=>{for(let n of t.filters)this._isGroup(n)&&e(n);this._collapseIfNeeded(t)};e(this._internalFilterGroup)}_renderTextLeaf(e){return Ae(e,this._filterTextContext())?m`<luzmo-filter-item
453
+ `}_findParentGroup(e,t){for(let n of e.filters){if(n===t)return e;if(this._isGroup(n)){let e=this._findParentGroup(n,t);if(e)return e}}return null}_collapseIfNeeded(e){if(e.filters.length===1&&this._isGroup(e.filters[0])){let t=e.filters[0];e.condition=t.condition,e.filters=t.filters,e.id=t.id,e.clause=t.clause,e.origin=t.origin,e.datasetId=t.datasetId,e.vizId=t.vizId,e.itemId=t.itemId,e.isDrilldown=t.isDrilldown,e.type=t.type,e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1)}}_collapseGroupsAfterDelete(){if(!this._internalFilterGroup)return;let e=t=>{for(let n of t.filters)this._isGroup(n)&&e(n);this._collapseIfNeeded(t)};e(this._internalFilterGroup)}_renderTextLeaf(e){return De(e,this._filterTextContext())?h`<luzmo-filter-item
454
454
  class="filters-text-leaf"
455
455
  display="text"
456
456
  .columnDisplay=${this.columnDisplay}
@@ -461,72 +461,72 @@ 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>`:g}_renderTextGroup(t,r){let i=[];for(let e of t.filters){let t=this._isGroup(e)?this._renderTextGroup(e,!1):this._renderTextLeaf(e);t!==g&&i.push(t)}if(i.length===0)return g;if(i.length===1)return i[0];let a=h`<span class="filters-text-condition">${Kt[t.condition]()}</span>`,o=t.condition===`or`?n(e`${C[0]}\u2063 ${C[1]}\u2063 ${C[2]}`,{id:`filters-sentence-or`,desc:`Left filter sentence, logical OR condition, and right filter sentence`}):n(e`${C[0]}\u2063 ${C[1]}\u2063 ${C[2]}`,{id:`filters-sentence-and`,desc:`Left filter sentence, logical AND condition, and right filter sentence`}),s=i.slice(1).reduce((e,t)=>w(o,[h`${e}`,a,t]),[i[0]]);return r?h`${s}`:h`<span class="filters-text-group"
465
+ >${w(n(e`(${C[0]})`,{id:`filters-sentence-parentheses`,desc:`Nested filter sentence wrapped in parentheses`}),[h`${s}`]).map(e=>typeof e==`string`?h`<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 h`<div class="filters-loading" role="status">
467
467
  <luzmo-progress-circle indeterminate .label=${e} .size=${this.size}></luzmo-progress-circle>
468
- </div>`}_renderTextDisplay(){return m`<span class="filters-text" part="filters-text"
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">
468
+ </div>`}_renderTextDisplay(){return h`<span class="filters-text" part="filters-text"
469
+ >${this._internalFilterGroup?this._renderTextGroup(this._internalFilterGroup,!0):g}</span
470
+ >`}_deleteOutlineFilter(e,t){this.readonly||this.display!==`outline`||this._removeFilter(e,t)}_renderOutlineRow(e,t){let r=this._renderTextLeaf(e);if(r===g)return g;let i=n(`Remove filter`,{desc:`Aria label for remove filter button`});return h`<div class="outline-row" part="filters-outline-row">
471
471
  <span class="outline-sentence">${r}</span>
472
- ${this.readonly?h:m`<luzmo-action-button
472
+ ${this.readonly?g:h`<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>`}
481
- </div>`}_renderOutlineGroup(e,t=!0){let n=e.filters.some(e=>this._isGroup(e)),r=e.filters.length>1&&!(t&&!n&&e.condition===`and`),i=Wt[e.condition]?.()??e.condition;return m`<div class="outline-group" role=${r?`group`:h} aria-label=${r?i:h}>
482
- ${r?m`<div class="outline-condition">${i}</div>`:h}
481
+ </div>`}_renderOutlineGroup(e,t=!0){let n=e.filters.some(e=>this._isGroup(e)),r=e.filters.length>1&&!(t&&!n&&e.condition===`and`),i=Kt[e.condition]?.()??e.condition;return h`<div class="outline-group" role=${r?`group`:g} aria-label=${r?i:g}>
482
+ ${r?h`<div class="outline-condition">${i}</div>`:g}
483
483
  <div class=${r?`outline-children`:`outline-children outline-children--single`}>
484
- ${ie(e.filters,e=>this._filterKey(e),t=>this._isGroup(t)?this._renderOutlineGroup(t,!1):this._renderOutlineRow(t,e))}
484
+ ${re(e.filters,e=>this._filterKey(e),t=>this._isGroup(t)?this._renderOutlineGroup(t,!1):this._renderOutlineRow(t,e))}
485
485
  </div>
486
- </div>`}_renderOutlineDisplay(){return m`<div class="filters-outline" part="filters-outline">
487
- ${this._internalFilterGroup?this._renderOutlineGroup(this._internalFilterGroup):h}
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`})}
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`
486
+ </div>`}_renderOutlineDisplay(){return h`<div class="filters-outline" part="filters-outline">
487
+ ${this._internalFilterGroup?this._renderOutlineGroup(this._internalFilterGroup):g}
488
+ </div>`}render(){if(this._hasUnsupportedConditions&&this.display!==`text`)return h`<div class="filter-group-container" role="status">
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
+ </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 h`
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
- `;if(!this._internalFilterGroup||this._internalFilterGroup.filters.length===0)return m`
496
+ `;if(!this._internalFilterGroup||this._internalFilterGroup.filters.length===0)return h`
497
497
  <div class="filter-group-container">
498
498
  <luzmo-button
499
499
  class="add-filter-button"
500
500
  .size=${this.size}
501
501
  treatment="outline"
502
502
  ?quiet=${this.quiet}
503
- aria-disabled=${this.readonly?`true`:h}
503
+ aria-disabled=${this.readonly?`true`:g}
504
504
  ?disabled=${this._isDatasetIdsEmpty}
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
- `;let e=this._internalFilterGroup.filters.length>1;return m`
511
+ `;let e=this._internalFilterGroup.filters.length>1;return h`
512
512
  <div class="filter-group-container">
513
513
  ${this._renderGroup(this._internalFilterGroup)}
514
514
 
515
- ${e&&!this.simple?m`
515
+ ${e&&!this.simple?h`
516
516
  <div class="add-root-group-container">
517
517
  <luzmo-button
518
518
  class="add-group-button"
519
519
  .size=${this.size}
520
520
  treatment="outline"
521
521
  ?quiet=${this.quiet}
522
- aria-disabled=${this.readonly?`true`:h}
522
+ aria-disabled=${this.readonly?`true`:g}
523
523
  ?disabled=${this._isDatasetIdsEmpty}
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([_({type:String,attribute:`api-url`,reflect:!0})],$.prototype,`apiUrl`,void 0),t([_({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),t([_({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),t([_({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),t([_({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),t([_({type:String,attribute:`time-zone`,reflect:!0})],$.prototype,`timeZone`,void 0),t([_({type:Array,attribute:`dataset-ids`,reflect:!0})],$.prototype,`datasetIds`,void 0),t([_({type:Array,reflect:!1})],$.prototype,`filters`,void 0),t([_({type:String,reflect:!0})],$.prototype,`format`,void 0),t([_({type:Boolean,reflect:!0})],$.prototype,`simple`,void 0),t([_({type:String,reflect:!0})],$.prototype,`display`,void 0),t([_({type:String,attribute:`column-display`,reflect:!0})],$.prototype,`columnDisplay`,void 0),t([_({type:Boolean,reflect:!0})],$.prototype,`quiet`,void 0),t([_({type:Boolean,reflect:!0})],$.prototype,`readonly`,void 0),t([_({type:Boolean,attribute:`allow-parameters`,reflect:!0})],$.prototype,`allowParameters`,void 0),t([_({attribute:!1})],$.prototype,`parameters`,void 0),t([_({type:Number,reflect:!0})],$.prototype,`debounce`,void 0),t([v()],$.prototype,`_internalFilterGroup`,void 0),t([v()],$.prototype,`_datasets`,void 0),t([v()],$.prototype,`_datasetsLoading`,void 0),t([v()],$.prototype,`_hierarchyLabels`,void 0),t([v()],$.prototype,`_hierarchyLabelsLoading`,void 0),$=t([i()],$),customElements.get(`luzmo-filters`)||customElements.define(`luzmo-filters`,$);export{P as FilterUnrepresentableError,$ as LuzmoFilters,Me as MAX_FILTER_NESTING_DEPTH,Ue as detectFiltersFormat,Ot as reverseTransformFilters,gt as toLogicalCondition,St as transformFilters};