@luzmo/analytics-components-kit 1.0.1-alpha.87 → 1.0.1-alpha.90
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.
- package/angular/components/display-settings-binning.component.ts +2 -2
- package/angular/components/display-settings-datetime.component.ts +2 -2
- package/angular/components/display-settings-grand-totals.component.ts +2 -2
- package/angular/components/display-settings-numeric.component.ts +2 -2
- package/angular/components/display-settings.component.ts +3 -3
- package/angular/components/draggable-data-item/index.ts +1 -0
- package/angular/components/draggable-data-item/types.ts +42 -0
- package/angular/components/draggable-data-item-level/index.ts +1 -0
- package/angular/components/draggable-data-item-level/types.ts +15 -0
- package/angular/components/draggable-data-item-level.component.ts +4 -10
- package/angular/components/draggable-data-item.component.ts +4 -10
- package/angular/components/droppable-slot/index.ts +1 -0
- package/angular/components/droppable-slot/types.ts +16 -0
- package/angular/components/droppable-slot.component.ts +5 -3
- package/angular/components/slot-menu/index.ts +1 -0
- package/angular/components/slot-menu/types.ts +31 -0
- package/angular/components/slot-menu-list.component.ts +2 -2
- package/angular/components/slot-menu.component.ts +3 -3
- package/angular/esm/components/display-settings-binning.component.d.ts +2 -1
- package/angular/esm/components/display-settings-datetime.component.d.ts +2 -2
- package/angular/esm/components/display-settings-grand-totals.component.d.ts +2 -1
- package/angular/esm/components/display-settings-numeric.component.d.ts +2 -1
- package/angular/esm/components/display-settings.component.d.ts +3 -3
- package/angular/esm/components/draggable-data-item/index.d.ts +1 -0
- package/angular/esm/components/draggable-data-item/index.js +1 -0
- package/angular/esm/components/draggable-data-item/types.d.ts +21 -0
- package/angular/esm/components/draggable-data-item/types.js +1 -0
- package/angular/esm/components/draggable-data-item-level/index.d.ts +1 -0
- package/angular/esm/components/draggable-data-item-level/index.js +1 -0
- package/angular/esm/components/draggable-data-item-level/types.d.ts +12 -0
- package/angular/esm/components/draggable-data-item-level/types.js +1 -0
- package/angular/esm/components/draggable-data-item-level.component.d.ts +9 -7
- package/angular/esm/components/draggable-data-item-level.component.js +2 -17
- package/angular/esm/components/draggable-data-item.component.d.ts +9 -7
- package/angular/esm/components/draggable-data-item.component.js +2 -17
- package/angular/esm/components/droppable-slot/index.d.ts +1 -0
- package/angular/esm/components/droppable-slot/index.js +1 -0
- package/angular/esm/components/droppable-slot/types.d.ts +9 -0
- package/angular/esm/components/droppable-slot/types.js +1 -0
- package/angular/esm/components/droppable-slot.component.d.ts +5 -4
- package/angular/esm/components/droppable-slot.component.js +7 -2
- package/angular/esm/components/slot-menu/index.d.ts +1 -0
- package/angular/esm/components/slot-menu/index.js +1 -0
- package/angular/esm/components/slot-menu/types.d.ts +25 -0
- package/angular/esm/components/slot-menu/types.js +1 -0
- package/angular/esm/components/slot-menu-list.component.d.ts +2 -1
- package/angular/esm/components/slot-menu.component.d.ts +3 -3
- package/angular/esm/types.d.ts +9 -3
- package/angular/tsconfig.json +3 -0
- package/angular/types.ts +24 -3
- package/angular/utils/base/base.d.ts +16 -0
- package/angular/utils/base/focus-visible.d.ts +29 -0
- package/angular/utils/base/focusable.d.ts +58 -0
- package/angular/utils/base/index.d.ts +4 -0
- package/angular/utils/base/sized-mixin.d.ts +17 -0
- package/angular/utils/color/color-palettes.d.ts +17 -0
- package/angular/utils/color/extrapolate-color.d.ts +1 -0
- package/angular/utils/data/load-draggable-items-for-datasets.d.ts +24 -0
- package/angular/utils/data-broker/index.d.ts +191 -0
- package/angular/utils/data-item-types/calculate-data-item-icon.d.ts +10 -0
- package/angular/utils/data-item-types/tests/calculate-data-item-icon.test.d.ts +1 -0
- package/angular/utils/drag/draggable.d.ts +13 -0
- package/angular/utils/filters/expressions.d.ts +15 -0
- package/angular/utils/filters/index.d.ts +1 -0
- package/angular/utils/formatter/calculate-duration.d.ts +2 -0
- package/angular/utils/formatter/decompose-numeric-format.d.ts +11 -0
- package/angular/utils/formatter/default-local-formats.d.ts +20 -0
- package/angular/utils/formatter/formats/cs.d.ts +20 -0
- package/angular/utils/formatter/formats/da.d.ts +20 -0
- package/angular/utils/formatter/formats/de.d.ts +21 -0
- package/angular/utils/formatter/formats/en-GB.d.ts +21 -0
- package/angular/utils/formatter/formats/en-US.d.ts +1 -0
- package/angular/utils/formatter/formats/en.d.ts +1 -0
- package/angular/utils/formatter/formats/es.d.ts +54 -0
- package/angular/utils/formatter/formats/fi.d.ts +20 -0
- package/angular/utils/formatter/formats/fr.d.ts +54 -0
- package/angular/utils/formatter/formats/he.d.ts +20 -0
- package/angular/utils/formatter/formats/hu.d.ts +20 -0
- package/angular/utils/formatter/formats/it.d.ts +54 -0
- package/angular/utils/formatter/formats/ja.d.ts +20 -0
- package/angular/utils/formatter/formats/ko.d.ts +20 -0
- package/angular/utils/formatter/formats/mk.d.ts +20 -0
- package/angular/utils/formatter/formats/nl.d.ts +21 -0
- package/angular/utils/formatter/formats/no.d.ts +21 -0
- package/angular/utils/formatter/formats/pl.d.ts +20 -0
- package/angular/utils/formatter/formats/pt.d.ts +20 -0
- package/angular/utils/formatter/formats/ru.d.ts +20 -0
- package/angular/utils/formatter/formats/sv.d.ts +20 -0
- package/angular/utils/formatter/formats/tr.d.ts +21 -0
- package/angular/utils/formatter/formats/zh-CN.d.ts +20 -0
- package/angular/utils/formatter/formats/zh-TW.d.ts +20 -0
- package/angular/utils/formatter/formatter.d.ts +9 -0
- package/angular/utils/formatter/localize.d.ts +3 -0
- package/angular/utils/formatter/smart-datetime-formats.const.d.ts +36 -0
- package/angular/utils/get-css-variable.d.ts +1 -0
- package/angular/utils/index.d.ts +7 -0
- package/angular/utils/localize/set-locale.d.ts +7 -0
- package/angular/utils/map-tile-providers/index.d.ts +93 -0
- package/angular/utils/store/slot-context.d.ts +4 -0
- package/angular/utils/store/slot-store.d.ts +39 -0
- package/angular/utils/switch-item/index.d.ts +14 -0
- package/angular/utils/themes/bliss.d.ts +43 -0
- package/angular/utils/themes/classic-dark.d.ts +34 -0
- package/angular/utils/themes/classic.d.ts +43 -0
- package/angular/utils/themes/default-dark.d.ts +46 -0
- package/angular/utils/themes/default.d.ts +46 -0
- package/angular/utils/themes/index.d.ts +3 -0
- package/angular/utils/themes/orion.d.ts +44 -0
- package/angular/utils/themes/pinky.d.ts +42 -0
- package/angular/utils/themes/radiant.d.ts +42 -0
- package/angular/utils/themes/royale.d.ts +36 -0
- package/angular/utils/themes/seasonal.d.ts +43 -0
- package/angular/utils/themes/urban.d.ts +44 -0
- package/angular/utils/themes/vivid.d.ts +42 -0
- package/angular/utils/time/formats.const.d.ts +4 -0
- package/angular/utils/time/periods.const.d.ts +15 -0
- package/angular/utils/transformations/convert-data-item-to-slot-content.d.ts +9 -0
- package/angular/utils/transformations/convert-datasets-to-draggable-items.d.ts +17 -0
- package/angular/utils/transformations/tests/convert-data-item-to-slot-content.test.d.ts +1 -0
- package/angular/utils/transformations/tests/convert-datasets-to-draggable-items.test.d.ts +1 -0
- package/angular/utils/types/type-check.d.ts +7 -0
- package/components/ai-chat-message-assistant/index.cjs +1 -1
- package/components/ai-chat-message-assistant/index.js +0 -1
- package/components/calculate-data-item-icon-DMDhKq_m.js +147 -0
- package/components/{calculate-data-item-icon-CX4VW9Km.cjs → calculate-data-item-icon-DtVGbet3.cjs} +1 -1
- package/components/dataset-selector-list/index.cjs +1 -1
- package/components/dataset-selector-list/index.js +1 -1
- package/components/display-settings/display-settings.d.ts +4 -2
- package/components/display-settings/index.cjs +1 -1
- package/components/display-settings/index.js +1 -1
- package/components/display-settings-binning/display-settings-binning.d.ts +2 -1
- package/components/display-settings-datetime/display-settings-datetime.d.ts +2 -1
- package/components/display-settings-datetime/index.cjs +1 -1
- package/components/display-settings-datetime/index.js +4 -4
- package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +2 -1
- package/components/display-settings-numeric/display-settings-numeric.d.ts +2 -1
- package/components/display-settings-numeric/index.cjs +10 -10
- package/components/display-settings-numeric/index.js +5 -5
- package/components/draggable-data-item/draggable-data-item.d.ts +5 -7
- package/components/draggable-data-item/index.cjs +14 -22
- package/components/draggable-data-item/index.d.ts +1 -0
- package/components/draggable-data-item/index.js +80 -88
- package/components/draggable-data-item/types.d.ts +21 -0
- package/components/draggable-data-item-level/draggable-data-item-level.d.ts +4 -6
- package/components/draggable-data-item-level/helpers/generate-preview.d.ts +9 -1
- package/components/draggable-data-item-level/index.cjs +13 -13
- package/components/draggable-data-item-level/index.js +84 -102
- package/components/draggable-data-item-level/types.d.ts +12 -0
- package/components/droppable-slot/droppable-slot.d.ts +4 -2
- package/components/droppable-slot/index.cjs +13 -13
- package/components/droppable-slot/index.d.ts +1 -0
- package/components/droppable-slot/index.js +198 -199
- package/components/droppable-slot/types.d.ts +9 -0
- package/components/{en-CtCctD2c.js → en-D3ihEGXg.js} +67 -67
- package/components/{en--a5SfjnM.cjs → en-DZcn_iz_.cjs} +1 -1
- package/components/{en-GB-CXVKFWyH.cjs → en-GB-TqvgIw9B.cjs} +1 -1
- package/components/{en-GB-CbNfyZMo.js → en-GB-ialeqj_z.js} +1 -1
- package/components/filter-data-item-picker/index.cjs +1 -1
- package/components/filter-data-item-picker/index.js +1 -1
- package/components/filter-item/index.cjs +1 -1
- package/components/filter-item/index.js +8 -8
- package/components/filter-value-picker-hierarchy/index.cjs +1 -1
- package/components/filter-value-picker-hierarchy/index.js +1 -1
- package/components/filter-value-picker-numeric/index.cjs +1 -1
- package/components/filter-value-picker-numeric/index.js +1 -1
- package/components/{get-css-variable-CuDaWSjr.cjs → get-css-variable-COd1d84B.cjs} +3 -3
- package/components/{get-css-variable-DEf4GhTH.js → get-css-variable-CdwF98oh.js} +31 -31
- package/components/grid/index.cjs +1 -7
- package/components/grid/index.js +0 -7
- package/components/{index-BUal0r_D.cjs → index-BekTY3Em.cjs} +1 -1
- package/components/index-CFL6gmIu.cjs +20 -0
- package/components/{index-3WsfvkZF.js → index-CqKpf0B8.js} +1 -1
- package/components/{index-BGb_wRRW.js → index-DNPULp4A.js} +177 -188
- package/components/index.cjs +1 -1
- package/components/index.js +26 -24
- package/components/slot-contents-picker/index.cjs +1 -1
- package/components/slot-contents-picker/index.js +2 -2
- package/components/slot-menu/index.cjs +1 -1
- package/components/slot-menu/index.d.ts +1 -0
- package/components/slot-menu/index.js +64 -69
- package/components/slot-menu/slot-menu.d.ts +7 -6
- package/components/slot-menu/types.d.ts +25 -0
- package/components/slot-menu-list/index.cjs +1 -1
- package/components/slot-menu-list/index.js +2 -2
- package/components/slot-menu-list/slot-menu-list.d.ts +2 -1
- package/components/utils.cjs +1 -1
- package/components/utils.js +129 -62
- package/custom-elements.json +123 -126
- package/item-definitions/slicer-filter/slicer-filter-options.config.d.ts +1 -1
- package/package.json +1 -1
- package/types.d.ts +9 -3
- package/utils/data/load-draggable-items-for-datasets.d.ts +24 -0
- package/utils/data-broker/index.d.ts +69 -66
- package/utils/data-item-types/calculate-data-item-icon.d.ts +8 -2
- package/utils/data-item-types/tests/calculate-data-item-icon.test.d.ts +1 -0
- package/utils/index.d.ts +2 -0
- package/utils/transformations/convert-data-item-to-slot-content.d.ts +9 -0
- package/utils/transformations/convert-datasets-to-draggable-items.d.ts +17 -0
- package/utils/transformations/tests/convert-data-item-to-slot-content.test.d.ts +1 -0
- package/utils/transformations/tests/convert-datasets-to-draggable-items.test.d.ts +1 -0
- package/components/calculate-data-item-icon-C8CbsMQf.js +0 -139
- package/components/index-D1Y5TRsH.cjs +0 -20
- package/utils/types/column.types.d.ts +0 -57
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
* */
|
|
20
20
|
import "@luzmo/lucero/divider";
|
|
21
21
|
import { unsafeCSS as P, html as p } from "lit";
|
|
22
|
-
import { s as A } from "../index-
|
|
22
|
+
import { s as A } from "../index-CqKpf0B8.js";
|
|
23
23
|
import { SignalWatcher as M } from "@lit-labs/signals";
|
|
24
24
|
import { consume as R } from "@lit/context";
|
|
25
25
|
import { luzmoIcon as _, luzmoArrows as X, luzmoTrashOutline as q, luzmoClose as N } from "@luzmo/icons";
|
|
26
|
-
import { d as g } from "../index-
|
|
26
|
+
import { d as g } from "../index-DNPULp4A.js";
|
|
27
27
|
import { l as Y } from "../localize-CcDpq940.js";
|
|
28
|
-
import { property as
|
|
28
|
+
import { property as n, state as k, query as T } from "lit/decorators.js";
|
|
29
29
|
import { guard as H } from "lit/directives/guard.js";
|
|
30
30
|
import { L as G } from "../focusable-BS2pbY7w.js";
|
|
31
31
|
import { S as K, E as F } from "../sized-mixin-cJbo3PKR.js";
|
|
@@ -36,24 +36,24 @@ import "../slot-menu-list/index.js";
|
|
|
36
36
|
o.setAttribute("data-luzmo-vars", ""), o.textContent = 'html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}', document.head.appendChild(o);
|
|
37
37
|
}
|
|
38
38
|
})();
|
|
39
|
-
const
|
|
40
|
-
function
|
|
41
|
-
return typeof i == "string" &&
|
|
39
|
+
const W = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
|
|
40
|
+
function j(i) {
|
|
41
|
+
return typeof i == "string" && W.test(i);
|
|
42
42
|
}
|
|
43
|
-
function
|
|
43
|
+
function V({
|
|
44
44
|
element: i,
|
|
45
45
|
handle: o,
|
|
46
|
-
boundary:
|
|
46
|
+
boundary: r = document.documentElement,
|
|
47
47
|
onDragStart: u,
|
|
48
48
|
onDragEnd: a
|
|
49
49
|
}) {
|
|
50
50
|
if (!i || !o)
|
|
51
51
|
throw new Error("makeDraggable: element and handle are required");
|
|
52
|
-
const
|
|
52
|
+
const l = i.ownerDocument ?? document;
|
|
53
53
|
let s = -1, S = 0, E = 0, v = 0, z = 0, I = 0, D = 0, b = 0, f = 0;
|
|
54
54
|
const y = (m) => {
|
|
55
55
|
if (m.pointerId !== s) return;
|
|
56
|
-
const c = m.clientX - S, h = m.clientY - E, d = (
|
|
56
|
+
const c = m.clientX - S, h = m.clientY - E, d = (r ?? document.documentElement).getBoundingClientRect();
|
|
57
57
|
let w = v + c, C = z + h;
|
|
58
58
|
w = Math.min(
|
|
59
59
|
Math.max(w, d.left),
|
|
@@ -65,14 +65,14 @@ function W({
|
|
|
65
65
|
const L = w - v, U = C - z, B = b + L, O = f + U;
|
|
66
66
|
i.style.transform = `translate3d(${B}px, ${O}px, 0)`;
|
|
67
67
|
}, x = (m) => {
|
|
68
|
-
m.pointerId === s && (
|
|
69
|
-
},
|
|
68
|
+
m.pointerId === s && (l.removeEventListener("pointermove", y), l.removeEventListener("pointerup", x), s = -1, a?.());
|
|
69
|
+
}, $ = (m) => {
|
|
70
70
|
if (m.button !== 0) return;
|
|
71
71
|
s = m.pointerId;
|
|
72
72
|
const c = i.getBoundingClientRect();
|
|
73
73
|
v = c.left, z = c.top, I = c.width, D = c.height, S = m.clientX, E = m.clientY;
|
|
74
74
|
try {
|
|
75
|
-
const h =
|
|
75
|
+
const h = l.defaultView?.getComputedStyle(i);
|
|
76
76
|
if (h) {
|
|
77
77
|
const d = new DOMMatrixReadOnly(h.transform);
|
|
78
78
|
b = d.m41, f = d.m42;
|
|
@@ -80,17 +80,17 @@ function W({
|
|
|
80
80
|
} catch {
|
|
81
81
|
b = 0, f = 0;
|
|
82
82
|
}
|
|
83
|
-
o.setPointerCapture(s),
|
|
83
|
+
o.setPointerCapture(s), l.addEventListener("pointermove", y), l.addEventListener("pointerup", x), u?.();
|
|
84
84
|
};
|
|
85
|
-
return o.addEventListener("pointerdown",
|
|
86
|
-
o.removeEventListener("pointerdown",
|
|
85
|
+
return o.addEventListener("pointerdown", $), () => {
|
|
86
|
+
o.removeEventListener("pointerdown", $), l.removeEventListener("pointermove", y), l.removeEventListener("pointerup", x);
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
const J = ":host{font-family:var(--luzmo-slot-menu-font-family, var(--luzmo-font-family));font-size:var(--luzmo-slot-menu-font-size, var(--slot-menu-font-size));color:var(--luzmo-slot-menu-font-color, var(--luzmo-font-color));display:block;width:fit-content}luzmo-slot-menu-list{min-width:var(--luzmo-slot-menu-list-min-width, var(--slot-menu-list-min-width));max-width:var(--luzmo-slot-menu-list-max-width, var(--slot-menu-list-max-width));background-color:var(--luzmo-slot-menu-list-background-color, var(--slot-menu-list-background-color));border-bottom-left-radius:var(--luzmo-slot-menu-list-border-radius, var(--slot-menu-list-border-radius))}.slot-contents-container{position:relative;border:var(--luzmo-slot-menu-border-width, var(--luzmo-border-width)) solid var(--luzmo-slot-menu-border-color, var(--luzmo-border-color));border-radius:var(--luzmo-slot-menu-border-radius, var(--luzmo-border-radius));background:var(--luzmo-slot-menu-background-color, var(--luzmo-background-color));box-shadow:var(--luzmo-slot-menu-popup-shadow-horizontal, var(--slot-menu-popup-shadow-horizontal)) var(--luzmo-slot-menu-popup-shadow-vertical, var(--slot-menu-popup-shadow-vertical)) var(--luzmo-slot-menu-popup-shadow-blur, var(--slot-menu-popup-shadow-blur)) var(--luzmo-slot-menu-popup-shadow-color, var(--slot-menu-popup-shadow-color));border-top-left-radius:0}.slot-contents-container .inner-container{display:flex}.slot-contents-container .inner-container luzmo-display-settings{min-width:var(--luzmo-slot-menu-display-settings-min-width, var(--slot-menu-display-settings-min-width));padding:var(--luzmo-slot-menu-display-settings-vertical-padding, var(--slot-menu-display-settings-vertical-padding)) var(--luzmo-slot-menu-display-settings-horizontal-padding, var(--slot-menu-display-settings-horizontal-padding))}:host([variant=popup]) .slot-contents-container{overflow:hidden;border-top-left-radius:var(--luzmo-slot-menu-border-radius, var(--luzmo-border-radius));--slot-menu-popup-filter: drop-shadow( var( --luzmo-slot-menu-popup-shadow-horizontal, var(--slot-menu-popup-shadow-horizontal) ) var( --luzmo-slot-menu-popup-shadow-vertical, var(--slot-menu-popup-shadow-vertical) ) var( --luzmo-slot-menu-popup-shadow-blur, var(--slot-menu-popup-shadow-blur) ) var( --luzmo-slot-menu-popup-shadow-color, var(--slot-menu-popup-shadow-color) ) );filter:var(--luzmo-slot-menu-popup-filter, var(--slot-menu-popup-filter))}.slot-menu-top-menu{display:flex;align-items:center;border-radius:var(--luzmo-slot-menu-border-radius, var(--luzmo-border-radius));border-bottom-left-radius:0;border-bottom-right-radius:0;overflow:hidden;width:fit-content}.drag-handle{background-color:var(--luzmo-slot-menu-drag-handle-background-color, var(--luzmo-background-color-highlight));cursor:move;width:fit-content;border:var(--luzmo-slot-menu-drag-handle-border-width, var(--slot-menu-drag-handle-border-width)) solid var(--luzmo-slot-menu-border-color, var(--luzmo-background-color-highlight));font-size:var(--luzmo-slot-menu-drag-handle-size, var(--slot-menu-drag-handle-size));padding:var(--luzmo-slot-menu-drag-handle-vertical-padding, var(--slot-menu-drag-handle-vertical-padding)) var(--luzmo-slot-menu-drag-handle-horizontal-padding, var(--slot-menu-drag-handle-horizontal-padding))}.drag-handle:hover{background-color:var(--luzmo-slot-menu-drag-handle-background-color-hover, var(--luzmo-background-color-highlight-hover))}.slot-content-action{display:flex;flex:0 1 auto;max-width:var(--luzmo-slot-menu-top-menu-label-max-width, var(--slot-menu-top-menu-label-max-width));gap:var(--luzmo-slot-menu-label-to-icon-gap, var(--slot-menu-label-to-icon-gap));background-color:var(--luzmo-slot-menu-content-label-background-color, var(--luzmo-primary));color:var(--luzmo-slot-menu-content-label-color, var(--luzmo-primary-inverse-color));border:var(--luzmo-slot-menu-border-width, var(--luzmo-border-width)) solid var(--luzmo-slot-menu-content-label-border-color, var(--luzmo-primary));padding:var(--luzmo-slot-menu-drag-handle-vertical-padding, var(--slot-menu-drag-handle-vertical-padding)) var(--luzmo-slot-menu-drag-handle-horizontal-padding, var(--slot-menu-drag-handle-horizontal-padding))}.slot-content-action:hover{background-color:var(--luzmo-slot-menu-content-label-background-color-hover, var(--luzmo-primary-hover))}.slot-content-action:focus{background-color:var(--luzmo-slot-menu-content-label-background-color-focus, var(--luzmo-primary-focus))}.slot-content-action .slot-content-label{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-content-action .slot-content-remove{flex:0 0 auto;cursor:pointer}.close{position:absolute;right:var(--luzmo-slot-menu-close-icon-right, var(--slot-menu-close-icon-right));cursor:pointer;top:calc(-2 * var(--luzmo-slot-menu-border-width, var(--luzmo-border-width)));background-color:var(--luzmo-slot-menu-close-button-background-color, var(--luzmo-background-color-highlight));font-size:var(--luzmo-slot-menu-close-button-size, var(--slot-menu-close-button-size));border:var(--luzmo-slot-menu-border-width, var(--luzmo-border-width)) solid var(--luzmo-slot-menu-border-color, var(--luzmo-border-color));border-radius:var(--luzmo-slot-menu-border-radius, var(--luzmo-border-radius));border-top-left-radius:0;border-top-right-radius:0;padding:var(--luzmo-slot-menu-close-button-vertical-padding, var(--slot-menu-close-button-vertical-padding)) var(--luzmo-slot-menu-close-button-horizontal-padding, var(--slot-menu-close-button-horizontal-padding))}.close:hover{background-color:var(--luzmo-slot-menu-close-button-background-color-hover, var(--luzmo-background-color-highlight-hover))}:host{--slot-menu-display-settings-min-width: 19rem;--slot-menu-min-height: calc(var(--luzmo-component-height) * 2);--slot-menu-font-size: var(--luzmo-font-size);--slot-menu-display-settings-horizontal-padding: var(--luzmo-spacing-5);--slot-menu-display-settings-vertical-padding: var(--luzmo-spacing-4);--slot-menu-top-menu-label-max-width: 12rem;--slot-menu-list-min-width: 8rem;--slot-menu-list-max-width: 12rem;--slot-menu-label-to-icon-gap: var(--luzmo-spacing-3);--slot-menu-drag-handle-size: var(--luzmo-font-size);--slot-menu-drag-handle-vertical-padding: var(--luzmo-spacing-2);--slot-menu-drag-handle-horizontal-padding: var(--luzmo-spacing-3);--slot-menu-drag-handle-border-width: var(--luzmo-border-width) --slot-menu-close-button-size: var(--luzmo-font-size-s);--slot-menu-close-button-vertical-padding: var(--luzmo-spacing-2);--slot-menu-close-button-horizontal-padding: calc( var(--luzmo-spacing-2) + var(--luzmo-spacing-1) );--slot-menu-popup-shadow-horizontal: 0;--slot-menu-popup-shadow-vertical: 1px;--slot-menu-popup-shadow-blur: 4px;--slot-menu-popup-shadow-color: var(--luzmo-border-color);--slot-menu-popup-box-shadow: var(--slot-menu-popup-shadow-horizontal) var(--slot-menu-popup-shadow-vertical) var(--slot-menu-popup-shadow-blur) var(--slot-menu-popup-shadow-color);--slot-menu-close-icon-right: 1rem;--slot-menu-list-border-radius: var(--luzmo-border-radius)}:host([size=s]){--slot-menu-display-settings-min-width: 16rem;--slot-menu-min-height: calc(var(--luzmo-component-height-s) * 2);--slot-menu-font-size: var(--luzmo-font-size-s);--slot-menu-display-settings-horizontal-padding: var(--luzmo-spacing-4);--slot-menu-display-settings-vertical-padding: var(--luzmo-spacing-3);--slot-menu-top-menu-label-max-width: 10rem;--slot-menu-list-min-width: 6rem;--slot-menu-list-max-width: 10rem;--slot-menu-label-to-icon-gap: var(--luzmo-spacing-2);--slot-menu-drag-handle-size: var(--luzmo-font-size-s);--slot-menu-drag-handle-vertical-padding: var(--luzmo-spacing-2);--slot-menu-drag-handle-horizontal-padding: var(--luzmo-spacing-3);--slot-menu-close-button-size: var(--luzmo-font-size-xs);--slot-menu-close-button-vertical-padding: var(--luzmo-spacing-2);--slot-menu-close-button-horizontal-padding: calc( var(--luzmo-spacing-2) + var(--luzmo-spacing-1) )}:host([size=l]){--slot-menu-display-settings-min-width: 23rem;--slot-menu-min-height: calc(var(--luzmo-component-height-l) * 2);--slot-menu-font-size: var(--luzmo-font-size-l);--slot-menu-display-settings-horizontal-padding: calc( var(--luzmo-spacing-5) + var(--luzmo-spacing-1) );--slot-menu-display-settings-vertical-padding: var(--luzmo-spacing-5);--slot-menu-top-menu-label-max-width: 14rem;--slot-menu-list-min-width: 9rem;--slot-menu-list-max-width: 14rem;--slot-menu-label-to-icon-gap: var(--luzmo-spacing-4);--slot-menu-drag-handle-size: var(--luzmo-font-size-l);--slot-menu-drag-handle-vertical-padding: var(--luzmo-spacing-3);--slot-menu-drag-handle-horizontal-padding: var(--luzmo-spacing-3);--slot-menu-close-button-size: var(--luzmo-font-size);--slot-menu-close-button-vertical-padding: calc( var(--luzmo-spacing-2) + var(--luzmo-spacing-1) );--slot-menu-close-button-horizontal-padding: var(--luzmo-spacing-3)}:host([size=xl]){--slot-menu-display-settings-min-width: 26rem;--slot-menu-min-height: calc(var(--luzmo-component-height-xl) * 2);--slot-menu-font-size: var(--luzmo-font-size-xl);--slot-menu-display-settings-horizontal-padding: calc( var(--luzmo-spacing-5) + var(--luzmo-spacing-2) );--slot-menu-display-settings-vertical-padding: var(--luzmo-spacing-5);--slot-menu-top-menu-label-max-width: 16rem;--slot-menu-list-min-width: 10rem;--slot-menu-list-max-width: 16rem;--slot-menu-label-to-icon-gap: var(--luzmo-spacing-5);--slot-menu-drag-handle-size: var(--luzmo-font-size-xl);--slot-menu-drag-handle-vertical-padding: var(--luzmo-spacing-3);--slot-menu-drag-handle-horizontal-padding: var(--luzmo-spacing-4);--slot-menu-close-button-size: var(--luzmo-font-size-l);--slot-menu-close-button-vertical-padding: var(--luzmo-spacing-3);--slot-menu-close-button-horizontal-padding: var(--luzmo-spacing-3)}";
|
|
90
|
-
var Q = Object.defineProperty, e = (i, o,
|
|
91
|
-
for (var a = void 0,
|
|
92
|
-
(s = i[
|
|
93
|
-
return a && Q(o,
|
|
90
|
+
var Q = Object.defineProperty, e = (i, o, r, u) => {
|
|
91
|
+
for (var a = void 0, l = i.length - 1, s; l >= 0; l--)
|
|
92
|
+
(s = i[l]) && (a = s(o, r, a) || a);
|
|
93
|
+
return a && Q(o, r, a), a;
|
|
94
94
|
};
|
|
95
95
|
class t extends M(
|
|
96
96
|
K(G, {
|
|
@@ -127,11 +127,11 @@ class t extends M(
|
|
|
127
127
|
return;
|
|
128
128
|
const o = this.renderRoot.querySelector(".drag-handle");
|
|
129
129
|
if (!o) return;
|
|
130
|
-
const
|
|
131
|
-
this._cleanupDrag =
|
|
130
|
+
const r = this.dragBoundary ? document.querySelector(this.dragBoundary) : document.documentElement;
|
|
131
|
+
this._cleanupDrag = V({
|
|
132
132
|
element: this,
|
|
133
133
|
handle: o,
|
|
134
|
-
boundary:
|
|
134
|
+
boundary: r
|
|
135
135
|
});
|
|
136
136
|
}
|
|
137
137
|
_sendChangeEvent() {
|
|
@@ -157,35 +157,30 @@ class t extends M(
|
|
|
157
157
|
);
|
|
158
158
|
}
|
|
159
159
|
isArrayColumnType(o) {
|
|
160
|
-
return (
|
|
161
|
-
"array[numeric]",
|
|
162
|
-
"array[spatial]",
|
|
163
|
-
"array[datetime]",
|
|
164
|
-
"array[hierarchy]"
|
|
165
|
-
])).has(o);
|
|
160
|
+
return o.startsWith("array[");
|
|
166
161
|
}
|
|
167
162
|
async willUpdate() {
|
|
168
163
|
const o = this.slotContents ?? this._store?.slotContents.get() ?? [];
|
|
169
164
|
if (o !== this._slotContents) {
|
|
170
165
|
this._slotContents = structuredClone(o);
|
|
171
|
-
const { set:
|
|
172
|
-
if (
|
|
173
|
-
if (this._lastFetchedDatasetId =
|
|
166
|
+
const { set: r, column: u } = this._currentSlotContent;
|
|
167
|
+
if (r && j(r) && r !== this._lastFetchedDatasetId) {
|
|
168
|
+
if (this._lastFetchedDatasetId = r, await g.fetchDatasetsRecursive([r]), !this.isConnected)
|
|
174
169
|
return;
|
|
175
|
-
this._linkedDatasetsIds = g.getLinkedDatasetsIds(
|
|
170
|
+
this._linkedDatasetsIds = g.getLinkedDatasetsIds(r);
|
|
176
171
|
}
|
|
177
172
|
const a = g.getAvailableDatasets();
|
|
178
|
-
this.measureColumns = a.map((
|
|
179
|
-
datasetId:
|
|
180
|
-
datasetName:
|
|
181
|
-
columns:
|
|
173
|
+
this.measureColumns = a.map((l) => ({
|
|
174
|
+
datasetId: l.id,
|
|
175
|
+
datasetName: l.name,
|
|
176
|
+
columns: l.columns?.filter(
|
|
182
177
|
(s) => s.type === "numeric" && s.id !== u
|
|
183
178
|
)
|
|
184
179
|
})), this._store?.activeIndex.get() !== this._activeIndex && this._store?.updateActive(this._activeIndex), this.slotName === "measure" && (this._store?.setPeriodOverPeriodCondition(
|
|
185
180
|
this.itemType,
|
|
186
181
|
this._currentSlotContent
|
|
187
182
|
), this._currentSlotContent.subtype === "duration" && this.isArrayColumnType(this._currentSlotContent.type) ? this._periodOverPeriodUiType = null : (this._periodOverPeriodUiType = this._store?.periodOverPeriodUiType.get(), this._store?.linkedDataset.set(
|
|
188
|
-
a.filter((s) => s.id ===
|
|
183
|
+
a.filter((s) => s.id === r)
|
|
189
184
|
)));
|
|
190
185
|
}
|
|
191
186
|
}
|
|
@@ -194,15 +189,15 @@ class t extends M(
|
|
|
194
189
|
}
|
|
195
190
|
_handleSlotListChange(o) {
|
|
196
191
|
this._slotContents = structuredClone(o.detail.slotContents);
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
const u = this._slotContents[this._activeIndex], a = u?.column ?? u?.columnId,
|
|
200
|
-
(a || s) &&
|
|
192
|
+
const r = o.detail.activeIndex;
|
|
193
|
+
r !== this._activeIndex && (this._activeIndex = r, this._store?.updateActive(r));
|
|
194
|
+
const u = this._slotContents[this._activeIndex], a = u?.column ?? u?.columnId, l = u?.set ?? u?.datasetId, s = u?.formula;
|
|
195
|
+
(a || s) && l && (this.dispatchEvent(
|
|
201
196
|
new CustomEvent("slot-menu-active", {
|
|
202
197
|
bubbles: !0,
|
|
203
198
|
composed: !0,
|
|
204
199
|
detail: {
|
|
205
|
-
|
|
200
|
+
datasetId: l
|
|
206
201
|
}
|
|
207
202
|
})
|
|
208
203
|
), setTimeout(() => {
|
|
@@ -211,10 +206,10 @@ class t extends M(
|
|
|
211
206
|
bubbles: !0,
|
|
212
207
|
composed: !0,
|
|
213
208
|
detail: {
|
|
214
|
-
|
|
215
|
-
securableId: n,
|
|
209
|
+
datasetId: l,
|
|
216
210
|
level: u?.level ?? 0,
|
|
217
|
-
|
|
211
|
+
...a && { columnId: a },
|
|
212
|
+
...s && { formulaId: s }
|
|
218
213
|
}
|
|
219
214
|
})
|
|
220
215
|
);
|
|
@@ -231,7 +226,7 @@ class t extends M(
|
|
|
231
226
|
// Removed updateContentLabel method (label updates are handled inline)
|
|
232
227
|
removeSlotContent(o) {
|
|
233
228
|
this._slotContents = this._slotContents.filter(
|
|
234
|
-
(
|
|
229
|
+
(r, u) => u !== o
|
|
235
230
|
), this._store?.setContents(this._slotContents, this.slotName), this._slotContents.length === 0 && this.dispatchEvent(
|
|
236
231
|
new CustomEvent("slot-menu-inactive", {
|
|
237
232
|
bubbles: !0,
|
|
@@ -311,55 +306,55 @@ class t extends M(
|
|
|
311
306
|
}
|
|
312
307
|
}
|
|
313
308
|
e([
|
|
314
|
-
|
|
309
|
+
n({ type: String, reflect: !0 })
|
|
315
310
|
], t.prototype, "language");
|
|
316
311
|
e([
|
|
317
|
-
|
|
312
|
+
n({ type: String, attribute: "content-language", reflect: !0 })
|
|
318
313
|
], t.prototype, "contentLanguage");
|
|
319
314
|
e([
|
|
320
|
-
|
|
315
|
+
n({ type: String, attribute: "slot-type", reflect: !0 })
|
|
321
316
|
], t.prototype, "slotType");
|
|
322
317
|
e([
|
|
323
|
-
|
|
318
|
+
n({ type: String, attribute: "slot-name", reflect: !0 })
|
|
324
319
|
], t.prototype, "slotName");
|
|
325
320
|
e([
|
|
326
|
-
|
|
321
|
+
n({ type: String, attribute: "item-type", reflect: !0 })
|
|
327
322
|
], t.prototype, "itemType");
|
|
328
323
|
e([
|
|
329
|
-
|
|
324
|
+
n({ type: Boolean, attribute: "no-drag", reflect: !0 })
|
|
330
325
|
], t.prototype, "noDrag");
|
|
331
326
|
e([
|
|
332
|
-
|
|
327
|
+
n({ type: Boolean, attribute: "no-close", reflect: !0 })
|
|
333
328
|
], t.prototype, "noClose");
|
|
334
329
|
e([
|
|
335
|
-
|
|
330
|
+
n({ type: String, reflect: !0 })
|
|
336
331
|
], t.prototype, "variant");
|
|
337
332
|
e([
|
|
338
|
-
|
|
333
|
+
n({ type: Boolean, attribute: "no-top-menu-label", reflect: !0 })
|
|
339
334
|
], t.prototype, "noTopMenuLabel");
|
|
340
335
|
e([
|
|
341
336
|
R({ context: A, subscribe: !0 })
|
|
342
337
|
], t.prototype, "_store");
|
|
343
338
|
e([
|
|
344
|
-
|
|
339
|
+
n({ type: String, attribute: "drag-boundary", reflect: !1 })
|
|
345
340
|
], t.prototype, "dragBoundary");
|
|
346
341
|
e([
|
|
347
|
-
|
|
342
|
+
n({ type: Boolean })
|
|
348
343
|
], t.prototype, "areGrandTotalsEnabled");
|
|
349
344
|
e([
|
|
350
|
-
|
|
345
|
+
n({ type: Boolean })
|
|
351
346
|
], t.prototype, "areDatetimeOptionsEnabled");
|
|
352
347
|
e([
|
|
353
|
-
|
|
348
|
+
n({ type: Boolean })
|
|
354
349
|
], t.prototype, "isBinningDisabled");
|
|
355
350
|
e([
|
|
356
|
-
|
|
351
|
+
n({ type: Boolean })
|
|
357
352
|
], t.prototype, "isAggregationDisabled");
|
|
358
353
|
e([
|
|
359
|
-
|
|
354
|
+
n({ type: Boolean })
|
|
360
355
|
], t.prototype, "isCumulativeSumEnabled");
|
|
361
356
|
e([
|
|
362
|
-
|
|
357
|
+
n({ type: Array, reflect: !1, attribute: "slot-contents" })
|
|
363
358
|
], t.prototype, "slotContents");
|
|
364
359
|
e([
|
|
365
360
|
k()
|
|
@@ -368,22 +363,22 @@ e([
|
|
|
368
363
|
k()
|
|
369
364
|
], t.prototype, "measureColumns");
|
|
370
365
|
e([
|
|
371
|
-
|
|
366
|
+
n({ type: Number, reflect: !1, attribute: "slot-index" })
|
|
372
367
|
], t.prototype, "slotIndex");
|
|
373
368
|
e([
|
|
374
|
-
|
|
369
|
+
T("luzmo-display-settings")
|
|
375
370
|
], t.prototype, "displaySettingsElement");
|
|
376
371
|
e([
|
|
377
|
-
|
|
372
|
+
T("luzmo-slot-menu-list")
|
|
378
373
|
], t.prototype, "slotMenuListElement");
|
|
379
374
|
e([
|
|
380
|
-
|
|
375
|
+
n({ type: String, attribute: "api-url", reflect: !0 })
|
|
381
376
|
], t.prototype, "apiUrl");
|
|
382
377
|
e([
|
|
383
|
-
|
|
378
|
+
n({ type: String, attribute: "auth-key", reflect: !0 })
|
|
384
379
|
], t.prototype, "authKey");
|
|
385
380
|
e([
|
|
386
|
-
|
|
381
|
+
n({ type: String, attribute: "auth-token", reflect: !0 })
|
|
387
382
|
], t.prototype, "authToken");
|
|
388
383
|
e([
|
|
389
384
|
k()
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import '@luzmo/lucero/divider';
|
|
2
2
|
import { CSSResultArray, TemplateResult } from 'lit';
|
|
3
3
|
import './../display-settings';
|
|
4
|
-
import { GenericSlotContent, SlotName } from '@luzmo/dashboard-contents-types';
|
|
4
|
+
import { GenericSlotContent, SlotName, VizItemType } from '@luzmo/dashboard-contents-types';
|
|
5
5
|
import { LuzmoElement } from '../../utils/base';
|
|
6
|
-
import { LuzmoDisplaySettings } from './../display-settings/display-settings';
|
|
6
|
+
import { type LuzmoDisplaySettings } from './../display-settings/display-settings';
|
|
7
7
|
import './../slot-menu-list';
|
|
8
|
-
import { LuzmoSlotMenuList } from './../slot-menu-list/slot-menu-list';
|
|
8
|
+
import { type LuzmoSlotMenuList } from './../slot-menu-list/slot-menu-list';
|
|
9
|
+
import { type MeasureColumnsItem } from './types';
|
|
9
10
|
declare const LuzmoSlotMenu_base: typeof LuzmoElement & {
|
|
10
11
|
new (...args: any[]): import("../../utils/base/sized-mixin").SizedElementInterface;
|
|
11
12
|
prototype: import("../../utils/base/sized-mixin").SizedElementInterface;
|
|
@@ -28,9 +29,9 @@ export declare class LuzmoSlotMenu extends LuzmoSlotMenu_base {
|
|
|
28
29
|
/**
|
|
29
30
|
* The slot type
|
|
30
31
|
*/
|
|
31
|
-
slotType?:
|
|
32
|
+
slotType?: 'numeric' | 'categorical' | 'mixed';
|
|
32
33
|
slotName: SlotName;
|
|
33
|
-
itemType?:
|
|
34
|
+
itemType?: VizItemType;
|
|
34
35
|
/**
|
|
35
36
|
* Whether to show the drag handle and allow dragging
|
|
36
37
|
*/
|
|
@@ -56,7 +57,7 @@ export declare class LuzmoSlotMenu extends LuzmoSlotMenu_base {
|
|
|
56
57
|
isCumulativeSumEnabled?: boolean;
|
|
57
58
|
slotContents?: GenericSlotContent[];
|
|
58
59
|
private _periodOverPeriodUiType;
|
|
59
|
-
measureColumns:
|
|
60
|
+
measureColumns: MeasureColumnsItem[];
|
|
60
61
|
/**
|
|
61
62
|
* (Optional) If you only want to display a specific content of a slot, you can set the slotIndex to the index of the content you want to display.
|
|
62
63
|
*/
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { GenericSlotContent } from '@luzmo/dashboard-contents-types';
|
|
2
|
+
import { DatasetColumnMetadata } from '@utils/data-broker';
|
|
3
|
+
import type { SlotContentsChangedEventDetail } from '../droppable-slot/types';
|
|
4
|
+
export type { SlotContentsChangedEventDetail } from '../droppable-slot/types';
|
|
5
|
+
export interface MeasureColumnsItem {
|
|
6
|
+
datasetId: string;
|
|
7
|
+
datasetName: Record<string, string>;
|
|
8
|
+
columns: DatasetColumnMetadata[];
|
|
9
|
+
}
|
|
10
|
+
export interface SlotMenuActiveEventDetail {
|
|
11
|
+
datasetId: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SlotMenuHighlightEventDetail {
|
|
14
|
+
datasetId: string;
|
|
15
|
+
level: number;
|
|
16
|
+
columnId?: string;
|
|
17
|
+
formulaId?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SlotContentChangedEventDetail {
|
|
20
|
+
slotContent: SlotContentsChangedEventDetail['slotContents'][number];
|
|
21
|
+
}
|
|
22
|
+
export interface SlotListChangedEventDetail {
|
|
23
|
+
slotContents: GenericSlotContent[];
|
|
24
|
+
activeIndex: number;
|
|
25
|
+
}
|
|
@@ -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 z=require("lit"),g=require("../get-css-variable-CuDaWSjr.cjs"),y=require("@luzmo/icons"),S=require("../localize-C4zNlrwK.cjs"),h=require("lit/decorators.js"),_=require("../focusable-QLh-LlNt.cjs"),x=require("../sized-mixin-DcvJLFeo.cjs");var O={large:700};function I(n){n.animate([{backgroundColor:"var(--ds-background-selected, #E9F2FF)"},{}],{duration:O.large,easing:"cubic-bezier(0.25, 0.1, 0.25, 1.0)",iterations:1})}function E(n,t){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(n);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(n,s).enumerable})),o.push.apply(o,e)}return o}function C(n){for(var t=1;t<arguments.length;t++){var o=arguments[t]!=null?arguments[t]:{};t%2?E(Object(o),!0).forEach(function(e){g._defineProperty(n,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):E(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))})}return n}var P={top:function(t,o){return Math.abs(o.y-t.top)},right:function(t,o){return Math.abs(t.right-o.x)},bottom:function(t,o){return Math.abs(t.bottom-o.y)},left:function(t,o){return Math.abs(o.x-t.left)}},k=Symbol("closestEdge");function j(n,t){var o,e,s=t.element,m=t.input,l=t.allowedEdges,i={x:m.clientX,y:m.clientY},r=s.getBoundingClientRect(),a=l.map(function(c){return{edge:c,value:P[c](r,i)}}),d=(o=(e=a.sort(function(c,u){return c.value-u.value})[0])===null||e===void 0?void 0:e.edge)!==null&&o!==void 0?o:null;return C(C({},n),{},g._defineProperty({},k,d))}function f(n){var t;return(t=n[k])!==null&&t!==void 0?t:null}const D=':host{font-family:var(--luzmo-slot-menu-list-font-family, var(--luzmo-font-family));font-size:var(--luzmo-slot-menu-list-font-size, var(--slot-menu-list-font-size));color:var(--luzmo-slot-menu-listfont-color, var(--luzmo-font-color))}:host{margin:0;padding:0;list-style:none;max-height:var(--luzmo-slot-menu-list-max-height, var(--slot-menu-list-max-height));overflow-y:auto;border-right:var(--luzmo-slot-menu-list-border-right-width, var(--luzmo-border-width)) solid var(--luzmo-slot-menu-list-border-right-color, var(--luzmo-border-color))}:host li{position:relative;cursor:pointer}:host li:hover{background-color:var(--luzmo-slot-menu-list-background-color-hover, var(--slot-menu-list-background-color-hover))}:host li{border-bottom:var(--luzmo-slot-menu-list-border-bottom-width, var(--slot-menu-list-border-bottom-width)) solid var(--luzmo-slot-menu-list-border-bottom-color, var(--slot-menu-list-border-bottom-color))}:host .active{background-color:var(--luzmo-slot-menu-list-active-background-color, var(--slot-menu-list-active-background-color));color:var(--luzmo-slot-menu-list-active-color, var(--slot-menu-list-active-color))}:host .active:hover{background-color:var(--luzmo-slot-menu-list-active-background-color-hover, var(--slot-menu-list-active-background-color-hover))}.drop-indicator{position:absolute;left:0;right:0;height:var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height));background-color:var(--luzmo-slot-menu-list-drop-indicator-color, var(--slot-menu-list-drop-indicator-color))}.drop-indicator:before{content:"";display:block;width:100%;border:var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height)) solid var(--luzmo-slot-menu-list-drop-indicator-color, var(--slot-menu-list-drop-indicator-color));border-radius:50%;position:absolute;background:var(--luzmo-slot-menu-list-drop-indicator-background, var(--luzmo-background-color));left:calc(-.5 * (var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size)) + var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height))));top:calc(-.5 * (var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size)) + var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height))));height:var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size));width:var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size))}.drop-indicator[data-edge=top]{top:calc(-.5 * var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height)))}.drop-indicator[data-edge=bottom]{bottom:calc(-.5 * var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height)))}.draggable-slot-content{display:flex;justify-content:space-between;gap:var(--luzmo-slot-menu-label-to-icon-gap, var(--slot-menu-label-to-icon-gap));align-items:center}.draggable-slot-content .draggable-slot-content-label,.draggable-slot-content .draggable-slot-content-remove{padding-block-start:var(--luzmo-slot-menu-list-item-vertical-padding, var(--slot-menu-list-item-vertical-padding));padding-block-end:var(--luzmo-slot-menu-list-item-vertical-padding, var(--slot-menu-list-item-vertical-padding))}.draggable-slot-content .draggable-slot-content-label{padding-inline-start:var(--luzmo-slot-menu-list-item-horizontal-padding, var(--slot-menu-list-item-horizontal-padding));flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draggable-slot-content .draggable-slot-content-remove{padding-inline-end:var(--luzmo-slot-menu-list-item-horizontal-padding, var(--slot-menu-list-item-horizontal-padding));flex:0 0 auto}:host{--slot-menu-list-active-background-color: var(--luzmo-primary);--slot-menu-list-active-background-color-hover: var(--luzmo-primary-hover);--slot-menu-list-active-color: var(--luzmo-primary-inverse-color);--slot-menu-list-background-color-hover: var(--luzmo-background-color-hover);--slot-menu-list-drop-indicator-color: var(--luzmo-font-color-down);--slot-menu-list-drop-indicator-height: 2px;--slot-menu-list-drop-indicator-circle-size: 4px;--slot-menu-list-border-bottom-width: 0px;--slot-menu-list-border-bottom-color: transparent;--slot-menu-list-max-height: calc(var(--luzmo-component-height) * 4)}:host{--slot-menu-display-settings-min-width: 19rem;--slot-menu-min-height: calc(var(--luzmo-component-height) * 2);--slot-menu-font-size: var(--luzmo-font-size);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-4);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-3);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-3)}:host([size=s]){--slot-menu-display-settings-min-width: 16rem;--slot-menu-min-height: calc(var(--luzmo-component-height-s) * 2);--slot-menu-font-size: var(--luzmo-font-size-s);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-3);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-3);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-2)}:host([size=l]){--slot-menu-display-settings-min-width: 23rem;--slot-menu-min-height: calc(var(--luzmo-component-height-l) * 2);--slot-menu-font-size: var(--luzmo-font-size-l);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-5);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-3);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-4)}:host([size=xl]){--slot-menu-display-settings-min-width: 26rem;--slot-menu-min-height: calc(var(--luzmo-component-height-xl) * 2);--slot-menu-font-size: var(--luzmo-font-size-xl);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-5);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-4);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-5)}';var F=Object.defineProperty,b=(n,t,o,e)=>{for(var s=void 0,m=n.length-1,l;m>=0;m--)(l=n[m])&&(s=l(t,o,s)||s);return s&&F(t,o,s),s};class v extends x.SizedMixin(_.LuzmoElement,{validSizes:Object.values(x.ElementSizes)}){constructor(){super(...arguments),this.language="en",this.contentLanguage="en",this.slotContents=[],this.activeIndex=0,this._sendChangeEvent=()=>{this.dispatchEvent(new CustomEvent("slot-list-changed",{bubbles:!0,composed:!0,cancelable:!0,detail:{slotContents:structuredClone(this.slotContents),activeIndex:this.activeIndex}}))},this._cleanupFns=[],this._attachAll=()=>{[...this._draggableSlotContentElements].forEach(t=>{const o=this._sendChangeEvent.bind(this),e=this,s=g.draggable({element:t,onGenerateDragPreview({nativeSetDragImage:l}){g.setCustomNativeDragPreview({nativeSetDragImage:l,render({container:i}){const r=document.createElement("div");r.classList.add("drag-preview");const a={};[["borderColor","--luzmo-slot-menu-list-border-color","--luzmo-border-color"],["backgroundColor","--luzmo-slot-menu-list-background-color","--luzmo-background-color"],["color","--luzmo-slot-menu-list-font-color","--slot-menu-list-font-color"],["fontSize","--luzmo-slot-menu-list-font-size","--slot-menu-list-font-size"],["horizontalPadding","--luzmo-slot-menu-list-item-horizontal-padding","--slot-menu-list-item-horizontal-padding"],["verticalPadding","--luzmo-slot-menu-list-item-vertical-padding","--slot-menu-list-item-vertical-padding"],["borderRadius","--luzmo-slot-menu-list-border-radius","--luzmo-border-radius"],["fontFamily","--luzmo-slot-menu-list-font-family","--luzmo-font-family"]].forEach(([d,c,u])=>{const p=g.getCssVariableValue(t,c)||g.getCssVariableValue(t,u);a[d]=p}),r.textContent=t.querySelector("[data-task-content]")?.textContent??t.textContent,Object.assign(r.style,{border:`1px solid ${a.borderColor}`,backgroundColor:a.backgroundColor,borderRadius:a.borderRadius,fontFamily:a.fontFamily,fontSize:a.fontSize,color:a.color,paddingInline:`${a.horizontalPadding}`,paddingBlock:`${a.verticalPadding}`}),i.append(r)}})},getInitialData(){const l=t.parentElement;let i=0;return l&&(i=[...l.parentElement?.children??[]].indexOf(l)),{index:i}},onDragStart(){t.style.opacity="0.5"},onDrop(){t.style.opacity="1"}});this._cleanupFns.push(s);const m=g.dropTargetForElements({element:t,canDrop({source:l}){return l.element===t?!1:l?.element?.classList.contains("draggable-slot-content")},getData(l){return j({},{element:t,input:l.input,allowedEdges:["top","bottom"]})},getIsSticky(){return!0},onDragEnter({self:l}){const i=f(l.data);if(!i)return;const r=document.createElement("div");r.classList.add("drop-indicator"),r.dataset.edge=i,t.after(r)},onDrag({self:l}){const i=f(l.data);if(!i){t.nextElementSibling?.remove();return}if(t.nextElementSibling?.getAttribute("data-edge")===i)return;t.nextElementSibling?.remove();const r=document.createElement("div");r.classList.add("drop-indicator"),r.dataset.edge=i,t.after(r)},onDragLeave(){t.nextElementSibling?.remove()},onDrop({self:l,source:i}){t.nextElementSibling?.remove();const r=f(l.data),a=l.element.parentElement;if(typeof i.data.index=="number"&&a){let d=[...a.parentElement?.children??[]].indexOf(a);r==="bottom"&&i.data.index>=d&&d<(a?.parentElement?.children?.length??0)-1?d+=1:r==="top"&&d>i.data.index&&(d-=1);const c=e.activeIndex,u=i.data.index,p=d,w=e.slotContents[u];e.slotContents.splice(u,1),e.slotContents.splice(p,0,w),u===c?e.activeIndex=p:u<c&&p>=c?e.activeIndex=c-1:u>c&&p<=c&&(e.activeIndex=c+1)}r&&(I(i.element),e.requestUpdate(),o())}});this._cleanupFns.push(m)})},this._detachAll=()=>{this._cleanupFns.forEach(t=>t()),this._cleanupFns=[]}}static get styles(){return[z.unsafeCSS(D)]}willUpdate(){this._detachAll()}updated(){this._attachAll()}disconnectedCallback(){super.disconnectedCallback(),this._detachAll()}setActiveIndex(t){this.activeIndex=t,this._sendChangeEvent()}removeSlotContent(t){this.slotContents=this.slotContents.filter((o,e)=>e!==t),this.activeIndex=this.slotContents.length===0?0:Math.min(this.activeIndex,this.slotContents.length-1),this._sendChangeEvent()}render(){const t=this.slotContents.map((o,e)=>{const s=S.localize(o.label,this.contentLanguage);return z.html`<li class=${e===this.activeIndex?"active":""}>
|
|
20
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("lit"),g=require("../get-css-variable-COd1d84B.cjs"),y=require("@luzmo/icons"),S=require("../localize-C4zNlrwK.cjs"),h=require("lit/decorators.js"),_=require("../focusable-QLh-LlNt.cjs"),x=require("../sized-mixin-DcvJLFeo.cjs");var O={large:700};function I(n){n.animate([{backgroundColor:"var(--ds-background-selected, #E9F2FF)"},{}],{duration:O.large,easing:"cubic-bezier(0.25, 0.1, 0.25, 1.0)",iterations:1})}function E(n,t){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(n);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(n,s).enumerable})),o.push.apply(o,e)}return o}function C(n){for(var t=1;t<arguments.length;t++){var o=arguments[t]!=null?arguments[t]:{};t%2?E(Object(o),!0).forEach(function(e){g._defineProperty(n,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):E(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))})}return n}var P={top:function(t,o){return Math.abs(o.y-t.top)},right:function(t,o){return Math.abs(t.right-o.x)},bottom:function(t,o){return Math.abs(t.bottom-o.y)},left:function(t,o){return Math.abs(o.x-t.left)}},k=Symbol("closestEdge");function j(n,t){var o,e,s=t.element,m=t.input,l=t.allowedEdges,i={x:m.clientX,y:m.clientY},r=s.getBoundingClientRect(),a=l.map(function(c){return{edge:c,value:P[c](r,i)}}),d=(o=(e=a.sort(function(c,u){return c.value-u.value})[0])===null||e===void 0?void 0:e.edge)!==null&&o!==void 0?o:null;return C(C({},n),{},g._defineProperty({},k,d))}function f(n){var t;return(t=n[k])!==null&&t!==void 0?t:null}const D=':host{font-family:var(--luzmo-slot-menu-list-font-family, var(--luzmo-font-family));font-size:var(--luzmo-slot-menu-list-font-size, var(--slot-menu-list-font-size));color:var(--luzmo-slot-menu-listfont-color, var(--luzmo-font-color))}:host{margin:0;padding:0;list-style:none;max-height:var(--luzmo-slot-menu-list-max-height, var(--slot-menu-list-max-height));overflow-y:auto;border-right:var(--luzmo-slot-menu-list-border-right-width, var(--luzmo-border-width)) solid var(--luzmo-slot-menu-list-border-right-color, var(--luzmo-border-color))}:host li{position:relative;cursor:pointer}:host li:hover{background-color:var(--luzmo-slot-menu-list-background-color-hover, var(--slot-menu-list-background-color-hover))}:host li{border-bottom:var(--luzmo-slot-menu-list-border-bottom-width, var(--slot-menu-list-border-bottom-width)) solid var(--luzmo-slot-menu-list-border-bottom-color, var(--slot-menu-list-border-bottom-color))}:host .active{background-color:var(--luzmo-slot-menu-list-active-background-color, var(--slot-menu-list-active-background-color));color:var(--luzmo-slot-menu-list-active-color, var(--slot-menu-list-active-color))}:host .active:hover{background-color:var(--luzmo-slot-menu-list-active-background-color-hover, var(--slot-menu-list-active-background-color-hover))}.drop-indicator{position:absolute;left:0;right:0;height:var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height));background-color:var(--luzmo-slot-menu-list-drop-indicator-color, var(--slot-menu-list-drop-indicator-color))}.drop-indicator:before{content:"";display:block;width:100%;border:var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height)) solid var(--luzmo-slot-menu-list-drop-indicator-color, var(--slot-menu-list-drop-indicator-color));border-radius:50%;position:absolute;background:var(--luzmo-slot-menu-list-drop-indicator-background, var(--luzmo-background-color));left:calc(-.5 * (var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size)) + var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height))));top:calc(-.5 * (var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size)) + var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height))));height:var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size));width:var(--luzmo-slot-menu-list-drop-indicator-circle-size, var(--slot-menu-list-drop-indicator-circle-size))}.drop-indicator[data-edge=top]{top:calc(-.5 * var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height)))}.drop-indicator[data-edge=bottom]{bottom:calc(-.5 * var(--luzmo-slot-menu-list-drop-indicator-height, var(--slot-menu-list-drop-indicator-height)))}.draggable-slot-content{display:flex;justify-content:space-between;gap:var(--luzmo-slot-menu-label-to-icon-gap, var(--slot-menu-label-to-icon-gap));align-items:center}.draggable-slot-content .draggable-slot-content-label,.draggable-slot-content .draggable-slot-content-remove{padding-block-start:var(--luzmo-slot-menu-list-item-vertical-padding, var(--slot-menu-list-item-vertical-padding));padding-block-end:var(--luzmo-slot-menu-list-item-vertical-padding, var(--slot-menu-list-item-vertical-padding))}.draggable-slot-content .draggable-slot-content-label{padding-inline-start:var(--luzmo-slot-menu-list-item-horizontal-padding, var(--slot-menu-list-item-horizontal-padding));flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draggable-slot-content .draggable-slot-content-remove{padding-inline-end:var(--luzmo-slot-menu-list-item-horizontal-padding, var(--slot-menu-list-item-horizontal-padding));flex:0 0 auto}:host{--slot-menu-list-active-background-color: var(--luzmo-primary);--slot-menu-list-active-background-color-hover: var(--luzmo-primary-hover);--slot-menu-list-active-color: var(--luzmo-primary-inverse-color);--slot-menu-list-background-color-hover: var(--luzmo-background-color-hover);--slot-menu-list-drop-indicator-color: var(--luzmo-font-color-down);--slot-menu-list-drop-indicator-height: 2px;--slot-menu-list-drop-indicator-circle-size: 4px;--slot-menu-list-border-bottom-width: 0px;--slot-menu-list-border-bottom-color: transparent;--slot-menu-list-max-height: calc(var(--luzmo-component-height) * 4)}:host{--slot-menu-display-settings-min-width: 19rem;--slot-menu-min-height: calc(var(--luzmo-component-height) * 2);--slot-menu-font-size: var(--luzmo-font-size);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-4);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-3);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-3)}:host([size=s]){--slot-menu-display-settings-min-width: 16rem;--slot-menu-min-height: calc(var(--luzmo-component-height-s) * 2);--slot-menu-font-size: var(--luzmo-font-size-s);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-3);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-3);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-2)}:host([size=l]){--slot-menu-display-settings-min-width: 23rem;--slot-menu-min-height: calc(var(--luzmo-component-height-l) * 2);--slot-menu-font-size: var(--luzmo-font-size-l);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-5);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-3);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-4)}:host([size=xl]){--slot-menu-display-settings-min-width: 26rem;--slot-menu-min-height: calc(var(--luzmo-component-height-xl) * 2);--slot-menu-font-size: var(--luzmo-font-size-xl);--slot-menu-list-item-horizontal-padding: var(--luzmo-spacing-5);--slot-menu-list-item-vertical-padding: var(--luzmo-spacing-4);--slot-menu-label-to-icon-gap: var(--luzmo-spacing-5)}';var F=Object.defineProperty,b=(n,t,o,e)=>{for(var s=void 0,m=n.length-1,l;m>=0;m--)(l=n[m])&&(s=l(t,o,s)||s);return s&&F(t,o,s),s};class v extends x.SizedMixin(_.LuzmoElement,{validSizes:Object.values(x.ElementSizes)}){constructor(){super(...arguments),this.language="en",this.contentLanguage="en",this.slotContents=[],this.activeIndex=0,this._sendChangeEvent=()=>{this.dispatchEvent(new CustomEvent("slot-list-changed",{bubbles:!0,composed:!0,cancelable:!0,detail:{slotContents:structuredClone(this.slotContents),activeIndex:this.activeIndex}}))},this._cleanupFns=[],this._attachAll=()=>{[...this._draggableSlotContentElements].forEach(t=>{const o=this._sendChangeEvent.bind(this),e=this,s=g.draggable({element:t,onGenerateDragPreview({nativeSetDragImage:l}){g.setCustomNativeDragPreview({nativeSetDragImage:l,render({container:i}){const r=document.createElement("div");r.classList.add("drag-preview");const a={};[["borderColor","--luzmo-slot-menu-list-border-color","--luzmo-border-color"],["backgroundColor","--luzmo-slot-menu-list-background-color","--luzmo-background-color"],["color","--luzmo-slot-menu-list-font-color","--slot-menu-list-font-color"],["fontSize","--luzmo-slot-menu-list-font-size","--slot-menu-list-font-size"],["horizontalPadding","--luzmo-slot-menu-list-item-horizontal-padding","--slot-menu-list-item-horizontal-padding"],["verticalPadding","--luzmo-slot-menu-list-item-vertical-padding","--slot-menu-list-item-vertical-padding"],["borderRadius","--luzmo-slot-menu-list-border-radius","--luzmo-border-radius"],["fontFamily","--luzmo-slot-menu-list-font-family","--luzmo-font-family"]].forEach(([d,c,u])=>{const p=g.getCssVariableValue(t,c)||g.getCssVariableValue(t,u);a[d]=p}),r.textContent=t.querySelector("[data-task-content]")?.textContent??t.textContent,Object.assign(r.style,{border:`1px solid ${a.borderColor}`,backgroundColor:a.backgroundColor,borderRadius:a.borderRadius,fontFamily:a.fontFamily,fontSize:a.fontSize,color:a.color,paddingInline:`${a.horizontalPadding}`,paddingBlock:`${a.verticalPadding}`}),i.append(r)}})},getInitialData(){const l=t.parentElement;let i=0;return l&&(i=[...l.parentElement?.children??[]].indexOf(l)),{index:i}},onDragStart(){t.style.opacity="0.5"},onDrop(){t.style.opacity="1"}});this._cleanupFns.push(s);const m=g.dropTargetForElements({element:t,canDrop({source:l}){return l.element===t?!1:l?.element?.classList.contains("draggable-slot-content")},getData(l){return j({},{element:t,input:l.input,allowedEdges:["top","bottom"]})},getIsSticky(){return!0},onDragEnter({self:l}){const i=f(l.data);if(!i)return;const r=document.createElement("div");r.classList.add("drop-indicator"),r.dataset.edge=i,t.after(r)},onDrag({self:l}){const i=f(l.data);if(!i){t.nextElementSibling?.remove();return}if(t.nextElementSibling?.getAttribute("data-edge")===i)return;t.nextElementSibling?.remove();const r=document.createElement("div");r.classList.add("drop-indicator"),r.dataset.edge=i,t.after(r)},onDragLeave(){t.nextElementSibling?.remove()},onDrop({self:l,source:i}){t.nextElementSibling?.remove();const r=f(l.data),a=l.element.parentElement;if(typeof i.data.index=="number"&&a){let d=[...a.parentElement?.children??[]].indexOf(a);r==="bottom"&&i.data.index>=d&&d<(a?.parentElement?.children?.length??0)-1?d+=1:r==="top"&&d>i.data.index&&(d-=1);const c=e.activeIndex,u=i.data.index,p=d,w=e.slotContents[u];e.slotContents.splice(u,1),e.slotContents.splice(p,0,w),u===c?e.activeIndex=p:u<c&&p>=c?e.activeIndex=c-1:u>c&&p<=c&&(e.activeIndex=c+1)}r&&(I(i.element),e.requestUpdate(),o())}});this._cleanupFns.push(m)})},this._detachAll=()=>{this._cleanupFns.forEach(t=>t()),this._cleanupFns=[]}}static get styles(){return[z.unsafeCSS(D)]}willUpdate(){this._detachAll()}updated(){this._attachAll()}disconnectedCallback(){super.disconnectedCallback(),this._detachAll()}setActiveIndex(t){this.activeIndex=t,this._sendChangeEvent()}removeSlotContent(t){this.slotContents=this.slotContents.filter((o,e)=>e!==t),this.activeIndex=this.slotContents.length===0?0:Math.min(this.activeIndex,this.slotContents.length-1),this._sendChangeEvent()}render(){const t=this.slotContents.map((o,e)=>{const s=S.localize(o.label??{},this.contentLanguage);return z.html`<li class=${e===this.activeIndex?"active":""}>
|
|
21
21
|
<div class="draggable-slot-content">
|
|
22
22
|
<div
|
|
23
23
|
class="draggable-slot-content-label"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* SOFTWARE.
|
|
19
19
|
* */
|
|
20
20
|
import { unsafeCSS as C, html as b } from "lit";
|
|
21
|
-
import { _ as E, d as S, a as O, s as _, g as f } from "../get-css-variable-
|
|
21
|
+
import { _ as E, d as S, a as O, s as _, g as f } from "../get-css-variable-CdwF98oh.js";
|
|
22
22
|
import { luzmoIcon as I, luzmoTrashOutline as P } from "@luzmo/icons";
|
|
23
23
|
import { l as F } from "../localize-CcDpq940.js";
|
|
24
24
|
import { property as v, queryAll as j } from "lit/decorators.js";
|
|
@@ -293,7 +293,7 @@ class p extends L(D, {
|
|
|
293
293
|
render() {
|
|
294
294
|
const o = this.slotContents.map(
|
|
295
295
|
(t, e) => {
|
|
296
|
-
const s = F(t.label, this.contentLanguage);
|
|
296
|
+
const s = F(t.label ?? {}, this.contentLanguage);
|
|
297
297
|
return b`<li class=${e === this.activeIndex ? "active" : ""}>
|
|
298
298
|
<div class="draggable-slot-content">
|
|
299
299
|
<div
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CSSResultArray, TemplateResult } from 'lit';
|
|
2
|
+
import { GenericSlotContent } from '@luzmo/dashboard-contents-types';
|
|
2
3
|
import { LuzmoElement } from '../../utils/base';
|
|
3
4
|
declare const LuzmoSlotMenuList_base: typeof LuzmoElement & {
|
|
4
5
|
new (...args: any[]): import("../../utils/base/sized-mixin").SizedElementInterface;
|
|
@@ -18,7 +19,7 @@ export declare class LuzmoSlotMenuList extends LuzmoSlotMenuList_base {
|
|
|
18
19
|
*/
|
|
19
20
|
contentLanguage: string;
|
|
20
21
|
_draggableSlotContentElements: HTMLElement[];
|
|
21
|
-
slotContents:
|
|
22
|
+
slotContents: GenericSlotContent[];
|
|
22
23
|
activeIndex: number;
|
|
23
24
|
private _sendChangeEvent;
|
|
24
25
|
private _cleanupFns;
|
package/components/utils.cjs
CHANGED
|
@@ -17,4 +17,4 @@
|
|
|
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
|
|
20
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./index-CFL6gmIu.cjs"),C=require("./decompose-numeric-format-B3rVVHpO.cjs"),k=require("./en-DZcn_iz_.cjs"),T=require("./localize-C4zNlrwK.cjs"),h=require("./index-6PmXiNch.cjs"),g=require("./index-Vdyb9z2D.cjs"),f=r=>!!(r&&Object.keys(r).length>0),O=(r,e,i={})=>{if(e.hidden===!0&&!i.includeHidden||!e.id||!e.type)return null;const s=f(e.name)?e.name:{en:"Untitled"},n={datasetId:r,columnId:e.id,type:e.type,name:s};return e.description&&f(e.description)&&(n.description=e.description),e.subtype&&(n.subtype=e.subtype),e.format&&(n.format=e.format),typeof e.lowestLevel=="number"&&(n.lowestLevel=e.lowestLevel),e.expression&&(n.expression=e.expression),Array.isArray(e.duration_levels)&&e.duration_levels.length>0&&(n.duration_levels=[...e.duration_levels]),e.duration_format&&(n.duration_format=e.duration_format),Array.isArray(e.hierarchyLevels)&&e.hierarchyLevels.length>0&&(n.hierarchyLevels=e.hierarchyLevels.map(({id:d,level:a,name:l})=>({id:d,level:a,name:l}))),e.currency?.id&&e.currency.symbol&&(n.currency={id:e.currency.id,name:e.currency.name,symbol:e.currency.symbol}),n},M=(r,e,i={})=>{if(e.hidden===!0&&!i.includeHidden||!e.id||!e.type)return null;const s=f(e.name)?e.name:{en:"Untitled"},n={datasetId:r,formulaId:e.id,type:e.type,name:s};return e.description&&f(e.description)&&(n.description=e.description),e.subtype&&(n.subtype=e.subtype),e.format&&(n.format=e.format),typeof e.lowestLevel=="number"&&(n.lowestLevel=e.lowestLevel),e.expression&&(n.expression=e.expression),Array.isArray(e.duration_levels)&&e.duration_levels.length>0&&(n.duration_levels=[...e.duration_levels]),e.duration_format&&(n.duration_format=e.duration_format),e.currency?.id&&e.currency.symbol&&(n.currency={id:e.currency.id,name:e.currency.name,symbol:e.currency.symbol}),n},_=(r,e={})=>{if(!r?.id)return[];const i=[];return Array.isArray(r.columns)&&r.columns.forEach(c=>{const s=O(r.id,c,e);s&&i.push(s)}),Array.isArray(r.formulas)&&r.formulas.forEach(c=>{const s=M(r.id,c,e);s&&i.push(s)}),i},w=(r,e={})=>r.map(i=>({id:i.id,name:i.name,description:i.description,dataItems:_(i,e)})),E=async(r,e)=>{if(!Array.isArray(r)||r.length===0)throw new Error("At least one dataset ID is required");const{dataBrokerConfig:i}=e;if(!i)throw new Error("dataBrokerConfig is required");if(!i.authKey||!i.authToken)throw new Error("Both authKey and authToken are required for DataBroker configuration");if(!i.apiUrl)throw new Error("apiUrl is required for DataBroker configuration");if(typeof i.apiUrl!="string")throw new TypeError("apiUrl must be a valid string");m.dataBroker.configure(i);try{const c=await m.dataBroker.fetchDatasetsWithColumnsAndFormulas(r);return w(c)}catch(c){throw c instanceof Error&&c.message.includes("Authentication failed")?new Error("Failed to load datasets: Authentication failed. Please verify your API credentials are correct."):c}};function F(r){const e=[],i=[];Object.keys(h.slotsConfigs).forEach(t=>{t.replace("SlotsConfig","");const o=t.replace("SlotsConfig","").replaceAll(/([A-Z])/g,"-$1").toLowerCase();i.push({type:o,slotsConfig:h.slotsConfigs[t]})});const c=i.find(t=>t.type===r?.oldItemType),s=i.find(t=>t.type===r?.newItemType),n=structuredClone(s?.slotsConfig??[]);if(!s)return{type:c?.type??"bar-chart",slots:r.slots??[]};const d=structuredClone(r.slots??[]);for(const t of d){const o=c?.slotsConfig.find(A=>A.name===t.name);t.type=o?.type??t?.type}const a=d.filter(t=>t.type==="mixed").sort((t,o)=>t.order-o.order),l=n.filter(t=>t.type==="mixed").sort((t,o)=>t.order-o.order),b=d.filter(t=>t.type==="numeric").sort((t,o)=>t.order-o.order),x=n.filter(t=>t.type==="numeric").sort((t,o)=>t.order-o.order),p=[];for(const t of b)for(const o of t.content)o.key="old-measure-"+t?.name+"-"+t.content.indexOf(o),p.push(o);for(const t of a)for(const o of t.content)o.type==="numeric"&&(o.key="old-mixed-"+t?.name+"-"+t.content.indexOf(o),p.push(o));const S=[...x,...l].sort((t,o)=>n.indexOf(t)-n.indexOf(o));for(const t of p)for(const o of S)e.includes(t.key)||(o.content=o?.content??[],(o?.content?.length===0||o?.content?.length>0&&o?.canAcceptMultipleDataItems===!0)&&(o.content.push(t),e.push(t.key)));const I=d.filter(t=>t.type==="categorical").sort((t,o)=>t.order-o.order),D=n.filter(t=>t.type==="categorical").sort((t,o)=>t.order-o.order),y=[];for(const t of I)for(const o of t.content)o.key="old-dimension-"+t?.name+"-"+t.content.indexOf(o),y.push(o);for(const t of a)for(const o of t.content)o.type!=="numeric"&&(o.key="old-mixed-"+t?.name+"-"+t.content.indexOf(o),y.push(o));const v=[...D,...l].sort((t,o)=>n.indexOf(t)-n.indexOf(o));for(const t of y)if(!e.includes(t.key))for(const o of v)o&&!e.includes(t.key)&&(o.content=o?.content??[],(o?.content?.length===0||o?.content?.length>0&&o?.canAcceptMultipleDataItems===!0)&&(o.content.push(t),e.push(t.key)));let u={...r.options};return s.setInitialOptions&&(u=s?.setInitialOptions({...u})),{type:s.type??"bar-chart",slots:n.map(t=>({name:t.name,content:t.content??[]}))??[],options:u??{...r.options}}}exports.decomposeNumericFormat=C.decomposeNumericFormat;exports.formatter=k.formatter;exports.localize=T.localize;exports.getTheme=g.getTheme;exports.systemThemeIds=g.systemThemeIds;exports.convertDatasetsToDraggableItems=w;exports.loadDraggableItemsForDatasets=E;exports.switchItem=F;
|