@luzmo/analytics-components-kit 1.3.0 → 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 (118) hide show
  1. package/README.md +6 -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 +87 -22
  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 +30 -9
  21. package/angular/esm/components/interactive-viz-item.js +98 -27
  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-CzIuDtAq.cjs → add-to-dashboard-BtzTZdjN.cjs} +1 -1
  49. package/components/{add-to-dashboard-DGC0_hRB.js → add-to-dashboard-Bu6S3qVz.js} +125 -120
  50. package/components/chart-helpers-BHxQbLBw.cjs +20 -0
  51. package/components/{chart-helpers-Cbl3sRra.js → chart-helpers-BKeMLhov.js} +51 -38
  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.js +3 -3
  61. package/components/interactive-viz-item/interactive-viz-item.d.ts +44 -0
  62. package/components/{interactive-viz-item-BKLOmawA.js → interactive-viz-item-Cc3Ix95e.js} +151 -110
  63. package/components/interactive-viz-item-SF12d97t.cjs +269 -0
  64. package/components/item-grid/item-grid.d.ts +1 -0
  65. package/components/item-slot-picker-panel/index.cjs +1 -1
  66. package/components/item-slot-picker-panel/index.js +1 -1
  67. package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +19 -1
  68. package/components/item-slot-picker-panel-Cw3UCK03.cjs +84 -0
  69. package/components/{item-slot-picker-panel-fJqEmxeD.js → item-slot-picker-panel-DprM9Rli.js} +64 -33
  70. package/custom-elements.json +3044 -2532
  71. package/grid-core/item-grid-base.d.ts +5 -4
  72. package/package.json +1 -1
  73. package/react/package.json +2 -2
  74. package/standalone/add-to-dashboard.js +1 -1
  75. package/standalone/chunks/{chart-helpers-CR-EUEPf.js → chart-helpers-DZsidiCl.js} +1 -1
  76. package/standalone/chunks/data-broker-DpSrH3IP.js +2 -0
  77. package/standalone/chunks/{display-settings-binning-BeLLxd3i.js → display-settings-binning-DhHlclWH.js} +1 -1
  78. package/standalone/chunks/{display-settings-datetime-BkeiKIVV.js → display-settings-datetime-C8xvOvi4.js} +1 -1
  79. package/standalone/chunks/{display-settings-grand-totals-BuhpQKJ6.js → display-settings-grand-totals-CUpigDcs.js} +1 -1
  80. package/standalone/chunks/{display-settings-numeric-m30IYI7I.js → display-settings-numeric-BLWF54Jx.js} +1 -1
  81. package/standalone/chunks/{display-settings-period-over-period-CqDlOSRn.js → display-settings-period-over-period-COd4tvUw.js} +1 -1
  82. package/standalone/chunks/en-DNsyAwgq.js +2 -0
  83. package/standalone/chunks/en-GB-Di3OzVdL.js +2 -0
  84. package/standalone/chunks/en-US-DNsyAwgq.js +2 -0
  85. package/standalone/chunks/{filters-CxgBXUF1.js → filters-lhg_WVDK.js} +72 -72
  86. package/standalone/chunks/{formula-codemirror-Cq94j3-f.js → formula-codemirror-DZMzLE2I.js} +1 -1
  87. package/standalone/chunks/{item-option-action-button-group-BoyqF9vt.js → item-option-action-button-group-Bl1HR1JK.js} +1 -1
  88. package/standalone/chunks/{item-option-base-CBcDT8MX.js → item-option-base-DF24wTyv.js} +1 -1
  89. package/standalone/chunks/{item-option-color-palette-picker-C9PGAv4V.js → item-option-color-palette-picker-MkIIn56p.js} +1 -1
  90. package/standalone/chunks/{item-option-color-picker-D4fVJlqF.js → item-option-color-picker-CxosMo_p.js} +1 -1
  91. package/standalone/chunks/{item-option-color-range-BlAdTguE.js → item-option-color-range-C7C70r4J.js} +1 -1
  92. package/standalone/chunks/{item-option-guidelines-DMsYsHDu.js → item-option-guidelines-iu8yWRzr.js} +1 -1
  93. package/standalone/chunks/{item-option-multi-language-field-NUbm1drg.js → item-option-multi-language-field-foanqCdr.js} +1 -1
  94. package/standalone/chunks/{item-option-number-field-DRp7kbHL.js → item-option-number-field-ByVD4oq0.js} +1 -1
  95. package/standalone/chunks/{item-option-panel-cXrRclzM.js → item-option-panel-Bya-K7HH.js} +2 -2
  96. package/standalone/chunks/{item-option-picker-Ba09L4Cs.js → item-option-picker-CqNNVIML.js} +1 -1
  97. package/standalone/chunks/{item-option-position-picker-GEGTnhjw.js → item-option-position-picker-BjCFVtDH.js} +1 -1
  98. package/standalone/chunks/{item-option-positions-number-field-n44s1k5v.js → item-option-positions-number-field-BJJtXZL-.js} +1 -1
  99. package/standalone/chunks/{item-option-radio-button-group-3s_b1NvR.js → item-option-radio-button-group-C5bxsD85.js} +1 -1
  100. package/standalone/chunks/{item-option-slider-DtY65Gxk.js → item-option-slider-DUXWz70B.js} +1 -1
  101. package/standalone/chunks/{item-option-switch-4sJaI0mx.js → item-option-switch-BHyJuOkP.js} +1 -1
  102. package/standalone/chunks/{item-option-text-field-Bt6Lj6kh.js → item-option-text-field-rBZY9OX4.js} +1 -1
  103. package/standalone/chunks/{item-slot-picker-panel-BOSVFBIy.js → item-slot-picker-panel-BM82vSXi.js} +74 -72
  104. package/standalone/chunks/load-data-fields-for-datasets-DS9O1oyy.js +25 -0
  105. package/standalone/chunks/localize-DLl7tgQp.js +2 -0
  106. package/standalone/interactive-viz-item.js +54 -53
  107. package/standalone/manifest.json +31 -31
  108. package/types.d.ts +1 -1
  109. package/components/chart-helpers-fMnqHRzC.cjs +0 -20
  110. package/components/filters-BPbPFOu5.cjs +0 -187
  111. package/components/interactive-viz-item-ojdH1uk0.cjs +0 -268
  112. package/components/item-slot-picker-panel-BhhN54IM.cjs +0 -82
  113. package/standalone/chunks/data-broker-DXDyIrj_.js +0 -2
  114. package/standalone/chunks/en-63f7j4v7.js +0 -2
  115. package/standalone/chunks/en-GB-QAmXQf8W.js +0 -2
  116. package/standalone/chunks/en-US-63f7j4v7.js +0 -2
  117. package/standalone/chunks/load-data-fields-for-datasets-CDlut-6S.js +0 -25
  118. package/standalone/chunks/localize-DXRmGRe-.js +0 -2
