@luzmo/analytics-components-kit 1.0.1-alpha.50 → 1.0.1-alpha.52

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 (43) hide show
  1. package/components/display-settings/display-settings.d.ts +1 -0
  2. package/components/display-settings/index.cjs +1 -1
  3. package/components/display-settings/index.js +1 -1
  4. package/components/display-settings-numeric/helpers/constants.d.ts +1 -0
  5. package/components/display-settings-numeric/index.cjs +16 -10
  6. package/components/display-settings-numeric/index.js +52 -34
  7. package/components/draggable-data-item/draggable-data-item.d.ts +0 -1
  8. package/components/draggable-data-item/index.cjs +5 -8
  9. package/components/draggable-data-item/index.js +32 -38
  10. package/components/draggable-data-item-level/draggable-data-item-level.d.ts +1 -1
  11. package/components/draggable-data-item-level/index.cjs +6 -6
  12. package/components/draggable-data-item-level/index.js +106 -113
  13. package/components/droppable-slot/droppable-slot.d.ts +6 -1
  14. package/components/droppable-slot/index.cjs +14 -12
  15. package/components/droppable-slot/index.js +186 -160
  16. package/components/filter-item/index.cjs +1 -1
  17. package/components/filter-item/index.js +1 -1
  18. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  19. package/components/filter-value-picker-hierarchy/index.js +1 -1
  20. package/components/filter-value-picker-numeric/index.cjs +1 -1
  21. package/components/filter-value-picker-numeric/index.js +1 -1
  22. package/components/{index-DAoFunRy.cjs → index-3X8Iuo7y.cjs} +11 -11
  23. package/components/{index-Delpl7qa.js → index-Cyo2hwg7.js} +1 -1
  24. package/components/{index-eBsINoH9.cjs → index-DpHum3lw.cjs} +1 -1
  25. package/components/{index-Ct7UvUif.js → index-fmbD10nN.js} +123 -109
  26. package/components/index.cjs +1 -1
  27. package/components/index.js +1 -1
  28. package/components/slot-contents-picker/index.cjs +1 -1
  29. package/components/slot-contents-picker/index.js +1 -1
  30. package/components/slot-menu/index.cjs +11 -11
  31. package/components/slot-menu/index.js +186 -171
  32. package/components/slot-menu/slot-menu.d.ts +5 -1
  33. package/components/slot-menu-list/index.cjs +1 -1
  34. package/components/slot-menu-list/index.js +19 -16
  35. package/components/slot-menu-list/slot-menu-list.d.ts +1 -0
  36. package/custom-elements.json +29 -43
  37. package/item-definitions/box-plot/box-plot-options.config.d.ts +1 -1
  38. package/item-definitions/choropleth-map/choropleth-map-options.config.d.ts +1 -1
  39. package/item-definitions/hexbin-map/hexbin-map-options.config.d.ts +1 -1
  40. package/item-definitions/route-map/route-map-options.config.d.ts +1 -1
  41. package/item-definitions/spike-map/spike-map-options.config.d.ts +1 -1
  42. package/package.json +1 -1
  43. package/utils/data-broker/index.d.ts +1 -1
@@ -17,19 +17,20 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- import { a as w } from "../get-css-variable-YlLiVgo8.js";
21
- import { a as k, r as z, i as S, s as $ } from "../index-Ct7UvUif.js";
22
- import { l as E } from "../localized-decorator-Bl5gcI6n.js";
23
- import { m as b, g as L, t as D, s as A } from "../set-locale-GI34z_M7.js";
20
+ import { a as k } from "../get-css-variable-YlLiVgo8.js";
21
+ import { a as w, r as z, i as S, s as D } from "../index-fmbD10nN.js";
22
+ import { l as $ } from "../localized-decorator-Bl5gcI6n.js";
23
+ import { m as g, g as E, t as L, s as O } from "../set-locale-GI34z_M7.js";
24
24
  import { h as T } from "../task-Bh_X-xIU.js";
25
- import { a8 as y, ab as O, a7 as M } from "../luzmo-icons-CVeTZ59u.js";
25
+ import { a8 as v, ab as A, a7 as I } from "../luzmo-icons-CVeTZ59u.js";
26
26
  import "../index-BmshD32H.js";
27
- import { l as P } from "../localize-BX7q0S0M.js";
28
- import { x as h, r as I, n as u } from "../property-DCzt3DR1.js";
27
+ import { d as y } from "../index-Cyo2hwg7.js";
28
+ import { l as M } from "../localize-BX7q0S0M.js";
29
+ import { x as m, r as P, n as u } from "../property-DCzt3DR1.js";
29
30
  import { r as U } from "../state-nDsQPund.js";
30
- import { e as N } from "../query-Ddbd72Um.js";
31
- import { L as j } from "../focusable-BbymtxWI.js";
32
- import { S as B } from "../sized-mixin-BGzkX2g1.js";
31
+ import { e as x } from "../query-Ddbd72Um.js";
32
+ import { L as B } from "../focusable-BbymtxWI.js";
33
+ import { S as F } from "../sized-mixin-BGzkX2g1.js";
33
34
  import "../slot-menu/index.js";
