@luzmo/analytics-components-kit 1.0.1-alpha.31 → 1.0.1-alpha.32

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 (217) hide show
  1. package/components/{async-directive-C_bp5UcZ-B5_19oN_.js → async-directive-BfcqVjDp-BCT-lA4F.js} +8 -8
  2. package/components/{async-directive-C_bp5UcZ-mUPcBvyn.cjs → async-directive-BfcqVjDp-C8C45jl6.cjs} +3 -3
  3. package/components/{base-D76d76ww-D0dTUBua.js → base-D76d76ww-BGkuhs54.js} +59 -47
  4. package/components/{base-D76d76ww-BEIhYtgV.cjs → base-D76d76ww-tT6yr8eb.cjs} +9 -9
  5. package/components/{button-base-WsJSnMie-B1TLbPwk.cjs → button-base-DbkDzb71-CY6MJGqE.cjs} +2 -2
  6. package/components/{button-base-WsJSnMie-CyGPs7kd.js → button-base-DbkDzb71-R8oqSqlY.js} +4 -4
  7. package/components/calculate-data-item-icon-BtUWtDx3.cjs +20 -0
  8. package/components/calculate-data-item-icon-DauSiV8c.js +97 -0
  9. package/components/{checkbox-mixin-CmeCReJh-wY0R8cuc.cjs → checkbox-mixin-Do7EgtpQ-D3m-dMTI.cjs} +3 -3
  10. package/components/{checkbox-mixin-CmeCReJh-C94-rm4F.js → checkbox-mixin-Do7EgtpQ-hne79zc-.js} +2 -2
  11. package/components/{de-BaTUIQk1.js → de-CCq00pbq.js} +55 -1
  12. package/components/de-DcZysUyZ.cjs +20 -0
  13. package/components/{directive-helpers-Bx_ey3Gk-BxvL9t9F.cjs → directive-helpers-Cm6gitnu-BeggOiwf.cjs} +4 -4
  14. package/components/{directive-helpers-Bx_ey3Gk-Csi4AxXe.js → directive-helpers-Cm6gitnu-CeYtlPO9.js} +53 -19
  15. package/components/display-settings/index.cjs +1 -1
  16. package/components/display-settings/index.js +18 -17
  17. package/components/display-settings-binning/display-settings-binning.d.ts +0 -1
  18. package/components/display-settings-binning/index.cjs +3 -2
  19. package/components/display-settings-binning/index.js +21 -21
  20. package/components/display-settings-datetime/index.cjs +2 -2
  21. package/components/display-settings-datetime/index.js +37 -35
  22. package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +0 -1
  23. package/components/display-settings-grand-totals/index.cjs +4 -3
  24. package/components/display-settings-grand-totals/index.js +21 -21
  25. package/components/display-settings-numeric/index.cjs +14 -14
  26. package/components/display-settings-numeric/index.js +32 -30
  27. package/components/display-settings-period-over-period/index.cjs +6 -6
  28. package/components/display-settings-period-over-period/index.js +36 -34
  29. package/components/draggable-data-item/index.cjs +3 -3
  30. package/components/draggable-data-item/index.js +15 -13
  31. package/components/draggable-data-item-level/index.cjs +9 -9
  32. package/components/draggable-data-item-level/index.js +96 -167
  33. package/components/droppable-slot/index.cjs +2 -2
  34. package/components/droppable-slot/index.js +21 -19
  35. package/components/edit-item/index.cjs +11 -11
  36. package/components/edit-item/index.js +13 -12
  37. package/components/edit-option/index.cjs +1 -1
  38. package/components/edit-option/index.js +1 -1
  39. package/components/edit-option-action-button-group/index.cjs +2 -1
  40. package/components/edit-option-action-button-group/index.js +44 -43
  41. package/components/edit-option-base-CSJNbo2E.cjs +53 -0
  42. package/components/{edit-option-base-DOezOLDd.js → edit-option-base-DeQjGX4i.js} +5 -4
  43. package/components/edit-option-color-picker/index.cjs +23 -23
  44. package/components/edit-option-color-picker/index.js +50 -50
  45. package/components/edit-option-multi-language-field/index.cjs +1 -1
  46. package/components/edit-option-multi-language-field/index.js +3 -3
  47. package/components/edit-option-number-field/index.cjs +2 -2
  48. package/components/edit-option-number-field/index.js +3 -3
  49. package/components/edit-option-picker/index.cjs +2 -2
  50. package/components/edit-option-picker/index.js +4 -4
  51. package/components/edit-option-position-picker/index.cjs +1 -1
  52. package/components/edit-option-position-picker/index.js +3 -3
  53. package/components/edit-option-positions-number-field/index.cjs +1 -1
  54. package/components/edit-option-positions-number-field/index.js +7 -7
  55. package/components/edit-option-radio-button-group/index.cjs +4 -4
  56. package/components/edit-option-radio-button-group/index.js +4 -4
  57. package/components/edit-option-slider/index.cjs +2 -2
  58. package/components/edit-option-slider/index.js +27 -27
  59. package/components/edit-option-switch/index.cjs +3 -3
  60. package/components/edit-option-switch/index.js +5 -5
  61. package/components/edit-option-text-field/index.cjs +2 -2
  62. package/components/edit-option-text-field/index.js +3 -3
  63. package/components/es-CGiBfBKJ.cjs +20 -0
  64. package/components/{es-D37mTCZB.js → es-DBmbFw-L.js} +55 -1
  65. package/components/filter-data-item-picker/filter-data-item-picker.d.ts +88 -0
  66. package/components/filter-data-item-picker/index.cjs +47 -0
  67. package/components/filter-data-item-picker/index.d.ts +7 -0
  68. package/components/filter-data-item-picker/index.js +193 -0
  69. package/components/filter-expression-picker/filter-expression-picker.d.ts +74 -0
  70. package/components/filter-expression-picker/index.cjs +20 -0
  71. package/components/filter-expression-picker/index.d.ts +7 -0
  72. package/components/filter-expression-picker/index.js +30 -0
  73. package/components/filter-group/filter-group.d.ts +26 -0
  74. package/components/filter-group/index.d.ts +7 -0
  75. package/components/filter-item/filter-item.d.ts +76 -0
  76. package/components/filter-item/index.cjs +52 -0
  77. package/components/filter-item/index.d.ts +7 -0
  78. package/components/filter-item/index.js +271 -0
  79. package/components/filter-parameter-picker/filter-parameter-picker.d.ts +25 -0
  80. package/components/filter-parameter-picker/index.d.ts +7 -0
  81. package/components/filter-value-picker/filter-value-picker.d.ts +65 -0
  82. package/components/filter-value-picker/index.cjs +51 -0
  83. package/components/filter-value-picker/index.d.ts +7 -0
  84. package/components/filter-value-picker/index.js +149 -0
  85. package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +43 -0
  86. package/components/filter-value-picker-datetime/index.cjs +288 -0
  87. package/components/filter-value-picker-datetime/index.d.ts +7 -0
  88. package/components/filter-value-picker-datetime/index.js +2820 -0
  89. package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +82 -0
  90. package/components/filter-value-picker-hierarchy/index.cjs +46 -0
  91. package/components/filter-value-picker-hierarchy/index.d.ts +7 -0
  92. package/components/filter-value-picker-hierarchy/index.js +278 -0
  93. package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +83 -0
  94. package/components/filter-value-picker-numeric/index.cjs +46 -0
  95. package/components/filter-value-picker-numeric/index.d.ts +7 -0
  96. package/components/filter-value-picker-numeric/index.js +274 -0
  97. package/components/flow-D-0MTYCm-BOBCoA5Z.js +546 -0
  98. package/components/flow-D-0MTYCm-BW5krWol.cjs +48 -0
  99. package/components/{focusable-BNESohBR-DbTLvYXr.cjs → focusable-BxtpnzWp-CkK9AeMt.cjs} +2 -2
  100. package/components/{focusable-BNESohBR-DYvAZYXL.js → focusable-BxtpnzWp-DJQkL8Zv.js} +1 -1
  101. package/components/focusable-DB6Uhr-C.js +275 -0
  102. package/components/focusable-_wp5pWO-.cjs +20 -0
  103. package/components/{fr-BWJHvkss.js → fr-BOwMikLT.js} +55 -1
  104. package/components/fr-DZbYwMlh.cjs +20 -0
  105. package/components/{get-css-variable-Bhbr-Kr1.js → get-css-variable-YlLiVgo8.js} +2 -2
  106. package/components/{if-defined-DbhS35z5.js → if-defined-B4gwZxx6.js} +1 -1
  107. package/components/{if-defined-D-1p2bLN-Bn-33APC.js → if-defined-DOaE2coe-CNT45Xcl.js} +1 -1
  108. package/components/{if-defined-D-1p2bLN-0_AoRnT2.cjs → if-defined-DOaE2coe-Cvlu5s9n.cjs} +1 -1
  109. package/components/{if-defined-CF8baNdl.cjs → if-defined-DqthfJme.cjs} +2 -2
  110. package/components/{index-Dwp251OJ.js → index-5mZhN-HJ.js} +7 -6
  111. package/components/{index-B3jkBlKY.js → index-BC1LV3vH.js} +3 -3
  112. package/components/{index-BXMPi13W.js → index-BCBLJ-ei.js} +82 -82
  113. package/components/{index-B9dQtvu7.js → index-BHJH1eGn.js} +3 -3
  114. package/components/index-BHXq1-M1.cjs +195 -0
  115. package/components/{index-C2-2RrwB.cjs → index-BKwbYw6x.cjs} +3 -3
  116. package/components/index-BOqSYlku.cjs +38 -0
  117. package/components/{index-D5rT-qy9.cjs → index-Bafc5poK.cjs} +12 -28
  118. package/components/{index-CqFCIIIl.js → index-BbuNpVBr.js} +3 -3
  119. package/components/{index-CRx2nPkq.js → index-Bmpw4rGV.js} +3 -3
  120. package/components/{index-D8Na-686.cjs → index-BoXbQm2o.cjs} +1 -1
  121. package/components/{index-uRWe553S.cjs → index-BtIWR_s6.cjs} +4 -4
  122. package/components/index-BwsEWpIS.js +494 -0
  123. package/components/{index-CF84gqsb.cjs → index-C2PPSv8E.cjs} +4 -4
  124. package/components/{index-CbeVu32V.js → index-C3N6qTxJ.js} +3 -3
  125. package/components/index-C5m9vRp5.js +598 -0
  126. package/components/{index-bZQXFqxv.cjs → index-CBOAQ3-E.cjs} +10 -10
  127. package/components/{index-_McOOiwL.cjs → index-CSm0I7Gz.cjs} +4 -4
  128. package/components/index-CTHlwZ9E.cjs +274 -0
  129. package/components/{index-Brg_sVUg.js → index-CTVNGPeT.js} +1 -1
  130. package/components/{index-Rjoe8cIs.js → index-Cb5l6iK_.js} +110 -173
  131. package/components/{index-BkCJwWm3.cjs → index-CeENkpNK.cjs} +3 -3
  132. package/components/{index-BnbhRpm9.js → index-CnRQGFHT.js} +3 -3
  133. package/components/{index-BKcvEgWr.cjs → index-CnpJUw_z.cjs} +3 -3
  134. package/components/{index-DJik7S7b.js → index-CsDgk_sj.js} +2 -2
  135. package/components/{index-fl13NYnO.js → index-CskV_bXp.js} +2 -2
  136. package/components/index-CyWwLYEO.js +1789 -0
  137. package/components/index-D9yzIoGv.js +1666 -0
  138. package/components/{index-Bwxvaqxq.cjs → index-DF-s3cEL.cjs} +11 -11
  139. package/components/{index-CVuJ-LUO.cjs → index-DSQyBS9Z.cjs} +2 -2
  140. package/components/{index-Bb8vxGZY.js → index-Desl7GJ0.js} +19 -15
  141. package/components/{index-0HUnZcem.cjs → index-DtohCwyO.cjs} +2 -2
  142. package/components/index-TQG9Xdxu.cjs +20 -0
  143. package/components/index-c2uKLWDt.cjs +157 -0
  144. package/components/{index-C9-QEfA9.cjs → index-j8UKjHqY.cjs} +4 -4
  145. package/components/{index-DZZMSlYS.js → index-rQxtPaJl.js} +6 -6
  146. package/components/index.cjs +1 -1
  147. package/components/index.js +41 -27
  148. package/components/localized-decorator-ClAOFk8M.cjs +28 -0
  149. package/components/localized-decorator-DGnMToFa.js +48 -0
  150. package/components/{luzmo-icons-U09GB75o.js → luzmo-icons-CPucBq6e.js} +89 -89
  151. package/components/luzmo-icons-DbwDQtuO-DSQ-uVxy.cjs +47 -0
  152. package/components/{luzmo-icons-BLN3xVgr-Tz5XXgbL.js → luzmo-icons-DbwDQtuO-QG0fLECn.js} +67 -25
  153. package/components/luzmo-icons-Nyf1P71v.cjs +31 -0
  154. package/components/nl-0V96M02q.cjs +20 -0
  155. package/components/nl-CY0iO3Ch.js +158 -0
  156. package/components/observe-slot-presence-CmVi0zTc-B4M1Mze7.cjs +36 -0
  157. package/components/observe-slot-presence-CmVi0zTc-DCFuXW7v.js +87 -0
  158. package/components/{observe-slot-text-CVKLDesL-BB2RmFgc.cjs → observe-slot-text-BPfIQQtz-DHOh38Ve.cjs} +4 -4
  159. package/components/{observe-slot-text-CVKLDesL-CXUeCmXW.js → observe-slot-text-BPfIQQtz-v6B-1BYh.js} +5 -5
  160. package/components/pending-state-DTX7ggyF-BQGaWUEI.cjs +80 -0
  161. package/components/pending-state-DTX7ggyF-KolnwUB7.js +321 -0
  162. package/components/{periods.const-CDIkC5CK.cjs → periods.const-BbgInj9J.cjs} +1 -1
  163. package/components/{periods.const-GHh5bPfs.js → periods.const-D2cMP5hH.js} +1 -1
  164. package/components/{popover-DRyjN9y_-w1zh4tvw.js → popover-DjX0aAnY-B_ujTfos.js} +2 -2
  165. package/components/{popover-DRyjN9y_-7mF_fAOh.cjs → popover-DjX0aAnY-CSUMV_Ay.cjs} +3 -3
  166. package/components/property-CxtZroGf.js +600 -0
  167. package/components/property-Dlf9S6Jz.cjs +42 -0
  168. package/components/{query-assigned-nodes-C76XVPWY-k1jDPyUQ.cjs → query-assigned-nodes-C76XVPWY-BW2w3V7-.cjs} +1 -1
  169. package/components/{query-assigned-nodes-C76XVPWY-BWouxGZs.js → query-assigned-nodes-C76XVPWY-DxNwGHfW.js} +1 -1
  170. package/components/scatter-plot-options.config-CFfGJXsV.cjs +20 -0
  171. package/components/{scatter-plot-options.config-lrkd9qj4.js → scatter-plot-options.config-Corlzno1.js} +78 -48
  172. package/components/set-locale-5FFfQpVQ.cjs +52 -0
  173. package/components/set-locale-DAGnJZD8.js +188 -0
  174. package/components/{sized-mixin-DMuOVsw0.js → sized-mixin-C7R5uRbF.js} +1 -1
  175. package/components/sized-mixin-ZTphZKLm.cjs +20 -0
  176. package/components/slot-menu/index.cjs +1 -1
  177. package/components/slot-menu/index.js +12 -11
  178. package/components/slot-menu-list/index.cjs +3 -3
  179. package/components/slot-menu-list/index.js +15 -14
  180. package/components/{state-e2n-fyrr.js → state-BVYsk_HZ.js} +1 -1
  181. package/components/{state-QgHgNZLe.cjs → state-CrfOw8Zp.cjs} +2 -2
  182. package/components/{streaming-listener-C8Ctj0Q6-lanbGKR9.js → streaming-listener-CP-JE6Fa-9MH0gENR.js} +3 -3
  183. package/components/{streaming-listener-C8Ctj0Q6-BhMxS69F.cjs → streaming-listener-CP-JE6Fa-DMzr1X1m.cjs} +3 -3
  184. package/components/{task-fQFUVV8e.cjs → task-CdvrMX8r.cjs} +2 -2
  185. package/components/{task-gE27tBDv.js → task-DH8UFyxP.js} +1 -1
  186. package/components/{text-field-C0pFjPG1-BCVbGXp7.cjs → text-field-BIADXoLC-B8w9TVmS.cjs} +8 -8
  187. package/components/{text-field-C0pFjPG1-B4TRivuD.js → text-field-BIADXoLC-B9oE05VF.js} +11 -10
  188. package/custom-elements.json +1891 -34
  189. package/index.d.ts +7 -0
  190. package/item-definitions/scatter-plot/scatter-plot-options.config.d.ts +3 -0
  191. package/package.json +46 -1
  192. package/utils/data-broker/index.d.ts +179 -0
  193. package/utils/data-item-types/calculate-data-item-icon.d.ts +3 -0
  194. package/utils/filters/expressions.d.ts +15 -0
  195. package/utils/filters/index.d.ts +1 -0
  196. package/utils/localize/set-locale.d.ts +4 -2
  197. package/utils/types/column.types.d.ts +1 -1
  198. package/components/de-DgHoh7KS.cjs +0 -20
  199. package/components/draggable-data-item-level/helpers/calculate-type-icon.d.ts +0 -2
  200. package/components/edit-option-base-jkkFevzT.cjs +0 -53
  201. package/components/es-ByW01bzN.cjs +0 -20
  202. package/components/focusable-Cu_m_GTh.cjs +0 -42
  203. package/components/focusable-Dw_pMNQL.js +0 -852
  204. package/components/fr-DnFUAglm.cjs +0 -20
  205. package/components/index-CqynTbW1.cjs +0 -217
  206. package/components/index-DFnzlbHX.js +0 -779
  207. package/components/index-hogChFy0.cjs +0 -195
  208. package/components/luzmo-icons-BDClm1AE.cjs +0 -31
  209. package/components/luzmo-icons-BLN3xVgr-Cr3OrsqW.cjs +0 -47
  210. package/components/nl-CWxJcTNT.js +0 -104
  211. package/components/nl-CpfDNK5c.cjs +0 -20
  212. package/components/scatter-plot-options.config-DkJLutNb.cjs +0 -20
  213. package/components/set-locale-ByIApH40.cjs +0 -60
  214. package/components/set-locale-DJYT4V7U.js +0 -212
  215. package/components/sized-mixin-Cqlxwicw.cjs +0 -20
  216. /package/components/{divider.module-DwOuLGU3-B19eHVg2.js → divider.module-DoQWQEIJ-B19eHVg2.js} +0 -0
  217. /package/components/{divider.module-DwOuLGU3-Bg8RrFkc.cjs → divider.module-DoQWQEIJ-Bg8RrFkc.cjs} +0 -0