@@ -72,58 +72,58 @@ function le(e, t = !1) {
72
72
  ].filter(Boolean).length;
73
73
  return n === 1 ? !0 : n > 1 ? !1 : e.columnExpression !== void 0 || t && e.expression !== void 0;
74
74
  }
75
- function C(e) {
75
+ function ue(e) {
76
76
  return !x(e) || typeof e.expression != "string" || e.expression.length === 0 || "parameters" in e || typeof e.datasetId != "string" && typeof e.dataset_id != "string" ? !1 : le(e);
77
77
  }
78
- function w(e) {
78
+ function C(e) {
79
79
  return !x(e) || !Array.isArray(e.parameters) ? !1 : !S(e);
80
80
  }
81
- function ue(e) {
81
+ function de(e) {
82
82
  if (!("parameters" in e)) return;
83
83
  let t = v.find((t) => t in e);
84
84
  if (t !== void 0) throw new _(`Filter leaf mixes "parameters" with the clean inline key "${t}".`);
85
85
  }
86
- function de(e) {
86
+ function fe(e) {
87
87
  throw typeof e.expression != "string" || e.expression.length === 0 ? new _("Clean filter leaf is missing a non-empty \"expression\".") : typeof e.datasetId != "string" && typeof e.dataset_id != "string" ? new _(`Clean filter leaf "${e.expression}" is missing a "datasetId".`) : new _(`Clean filter leaf "${e.expression}" must name exactly one of "columnId", "formulaId", "formula", or "columnExpression".`);
88
88
  }
89
- function T(e) {
89
+ function w(e) {
90
90
  return e === "where" || e === "having";
91
91
  }
92
- function E(e) {
92
+ function T(e) {
93
93
  if (e > 20) throw new _("Filter nesting exceeds the maximum depth of 20.");
94
94
  }
95
- function fe(e) {
95
+ function pe(e) {
96
96
  if (e == null) return "empty";
97
97
  if (!Array.isArray(e)) return "unknown";
98
98
  if (e.length === 0) return "empty";
99
99
  let t = !1, n = !1, r = !1, i = (e, a) => {
100
100
  if (a > 20) r = !0;
101
101
  else if (b(e)) {
102
- T(e.clause) && (n = !0);
102
+ w(e.clause) && (n = !0);
103
103
  let t = [...Array.isArray(e.filters) ? e.filters : [], ...Array.isArray(e.subGroups) ? e.subGroups : []];
104
104
  for (let e of t) i(e, a + 1);
105
- } else x(e) ? "parameters" in e && S(e) ? r = !0 : C(e) ? n = !0 : w(e) ? t = !0 : r = !0 : r = !0;
105
+ } else x(e) ? "parameters" in e && S(e) ? r = !0 : ue(e) ? n = !0 : C(e) ? t = !0 : r = !0 : r = !0;
106
106
  };
107
107
  for (let t of e) i(t, 1);
108
108
  return r ? "unknown" : n && t ? "mixed" : n ? "clean" : t ? "canonical" : "empty";
109
109
  }
110
110
  // src/components/filters/transformations/clean-filters.ts
111
- var D = /* @__PURE__ */ new Set(["? is null", "? is not null"]), O = /* @__PURE__ */ new Set([
111
+ var E = /* @__PURE__ */ new Set(["? is null", "? is not null"]), D = /* @__PURE__ */ new Set([
112
112
  "? = ?",
113
113
  "? != ?",
114
114
  "? < ?",
115
115
  "? <= ?",
116
116
  "? > ?",
117
117
  "? >= ?"
118
- ]), pe = /* @__PURE__ */ new Set([
118
+ ]), me = /* @__PURE__ */ new Set([
119
119
  "? in ?",
120
120
  "? not in ?",
121
121
  "? between ?"
122
- ]), me = {
122
+ ]), he = {
123
123
  "array[numeric]": "numeric[]",
124
124
  "array[hierarchy]": "hierarchy[]",
125
125
  "array[datetime]": "datetime[]"
126
- }, he = /* @__PURE__ */ new Set([
126
+ }, ge = /* @__PURE__ */ new Set([
127
127
  "level",
128
128
  "lowestLevel",
129
129
  "unnest",
@@ -133,40 +133,40 @@ var D = /* @__PURE__ */ new Set(["? is null", "? is not null"]), O = /* @__PURE_
133
133
  "include_nonoccurring",
134
134
  "simplification"
135
135
  ]);
136
- function k(e, t) {
137
- return e !== "lowestLevel" && !(t === null && he.has(e));
136
+ function O(e, t) {
137
+ return e !== "lowestLevel" && !(t === null && ge.has(e));
138
138
  }
139
- function A(e) {
139
+ function k(e) {
140
140
  return structuredClone(e);
141
141
  }
142
- function j(e) {
142
+ function A(e) {
143
143
  let t = e.datasetId ?? e.dataset_id;
144
144
  if (typeof t != "string" || t.length === 0) throw new _("Filter reference is missing a \"datasetId\".");
145
145
  return t;
146
146
  }
147
- function M(e) {
147
+ function j(e) {
148
148
  return y(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;
149
149
  }
150
- function N(e) {
150
+ function M(e) {
151
151
  let t = { type: e.type };
152
- return e.bins !== void 0 && (t.bins = e.bins), Array.isArray(e.over) && (t.over = e.over.map((e) => L(e))), t;
152
+ return e.bins !== void 0 && (t.bins = e.bins), Array.isArray(e.over) && (t.over = e.over.map((e) => I(e))), t;
153
153
  }
154
- function ge(e) {
154
+ function _e(e) {
155
155
  let t = { type: e.type }, n = e.datasetId ?? e.dataset_id, r = e.columnId ?? e.column_id;
156
- return n !== void 0 && (t.datasetId = n), r !== void 0 && (t.columnId = r), e.level !== void 0 && k("level", e.level) && (t.level = e.level), y(e.discretization) && (t.discretization = N(e.discretization)), e.unnest !== void 0 && k("unnest", e.unnest) && (t.unnest = e.unnest), t;
156
+ return n !== void 0 && (t.datasetId = n), r !== void 0 && (t.columnId = r), e.level !== void 0 && O("level", e.level) && (t.level = e.level), y(e.discretization) && (t.discretization = M(e.discretization)), e.unnest !== void 0 && O("unnest", e.unnest) && (t.unnest = e.unnest), t;
157
157
  }
158
- function P(e) {
158
+ function N(e) {
159
159
  let t = { type: e.type };
160
- return e.bins !== void 0 && (t.bins = e.bins), Array.isArray(e.over) && (t.over = e.over.map((e) => y(e) ? I(e) : e)), t;
160
+ return e.bins !== void 0 && (t.bins = e.bins), Array.isArray(e.over) && (t.over = e.over.map((e) => y(e) ? F(e) : e)), t;
161
161
  }
162
- function _e(e) {
162
+ function ve(e) {
163
163
  let t = { type: e.type }, n = e.datasetId ?? e.dataset_id, r = e.columnId ?? e.column_id;
164
- return n !== void 0 && (t.datasetId = n), r !== void 0 && (t.columnId = r), e.level !== void 0 && (t.level = e.level), y(e.discretization) && (t.discretization = P(e.discretization)), e.unnest !== void 0 && (t.unnest = e.unnest), t;
164
+ return n !== void 0 && (t.datasetId = n), r !== void 0 && (t.columnId = r), e.level !== void 0 && (t.level = e.level), y(e.discretization) && (t.discretization = N(e.discretization)), e.unnest !== void 0 && (t.unnest = e.unnest), t;
165
165
  }
166
- function ve(e, t) {
167
- e.level !== void 0 && (t.level = A(e.level)), y(e.discretization) && (t.discretization = P(e.discretization)), y(e.aggregation) && (t.aggregation = _e(e.aggregation)), e.unnest !== void 0 && (t.unnest = A(e.unnest));
166
+ function ye(e, t) {
167
+ e.level !== void 0 && (t.level = k(e.level)), y(e.discretization) && (t.discretization = N(e.discretization)), y(e.aggregation) && (t.aggregation = ve(e.aggregation)), e.unnest !== void 0 && (t.unnest = k(e.unnest));
168
168
  }
169
- function F(e, t) {
169
+ function P(e, t) {
170
170
  let n = e.columnId ?? e.column_id;
171
171
  if (n !== void 0) return {
172
172
  kind: "columnId",
@@ -187,111 +187,111 @@ function F(e, t) {
187
187
  value: i
188
188
  };
189
189
  }
190
- function I(e, t = !0) {
191
- let n = { datasetId: j(e) }, r = F(e, t);
192
- return r !== void 0 && (r.kind === "expression" ? n.expression = r.value : n[r.kind] = r.value), ve(e, n), n;
190
+ function F(e, t = !0) {
191
+ let n = { datasetId: A(e) }, r = P(e, t);
192
+ return r !== void 0 && (r.kind === "expression" ? n.expression = r.value : n[r.kind] = r.value), ye(e, n), n;
193
193
  }
194
- function L(e) {
194
+ function I(e) {
195
195
  if (!y(e)) throw new _("Cannot emit a clean filter reference.");
196
- let t = { datasetId: j(e) };
197
- e.level !== void 0 && k("level", e.level) && (t.level = e.level), y(e.discretization) && (t.discretization = N(e.discretization)), y(e.aggregation) && (t.aggregation = ge(e.aggregation)), e.unnest !== void 0 && k("unnest", e.unnest) && (t.unnest = e.unnest);
198
- let n = F(e, !0);
196
+ let t = { datasetId: A(e) };
197
+ e.level !== void 0 && O("level", e.level) && (t.level = e.level), y(e.discretization) && (t.discretization = M(e.discretization)), y(e.aggregation) && (t.aggregation = _e(e.aggregation)), e.unnest !== void 0 && O("unnest", e.unnest) && (t.unnest = e.unnest);
198
+ let n = P(e, !0);
199
199
  if (n === void 0) throw new _("Cannot emit a clean filter reference: no column, formula, or expression.");
200
200
  return n.kind === "expression" ? t.columnExpression = n.value : t[n.kind] = n.value, t;
201
201
  }
202
- function ye(e) {
202
+ function be(e) {
203
203
  if (!y(e) || typeof e.parameter != "string" || typeof e.type != "string") return e;
204
- let t = me[e.type];
204
+ let t = he[e.type];
205
205
  return t === void 0 ? e : {
206
206
  ...e,
207
207
  type: t
208
208
  };
209
209
  }
210
- function be(e, t) {
210
+ function xe(e, t) {
211
211
  return y(t) && typeof t.parameter == "string" ? !0 : Array.isArray(t) ? e !== "? between ?" || t.length === 2 : !1;
212
212
  }
213
- function xe(e, t) {
214
- let n = e.expression, r = [I(e, !1)];
215
- if (!D.has(n) && e.value !== void 0) {
216
- let t = O.has(n) && M(e.value);
217
- r.push(t ? I(e.value) : A(e.value));
213
+ function Se(e, t) {
214
+ let n = e.expression, r = [F(e, !1)];
215
+ if (!E.has(n) && e.value !== void 0) {
216
+ let t = D.has(n) && j(e.value);
217
+ r.push(t ? F(e.value) : k(e.value));
218
218
  }
219
219
  let i = {};
220
- typeof e.id == "string" && (i.id = e.id), "ignoredItemIds" in e && (i.ignore = A(e.ignoredItemIds)), t !== void 0 && (i.type = t);
220
+ typeof e.id == "string" && (i.id = e.id), "ignoredItemIds" in e && (i.ignore = k(e.ignoredItemIds)), t !== void 0 && (i.type = t);
221
221
  let a = {
222
222
  expression: n,
223
223
  parameters: r
224
224
  };
225
225
  return Object.keys(i).length > 0 && (a.properties = i), a;
226
226
  }
227
- function Se(e) {
227
+ function Ce(e) {
228
228
  let { expression: t } = e;
229
229
  if (typeof t != "string" || t.length === 0) return null;
230
230
  let n = Array.isArray(e.parameters) ? e.parameters : [];
231
231
  if (!y(n[0])) throw new _(`Cannot emit a clean filter reference for "${t}".`);
232
232
  let r = {
233
- ...L(n[0]),
233
+ ...I(n[0]),
234
234
  expression: t
235
235
  };
236
- if (!D.has(t)) {
236
+ if (!E.has(t)) {
237
237
  let e = n[1];
238
238
  if (e === void 0) throw new _(`Filter "${t}" is missing its value operand.`);
239
- if (r.value = M(e) && O.has(t) ? L(e) : ye(A(e)), pe.has(t) && !be(t, r.value)) throw new _(`Cannot emit an invalid clean filter value for "${t}".`);
239
+ if (r.value = j(e) && D.has(t) ? I(e) : be(k(e)), me.has(t) && !xe(t, r.value)) throw new _(`Cannot emit an invalid clean filter value for "${t}".`);
240
240
  }
241
241
  let { properties: i } = e;
242
- return i?.id !== void 0 && (r.id = i.id), i !== void 0 && "ignore" in i && (r.ignoredItemIds = A(i.ignore)), r;
242
+ return i?.id !== void 0 && (r.id = i.id), i !== void 0 && "ignore" in i && (r.ignoredItemIds = k(i.ignore)), r;
243
243
  }
244
- function R(e) {
244
+ function L(e) {
245
245
  return b(e);
246
246
  }
247
- function z(e) {
247
+ function R(e) {
248
248
  return Array.isArray(e.filters) ? e.filters : [];
249
249
  }
250
- function B(e, t) {
250
+ function z(e, t) {
251
251
  return e.properties?.type === "having" || e.properties?.type === "where" ? e.properties.type : t ?? "where";
252
252
  }
253
- function V(e, t, n = 1, r = /* @__PURE__ */ new Set()) {
254
- E(n);
253
+ function B(e, t, n = 1, r = /* @__PURE__ */ new Set()) {
254
+ T(n);
255
255
  let i = e.clause ?? t;
256
- for (let t of z(e)) R(t) ? V(t, i, n + 1, r) : typeof t.expression == "string" && t.expression.length > 0 && r.add(B(t, i));
256
+ for (let t of R(e)) L(t) ? B(t, i, n + 1, r) : typeof t.expression == "string" && t.expression.length > 0 && r.add(z(t, i));
257
257
  return r;
258
258
  }
259
- function H(e, t, n = 1) {
260
- E(n);
259
+ function V(e, t, n = 1) {
260
+ T(n);
261
261
  let r = e.clause ?? t;
262
- if (e.condition === "or" && V(e, r, n).size > 1) throw new _("An \"or\" group mixes \"where\" and \"having\" filters, which clean output cannot represent.");
263
- for (let t of z(e)) R(t) && H(t, r, n + 1);
262
+ if (e.condition === "or" && B(e, r, n).size > 1) throw new _("An \"or\" group mixes \"where\" and \"having\" filters, which clean output cannot represent.");
263
+ for (let t of R(e)) L(t) && V(t, r, n + 1);
264
264
  }
265
- function U(e, t, n, r = 1) {
266
- E(r);
265
+ function H(e, t, n, r = 1) {
266
+ T(r);
267
267
  let i = e.clause ?? n, a = [];
268
- for (let n of z(e)) {
269
- if (R(n)) {
270
- let e = U(n, t, i, r + 1);
268
+ for (let n of R(e)) {
269
+ if (L(n)) {
270
+ let e = H(n, t, i, r + 1);
271
271
  e.filters.length > 0 && a.push(e);
272
272
  continue;
273
273
  }
274
- if (B(n, i) !== t) continue;
275
- let e = Se(n);
274
+ if (z(n, i) !== t) continue;
275
+ let e = Ce(n);
276
276
  e && a.push(e);
277
277
  }
278
278
  let o = {
279
279
  condition: e.condition === "or" ? "or" : "and",
280
280
  filters: a
281
281
  };
282
- return e.id !== void 0 && V(e, i, r).size <= 1 && (o.id = e.id), o;
282
+ return e.id !== void 0 && B(e, i, r).size <= 1 && (o.id = e.id), o;
283
283
  }
284
- function Ce(e) {
284
+ function we(e) {
285
285
  let t = e.clause;
286
- H(e, t);
287
- let n = V(e, t);
286
+ V(e, t);
287
+ let n = B(e, t);
288
288
  return n.size === 0 && n.add(t ?? "where"), ["where", "having"].filter((e) => n.has(e)).map((n) => ({
289
- ...U(e, n, t),
289
+ ...H(e, n, t),
290
290
  clause: n
291
291
  })).filter((e) => e.filters.length > 0);
292
292
  }
293
293
  // src/components/filters/transformations/transform-filters.ts
294
- var we = [
294
+ var Te = [
295
295
  "origin",
296
296
  "datasetId",
297
297
  "vizId",
@@ -299,85 +299,96 @@ var we = [
299
299
  "isDrilldown",
300
300
  "type"
301
301
  ];
302
- function W(e) {
302
+ function U(e) {
303
303
  return typeof e == "string" && e.toLowerCase() === "or" ? "or" : "and";
304
304
  }
305
- function Te(e) {
305
+ function Ee(e) {
306
306
  return b(e);
307
307
  }
308
- function Ee(e) {
308
+ function De(e) {
309
309
  if (!Array.isArray(e) || e.length === 0) return [];
310
310
  let t = y(e[0]) ? e[0] : void 0, n = e.length > 1 ? e[1] : void 0;
311
311
  return e.length > 1 ? [t, n] : [t];
312
312
  }
313
- function De(e) {
313
+ function Oe(e) {
314
314
  if (typeof e.expression != "string" || e.expression.length === 0) return null;
315
315
  let t = {
316
316
  expression: e.expression,
317
- parameters: Ee(e.parameters)
317
+ parameters: De(e.parameters)
318
318
  };
319
319
  return e.properties !== void 0 && Object.keys(e.properties).length > 0 && (t.properties = structuredClone(e.properties)), t;
320
320
  }
321
- function G(e, t) {
321
+ function W(e, t) {
322
322
  let n = e, r = t;
323
- for (let e of we) n[e] !== void 0 && (r[e] = n[e]);
323
+ for (let e of Te) n[e] !== void 0 && (r[e] = n[e]);
324
324
  }
325
- function K(e) {
325
+ function G(e) {
326
326
  if (!e || !e.filters) return {
327
327
  condition: "and",
328
328
  filters: [],
329
329
  subGroups: []
330
330
  };
331
331
  let t = [], n = [];
332
- for (let r of e.filters) if (Te(r)) n.push(K(r));
332
+ for (let r of e.filters) if (Ee(r)) n.push(G(r));
333
333
  else {
334
- let e = De(r);
334
+ let e = Oe(r);
335
335
  e && t.push(e);
336
336
  }
337
337
  let r = {
338
- condition: W(e.condition),
338
+ condition: U(e.condition),
339
339
  filters: t,
340
340
  subGroups: n
341
341
  };
342
- return e.id !== void 0 && (r.id = e.id), G(e, r), r;
342
+ return e.id !== void 0 && (r.id = e.id), W(e, r), r;
343
+ }
344
+ function K(e, t) {
345
+ return e ? t?.format === "clean" ? we(e) : [G(e)] : [];
343
346
  }
344
- function q(e, t) {
345
- return e ? t?.format === "clean" ? Ce(e) : [K(e)] : [];
347
+ var q = [
348
+ ["dataset_id", "datasetId"],
349
+ ["column_id", "columnId"],
350
+ ["formula_id", "formulaId"]
351
+ ];
352
+ function ke(e) {
353
+ if (!j(e) || !q.some(([t]) => t in e)) return e;
354
+ let t = { ...e };
355
+ for (let [e, n] of q) e in t && (t[n] ??= t[e], delete t[e]);
356
+ return t;
346
357
  }
347
- function Oe(e, t) {
358
+ function Ae(e, t) {
348
359
  let n = {
349
360
  expression: typeof e.expression == "string" ? e.expression : void 0,
350
- parameters: Array.isArray(e.parameters) ? [...e.parameters] : []
361
+ parameters: Array.isArray(e.parameters) ? e.parameters.map(ke) : []
351
362
  }, r = y(e.properties) ? structuredClone(e.properties) : {};
352
363
  return t !== void 0 && r.type === void 0 && (r.type = t), Object.keys(r).length > 0 && (n.properties = r), n;
353
364
  }
354
- function ke(e, t, n) {
365
+ function je(e, t, n) {
355
366
  if (b(e)) return J(e, t, n);
356
367
  if (!y(e)) return;
357
368
  let r = e.expression;
358
- if (ue(e), C(e)) return xe(e, t);
359
- if (S(e) && de(e), w(e)) return Oe(e, t);
369
+ if (de(e), ue(e)) return Se(e, t);
370
+ if (S(e) && fe(e), C(e)) return Ae(e, t);
360
371
  throw new _(`Filter leaf "${String(r)}" matches neither a complete clean nor a complete canonical encoding.`);
361
372
  }
362
373
  function J(e, t, n) {
363
- E(n);
364
- let r = T(e.clause) ? e.clause : void 0, i = r ?? t, a = [];
374
+ T(n);
375
+ let r = w(e.clause) ? e.clause : void 0, i = r ?? t, a = [];
365
376
  for (let t of Array.isArray(e.filters) ? e.filters : []) {
366
- let e = ke(t, i, n + 1);
377
+ let e = je(t, i, n + 1);
367
378
  e !== void 0 && a.push(e);
368
379
  }
369
380
  for (let t of Array.isArray(e.subGroups) ? e.subGroups : []) b(t) && a.push(J(t, i, n + 1));
370
381
  let o = {
371
- condition: W(e.condition),
382
+ condition: U(e.condition),
372
383
  filters: a
373
384
  };
374
- return typeof e.id == "string" && (o.id = e.id), r !== void 0 && (o.clause = r), G(e, o), o;
385
+ return typeof e.id == "string" && (o.id = e.id), r !== void 0 && (o.clause = r), W(e, o), o;
375
386
  }
376
387
  function Y(e) {
377
388
  return !e || e.length === 0 ? [] : e.filter((e) => b(e)).map((e) => J(e, void 0, 1));
378
389
  }
379
390
  // src/components/filters/filters.module.scss?inline
380
- var Ae = ":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-start:0;margin-inline-end: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-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);position:absolute}.outline-children:not(.outline-children--single):not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{border-top-left-radius:var(--luzmo-border-radius);border-bottom-left-radius:var(--luzmo-border-radius);left:0}.outline-children:not(.outline-children--single):not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{border-top-left-radius:var(--luzmo-border-radius);border-bottom-left-radius:var(--luzmo-border-radius);left:0}.outline-children:not(.outline-children--single):-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{border-top-right-radius:var(--luzmo-border-radius);border-bottom-right-radius:var(--luzmo-border-radius);right:0}.outline-children:not(.outline-children--single):is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{border-top-right-radius:var(--luzmo-border-radius);border-bottom-right-radius:var(--luzmo-border-radius);right:0}.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)}}";
391
+ var Me = ":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-start:0;margin-inline-end: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-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);position:absolute}.outline-children:not(.outline-children--single):not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{border-top-left-radius:var(--luzmo-border-radius);border-bottom-left-radius:var(--luzmo-border-radius);left:0}.outline-children:not(.outline-children--single):not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))):before{border-top-left-radius:var(--luzmo-border-radius);border-bottom-left-radius:var(--luzmo-border-radius);left:0}.outline-children:not(.outline-children--single):-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{border-top-right-radius:var(--luzmo-border-radius);border-bottom-right-radius:var(--luzmo-border-radius);right:0}.outline-children:not(.outline-children--single):is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)):before{border-top-right-radius:var(--luzmo-border-radius);border-bottom-right-radius:var(--luzmo-border-radius);right:0}.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)}}";
381
392
  // src/components/filters/filters.ts
382
393
  function X(e) {
383
394
  if (e instanceof _) return e;
@@ -395,7 +406,7 @@ var $ = class extends t(oe(ae, { validSizes: Object.values(ie) })) {
395
406
  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();
396
407
  }
397
408
  static get styles() {
398
- return [ne(Ae)];
409
+ return [ne(Me)];
399
410
  }
400
411
  _filterKey(e) {
401
412
  let t = this._filterKeys.get(e);
@@ -536,14 +547,14 @@ var $ = class extends t(oe(ae, { validSizes: Object.values(ie) })) {
536
547
  };
537
548
  if (t === "clean") try {
538
549
  return {
539
- filters: e.flatMap((e) => q(e, { format: "clean" })),
550
+ filters: e.flatMap((e) => K(e, { format: "clean" })),
540
551
  format: "clean"
541
552
  };
542
553
  } catch (e) {
543
554
  console.warn(`[${this.localName}] Cannot emit clean filters, falling back to canonical output:`, X(e));
544
555
  }
545
556
  return {
546
- filters: e.flatMap((e) => q(e)),
557
+ filters: e.flatMap((e) => K(e)),
547
558
  format: "canonical"
548
559
  };
549
560
  }
@@ -924,4 +935,4 @@ e([f({
924
935
  type: Number,
925
936
  reflect: !0
926
937
  })], $.prototype, "debounce", void 0), e([p()], $.prototype, "_internalFilterGroup", void 0), e([p()], $.prototype, "_datasets", void 0), e([p()], $.prototype, "_datasetsLoading", void 0), e([p()], $.prototype, "_hierarchyLabels", void 0), e([p()], $.prototype, "_hierarchyLabelsLoading", void 0), $ = e([re()], $), customElements.get("luzmo-filters") || customElements.define("luzmo-filters", $);
927
- export { _ as a, q as i, Y as n, se as o, W as r, fe as s, $ as t };
938
+ export { _ as a, K as i, Y as n, se as o, U as r, pe as s, $ as t };