34
35
  const _ = () => {
35
36
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
@@ -43,7 +44,7 @@ _();
43
44
  * Copyright 2021 Google LLC
44
45
  * SPDX-License-Identifier: BSD-3-Clause
45
46
  */
46
- class G {
47
+ class N {
47
48
  get value() {
48
49
  return this.o;
49
50
  }
@@ -76,33 +77,33 @@ class G {
76
77
  * Copyright 2021 Google LLC
77
78
  * SPDX-License-Identifier: BSD-3-Clause
78
79
  */
79
- class R extends Event {
80
+ class j extends Event {
80
81
  constructor(o, e) {
81
82
  super("context-provider", { bubbles: !0, composed: !0 }), this.context = o, this.contextTarget = e;
82
83
  }
83
84
  }
84
- class q extends G {
85
+ class G extends N {
85
86
  constructor(o, e, l) {
86
- var r, i;
87
- super(e.context !== void 0 ? e.initialValue : l), this.onContextRequest = (s) => {
88
- if (s.context !== this.context) return;
89
- const a = s.contextTarget ?? s.composedPath()[0];
90
- a !== this.host && (s.stopPropagation(), this.addCallback(s.callback, a, s.subscribe));
91
- }, this.onProviderRequest = (s) => {
92
- if (s.context !== this.context || (s.contextTarget ?? s.composedPath()[0]) === this.host) return;
93
- const a = /* @__PURE__ */ new Set();
94
- for (const [p, { consumerHost: d }] of this.subscriptions) a.has(p) || (a.add(p), d.dispatchEvent(new k(this.context, d, p, !0)));
95
- s.stopPropagation();
96
- }, this.host = o, e.context !== void 0 ? this.context = e.context : this.context = e, this.attachListeners(), (i = (r = this.host).addController) == null || i.call(r, this);
87
+ var r, a;
88
+ super(e.context !== void 0 ? e.initialValue : l), this.onContextRequest = (i) => {
89
+ if (i.context !== this.context) return;
90
+ const s = i.contextTarget ?? i.composedPath()[0];
91
+ s !== this.host && (i.stopPropagation(), this.addCallback(i.callback, s, i.subscribe));
92
+ }, this.onProviderRequest = (i) => {
93
+ if (i.context !== this.context || (i.contextTarget ?? i.composedPath()[0]) === this.host) return;
94
+ const s = /* @__PURE__ */ new Set();
95
+ for (const [n, { consumerHost: p }] of this.subscriptions) s.has(n) || (s.add(n), p.dispatchEvent(new w(this.context, p, n, !0)));
96
+ i.stopPropagation();
97
+ }, this.host = o, e.context !== void 0 ? this.context = e.context : this.context = e, this.attachListeners(), (a = (r = this.host).addController) == null || a.call(r, this);
97
98
  }
98
99
  attachListeners() {
99
100
  this.host.addEventListener("context-request", this.onContextRequest), this.host.addEventListener("context-provider", this.onProviderRequest);
100
101
  }
101
102
  hostConnected() {
102
- this.host.dispatchEvent(new R(this.context, this.host));
103
+ this.host.dispatchEvent(new j(this.context, this.host));
103
104
  }
104
105
  }
105
- class F {
106
+ class R {
106
107
  constructor() {
107
108
  this.slotContents = z([]), this.slotsContents = z([]), this.periodOverPeriodEnabled = z(!1), this._popEnabledChartTypes = [
108
109
  "area-chart",
@@ -121,16 +122,16 @@ class F {
121
122
  ])).has(o);
122
123
  }
123
124
  setPeriodOverPeriodEnabled(o) {
124
- var a, p;
125
- const e = this.slotsContents.get() ?? [], l = ((a = e.find(
126
- (d) => ["y-axis", "x-axis"].includes(d.name)
127
- )) == null ? void 0 : a.content) ?? [], r = (l == null ? void 0 : l[0]) ?? null, i = ((p = e.find((d) => d.name === "measure")) == null ? void 0 : p.content) ?? [], s = r && this._popEnabledChartTypes.includes(o) && r.type === "datetime" && !this.isArrayColumnType(r.type) && !r.datetimeDisplayMode && r.level !== 4 && i.length > 0;
128
- return this.periodOverPeriodEnabled.set(s), s;
125
+ var s, n;
126
+ const e = this.slotsContents.get() ?? [], l = ((s = e.find(
127
+ (p) => ["y-axis", "x-axis"].includes(p.name)
128
+ )) == null ? void 0 : s.content) ?? [], r = (l == null ? void 0 : l[0]) ?? null, a = ((n = e.find((p) => p.name === "measure")) == null ? void 0 : n.content) ?? [], i = r && this._popEnabledChartTypes.includes(o) && r.type === "datetime" && !this.isArrayColumnType(r.type) && !r.datetimeDisplayMode && r.level !== 4 && a.length > 0;
129
+ return this.periodOverPeriodEnabled.set(i), i;
129
130
  }
130
131
  /** Replace the full list (e.g. after dropping or re-ordering). */
131
132
  setContents(o, e) {
132
133
  if (this.slotContents.set(o), this.activeIndex.get() >= o.length && this.activeIndex.set(o.length > 0 ? o.length - 1 : 0), e) {
133
- const l = structuredClone(this.slotsContents.get()) ?? [], r = l.find((i) => i.name === e);
134
+ const l = structuredClone(this.slotsContents.get()) ?? [], r = l.find((a) => a.name === e);
134
135
  r && (r.content = o), this.setFullContents(l);
135
136
  }
136
137
  }
@@ -154,20 +155,20 @@ class F {
154
155
  this.slotContents.set(e), this.activeIndex.get() >= e.length && this.activeIndex.set(e.length > 0 ? e.length - 1 : 0);
155
156
  }
156
157
  }
157
- const V = ":host{font-family:var(--luzmo-droppable-slot-font-family, var(--luzmo-font-family));--slot-height: var( --luzmo-droppable-slot-height, var(--droppable-slot-height) )}.droppable-slot-wrapper{position:relative;width:var(--slot-height);min-width:var(--slot-height);height:auto;overflow:visible}.droppable-slot[filled]{cursor:pointer;border:var(--luzmo-droppable-slot-filled-border-width, var(--droppable-slot-filled-border-width)) var(--luzmo-droppable-slot-filled-border-style, var(--droppable-slot-filled-border-style)) var(--luzmo-droppable-slot-filled-border-color, var(--droppable-slot-filled-border-color));background-color:var(--luzmo-droppable-slot-filled-background-color, var(--droppable-slot-filled-background-color));color:var(--luzmo-droppable-slot-filled-color, var(--droppable-slot-filled-color))}.droppable-slot{background-color:var(--luzmo-droppable-slot-background-color, var(--droppable-slot-background-color));color:var(--luzmo-droppable-slot-font-color, var(--droppable-slot-font-color));border:var(--luzmo-droppable-slot-border-width, var(--droppable-slot-border-width)) var(--luzmo-droppable-slot-border-style, var(--droppable-slot-border-style)) var(--luzmo-droppable-slot-border-color, var(--droppable-slot-border-color));display:flex;justify-content:space-between;align-items:center;padding-left:var(--luzmo-droppable-slot-edge-to-label, var(--droppable-slot-edge-to-label));gap:var(--luzmo-spacing-5);border-radius:var(--luzmo-border-radius);height:var(--luzmo-droppable-slot-height, var(--droppable-slot-height));cursor:move}:host([accept-drag]) .droppable-slot{background-color:var(--luzmo-droppable-slot-accept-drag-background-color, var(--droppable-slot-accept-drag-background-color));color:var(--luzmo-droppable-slot-accept-drag-font-color, var(--droppable-slot-accept-drag-font-color));border-color:var(--luzmo-droppable-slot-accept-drag-border-color, var(--droppable-slot-accept-drag-border-color));animation:dropelementpulse 1s infinite ease-in-out}:host([accept-drag]) .controls{background-color:var(--luzmo-droppable-slot-accept-drag-controls-background-color, var(--droppable-slot-accept-drag-controls-background-color));color:var(--luzmo-droppable-slot-accept-drag-controls-color, var(--droppable-slot-accept-drag-controls-color))}@keyframes dropelementpulse{0%{box-shadow:0 0 0 0 var(--luzmo-droppable-slot-pulse-color, var(--droppable-slot-pulse-color)),0 0 0 0 var(--luzmo-droppable-slot-pulse-color, var(--droppable-slot-pulse-color))}to{box-shadow:0 0 0 1rem transparent,0 0 0 1rem transparent}}:host([disabled]) .droppable-slot{background-color:var(--luzmo-droppable-slot-background-color-disabled, var(--droppable-slot-background-color-disabled));color:var(--luzmo-droppable-slot-color-disabled, var(--droppable-slot-color-disabled));cursor:not-allowed}:host([disabled]) .drag-handle-icon{opacity:.25;font-size:12px}.drag-handle-icon{opacity:.5;font-size:12px}.droppable-slot-label{font-size:var(--luzmo-droppable-slot-label-font-size, var(--droppable-slot-label-font-size));flex-grow:1;margin-right:var(--luzmo-droppable-slot-text-to-controls, var(--droppable-slot-text-to-controls));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controls{height:100%;display:flex;align-items:center;gap:var(--luzmo-droppable-slot-controls-gap, var(--droppable-slot-controls-gap));background-color:var(--luzmo-droppable-slot-controls-background-color, var(--droppable-slot-controls-background-color));color:var(--luzmo-droppable-slot-controls-color, var(--droppable-slot-controls-color));margin-right:var(--luzmo-droppable-slot-controls-to-edge, var(--droppable-slot-controls-to-edge));padding:0 var(--luzmo-droppable-slot-controls-horizontal-padding, var(--droppable-slot-controls-horizontal-padding))}.controls div{cursor:pointer;height:100%;display:flex;align-items:center;padding:0 var(--luzmo-droppable-slot-controls-control-horizontal-padding, var(--droppable-slot-controls-control-horizontal-padding))}.droppable-slot.rotate{position:absolute;top:0;left:50%;transform-origin:center;max-width:15rem;transform:translate(-50%) rotate(-90deg)}luzmo-slot-menu[placement=bottom],luzmo-slot-menu[placement=top],luzmo-slot-menu[placement=bottom-start],luzmo-slot-menu[placement=top-start],luzmo-slot-menu[placement=bottom-end],luzmo-slot-menu[placement=top-end]{margin:var(--luzmo-droppable-slot-overlay-vertical-gap, var(--droppable-slot-overlay-vertical-gap)) 0}luzmo-slot-menu[placement=left],luzmo-slot-menu[placement=right],luzmo-slot-menu[placement=left-start],luzmo-slot-menu[placement=right-start],luzmo-slot-menu[placement=left-end],luzmo-slot-menu[placement=right-end]{margin:0 var(--luzmo-droppable-slot-overlay-horizontal-gap, var(--droppable-slot-overlay-horizontal-gap))}:host{--droppable-slot-border-width: var(--luzmo-border-width);--droppable-slot-border-style: dashed;--droppable-slot-border-color: var(--luzmo-border-color);--droppable-slot-background-color: transparent;--droppable-slot-accept-drag-background-color: var(--luzmo-positive-color);--droppable-slot-accept-drag-color: white;--droppable-slot-accept-drag-border-color: var(--luzmo-positive-color-down);--droppable-slot-accept-drag-font-color: white;--droppable-slot-font-color: var(--luzmo-font-color);--droppable-slot-controls-background-color: var(--luzmo-primary-down);--droppable-slot-controls-color: var(--luzmo-primary-inverse-color);--droppable-slot-accept-drag-controls-background-color: var( --luzmo-positive-color-down );--droppable-slot-accept-drag-controls-color: white;--droppable-slot-text-to-controls: var(--luzmo-spacing-3);--droppable-slot-controls-to-edge: 0;--droppable-slot-controls-gap: var(--luzmo-spacing-2);--droppable-slot-controls-horizontal-padding: var(--luzmo-spacing-2);--droppable-slot-controls-control-horizontal-padding: var(--luzmo-spacing-3);--droppable-slot-filled-background-color: var(--luzmo-primary);--droppable-slot-filled-color: var(--luzmo-primary-inverse-color);--droppable-slot-filled-border-width: var(--luzmo-border-width);--droppable-slot-filled-border-style: solid;--droppable-slot-filled-border-color: var(--luzmo-primary-down);--droppable-slot-height: var(--luzmo-component-height);--droppable-slot-label-font-size: var(--luzmo-font-size);--droppable-slot-icon-type-font-size: var(--luzmo-font-size);--droppable-slot-edge-to-label: var(--luzmo-spacing-5);--droppable-slot-color-disabled: var(--luzmo-color-disabled);--droppable-slot-background-color-disabled: var( --luzmo-background-color-disabled );--droppable-slot-pulse-color: var(--luzmo-secondary-outline)}:host{--droppable-slot-height: var(--luzmo-component-height);--droppable-slot-label-font-size: var(--luzmo-font-size);--droppable-slot-icon-type-font-size: var(--luzmo-font-size);--droppable-slot-horizontal-padding: var(--luzmo-spacing-4);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-4);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-4)}:host([size=s]){--droppable-slot-height: var(--luzmo-component-height-s);--droppable-slot-label-font-size: var(--luzmo-font-size-s);--droppable-slot-icon-type-font-size: var(--luzmo-font-size-s);--droppable-slot-horizontal-padding: var(--luzmo-spacing-4);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-4);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-4)}:host([size=l]){--droppable-slot-height: var(--luzmo-component-height-l);--droppable-slot-label-font-size: var(--luzmo-font-size-l);--droppable-slot-icon-type-font-size: var(--luzmo-font-size-l);--droppable-slot-horizontal-padding: var(--luzmo-spacing-5);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-5);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-5)}:host([size=xl]){--droppable-slot-height: var(--luzmo-component-height-xl);--droppable-slot-label-font-size: var(--luzmo-font-size-xl);--droppable-slot-icon-type-font-size: var(--luzmo-font-size-xl);--droppable-slot-horizontal-padding: var(--luzmo-spacing-5);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-5);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-5)}:host{box-sizing:border-box}", C = {
158
- Category: () => b("Category", { desc: "Category label" }),
159
- Measure: () => b("Measure", { desc: "Measure label" }),
160
- Legend: () => b("Legend", { desc: "Legend label" }),
161
- "Y-Axis": () => b("Y-Axis", { desc: "Y-Axis label" }),
162
- "X-Axis": () => b("X-Axis", { desc: "X-Axis label" }),
163
- "Group by": () => b("Group by", { desc: "Group by label" })
158
+ const q = ":host{font-family:var(--luzmo-droppable-slot-font-family, var(--luzmo-font-family));--slot-height: var( --luzmo-droppable-slot-height, var(--droppable-slot-height) )}.droppable-slot-wrapper{position:relative;width:var(--slot-height);min-width:var(--slot-height);height:auto;overflow:visible}.droppable-slot[filled]{border:var(--luzmo-droppable-slot-filled-border-width, var(--droppable-slot-filled-border-width)) var(--luzmo-droppable-slot-filled-border-style, var(--droppable-slot-filled-border-style)) var(--luzmo-droppable-slot-filled-border-color, var(--droppable-slot-filled-border-color));background-color:var(--luzmo-droppable-slot-filled-background-color, var(--droppable-slot-filled-background-color));color:var(--luzmo-droppable-slot-filled-color, var(--droppable-slot-filled-color));padding-right:0;gap:var(--luzmo-spacing-5)}.droppable-slot[filled]>*:not(luzmo-overlay){cursor:pointer}.droppable-slot{background-color:var(--luzmo-droppable-slot-background-color, var(--droppable-slot-background-color));color:var(--luzmo-droppable-slot-font-color, var(--droppable-slot-font-color));border:var(--luzmo-droppable-slot-border-width, var(--droppable-slot-border-width)) var(--luzmo-droppable-slot-border-style, var(--droppable-slot-border-style)) var(--luzmo-droppable-slot-border-color, var(--droppable-slot-border-color));display:flex;justify-content:space-between;align-items:center;padding-left:var(--luzmo-droppable-slot-edge-to-label, var(--droppable-slot-edge-to-label));padding-right:var(--luzmo-droppable-slot-label-to-controls, var(--droppable-slot-label-to-controls));border-radius:var(--luzmo-droppable-slot-border-radius, var(--droppable-slot-border-radius));height:var(--luzmo-droppable-slot-height, var(--droppable-slot-height))}:host([accept-drag]) .droppable-slot{background-color:var(--luzmo-droppable-slot-accept-drag-background-color, var(--droppable-slot-accept-drag-background-color));color:var(--luzmo-droppable-slot-accept-drag-font-color, var(--droppable-slot-accept-drag-font-color));border-color:var(--luzmo-droppable-slot-accept-drag-border-color, var(--droppable-slot-accept-drag-border-color));animation:dropelementpulse 1s infinite ease-in-out}:host([accept-drag]) .controls{background-color:var(--luzmo-droppable-slot-accept-drag-controls-background-color, var(--droppable-slot-accept-drag-controls-background-color));color:var(--luzmo-droppable-slot-accept-drag-controls-color, var(--droppable-slot-accept-drag-controls-color))}@keyframes dropelementpulse{0%{box-shadow:0 0 0 0 var(--luzmo-droppable-slot-pulse-color, var(--droppable-slot-pulse-color)),0 0 0 0 var(--luzmo-droppable-slot-pulse-color, var(--droppable-slot-pulse-color))}to{box-shadow:0 0 0 1rem transparent,0 0 0 1rem transparent}}:host([disabled]) .droppable-slot{background-color:var(--luzmo-droppable-slot-background-color-disabled, var(--droppable-slot-background-color-disabled));color:var(--luzmo-droppable-slot-color-disabled, var(--droppable-slot-color-disabled));cursor:not-allowed}:host([disabled]) .drag-handle-icon{opacity:.25;font-size:12px}.drag-handle-icon{opacity:.5;font-size:12px}.droppable-slot-label{font-size:var(--luzmo-droppable-slot-label-font-size, var(--droppable-slot-label-font-size));flex-grow:1;margin-right:var(--luzmo-droppable-slot-text-to-controls, var(--droppable-slot-text-to-controls));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controls{height:100%;display:flex;align-items:center;gap:var(--luzmo-droppable-slot-controls-gap, var(--droppable-slot-controls-gap));background-color:var(--luzmo-droppable-slot-controls-background-color, var(--droppable-slot-controls-background-color));color:var(--luzmo-droppable-slot-controls-color, var(--droppable-slot-controls-color));margin-right:var(--luzmo-droppable-slot-controls-to-edge, var(--droppable-slot-controls-to-edge));padding:0 var(--luzmo-droppable-slot-controls-horizontal-padding, var(--droppable-slot-controls-horizontal-padding))}.controls div{cursor:pointer;height:100%;display:flex;align-items:center;padding:0 var(--luzmo-droppable-slot-controls-control-horizontal-padding, var(--droppable-slot-controls-control-horizontal-padding))}.droppable-slot.rotate{position:absolute;top:0;left:50%;transform-origin:center;max-width:15rem;transform:translate(-50%) rotate(-90deg)}luzmo-slot-menu[placement=bottom],luzmo-slot-menu[placement=top],luzmo-slot-menu[placement=bottom-start],luzmo-slot-menu[placement=top-start],luzmo-slot-menu[placement=bottom-end],luzmo-slot-menu[placement=top-end]{margin:var(--luzmo-droppable-slot-overlay-vertical-gap, var(--droppable-slot-overlay-vertical-gap)) 0}luzmo-slot-menu[placement=left],luzmo-slot-menu[placement=right],luzmo-slot-menu[placement=left-start],luzmo-slot-menu[placement=right-start],luzmo-slot-menu[placement=left-end],luzmo-slot-menu[placement=right-end]{margin:0 var(--luzmo-droppable-slot-overlay-horizontal-gap, var(--droppable-slot-overlay-horizontal-gap))}:host{--droppable-slot-border-width: var(--luzmo-border-width);--droppable-slot-border-style: dashed;--droppable-slot-border-color: var(--luzmo-border-color);--droppable-slot-background-color: transparent;--droppable-slot-accept-drag-background-color: var(--luzmo-positive-color);--droppable-slot-accept-drag-color: white;--droppable-slot-accept-drag-border-color: var(--luzmo-positive-color-down);--droppable-slot-accept-drag-font-color: white;--droppable-slot-font-color: var(--luzmo-font-color);--droppable-slot-controls-background-color: var(--luzmo-primary-down);--droppable-slot-controls-color: var(--luzmo-primary-inverse-color);--droppable-slot-accept-drag-controls-background-color: var( --luzmo-positive-color-down );--droppable-slot-accept-drag-controls-color: white;--droppable-slot-text-to-controls: var(--luzmo-spacing-3);--droppable-slot-controls-to-edge: 0;--droppable-slot-controls-gap: var(--luzmo-spacing-2);--droppable-slot-controls-horizontal-padding: var(--luzmo-spacing-2);--droppable-slot-controls-control-horizontal-padding: var(--luzmo-spacing-3);--droppable-slot-filled-background-color: var(--luzmo-primary);--droppable-slot-filled-color: var(--luzmo-primary-inverse-color);--droppable-slot-filled-border-width: var(--luzmo-border-width);--droppable-slot-filled-border-style: solid;--droppable-slot-filled-border-color: var(--luzmo-primary-down);--droppable-slot-height: var(--luzmo-component-height);--droppable-slot-label-font-size: var(--luzmo-font-size);--droppable-slot-icon-type-font-size: var(--luzmo-font-size);--droppable-slot-edge-to-label: var(--luzmo-spacing-5);--droppable-slot-label-to-controls: var(--luzmo-spacing-5);--droppable-slot-color-disabled: var(--luzmo-color-disabled);--droppable-slot-background-color-disabled: var( --luzmo-background-color-disabled );--droppable-slot-pulse-color: var(--luzmo-secondary-outline);--droppable-slot-border-radius: var(--luzmo-border-radius)}:host{--droppable-slot-height: var(--luzmo-component-height);--droppable-slot-label-font-size: var(--luzmo-font-size);--droppable-slot-icon-type-font-size: var(--luzmo-font-size);--droppable-slot-horizontal-padding: var(--luzmo-spacing-4);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-4);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-4)}:host([size=s]){--droppable-slot-height: var(--luzmo-component-height-s);--droppable-slot-label-font-size: var(--luzmo-font-size-s);--droppable-slot-icon-type-font-size: var(--luzmo-font-size-s);--droppable-slot-horizontal-padding: var(--luzmo-spacing-4);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-4);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-4)}:host([size=l]){--droppable-slot-height: var(--luzmo-component-height-l);--droppable-slot-label-font-size: var(--luzmo-font-size-l);--droppable-slot-icon-type-font-size: var(--luzmo-font-size-l);--droppable-slot-horizontal-padding: var(--luzmo-spacing-5);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-5);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-5)}:host([size=xl]){--droppable-slot-height: var(--luzmo-component-height-xl);--droppable-slot-label-font-size: var(--luzmo-font-size-xl);--droppable-slot-icon-type-font-size: var(--luzmo-font-size-xl);--droppable-slot-horizontal-padding: var(--luzmo-spacing-5);--droppable-slot-overlay-horizontal-gap: var(--luzmo-spacing-5);--droppable-slot-overlay-vertical-gap: var(--luzmo-spacing-5)}:host{box-sizing:border-box}", C = {
159
+ Category: () => g("Category", { desc: "Category label" }),
160
+ Measure: () => g("Measure", { desc: "Measure label" }),
161
+ Legend: () => g("Legend", { desc: "Legend label" }),
162
+ "Y-Axis": () => g("Y-Axis", { desc: "Y-Axis label" }),
163
+ "X-Axis": () => g("X-Axis", { desc: "X-Axis label" }),
164
+ "Group by": () => g("Group by", { desc: "Group by label" })
164
165
  };
165
- var H = Object.defineProperty, Y = Object.getOwnPropertyDescriptor, c = (t, o, e, l) => {
166
- for (var r = l > 1 ? void 0 : l ? Y(o, e) : o, i = t.length - 1, s; i >= 0; i--)
167
- (s = t[i]) && (r = (l ? s(o, e, r) : s(r)) || r);
168
- return l && r && H(o, e, r), r;
166
+ var V = Object.defineProperty, H = Object.getOwnPropertyDescriptor, c = (t, o, e, l) => {
167
+ for (var r = l > 1 ? void 0 : l ? H(o, e) : o, a = t.length - 1, i; a >= 0; a--)
168
+ (i = t[a]) && (r = (l ? i(o, e, r) : i(r)) || r);
169
+ return l && r && V(o, e, r), r;
169
170
  };
170
- let n = class extends B(j, {
171
+ let d = class extends F(B, {
171
172
  validSizes: ["s", "m", "l", "xl"],
172
173
  noDefaultSize: !0
173
174
  }) {
@@ -229,7 +230,61 @@ let n = class extends B(j, {
229
230
  }
230
231
  },
231
232
  args: () => [this.itemType, this.language]
232
- }), this.slotConfiguration = {}, this.slotsContents = [], this.language = "en", this.apiUrl = "https://api.luzmo.com", this.authKey = "", this.authToken = "", this.menu = "default", this.placement = "bottom-end", this._slotContents = [], this._store = new F(), this._currentSlotContents = [], this.changedSlotContents = (t, o = []) => {
233
+ }), this.slotConfiguration = {}, this.slotsContents = [], this.language = "en", this.apiUrl = "https://api.luzmo.com", this.authKey = "", this.authToken = "", this.menu = "default", this.placement = "bottom-end", this._slotContents = [], this._store = new R(), this._currentSlotContents = [], this._lastFetchedDatasetId = null, this._linkedDatasetsIds = [], this._attachDroppable = () => {
234
+ this._cleanupDroppable || (this._cleanupDroppable = k({
235
+ element: this,
236
+ onDrop: async (t) => {
237
+ var a, i, s, n;
238
+ const o = { ...(a = t.source) == null ? void 0 : a.data }, e = {
239
+ ...(o == null ? void 0 : o.label) ?? { en: "Untitled" }
240
+ }, l = o == null ? void 0 : o.type;
241
+ if (l === "datetime" && !o.level && (o.level = o.lowestLevel ?? (o.subtype === "date" ? 5 : 9)), l === "datetime" && ((s = (i = t == null ? void 0 : t.source) == null ? void 0 : i.element) != null && s.hasAttribute("sublevel"))) {
242
+ const p = [
243
+ "(Yr)",
244
+ "(Qtr)",
245
+ "(Mth)",
246
+ "(Wk)",
247
+ "(Date)",
248
+ "(Hr)",
249
+ "(Min)",
250
+ "(Sec)",
251
+ "(Msec)"
252
+ ], h = (o == null ? void 0 : o.level) ?? 1, b = Object.keys(e);
253
+ for (const f of b)
254
+ e[f] = `${e[f]} ${p[h - 1]}`;
255
+ o.label = e;
256
+ }
257
+ const { securable_id: r } = o;
258
+ r && r !== this._lastFetchedDatasetId && (this._lastFetchedDatasetId = r, await y.fetchDatasetsRecursive([r]), this._linkedDatasetsIds = y.getLinkedDatasetsIds(r)), this._slotContents = (n = this.slotConfiguration) != null && n.canAcceptMultipleDataItems ? [...this._slotContents ?? [], o] : [o], this.removeAttribute("accept-drag"), this.changedSlotContents(this._slotContents, this._linkedDatasetsIds);
259
+ },
260
+ canDrop: ({ source: t }) => {
261
+ var e, l, r, a, i, s, n, p, h, b, f;
262
+ if (![
263
+ "LUZMO-DRAGGABLE-DATA-ITEM-LEVEL",
264
+ "LUZMO-DRAGGABLE-DATA-ITEM"
265
+ ].includes((e = t.element) == null ? void 0 : e.tagName) || !((l = this.slotConfiguration) != null && l.canAcceptFormula) && ((r = t == null ? void 0 : t.data) != null && r.formulaId))
266
+ return !1;
267
+ const o = ((i = (a = this.slotConfiguration) == null ? void 0 : a.acceptableDataItemTypes) == null ? void 0 : i.length) > 0 ? this.slotConfiguration.acceptableDataItemTypes : [
268
+ "datetime",
269
+ "hierarchy",
270
+ "numeric",
271
+ "array[datetime]",
272
+ "array[numeric]",
273
+ "array[hierarchy]"
274
+ ];
275
+ return (s = t == null ? void 0 : t.data) != null && s.type && !o.includes((n = t == null ? void 0 : t.data) == null ? void 0 : n.type) ? !1 : !((p = t == null ? void 0 : t.data) != null && p.subtype && ((b = (h = this.slotConfiguration) == null ? void 0 : h.acceptableColumnSubtypes) == null ? void 0 : b.length) > 0 && !this.slotConfiguration.acceptableColumnSubtypes.includes(
276
+ (f = t == null ? void 0 : t.data) == null ? void 0 : f.subtype
277
+ ));
278
+ },
279
+ getDropEffect: () => "move",
280
+ onDragEnter: () => {
281
+ this.setAttribute("accept-drag", ""), this.classList.add("pulse");
282
+ },
283
+ onDragLeave: () => {
284
+ this.removeAttribute("accept-drag"), this.classList.remove("pulse");
285
+ }
286
+ }));
287
+ }, this.changedSlotContents = (t, o = []) => {
233
288
  this._store.setContents(t, this.slotName), this.dispatchEvent(
234
289
  new CustomEvent("slot-contents-changed", {
235
290
  bubbles: !0,
@@ -241,19 +296,23 @@ let n = class extends B(j, {
241
296
  }
242
297
  })
243
298
  );
244
- }, new q(this, {
245
- context: $,
299
+ }, new G(this, {
300
+ context: D,
246
301
  initialValue: this._store
247
302
  });
248
303
  }
304
+ connectedCallback() {
305
+ super.connectedCallback(), this._attachDroppable();
306
+ }
249
307
  disconnectedCallback() {
250
- super.disconnectedCallback(), this._cleanupDroppable();
308
+ var t, o;
309
+ super.disconnectedCallback(), this._cleanupDroppable && (this._cleanupDroppable(), this._cleanupDroppable = void 0), (o = (t = this._loadSlotsConfig).abort) == null || o.call(t);
251
310
  }
252
311
  emptySlotContents(t) {
253
- t.preventDefault(), t.stopPropagation(), this._slotContents = [], this.changedSlotContents([], []);
312
+ t.preventDefault(), t.stopPropagation(), this._slotContents = [], this.changedSlotContents([]);
254
313
  }
255
314
  willUpdate(t) {
256
- t.has("slotsContents") && this._processSlotsContents(), t.has("language") && this.language !== L() && ([...D].includes(this.language ?? "en") || this.language === "en") && A(this.language);
315
+ t.has("slotConfiguration") && (this._cleanupDroppable && (this._cleanupDroppable(), this._cleanupDroppable = void 0), this._attachDroppable()), t.has("slotsContents") && this._processSlotsContents(), t.has("language") && this.language !== E() && ([...L].includes(this.language ?? "en") || this.language === "en") && O(this.language);
257
316
  }
258
317
  _processSlotsContents() {
259
318
  var t, o;
@@ -262,119 +321,82 @@ let n = class extends B(j, {
262
321
  )) == null ? void 0 : o.content) ?? [], this._currentSlotContents = [...this._slotContents], this.slotName === "measure" && this._store.setPeriodOverPeriodEnabled(this.itemType), this._store.setContents(this._slotContents);
263
322
  }
264
323
  firstUpdated() {
265
- this._cleanupDroppable || (this._cleanupDroppable = w({
266
- element: this,
267
- onDrop: (t) => {
268
- var i, s, a, p, d, m;
269
- const o = { ...(i = t.source) == null ? void 0 : i.data }, e = (a = (s = t.source) == null ? void 0 : s.data) == null ? void 0 : a.linkedDatasetsIds;
270
- e && delete o.linkedDatasetsIds;
271
- const l = {
272
- ...(o == null ? void 0 : o.label) ?? { en: "Untitled" }
273
- }, r = o == null ? void 0 : o.type;
274
- if (r === "datetime" && !o.level && (o.level = o.lowestLevel ?? (o.subtype === "date" ? 5 : 9)), r === "datetime" && ((d = (p = t == null ? void 0 : t.source) == null ? void 0 : p.element) != null && d.hasAttribute("sublevel"))) {
275
- const g = [
276
- "(Yr)",
277
- "(Qtr)",
278
- "(Mth)",
279
- "(Wk)",
280
- "(Date)",
281
- "(Hr)",
282
- "(Min)",
283
- "(Sec)",
284
- "(Msec)"
285
- ], f = (o == null ? void 0 : o.level) ?? 1, x = Object.keys(l);
286
- for (const v of x)
287
- l[v] = `${l[v]} ${g[f - 1]}`;
288
- o.label = l;
289
- }
290
- this._slotContents = (m = this.slotConfiguration) != null && m.canAcceptMultipleDataItems ? [...this._slotContents ?? [], o] : [o], this.removeAttribute("accept-drag"), this.changedSlotContents(this._slotContents, e);
291
- },
292
- canDrop: ({ source: t }) => {
293
- var e, l, r, i, s, a, p, d, m, g, f;
294
- if (![
295
- "LUZMO-DRAGGABLE-DATA-ITEM-LEVEL",
296
- "LUZMO-DRAGGABLE-DATA-ITEM"
297
- ].includes((e = t.element) == null ? void 0 : e.tagName) || !((l = this.slotConfiguration) != null && l.canAcceptFormula) && ((r = t == null ? void 0 : t.data) != null && r.formulaId))
298
- return !1;
299
- const o = ((s = (i = this.slotConfiguration) == null ? void 0 : i.acceptableDataItemTypes) == null ? void 0 : s.length) > 0 ? this.slotConfiguration.acceptableDataItemTypes : [
300
- "datetime",
301
- "hierarchy",
302
- "numeric",
303
- "array[datetime]",
304
- "array[numeric]",
305
- "array[hierarchy]"
306
- ];
307
- return (a = t == null ? void 0 : t.data) != null && a.type && !o.includes((p = t == null ? void 0 : t.data) == null ? void 0 : p.type) ? !1 : !((d = t == null ? void 0 : t.data) != null && d.subtype && ((g = (m = this.slotConfiguration) == null ? void 0 : m.acceptableColumnSubtypes) == null ? void 0 : g.length) > 0 && !this.slotConfiguration.acceptableColumnSubtypes.includes(
308
- (f = t == null ? void 0 : t.data) == null ? void 0 : f.subtype
309
- ));
310
- },
311
- getDropEffect: () => "move",
312
- onDragEnter: () => {
313
- this.setAttribute("accept-drag", ""), this.classList.add("pulse");
314
- },
315
- onDragLeave: () => {
316
- this.removeAttribute("accept-drag"), this.classList.remove("pulse");
317
- }
318
- }));
324
+ this._attachDroppable();
319
325
  }
320
326
  /**
321
327
  * Handle overlay open event - reset slot menu position
322
328
  */
323
329
  _onOverlayClosed(t) {
324
- this._slotMenuElement && t.detail.interaction !== "hint" && (setTimeout(() => {
330
+ const o = t.overlay;
331
+ this._slotMenuElement && o === this._overlayElement && (setTimeout(() => {
325
332
  this._slotMenuElement.resetPosition();
326
333
  }, 500), this.dispatchEvent(
327
- new CustomEvent("slot-menu-highlight-clear", {
334
+ new CustomEvent("slot-menu-inactive", {
328
335
  bubbles: !0,
329
336
  composed: !0
330
337
  })
331
338
  ));
332
339
  }
333
340
  _onOverlayOpened(t) {
334
- var o, e, l, r;
335
- if (t.detail.interaction !== "hint") {
336
- const i = ((e = (o = this._store.activeIndex).get) == null ? void 0 : e.call(o)) ?? 0, s = ((l = this._slotContents) == null ? void 0 : l[i]) ?? ((r = this._slotContents) == null ? void 0 : r[0]);
341
+ var e, l, r, a;
342
+ const o = t.overlay;
343
+ if (this._slotMenuElement && o === this._overlayElement) {
344
+ const i = ((l = (e = this._store.activeIndex).get) == null ? void 0 : l.call(e)) ?? 0, s = ((r = this._slotContents) == null ? void 0 : r[i]) ?? ((a = this._slotContents) == null ? void 0 : a[0]);
337
345
  if (!s) return;
338
- const a = s.columnId ?? s.column ?? s.formulaId ?? s.formula ?? s.id;
339
- if (!a) return;
346
+ const n = (s == null ? void 0 : s.column) ?? (s == null ? void 0 : s.columnId), p = (s == null ? void 0 : s.set) ?? (s == null ? void 0 : s.datasetId);
347
+ if (!n || !p) return;
340
348
  this.dispatchEvent(
341
- new CustomEvent("slot-menu-highlight", {
349
+ new CustomEvent("slot-menu-active", {
342
350
  bubbles: !0,
343
351
  composed: !0,
344
352
  detail: {
345
- id: a,
346
- level: s.level
353
+ securableId: p
347
354
  }
348
355
  })
349
- );
356
+ ), setTimeout(() => {
357
+ this.dispatchEvent(
358
+ new CustomEvent("slot-menu-highlight", {
359
+ bubbles: !0,
360
+ composed: !0,
361
+ detail: {
362
+ columnId: n,
363
+ securableId: p,
364
+ level: (s == null ? void 0 : s.level) ?? 0
365
+ }
366
+ })
367
+ );
368
+ });
350
369
  }
351
370
  }
352
371
  _onSlotMenuChanges(t) {
353
- var o;
354
- t.preventDefault(), t.stopPropagation(), this._slotContents.length === ((o = t.detail.slotContents) == null ? void 0 : o.length) ? (this._currentSlotContents = t.detail.slotContents, this.changedSlotContents(this._currentSlotContents)) : (this._slotContents = t.detail.slotContents, this.changedSlotContents(this._slotContents));
372
+ var e;
373
+ t.preventDefault(), t.stopPropagation();
374
+ const o = t.detail.linkedDatasetsIds;
375
+ this._slotContents.length === ((e = t.detail.slotContents) == null ? void 0 : e.length) ? (this._currentSlotContents = t.detail.slotContents, this.changedSlotContents(this._currentSlotContents, o)) : (this._slotContents = t.detail.slotContents, this.changedSlotContents(this._slotContents, o));
355
376
  }
356
377
  get _fullLabel() {
357
- var l, r, i, s, a, p, d, m, g;
378
+ var l, r, a, i, s, n, p, h, b;
358
379
  let t = "";
359
- const o = C[(l = this.slotConfiguration) == null ? void 0 : l.label] ? C[(r = this.slotConfiguration) == null ? void 0 : r.label]() : (i = this.slotConfiguration) == null ? void 0 : i.label;
360
- ((s = this._currentSlotContents) == null ? void 0 : s.length) === 1 ? t = P(
361
- (p = (a = this._currentSlotContents) == null ? void 0 : a[0]) == null ? void 0 : p.label,
380
+ const o = C[(l = this.slotConfiguration) == null ? void 0 : l.label] ? C[(r = this.slotConfiguration) == null ? void 0 : r.label]() : (a = this.slotConfiguration) == null ? void 0 : a.label;
381
+ ((i = this._currentSlotContents) == null ? void 0 : i.length) === 1 ? t = M(
382
+ (n = (s = this._currentSlotContents) == null ? void 0 : s[0]) == null ? void 0 : n.label,
362
383
  this.language
363
- ) ?? "Untitled" : ((d = this._currentSlotContents) == null ? void 0 : d.length) > 1 && (t = `${this._currentSlotContents.length} items`);
384
+ ) ?? "Untitled" : ((p = this._currentSlotContents) == null ? void 0 : p.length) > 1 && (t = `${this._currentSlotContents.length} items`);
364
385
  let e = this.label || o || "Untitled";
365
- return ((m = this._currentSlotContents) == null ? void 0 : m.length) > 0 && (e += ((g = this._currentSlotContents) == null ? void 0 : g.length) > 1 ? `: ${this._currentSlotContents.length} items` : `: ${t}`), e;
386
+ return ((h = this._currentSlotContents) == null ? void 0 : h.length) > 0 && (e += ((b = this._currentSlotContents) == null ? void 0 : b.length) > 1 ? `: ${this._currentSlotContents.length} items` : `: ${t}`), e;
366
387
  }
367
388
  droppableSlotMarkup() {
368
- var o, e, l, r, i, s, a, p;
369
- const t = h`
389
+ var o, e, l, r, a, i, s, n, p;
390
+ const t = m`
370
391
  <div
392
+ id="trigger"
371
393
  class="droppable-slot ${(o = this.slotConfiguration) != null && o.rotate ? "rotate" : ""}"
372
394
  ?filled=${((e = this._slotContents) == null ? void 0 : e.length) > 0}
373
395
  >
374
396
  <div class="droppable-slot-label">${this._fullLabel}</div>
375
- ${((l = this._slotContents) == null ? void 0 : l.length) > 0 && !(this.hideConfiguration && this.hideDelete) ? h`<div class="controls">
376
- ${this.hideConfiguration ? "" : h`<div id="trigger">
377
- ${y(O)}
397
+ ${((l = this._slotContents) == null ? void 0 : l.length) > 0 && !(this.hideConfiguration && this.hideDelete) ? m`<div class="controls">
398
+ ${this.hideConfiguration ? "" : m`<div>
399
+ ${v(A)}
378
400
  <luzmo-tooltip
379
401
  self-managed
380
402
  placement=${(r = this.slotConfiguration) != null && r.rotate ? "right" : "top"}
@@ -383,20 +405,21 @@ let n = class extends B(j, {
383
405
  edit
384
406
  </luzmo-tooltip>
385
407
  </div> `}
386
- ${this.hideDelete ? "" : h`<div @click=${this.emptySlotContents}>
387
- ${y(M)}
408
+ ${this.hideDelete ? "" : m`<div @click=${this.emptySlotContents}>
409
+ ${v(I)}
388
410
  <luzmo-tooltip
389
411
  self-managed
390
- placement=${(i = this.slotConfiguration) != null && i.rotate ? "right" : "top"}
412
+ placement=${(a = this.slotConfiguration) != null && a.rotate ? "right" : "top"}
391
413
  size=${this.size}
392
414
  >
393
415
  Delete
394
416
  </luzmo-tooltip>
395
417
  </div>`}
396
418
  </div>` : ""}
397
- ${((s = this._slotContents) == null ? void 0 : s.length) > 0 ? h`<luzmo-overlay
419
+ ${((i = this._slotContents) == null ? void 0 : i.length) > 0 ? m`<luzmo-overlay
398
420
  trigger="trigger@click"
399
421
  .placement=${this.placement}
422
+ offset=${(s = this.slotConfiguration) != null && s.rotate ? "-100" : "-20"}
400
423
  @luzmo-closed=${this._onOverlayClosed}
401
424
  @luzmo-opened=${this._onOverlayOpened}
402
425
  >
@@ -404,7 +427,7 @@ let n = class extends B(j, {
404
427
  language=${this.language}
405
428
  content-language=${this.language}
406
429
  drag-boundary=${this.dragBoundary}
407
- slot-type=${(a = this.slotConfiguration) == null ? void 0 : a.type}
430
+ slot-type=${(n = this.slotConfiguration) == null ? void 0 : n.type}
408
431
  slot-name=${this.slotName}
409
432
  item-type=${this.itemType}
410
433
  slot-contents=${this._slotContents}
@@ -418,19 +441,19 @@ let n = class extends B(j, {
418
441
  </luzmo-overlay>` : ""}
419
442
  </div>
420
443
  `;
421
- return (p = this.slotConfiguration) != null && p.rotate ? h`<div class="droppable-slot-wrapper">${t}</div>` : t;
444
+ return (p = this.slotConfiguration) != null && p.rotate ? m`<div class="droppable-slot-wrapper">${t}</div>` : t;
422
445
  }
423
446
  render() {
424
447
  return this._loadSlotsConfig.render({
425
- pending: () => h`<p>Loading...</p>`,
448
+ pending: () => m`<p>Loading...</p>`,
426
449
  complete: (t) => {
427
450
  if (this.slotName && this.itemType && t) {
428
451
  const o = t.find((e) => e.name === this.slotName);
429
- o && !this.slotConfiguration && (this.slotConfiguration = o);
452
+ o && (this.slotConfiguration = o);
430
453
  }
431
454
  return this.droppableSlotMarkup();
432
455
  },
433
- error: (t) => h`
456
+ error: (t) => m`
434
457
  <div>
435
458
  Could not load droppable slot: '${this.slotName}' of chart
436
459
  '${this.itemType}': ${t}.
@@ -439,59 +462,62 @@ let n = class extends B(j, {
439
462
  });
440
463
  }
441
464
  };
442
- n.styles = I(V);
465
+ d.styles = P(q);
443
466
  c([
444
467
  u({ type: String, reflect: !0, attribute: "item-type" })
445
- ], n.prototype, "itemType", 2);
468
+ ], d.prototype, "itemType", 2);
446
469
  c([
447
470
  u({ type: String, reflect: !0, attribute: "slot-name" })
448
- ], n.prototype, "slotName", 2);
471
+ ], d.prototype, "slotName", 2);
449
472
  c([
450
473
  u({ type: Object })
451
- ], n.prototype, "slotConfiguration", 2);
474
+ ], d.prototype, "slotConfiguration", 2);
452
475
  c([
453
476
  u({ type: Object })
454
- ], n.prototype, "slotsContents", 2);
477
+ ], d.prototype, "slotsContents", 2);
455
478
  c([
456
479
  u({ type: String, reflect: !0 })
457
- ], n.prototype, "label", 2);
480
+ ], d.prototype, "label", 2);
458
481
  c([
459
482
  u({ type: String, reflect: !0 })
460
- ], n.prototype, "language", 2);
483
+ ], d.prototype, "language", 2);
461
484
  c([
462
485
  u({ type: String, reflect: !0, attribute: "drag-boundary" })
463
- ], n.prototype, "dragBoundary", 2);
486
+ ], d.prototype, "dragBoundary", 2);
464
487
  c([
465
488
  u({ type: String, attribute: "api-url", reflect: !0 })
466
- ], n.prototype, "apiUrl", 2);
489
+ ], d.prototype, "apiUrl", 2);
467
490
  c([
468
491
  u({ type: String, attribute: "auth-key", reflect: !0 })
469
- ], n.prototype, "authKey", 2);
492
+ ], d.prototype, "authKey", 2);
470
493
  c([
471
494
  u({ type: String, attribute: "auth-token", reflect: !0 })
472
- ], n.prototype, "authToken", 2);
495
+ ], d.prototype, "authToken", 2);
473
496
  c([
474
497
  u({ type: String, reflect: !0 })
475
- ], n.prototype, "menu", 2);
498
+ ], d.prototype, "menu", 2);
476
499
  c([
477
500
  u({ type: String, reflect: !0 })
478
- ], n.prototype, "placement", 2);
501
+ ], d.prototype, "placement", 2);
479
502
  c([
480
503
  u({ type: Boolean, reflect: !0, attribute: "hide-delete" })
481
- ], n.prototype, "hideDelete", 2);
504
+ ], d.prototype, "hideDelete", 2);
482
505
  c([
483
506
  u({ type: Boolean, reflect: !0, attribute: "hide-configuration" })
484
- ], n.prototype, "hideConfiguration", 2);
507
+ ], d.prototype, "hideConfiguration", 2);
508
+ c([
509
+ x("luzmo-slot-menu")
510
+ ], d.prototype, "_slotMenuElement", 2);
485
511
  c([
486
- N("luzmo-slot-menu")
487
- ], n.prototype, "_slotMenuElement", 2);
512
+ x("luzmo-overlay")
513
+ ], d.prototype, "_overlayElement", 2);
488
514
  c([
489
515
  U()
490
- ], n.prototype, "_slotContents", 2);
491
- n = c([
492
- E()
493
- ], n);
494
- customElements.get("luzmo-droppable-slot") || customElements.define("luzmo-droppable-slot", n);
516
+ ], d.prototype, "_slotContents", 2);
517
+ d = c([
518
+ $()
519
+ ], d);
520
+ customElements.get("luzmo-droppable-slot") || customElements.define("luzmo-droppable-slot", d);
495
521
  export {
496
- n as LuzmoDroppableSlot
522
+ d as LuzmoDroppableSlot
497
523
  };
@@ -17,7 +17,7 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../property-Cu4Q1hS4.cjs"),U=require("../localized-decorator-DIXYZ3RL.cjs"),k=require("../set-locale-DCPlazsZ.cjs"),v=require("../base-D76d76ww-tT6yr8eb.cjs");require("../focusable-BxtpnzWp-CkK9AeMt.cjs");const P=require("../index-eBsINoH9.cjs"),y=require("../state-fyl3IYMu.cjs"),K=require("../index-Df-_TbOD.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
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../property-Cu4Q1hS4.cjs"),U=require("../localized-decorator-DIXYZ3RL.cjs"),k=require("../set-locale-DCPlazsZ.cjs"),v=require("../base-D76d76ww-tT6yr8eb.cjs");require("../focusable-BxtpnzWp-CkK9AeMt.cjs");const P=require("../index-DpHum3lw.cjs"),y=require("../state-fyl3IYMu.cjs"),K=require("../index-Df-_TbOD.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
21
  .language=${this.language}
22
22
  .contentLanguage=${this.contentLanguage}
23
23
  .size=${this.size}
@@ -22,7 +22,7 @@ import { l as K } from "../localized-decorator-Bl5gcI6n.js";
22
22
  import { g as V, t as j, s as q } from "../set-locale-GI34z_M7.js";
23
23
  import { m as M, b as Z, I as B } from "../base-D76d76ww-BGkuhs54.js";
24
24
  import "../focusable-BxtpnzWp-DJQkL8Zv.js";
25
- import { d as O } from "../index-Delpl7qa.js";
25
+ import { d as O } from "../index-Cyo2hwg7.js";
26
26
  import { r as b } from "../state-nDsQPund.js";
27
27
  import { g as H } from "../index-5Z9GD60H.js";
28
28
  import "../filter-data-item-picker/index.js";