@@ -0,0 +1,26 @@
1
+ import { LuzmoElement } from '@luzmo/lucero/utils';
2
+ import { CSSResultArray, TemplateResult } from 'lit';
3
+ declare const LuzmoFilterGroup_base: typeof LuzmoElement & {
4
+ new (...args: any[]): import("@luzmo/lucero").SizedElementInterface;
5
+ prototype: import("@luzmo/lucero").SizedElementInterface;
6
+ };
7
+ /**
8
+ * @element luzmo-filter-group
9
+ */
10
+ export declare class LuzmoFilterGroup extends LuzmoFilterGroup_base {
11
+ static get styles(): CSSResultArray;
12
+ /**
13
+ * The language of the settings interface
14
+ */
15
+ language: string;
16
+ /**
17
+ * The language to use for locale-aware formatting and labels
18
+ */
19
+ contentLanguage: string;
20
+ /**
21
+ * The filters to display in the group
22
+ */
23
+ filters: any[];
24
+ protected render(): TemplateResult;
25
+ }
26
+ export {};
@@ -0,0 +1,7 @@
1
+ import { LuzmoFilterGroup } from './filter-group';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-filter-group': LuzmoFilterGroup;
5
+ }
6
+ }
7
+ export { LuzmoFilterGroup } from './filter-group';
@@ -0,0 +1,76 @@
1
+ import { CSSResultArray, PropertyValues, TemplateResult } from 'lit';
2
+ import { LuzmoElement } from '@luzmo/lucero/utils';
3
+ import './../filter-data-item-picker';
4
+ import './../filter-expression-picker';
5
+ import './../filter-value-picker';
6
+ declare const LuzmoFilterItem_base: typeof LuzmoElement & {
7
+ new (...args: any[]): import("@luzmo/lucero").SizedElementInterface;
8
+ prototype: import("@luzmo/lucero").SizedElementInterface;
9
+ };
10
+ /**
11
+ * @element luzmo-filter-item
12
+ */
13
+ export declare class LuzmoFilterItem extends LuzmoFilterItem_base {
14
+ static get styles(): CSSResultArray;
15
+ /**
16
+ * The API URL of the databroker
17
+ * @default https://api.luzmo.com
18
+ * @description The URL of the databroker API
19
+ */
20
+ apiUrl?: string;
21
+ /**
22
+ * The auth key of the databroker
23
+ */
24
+ authKey?: string;
25
+ /**
26
+ * The auth token of the databroker
27
+ */
28
+ authToken?: string;
29
+ /**
30
+ * The cache time of the databroker
31
+ * @default 30000
32
+ * @description The time to cache the data in milliseconds
33
+ */
34
+ cacheTime?: number;
35
+ /**
36
+ * The language of the settings interface
37
+ */
38
+ language: string;
39
+ /**
40
+ * The language of the content
41
+ */
42
+ contentLanguage: string;
43
+ /**
44
+ * The time zone to use for the date picker
45
+ */
46
+ timeZone?: string;
47
+ /**
48
+ * The dataset ids to fetch columns & formulas
49
+ */
50
+ datasetIds?: string[];
51
+ /**
52
+ * The filter to display
53
+ */
54
+ filter: any;
55
+ private _type?;
56
+ private _subType?;
57
+ private _isFormula?;
58
+ private _error?;
59
+ private _loading;
60
+ private _datasetsDataItems;
61
+ connectedCallback(): void;
62
+ /**
63
+ * Fetches hierarchy values from the databroker
64
+ */
65
+ private _fetchDatasetDataItems;
66
+ protected willUpdate(changedProperties: PropertyValues): void;
67
+ private _sendChangeEvent;
68
+ private setFilterDataItem;
69
+ private setFilterExpression;
70
+ private setFilterValue;
71
+ protected renderDataItemPicker(): TemplateResult<1>;
72
+ protected renderExpressionPicker(): TemplateResult<1>;
73
+ protected renderValuePicker(): TemplateResult<1>;
74
+ protected render(): TemplateResult;
75
+ }
76
+ export {};
@@ -0,0 +1,52 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../property-Dlf9S6Jz.cjs"),U=require("../localized-decorator-ClAOFk8M.cjs"),k=require("../set-locale-5FFfQpVQ.cjs"),v=require("../base-D76d76ww-tT6yr8eb.cjs");require("../focusable-BxtpnzWp-CkK9AeMt.cjs");const P=require("../index-TQG9Xdxu.cjs"),y=require("../state-CrfOw8Zp.cjs"),K=require("../index-BOqSYlku.cjs");require("../filter-data-item-picker/index.cjs");require("../filter-value-picker/index.cjs");const j=":host{display:flex;flex-direction:row;gap:var(--luzmo-filter-item-gap, var(--filter-item-gap))}:host{--filter-item-gap: var(--luzmo-spacing-3)}:host([size=s]){--filter-item-gap: var(--luzmo-spacing-2)}: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))}:host([size=xl]){--filter-item-gap: var(--luzmo-spacing-4)}";var V=Object.defineProperty,A=Object.getOwnPropertyDescriptor,l=(T,t,e,i)=>{for(var s=i>1?void 0:i?A(t,e):t,r=T.length-1,a;r>=0;r--)(a=T[r])&&(s=(i?a(t,e,s):a(s))||s);return i&&s&&V(t,e,s),s};exports.LuzmoFilterItem=class extends v.m(v.It,{validSizes:Object.values(v.d$1)}){constructor(){super(...arguments),this.apiUrl="https://api.luzmo.com",this.language="en",this.contentLanguage="en",this.filter={},this._loading=!1,this._datasetsDataItems=[]}static get styles(){return[u.r(j)]}connectedCallback(){super.connectedCallback();const t={};this.apiUrl&&(t.apiUrl=this.apiUrl),this.cacheTime&&(t.staleTime=this.cacheTime,t.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(t.authKey=this.authKey,t.authToken=this.authToken),P.dataBroker.configure(t)}async _fetchDatasetDataItems(){if(!this.datasetIds||this.datasetIds.length===0){this._error="Missing dataset ids to fetch columns & formulas";return}this._loading=!0,this._error=null;try{const t=await P.dataBroker.fetchDatasetsWithColumnsAndFormulas(this.datasetIds);for(const e of t)for(const i of[...e.columns,...e.formulas])i.datasetId=e.id;this._datasetsDataItems=t}catch(t){console.error("Error fetching dataset columns & formulas:",t),this._error=t instanceof Error?t.message:"Unknown error",this._datasetsDataItems=[]}finally{this._loading=!1}}willUpdate(t){var a,o,p,h,c,d,n,f,I,_,z,x,b,F,L;const e=t.has("filter"),i=t.has("language"),s=t.has("datasetIds"),r=t.has("_datasetsDataItems");if(i&&this.language!==k.getLocale()&&([...k.targetLocales].includes(this.language??"en")||this.language==="en")&&k.setLocale(this.language),e||s||r&&((p=(o=(a=this.filter)==null?void 0:a.parameters)==null?void 0:o[0])!=null&&p.columnId)&&((d=(c=(h=this.filter)==null?void 0:h.parameters)==null?void 0:c[0])!=null&&d.datasetId||(I=(f=(n=this.filter)==null?void 0:n.parameters)==null?void 0:f[0])!=null&&I.formulaId)){const g=this._datasetsDataItems.find(m=>{var $,D;return m.id===((D=($=this.filter.parameters)==null?void 0:$[0])==null?void 0:D.datasetId)});if(g){for(const m of[...g.columns||[],...(g==null?void 0:g.formulas)||[]])if(m.id===((z=(_=this.filter.parameters)==null?void 0:_[0])==null?void 0:z.columnId)||m.id===((b=(x=this.filter.parameters)==null?void 0:x[0])==null?void 0:b.formulaId)){this._type=m.type,this._subType=m.subtype,this._isFormula=m.id===((L=(F=this.filter.parameters)==null?void 0:F[0])==null?void 0:L.formulaId);break}}}s&&this._fetchDatasetDataItems()}_sendChangeEvent(){this.dispatchEvent(new CustomEvent("filter-changed",{bubbles:!0,composed:!0,cancelable:!0,detail:{filter:this.filter}}))}setFilterDataItem(t){var a,o,p,h,c,d,n,f,I,_,z,x,b,F,L,g,m,$,D,w,E,S,q,C,O;const e=this._type,i=((p=(o=(a=this.filter)==null?void 0:a.parameters)==null?void 0:o[0])==null?void 0:p.columnId)||((d=(c=(h=this.filter)==null?void 0:h.parameters)==null?void 0:c[0])==null?void 0:d.formulaId),s=(f=(n=t.detail)==null?void 0:n.dataItem)==null?void 0:f.id;this._type=(_=(I=t.detail)==null?void 0:I.dataItem)==null?void 0:_.type,this._subType=(x=(z=t.detail)==null?void 0:z.dataItem)==null?void 0:x.subtype,this._isFormula=(F=(b=t.detail)==null?void 0:b.dataItem)==null?void 0:F.isFormula;const r=K.getValidExpressions(this._type,this._subType,this._isFormula);this.filter=structuredClone(this.filter??{}),r!=null&&r.includes((L=this.filter)==null?void 0:L.expression)||(this.filter.expression=(g=r==null?void 0:r[0])==null?void 0:g.expression),this.filter.parameters=((m=this.filter)==null?void 0:m.parameters)??[],this.filter.parameters[0]={datasetId:(D=($=t.detail)==null?void 0:$.dataItem)==null?void 0:D.datasetId},this._isFormula?this.filter.parameters[0].formulaId=(E=(w=t.detail)==null?void 0:w.dataItem)==null?void 0:E.id:this.filter.parameters[0].columnId=(q=(S=t.detail)==null?void 0:S.dataItem)==null?void 0:q.id,(O=(C=t.detail)==null?void 0:C.dataItem)!=null&&O.lowestLevel,e!==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]=new Date().toISOString()):(this.filter.expression="? is not null",this.filter.parameters=[this.filter.parameters[0]]):i!==s&&this._type==="hierarchy"&&(this.filter.parameters[1]=["? in ?","? not in ?"].includes(this.filter.expression)?[]:""),this._sendChangeEvent()}setFilterExpression(t){var s,r,a,o,p,h,c,d;const e=structuredClone(this.filter??{}),i=e.expression;if(e.expression=(s=t.detail)==null?void 0:s.expression,i!==e.expression){if(["? is null","? is not null"].includes(e.expression))e.parameters=[e.parameters[0]];else if(this._type==="datetime")if(["YTD","QTD","MTD","WTD"].includes(e.expression)){const n=(r=t==null?void 0:t.detail)==null?void 0:r.unit;n&&(e.parameters[1]={unit:typeof n=="number"?n:1})}else if(["last_completed","next_full","to_date"].includes(e.expression)){const n=(o=(a=e==null?void 0:e.parameters)==null?void 0:a[1])==null?void 0:o.unit;e.parameters[1]={unit:typeof n=="number"?n:1}}else if(["last_now","last_available","next_now"].includes(e.expression)){const n=(h=(p=e==null?void 0:e.parameters)==null?void 0:p[1])==null?void 0:h.unit,f=(d=(c=e==null?void 0:e.parameters)==null?void 0:c[1])==null?void 0:d.quantity;e.parameters[1]={unit:typeof n=="number"?n:1,quantity:typeof f=="number"?f:1}}else e.parameters[1]=new Date().toISOString();else this._type==="hierarchy"?["? in ?","? not in ?"].includes(e.expression)?["? = ?","? != ?"].includes(i)?e.parameters[1]=e.parameters[1]?[e.parameters[1]]:[]:e.parameters[1]=[]:["? = ?","? != ?"].includes(e.expression)?["? in ?","? not in ?"].includes(i)?e.parameters[1]=Array.isArray(e.parameters[1])&&e.parameters[1][0]?e.parameters[1][0]:"":e.parameters[1]="":e.parameters[1]=["? in ?","? not in ?"].includes(i)?"":e.parameters[1]??"":this._type==="numeric"&&(["? in ?","? not in ?"].includes(e.expression)&&["? in ?","? not in ?"].includes(i)?e.parameters[1]=e.parameters[1]??[]:["? in ?","? not in ?"].includes(e.expression)?e.parameters[1]=[]:e.parameters[1]=["? in ?","? not in ?"].includes(i)?0:e.parameters[1]??0);this.filter=e,this._sendChangeEvent()}}setFilterValue(t){var e;this.filter.parameters[1]=(e=t==null?void 0:t.detail)==null?void 0:e.value,this._sendChangeEvent()}renderDataItemPicker(){var t,e,i,s,r,a;return u.x`<luzmo-filter-data-item-picker
21
+ .language=${this.language}
22
+ .contentLanguage=${this.contentLanguage}
23
+ .size=${this.size}
24
+ .dataItemId=${this._loading?"":((i=(e=(t=this.filter)==null?void 0:t.parameters)==null?void 0:e[0])==null?void 0:i.columnId)||((a=(r=(s=this.filter)==null?void 0:s.parameters)==null?void 0:r[0])==null?void 0:a.formulaId)}
25
+ .datasetsDataItems=${this._datasetsDataItems}
26
+ .invalid=${!!this._error}
27
+ .loading=${this._loading}
28
+ @data-item-selected=${this.setFilterDataItem}
29
+ ></luzmo-filter-data-item-picker>`}renderExpressionPicker(){var e,i,s,r,a,o;const t=!((s=(i=(e=this.filter)==null?void 0:e.parameters)==null?void 0:i[0])!=null&&s.datasetId)||!((o=(a=(r=this.filter)==null?void 0:r.parameters)==null?void 0:a[0])!=null&&o.columnId);return u.x`<luzmo-filter-expression-picker
30
+ .language=${this.language}
31
+ .size=${this.size}
32
+ .type=${this._type}
33
+ .subtype=${this._subType}
34
+ .filter=${this.filter}
35
+ ?isFormula=${this._isFormula}
36
+ ?disabled=${t}
37
+ @expression-selected=${this.setFilterExpression}
38
+ ></luzmo-filter-expression-picker>`}renderValuePicker(){var e,i,s,r,a,o;const t=!((s=(i=(e=this.filter)==null?void 0:e.parameters)==null?void 0:i[0])!=null&&s.datasetId)||!((o=(a=(r=this.filter)==null?void 0:r.parameters)==null?void 0:a[0])!=null&&o.columnId);return u.x`<luzmo-filter-value-picker
39
+ .apiUrl=${this.apiUrl}
40
+ .authKey=${this.authKey}
41
+ .authToken=${this.authToken}
42
+ .cacheTime=${this.cacheTime}
43
+ .language=${this.language}
44
+ .contentLanguage=${this.contentLanguage}
45
+ .timeZone=${this.timeZone}
46
+ .size=${this.size}
47
+ .filter=${this.filter}
48
+ .valueType=${this._type}
49
+ ?disabled=${t}
50
+ @filter-value-changed=${this.setFilterValue}
51
+ ></luzmo-filter-value-picker>`}render(){return u.x`${this.renderDataItemPicker()} ${this.renderExpressionPicker()}
52
+ ${this.renderValuePicker()}`}};l([u.n({type:String,attribute:"api-url",reflect:!0})],exports.LuzmoFilterItem.prototype,"apiUrl",2);l([u.n({type:String,attribute:"auth-key",reflect:!0})],exports.LuzmoFilterItem.prototype,"authKey",2);l([u.n({type:String,attribute:"auth-token",reflect:!0})],exports.LuzmoFilterItem.prototype,"authToken",2);l([u.n({type:Number,attribute:"cache-time",reflect:!0})],exports.LuzmoFilterItem.prototype,"cacheTime",2);l([u.n({type:String,reflect:!0})],exports.LuzmoFilterItem.prototype,"language",2);l([u.n({type:String,reflect:!0})],exports.LuzmoFilterItem.prototype,"contentLanguage",2);l([u.n({type:String,attribute:"time-zone",reflect:!0})],exports.LuzmoFilterItem.prototype,"timeZone",2);l([u.n({type:Array,attribute:"dataset-ids",reflect:!0})],exports.LuzmoFilterItem.prototype,"datasetIds",2);l([u.n({type:Object,reflect:!1})],exports.LuzmoFilterItem.prototype,"filter",2);l([y.r()],exports.LuzmoFilterItem.prototype,"_type",2);l([y.r()],exports.LuzmoFilterItem.prototype,"_subType",2);l([y.r()],exports.LuzmoFilterItem.prototype,"_isFormula",2);l([y.r()],exports.LuzmoFilterItem.prototype,"_error",2);l([y.r()],exports.LuzmoFilterItem.prototype,"_loading",2);l([y.r()],exports.LuzmoFilterItem.prototype,"_datasetsDataItems",2);exports.LuzmoFilterItem=l([U.localized()],exports.LuzmoFilterItem);customElements.get("luzmo-filter-item")||customElements.define("luzmo-filter-item",exports.LuzmoFilterItem);
@@ -0,0 +1,7 @@
1
+ import { LuzmoFilterItem } from './filter-item';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-filter-item': LuzmoFilterItem;
5
+ }
6
+ }
7
+ export { LuzmoFilterItem } from './filter-item';
@@ -0,0 +1,271 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ import { r as A, x as T, n as c } from "../property-CxtZroGf.js";
21
+ import { l as K } from "../localized-decorator-DGnMToFa.js";
22
+ import { g as V, t as j, s as q } from "../set-locale-DAGnJZD8.js";
23
+ import { m as M, b as Z, I as B } from "../base-D76d76ww-BGkuhs54.js";
24
+ import "../focusable-BxtpnzWp-DJQkL8Zv.js";
25
+ import { d as O } from "../index-D9yzIoGv.js";
26
+ import { r as b } from "../state-BVYsk_HZ.js";
27
+ import { g as H } from "../index-C5m9vRp5.js";
28
+ import "../filter-data-item-picker/index.js";
29
+ import "../filter-value-picker/index.js";
30
+ const P = () => {
31
+ if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
32
+ const t = document.createElement("style");
33
+ t.setAttribute("data-luzmo-vars", ""), t.textContent = 'html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}', document.head.appendChild(t);
34
+ }
35
+ };
36
+ P();
37
+ const N = ":host{display:flex;flex-direction:row;gap:var(--luzmo-filter-item-gap, var(--filter-item-gap))}:host{--filter-item-gap: var(--luzmo-spacing-3)}:host([size=s]){--filter-item-gap: var(--luzmo-spacing-2)}: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))}:host([size=xl]){--filter-item-gap: var(--luzmo-spacing-4)}";
38
+ var W = Object.defineProperty, G = Object.getOwnPropertyDescriptor, n = (t, e, o, i) => {
39
+ for (var r = i > 1 ? void 0 : i ? G(e, o) : e, s = t.length - 1, a; s >= 0; s--)
40
+ (a = t[s]) && (r = (i ? a(e, o, r) : a(r)) || r);
41
+ return i && r && W(e, o, r), r;
42
+ };
43
+ let l = class extends M(B, {
44
+ validSizes: Object.values(Z)
45
+ }) {
46
+ constructor() {
47
+ super(...arguments), this.apiUrl = "https://api.luzmo.com", this.language = "en", this.contentLanguage = "en", this.filter = {}, this._loading = !1, this._datasetsDataItems = [];
48
+ }
49
+ static get styles() {
50
+ return [A(N)];
51
+ }
52
+ connectedCallback() {
53
+ super.connectedCallback();
54
+ const t = {};
55
+ this.apiUrl && (t.apiUrl = this.apiUrl), this.cacheTime && (t.staleTime = this.cacheTime, t.gcTime = this.cacheTime * 2), this.authKey && this.authToken && (t.authKey = this.authKey, t.authToken = this.authToken), O.configure(t);
56
+ }
57
+ /**
58
+ * Fetches hierarchy values from the databroker
59
+ */
60
+ async _fetchDatasetDataItems() {
61
+ if (!this.datasetIds || this.datasetIds.length === 0) {
62
+ this._error = "Missing dataset ids to fetch columns & formulas";
63
+ return;
64
+ }
65
+ this._loading = !0, this._error = null;
66
+ try {
67
+ const t = await O.fetchDatasetsWithColumnsAndFormulas(
68
+ this.datasetIds
69
+ );
70
+ for (const e of t)
71
+ for (const o of [...e.columns, ...e.formulas])
72
+ o.datasetId = e.id;
73
+ this._datasetsDataItems = t;
74
+ } catch (t) {
75
+ console.error("Error fetching dataset columns & formulas:", t), this._error = t instanceof Error ? t.message : "Unknown error", this._datasetsDataItems = [];
76
+ } finally {
77
+ this._loading = !1;
78
+ }
79
+ }
80
+ willUpdate(t) {
81
+ var s, a, p, d, h, f, m, g, y, x, I, _, v, k, $;
82
+ const e = t.has("filter"), o = t.has("language"), i = t.has("datasetIds"), r = t.has("_datasetsDataItems");
83
+ if (o && this.language !== V() && ([...j].includes(this.language ?? "en") || this.language === "en") && q(this.language), e || i || r && ((p = (a = (s = this.filter) == null ? void 0 : s.parameters) == null ? void 0 : a[0]) != null && p.columnId) && ((f = (h = (d = this.filter) == null ? void 0 : d.parameters) == null ? void 0 : h[0]) != null && f.datasetId || (y = (g = (m = this.filter) == null ? void 0 : m.parameters) == null ? void 0 : g[0]) != null && y.formulaId)) {
84
+ const z = this._datasetsDataItems.find(
85
+ (u) => {
86
+ var D, w;
87
+ return u.id === ((w = (D = this.filter.parameters) == null ? void 0 : D[0]) == null ? void 0 : w.datasetId);
88
+ }
89
+ );
90
+ if (z) {
91
+ for (const u of [
92
+ ...z.columns || [],
93
+ ...(z == null ? void 0 : z.formulas) || []
94
+ ])
95
+ if (u.id === ((I = (x = this.filter.parameters) == null ? void 0 : x[0]) == null ? void 0 : I.columnId) || u.id === ((v = (_ = this.filter.parameters) == null ? void 0 : _[0]) == null ? void 0 : v.formulaId)) {
96
+ this._type = u.type, this._subType = u.subtype, this._isFormula = u.id === (($ = (k = this.filter.parameters) == null ? void 0 : k[0]) == null ? void 0 : $.formulaId);
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ i && this._fetchDatasetDataItems();
102
+ }
103
+ _sendChangeEvent() {
104
+ this.dispatchEvent(
105
+ new CustomEvent("filter-changed", {
106
+ bubbles: !0,
107
+ composed: !0,
108
+ cancelable: !0,
109
+ detail: {
110
+ filter: this.filter
111
+ }
112
+ })
113
+ );
114
+ }
115
+ setFilterDataItem(t) {
116
+ var s, a, p, d, h, f, m, g, y, x, I, _, v, k, $, z, u, D, w, F, S, C, E, L, U;
117
+ const e = this._type, o = ((p = (a = (s = this.filter) == null ? void 0 : s.parameters) == null ? void 0 : a[0]) == null ? void 0 : p.columnId) || ((f = (h = (d = this.filter) == null ? void 0 : d.parameters) == null ? void 0 : h[0]) == null ? void 0 : f.formulaId), i = (g = (m = t.detail) == null ? void 0 : m.dataItem) == null ? void 0 : g.id;
118
+ this._type = (x = (y = t.detail) == null ? void 0 : y.dataItem) == null ? void 0 : x.type, this._subType = (_ = (I = t.detail) == null ? void 0 : I.dataItem) == null ? void 0 : _.subtype, this._isFormula = (k = (v = t.detail) == null ? void 0 : v.dataItem) == null ? void 0 : k.isFormula;
119
+ const r = H(
120
+ this._type,
121
+ this._subType,
122
+ this._isFormula
123
+ );
124
+ this.filter = structuredClone(this.filter ?? {}), r != null && r.includes(($ = this.filter) == null ? void 0 : $.expression) || (this.filter.expression = (z = r == null ? void 0 : r[0]) == null ? void 0 : z.expression), this.filter.parameters = ((u = this.filter) == null ? void 0 : u.parameters) ?? [], this.filter.parameters[0] = {
125
+ datasetId: (w = (D = t.detail) == null ? void 0 : D.dataItem) == null ? void 0 : w.datasetId
126
+ }, this._isFormula ? this.filter.parameters[0].formulaId = (S = (F = t.detail) == null ? void 0 : F.dataItem) == null ? void 0 : S.id : this.filter.parameters[0].columnId = (E = (C = t.detail) == null ? void 0 : C.dataItem) == null ? void 0 : E.id, (U = (L = t.detail) == null ? void 0 : L.dataItem) != null && U.lowestLevel, e !== 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]]) : (
127
+ // if same type and type is hierarchy but different column, reset the value
128
+ o !== i && this._type === "hierarchy" && (this.filter.parameters[1] = ["? in ?", "? not in ?"].includes(
129
+ this.filter.expression
130
+ ) ? [] : "")
131
+ ), this._sendChangeEvent();
132
+ }
133
+ setFilterExpression(t) {
134
+ var i, r, s, a, p, d, h, f;
135
+ const e = structuredClone(this.filter ?? {}), o = e.expression;
136
+ if (e.expression = (i = t.detail) == null ? void 0 : i.expression, o !== e.expression) {
137
+ if (["? is null", "? is not null"].includes(e.expression))
138
+ e.parameters = [e.parameters[0]];
139
+ else if (this._type === "datetime")
140
+ if (["YTD", "QTD", "MTD", "WTD"].includes(e.expression)) {
141
+ const m = (r = t == null ? void 0 : t.detail) == null ? void 0 : r.unit;
142
+ m && (e.parameters[1] = {
143
+ unit: typeof m == "number" ? m : 1
144
+ });
145
+ } else if (["last_completed", "next_full", "to_date"].includes(e.expression)) {
146
+ const m = (a = (s = e == null ? void 0 : e.parameters) == null ? void 0 : s[1]) == null ? void 0 : a.unit;
147
+ e.parameters[1] = {
148
+ unit: typeof m == "number" ? m : 1
149
+ };
150
+ } else if (["last_now", "last_available", "next_now"].includes(e.expression)) {
151
+ const m = (d = (p = e == null ? void 0 : e.parameters) == null ? void 0 : p[1]) == null ? void 0 : d.unit, g = (f = (h = e == null ? void 0 : e.parameters) == null ? void 0 : h[1]) == null ? void 0 : f.quantity;
152
+ e.parameters[1] = {
153
+ unit: typeof m == "number" ? m : 1,
154
+ quantity: typeof g == "number" ? g : 1
155
+ };
156
+ } else
157
+ e.parameters[1] = (/* @__PURE__ */ new Date()).toISOString();
158
+ else this._type === "hierarchy" ? ["? in ?", "? not in ?"].includes(e.expression) ? ["? = ?", "? != ?"].includes(o) ? e.parameters[1] = e.parameters[1] ? [e.parameters[1]] : [] : e.parameters[1] = [] : ["? = ?", "? != ?"].includes(e.expression) ? ["? in ?", "? not in ?"].includes(o) ? e.parameters[1] = Array.isArray(e.parameters[1]) && e.parameters[1][0] ? e.parameters[1][0] : "" : e.parameters[1] = "" : e.parameters[1] = ["? in ?", "? not in ?"].includes(
159
+ o
160
+ ) ? "" : e.parameters[1] ?? "" : this._type === "numeric" && (["? in ?", "? not in ?"].includes(e.expression) && ["? in ?", "? not in ?"].includes(o) ? e.parameters[1] = e.parameters[1] ?? [] : ["? in ?", "? not in ?"].includes(e.expression) ? e.parameters[1] = [] : e.parameters[1] = ["? in ?", "? not in ?"].includes(
161
+ o
162
+ ) ? 0 : e.parameters[1] ?? 0);
163
+ this.filter = e, this._sendChangeEvent();
164
+ }
165
+ }
166
+ setFilterValue(t) {
167
+ var e;
168
+ this.filter.parameters[1] = (e = t == null ? void 0 : t.detail) == null ? void 0 : e.value, this._sendChangeEvent();
169
+ }
170
+ renderDataItemPicker() {
171
+ var t, e, o, i, r, s;
172
+ return T`<luzmo-filter-data-item-picker
173
+ .language=${this.language}
174
+ .contentLanguage=${this.contentLanguage}
175
+ .size=${this.size}
176
+ .dataItemId=${this._loading ? "" : ((o = (e = (t = this.filter) == null ? void 0 : t.parameters) == null ? void 0 : e[0]) == null ? void 0 : o.columnId) || ((s = (r = (i = this.filter) == null ? void 0 : i.parameters) == null ? void 0 : r[0]) == null ? void 0 : s.formulaId)}
177
+ .datasetsDataItems=${this._datasetsDataItems}
178
+ .invalid=${!!this._error}
179
+ .loading=${this._loading}
180
+ @data-item-selected=${this.setFilterDataItem}
181
+ ></luzmo-filter-data-item-picker>`;
182
+ }
183
+ renderExpressionPicker() {
184
+ var e, o, i, r, s, a;
185
+ const t = !((i = (o = (e = this.filter) == null ? void 0 : e.parameters) == null ? void 0 : o[0]) != null && i.datasetId) || !((a = (s = (r = this.filter) == null ? void 0 : r.parameters) == null ? void 0 : s[0]) != null && a.columnId);
186
+ return T`<luzmo-filter-expression-picker
187
+ .language=${this.language}
188
+ .size=${this.size}
189
+ .type=${this._type}
190
+ .subtype=${this._subType}
191
+ .filter=${this.filter}
192
+ ?isFormula=${this._isFormula}
193
+ ?disabled=${t}
194
+ @expression-selected=${this.setFilterExpression}
195
+ ></luzmo-filter-expression-picker>`;
196
+ }
197
+ renderValuePicker() {
198
+ var e, o, i, r, s, a;
199
+ const t = !((i = (o = (e = this.filter) == null ? void 0 : e.parameters) == null ? void 0 : o[0]) != null && i.datasetId) || !((a = (s = (r = this.filter) == null ? void 0 : r.parameters) == null ? void 0 : s[0]) != null && a.columnId);
200
+ return T`<luzmo-filter-value-picker
201
+ .apiUrl=${this.apiUrl}
202
+ .authKey=${this.authKey}
203
+ .authToken=${this.authToken}
204
+ .cacheTime=${this.cacheTime}
205
+ .language=${this.language}
206
+ .contentLanguage=${this.contentLanguage}
207
+ .timeZone=${this.timeZone}
208
+ .size=${this.size}
209
+ .filter=${this.filter}
210
+ .valueType=${this._type}
211
+ ?disabled=${t}
212
+ @filter-value-changed=${this.setFilterValue}
213
+ ></luzmo-filter-value-picker>`;
214
+ }
215
+ render() {
216
+ return T`${this.renderDataItemPicker()} ${this.renderExpressionPicker()}
217
+ ${this.renderValuePicker()}`;
218
+ }
219
+ };
220
+ n([
221
+ c({ type: String, attribute: "api-url", reflect: !0 })
222
+ ], l.prototype, "apiUrl", 2);
223
+ n([
224
+ c({ type: String, attribute: "auth-key", reflect: !0 })
225
+ ], l.prototype, "authKey", 2);
226
+ n([
227
+ c({ type: String, attribute: "auth-token", reflect: !0 })
228
+ ], l.prototype, "authToken", 2);
229
+ n([
230
+ c({ type: Number, attribute: "cache-time", reflect: !0 })
231
+ ], l.prototype, "cacheTime", 2);
232
+ n([
233
+ c({ type: String, reflect: !0 })
234
+ ], l.prototype, "language", 2);
235
+ n([
236
+ c({ type: String, reflect: !0 })
237
+ ], l.prototype, "contentLanguage", 2);
238
+ n([
239
+ c({ type: String, attribute: "time-zone", reflect: !0 })
240
+ ], l.prototype, "timeZone", 2);
241
+ n([
242
+ c({ type: Array, attribute: "dataset-ids", reflect: !0 })
243
+ ], l.prototype, "datasetIds", 2);
244
+ n([
245
+ c({ type: Object, reflect: !1 })
246
+ ], l.prototype, "filter", 2);
247
+ n([
248
+ b()
249
+ ], l.prototype, "_type", 2);
250
+ n([
251
+ b()
252
+ ], l.prototype, "_subType", 2);
253
+ n([
254
+ b()
255
+ ], l.prototype, "_isFormula", 2);
256
+ n([
257
+ b()
258
+ ], l.prototype, "_error", 2);
259
+ n([
260
+ b()
261
+ ], l.prototype, "_loading", 2);
262
+ n([
263
+ b()
264
+ ], l.prototype, "_datasetsDataItems", 2);
265
+ l = n([
266
+ K()
267
+ ], l);
268
+ customElements.get("luzmo-filter-item") || customElements.define("luzmo-filter-item", l);
269
+ export {
270
+ l as LuzmoFilterItem
271
+ };
@@ -0,0 +1,25 @@
1
+ import '@luzmo/lucero/picker';
2
+ import { CSSResultArray, TemplateResult } from 'lit';
3
+ import { LuzmoElement } from '@luzmo/lucero/utils';
4
+ declare const LuzmoFilterParameterPicker_base: typeof LuzmoElement & {
5
+ new (...args: any[]): import("@luzmo/lucero").SizedElementInterface;
6
+ prototype: import("@luzmo/lucero").SizedElementInterface;
7
+ };
8
+ /**
9
+ * @element luzmo-filter-parameter-picker
10
+ */
11
+ export declare class LuzmoFilterParameterPicker extends LuzmoFilterParameterPicker_base {
12
+ static get styles(): CSSResultArray;
13
+ /**
14
+ * The language of the settings interface
15
+ */
16
+ language: string;
17
+ /**
18
+ * The language to use for locale-aware formatting and labels
19
+ */
20
+ contentLanguage: string;
21
+ _expressionSelected: any;
22
+ protected willUpdate(): void;
23
+ protected render(): TemplateResult;
24
+ }
25
+ export {};
@@ -0,0 +1,7 @@
1
+ import { LuzmoFilterParameterPicker } from './filter-parameter-picker';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-filter-parameter-picker': LuzmoFilterParameterPicker;
5
+ }
6
+ }
7
+ export { LuzmoFilterParameterPicker } from './filter-parameter-picker';
@@ -0,0 +1,65 @@
1
+ import '@luzmo/lucero/picker';
2
+ import { CSSResultArray, PropertyValues, TemplateResult } from 'lit';
3
+ import { LuzmoElement } from '@luzmo/lucero/utils';
4
+ import './../filter-value-picker-datetime';
5
+ import './../filter-value-picker-hierarchy';
6
+ import './../filter-value-picker-numeric';
7
+ declare const LuzmoFilterValuePicker_base: typeof LuzmoElement & {
8
+ new (...args: any[]): import("@luzmo/lucero").SizedElementInterface;
9
+ prototype: import("@luzmo/lucero").SizedElementInterface;
10
+ };
11
+ /**
12
+ * @element luzmo-filter-value-picker
13
+ */
14
+ export declare class LuzmoFilterValuePicker extends LuzmoFilterValuePicker_base {
15
+ static get styles(): CSSResultArray;
16
+ /**
17
+ * The API URL of the databroker
18
+ * @default https://api.luzmo.com
19
+ * @description The URL of the databroker API
20
+ */
21
+ apiUrl?: string;
22
+ /**
23
+ * The auth key of the databroker
24
+ */
25
+ authKey?: string;
26
+ /**
27
+ * The auth token of the databroker
28
+ */
29
+ authToken?: string;
30
+ /**
31
+ * The cache time of the databroker
32
+ * @default 30000
33
+ * @description The time to cache the data in milliseconds
34
+ */
35
+ cacheTime?: number;
36
+ /**
37
+ * The language of the settings interface
38
+ */
39
+ language: string;
40
+ /**
41
+ * The language to use for locale-aware formatting and labels
42
+ */
43
+ contentLanguage: string;
44
+ /**
45
+ * The time zone to use for the date picker
46
+ */
47
+ timeZone?: string;
48
+ /**
49
+ * The type value picker to render
50
+ */
51
+ valueType?: 'hierarchy' | 'numeric' | 'datetime';
52
+ /**
53
+ * The filter for which to render the value picker
54
+ */
55
+ filter?: any;
56
+ private _expressionsWithoutValuePicker;
57
+ private _sendChangeEvent;
58
+ private setFilterValue;
59
+ private renderNumericValuePicker;
60
+ private renderHierarchyValuePicker;
61
+ private renderDateTimeValuePicker;
62
+ protected willUpdate(changedProperties: PropertyValues): void;
63
+ protected render(): TemplateResult;
64
+ }
65
+ export {};
@@ -0,0 +1,51 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../index-c2uKLWDt.cjs");const t=require("../property-Dlf9S6Jz.cjs"),c=require("../base-D76d76ww-tT6yr8eb.cjs");require("../focusable-BxtpnzWp-CkK9AeMt.cjs");const h=require("../set-locale-5FFfQpVQ.cjs");require("../filter-value-picker-datetime/index.cjs");require("../filter-value-picker-hierarchy/index.cjs");require("../filter-value-picker-numeric/index.cjs");const g=":host{--var: red}:host{--var: blue}";var p=Object.defineProperty,a=(n,e,i,l)=>{for(var u=void 0,s=n.length-1,o;s>=0;s--)(o=n[s])&&(u=o(e,i,u)||u);return u&&p(e,i,u),u};class r extends c.m(c.It,{validSizes:Object.values(c.d$1)}){constructor(){super(...arguments),this.language="en",this.contentLanguage="en",this._expressionsWithoutValuePicker=new Set(["? is null","? is not null","to_date"])}static get styles(){return[t.r(g)]}_sendChangeEvent(e){this.dispatchEvent(new CustomEvent("filter-value-changed",{bubbles:!0,composed:!0,cancelable:!0,detail:{value:e}}))}setFilterValue(e){var i;e.stopPropagation(),this._sendChangeEvent((i=e==null?void 0:e.detail)==null?void 0:i.value)}renderNumericValuePicker(){return t.x`<luzmo-filter-value-picker-numeric
21
+ .apiUrl=${this.apiUrl}
22
+ .authKey=${this.authKey}
23
+ .authToken=${this.authToken}
24
+ .cacheTime=${this.cacheTime}
25
+ .filter=${this.filter}
26
+ .size=${this.size}
27
+ .language=${this.language}
28
+ .contentLanguage=${this.contentLanguage}
29
+ @filter-value-changed=${this.setFilterValue}
30
+ ></luzmo-filter-value-picker-numeric>`}renderHierarchyValuePicker(){return t.x`<luzmo-filter-value-picker-hierarchy
31
+ .apiUrl=${this.apiUrl}
32
+ .authKey=${this.authKey}
33
+ .authToken=${this.authToken}
34
+ .cacheTime=${this.cacheTime}
35
+ .filter=${this.filter}
36
+ .size=${this.size}
37
+ .language=${this.language}
38
+ .contentLanguage=${this.contentLanguage}
39
+ @filter-value-changed=${this.setFilterValue}
40
+ ></luzmo-filter-value-picker-hierarchy>`}renderDateTimeValuePicker(){return t.x`<luzmo-filter-value-picker-datetime
41
+ .apiUrl=${this.apiUrl}
42
+ .authKey=${this.authKey}
43
+ .authToken=${this.authToken}
44
+ .cacheTime=${this.cacheTime}
45
+ .filter=${this.filter}
46
+ .timeZone=${this.timeZone}
47
+ .language=${this.language}
48
+ .contentLanguage=${this.contentLanguage}
49
+ .size=${this.size}
50
+ @filter-value-changed=${this.setFilterValue}
51
+ ></luzmo-filter-value-picker-datetime>`}willUpdate(e){e.has("language")&&this.language!==h.getLocale()&&([...h.targetLocales].includes(this.language??"en")||this.language==="en")&&h.setLocale(this.language)}render(){var l;const e=this.valueType??"",i=(l=this.filter)==null?void 0:l.expression;return!i||this._expressionsWithoutValuePicker.has(i)||!["numeric","hierarchy","datetime"].includes(e)?t.x``:e==="numeric"?this.renderNumericValuePicker():e==="datetime"?this.renderDateTimeValuePicker():this.renderHierarchyValuePicker()}}a([t.n({type:String,attribute:"api-url",reflect:!0})],r.prototype,"apiUrl");a([t.n({type:String,attribute:"auth-key",reflect:!0})],r.prototype,"authKey");a([t.n({type:String,attribute:"auth-token",reflect:!0})],r.prototype,"authToken");a([t.n({type:Number,attribute:"cache-time",reflect:!0})],r.prototype,"cacheTime");a([t.n({type:String,reflect:!0})],r.prototype,"language");a([t.n({type:String,attribute:"content-language",reflect:!0})],r.prototype,"contentLanguage");a([t.n({type:String,attribute:"time-zone",reflect:!0})],r.prototype,"timeZone");a([t.n({type:String,attribute:"value-type",reflect:!0})],r.prototype,"valueType");a([t.n({type:Object,reflect:!1})],r.prototype,"filter");customElements.get("luzmo-filter-value-picker")||customElements.define("luzmo-filter-value-picker",r);exports.LuzmoFilterValuePicker=r;
@@ -0,0 +1,7 @@
1
+ import { LuzmoFilterValuePicker } from './filter-value-picker';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-filter-value-picker': LuzmoFilterValuePicker;
5
+ }
6
+ }
7
+ export { LuzmoFilterValuePicker } from './filter-value-picker';