@luzmo/analytics-components-kit 1.1.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/angular/components/interactive-viz-item.ts +41 -4
- package/angular/components/item-option-color-picker.ts +30 -3
- package/angular/components/item-option-color-range.ts +30 -3
- package/angular/components/item-option-guidelines.ts +31 -4
- package/angular/components/item-option-panel.ts +41 -4
- package/angular/components/item-option-slider.ts +41 -4
- package/angular/components/item-option.ts +41 -4
- package/angular/esm/components/interactive-viz-item.d.ts +14 -5
- package/angular/esm/components/interactive-viz-item.js +30 -4
- package/angular/esm/components/item-option-color-picker.d.ts +11 -4
- package/angular/esm/components/item-option-color-picker.js +23 -3
- package/angular/esm/components/item-option-color-range.d.ts +11 -4
- package/angular/esm/components/item-option-color-range.js +23 -3
- package/angular/esm/components/item-option-guidelines.d.ts +11 -4
- package/angular/esm/components/item-option-guidelines.js +24 -4
- package/angular/esm/components/item-option-panel.d.ts +13 -4
- package/angular/esm/components/item-option-panel.js +30 -4
- package/angular/esm/components/item-option-slider.d.ts +13 -4
- package/angular/esm/components/item-option-slider.js +30 -4
- package/angular/esm/components/item-option.d.ts +13 -4
- package/angular/esm/components/item-option.js +30 -4
- package/angular/package.json +2 -2
- package/angular/utils/option-interaction/index.d.ts +2 -0
- package/angular/utils/option-interaction/is-same-option-value.d.ts +10 -0
- package/angular/utils/option-interaction/option-interaction-controller.d.ts +54 -0
- package/angular/utils/option-interaction/tests/option-interaction-controller.test.d.ts +1 -0
- package/angular/utils/store/base-store.d.ts +9 -0
- package/angular/utils/store/tests/store-base-history.test.d.ts +1 -0
- package/components/add-to-dashboard/index.cjs +1 -1
- package/components/add-to-dashboard/index.js +1 -1
- package/components/{add-to-dashboard-NwsCPIlg.cjs → add-to-dashboard-CzIuDtAq.cjs} +1 -1
- package/components/{add-to-dashboard-NcVHlqrc.js → add-to-dashboard-DGC0_hRB.js} +1 -1
- package/components/{base-store-SgJsjLap.cjs → base-store-D3whjduR.cjs} +1 -1
- package/components/{base-store-g0dt7ru7.js → base-store-DQYj8A1W.js} +3 -0
- package/components/{chart-helpers-Dng_LGfq.js → chart-helpers-Cbl3sRra.js} +3 -2
- package/components/chart-helpers-fMnqHRzC.cjs +20 -0
- package/components/{choropleth-map-options.config-D9-u-NwX.js → choropleth-map-options.config-Blu0Z2tR.js} +1 -1
- package/components/{choropleth-map-options.config-CXDGMiSJ.cjs → choropleth-map-options.config-DwFJ00CS.cjs} +1 -1
- package/components/{color-range-utils-CUCTsRXM.js → color-range-utils-CgwRGUkg.js} +18 -18
- package/components/{color-range-utils-BCFQAeY1.cjs → color-range-utils-D8uygiMe.cjs} +1 -1
- package/components/{heat-map-options.config-ChZeslEy.js → heat-map-options.config-BQkhkLPb.js} +16 -16
- package/components/{heat-map-options.config-DiNa8NnG.cjs → heat-map-options.config-DjQkB039.cjs} +1 -1
- package/components/{heat-table-options.config-BPCszrFn.js → heat-table-options.config-CMWWTeyo.js} +1 -1
- package/components/{heat-table-options.config-BvE6coaV.cjs → heat-table-options.config-D21xtaIk.cjs} +1 -1
- package/components/index.cjs +1 -1
- package/components/index.js +9 -9
- package/components/interactive-viz-item/index.cjs +1 -1
- package/components/interactive-viz-item/index.d.ts +2 -1
- package/components/interactive-viz-item/index.js +2 -2
- package/components/interactive-viz-item/interactive-viz-item.d.ts +34 -2
- package/components/interactive-viz-item/types.d.ts +17 -0
- package/components/{interactive-viz-item-CofUkpP6.js → interactive-viz-item-BKLOmawA.js} +166 -100
- package/components/interactive-viz-item-ojdH1uk0.cjs +268 -0
- package/components/is-same-option-value-B2oyvEqT.js +42 -0
- package/components/is-same-option-value-Cf6BQcs7.cjs +20 -0
- package/components/item-option/helpers/control-markup.d.ts +7 -0
- package/components/item-option/index.cjs +1 -1
- package/components/item-option/index.d.ts +1 -1
- package/components/item-option/index.js +1 -1
- package/components/item-option/item-option.d.ts +23 -2
- package/components/item-option/types.d.ts +19 -0
- package/components/{item-option-Cgx3c08E.js → item-option-DKLRnicU.js} +182 -136
- package/components/item-option-DpLdospV.cjs +285 -0
- package/components/item-option-color-picker/index.cjs +1 -1
- package/components/item-option-color-picker/index.d.ts +1 -1
- package/components/item-option-color-picker/index.js +1 -1
- package/components/item-option-color-picker/item-option-color-picker.d.ts +17 -1
- package/components/item-option-color-picker-CNW7GsCO.cjs +37 -0
- package/components/item-option-color-picker-DDvsY7hV.js +129 -0
- package/components/item-option-color-range/index.cjs +1 -1
- package/components/item-option-color-range/index.d.ts +1 -1
- package/components/item-option-color-range/index.js +1 -1
- package/components/item-option-color-range/item-option-color-range.d.ts +20 -1
- package/components/item-option-color-range-BqSbuSZh.cjs +101 -0
- package/components/item-option-color-range-FQduqtz3.js +265 -0
- package/components/item-option-guidelines/index.cjs +1 -1
- package/components/item-option-guidelines/index.d.ts +1 -1
- package/components/item-option-guidelines/index.js +1 -1
- package/components/item-option-guidelines/item-option-guidelines.d.ts +16 -1
- package/components/{item-option-guidelines-DNJevmVD.js → item-option-guidelines-k5DwMONo.js} +132 -104
- package/components/item-option-guidelines-z9BsGR-l.cjs +138 -0
- package/components/item-option-panel/index.cjs +1 -1
- package/components/item-option-panel/index.d.ts +1 -1
- package/components/item-option-panel/index.js +1 -1
- package/components/item-option-panel/item-option-panel.d.ts +12 -1
- package/components/{item-option-panel-DHdnisRb.js → item-option-panel-BLXWIbjX.js} +18 -6
- package/components/{item-option-panel-Dl3aYBNe.cjs → item-option-panel-CU51qvgV.cjs} +6 -4
- package/components/item-option-slider/index.cjs +1 -1
- package/components/item-option-slider/index.d.ts +1 -1
- package/components/item-option-slider/index.js +1 -1
- package/components/item-option-slider/item-option-slider.d.ts +15 -2
- package/components/item-option-slider-BKtJfL3D.js +119 -0
- package/components/item-option-slider-Kz2eFBql.cjs +36 -0
- package/components/item-options-configs.cjs +1 -1
- package/components/item-options-configs.js +5 -5
- package/components/option-interaction-controller-B8S1N_Oo.js +90 -0
- package/components/option-interaction-controller-D0U-CTpZ.cjs +20 -0
- package/components/{route-map-options.config-DdCaVtIF.cjs → route-map-options.config-DER6ENky.cjs} +1 -1
- package/components/{route-map-options.config-B7vT6KG_.js → route-map-options.config-DTcS47fW.js} +1 -1
- package/components/{spike-map-options.config-DkmRZ1JZ.js → spike-map-options.config-CPYfKWoF.js} +1 -1
- package/components/{spike-map-options.config-B3hDh2qU.cjs → spike-map-options.config-DeF1Whq5.cjs} +1 -1
- package/components/utils/store.cjs +1 -1
- package/components/utils/store.js +1 -1
- package/custom-elements.json +418 -104
- package/package.json +2 -2
- package/react/components/interactive-viz-item.component.ts +11 -2
- package/react/components/item-option-color-picker.component.ts +9 -3
- package/react/components/item-option-color-range.component.ts +9 -3
- package/react/components/item-option-guidelines.component.ts +9 -3
- package/react/components/item-option-panel.component.ts +12 -3
- package/react/components/item-option-slider.component.ts +12 -3
- package/react/components/item-option.component.ts +12 -3
- package/react/esm/components/interactive-viz-item.component.d.ts +8 -2
- package/react/esm/components/interactive-viz-item.component.js +7 -1
- package/react/esm/components/item-option-color-picker.component.d.ts +6 -2
- package/react/esm/components/item-option-color-picker.component.js +6 -2
- package/react/esm/components/item-option-color-range.component.d.ts +6 -2
- package/react/esm/components/item-option-color-range.component.js +6 -2
- package/react/esm/components/item-option-guidelines.component.d.ts +6 -2
- package/react/esm/components/item-option-guidelines.component.js +6 -2
- package/react/esm/components/item-option-panel.component.d.ts +8 -2
- package/react/esm/components/item-option-panel.component.js +8 -2
- package/react/esm/components/item-option-slider.component.d.ts +8 -2
- package/react/esm/components/item-option-slider.component.js +8 -2
- package/react/esm/components/item-option.component.d.ts +8 -2
- package/react/esm/components/item-option.component.js +8 -2
- package/react/luzmo-stub.d.ts +7 -0
- package/react/package.json +2 -2
- package/standalone/add-to-dashboard.js +40 -40
- package/standalone/chunks/{chart-helpers-DsIGsaDc.js → chart-helpers-CR-EUEPf.js} +2 -2
- package/standalone/chunks/{choropleth-map-options.config-Cs4Kvr9h.js → choropleth-map-options.config-CDMjKnJD.js} +1 -1
- package/standalone/chunks/{color-range-utils-CKDpd3gZ.js → color-range-utils-BVyHBRiq.js} +1 -1
- package/standalone/chunks/de-BkB0q1Eg.js +2 -0
- package/standalone/chunks/display-settings-binning-BeLLxd3i.js +38 -0
- package/standalone/chunks/display-settings-datetime-BkeiKIVV.js +199 -0
- package/standalone/chunks/display-settings-grand-totals-BuhpQKJ6.js +26 -0
- package/standalone/chunks/display-settings-numeric-m30IYI7I.js +172 -0
- package/standalone/chunks/display-settings-period-over-period-CqDlOSRn.js +209 -0
- package/standalone/chunks/embed-Bv1ps-EM.js +260 -0
- package/standalone/chunks/en-63f7j4v7.js +2 -0
- package/standalone/chunks/en-GB-QAmXQf8W.js +2 -0
- package/standalone/chunks/en-US-63f7j4v7.js +2 -0
- package/standalone/chunks/es-Bo0jStZn.js +2 -0
- package/standalone/chunks/{filters-DKgJcQGP.js → filters-CxgBXUF1.js} +61 -61
- package/standalone/chunks/{formula-codemirror-BbyvNEVD.js → formula-codemirror-Cq94j3-f.js} +17 -17
- package/standalone/chunks/fr-Co_qVhhV.js +2 -0
- package/standalone/chunks/{heat-map-options.config-DF5kjOOe.js → heat-map-options.config-DDQMD38W.js} +1 -1
- package/standalone/chunks/{heat-table-options.config-DaePzfHG.js → heat-table-options.config-B4K0Ygug.js} +1 -1
- package/standalone/chunks/is-same-option-value-7kXNF4st.js +2 -0
- package/standalone/chunks/item-option-action-button-group-BoyqF9vt.js +35 -0
- package/standalone/chunks/item-option-base-CBcDT8MX.js +38 -0
- package/standalone/chunks/item-option-color-palette-picker-C9PGAv4V.js +22 -0
- package/standalone/chunks/item-option-color-picker-D4fVJlqF.js +19 -0
- package/standalone/chunks/item-option-color-range-BlAdTguE.js +83 -0
- package/standalone/chunks/item-option-guidelines-DMsYsHDu.js +120 -0
- package/standalone/chunks/{item-option-multi-language-field-DPPpN2qg.js → item-option-multi-language-field-NUbm1drg.js} +1 -1
- package/standalone/chunks/{item-option-number-field-CkqJjInE.js → item-option-number-field-DRp7kbHL.js} +1 -1
- package/standalone/chunks/item-option-panel-cXrRclzM.js +316 -0
- package/standalone/chunks/{item-option-picker-BnwQPT9A.js → item-option-picker-Ba09L4Cs.js} +1 -1
- package/standalone/chunks/item-option-position-picker-GEGTnhjw.js +14 -0
- package/standalone/chunks/item-option-positions-number-field-n44s1k5v.js +31 -0
- package/standalone/chunks/{item-option-radio-button-group-BkymJq3E.js → item-option-radio-button-group-3s_b1NvR.js} +1 -1
- package/standalone/chunks/item-option-slider-DtY65Gxk.js +18 -0
- package/standalone/chunks/item-option-switch-4sJaI0mx.js +12 -0
- package/standalone/chunks/{item-option-text-field-D7bkuhsv.js → item-option-text-field-Bt6Lj6kh.js} +1 -1
- package/standalone/chunks/{item-slot-picker-panel-D4BMxGs9.js → item-slot-picker-panel-BOSVFBIy.js} +43 -43
- package/standalone/chunks/load-data-fields-for-datasets-CDlut-6S.js +25 -0
- package/standalone/chunks/localized-decorator-DosMCCQo.js +2 -0
- package/standalone/chunks/{version-BW4Ixl63.js → localized-mixin-BWJj88bd.js} +1 -1
- package/standalone/chunks/nl-CQz2jrVx.js +2 -0
- package/standalone/chunks/option-interaction-controller-BuwRr21c.js +2 -0
- package/standalone/chunks/{route-map-options.config-D7FfzIiU.js → route-map-options.config-CGBkHnhM.js} +1 -1
- package/standalone/chunks/{spike-map-options.config-CZiFzDm9.js → spike-map-options.config-CSenlJ_F.js} +1 -1
- package/standalone/interactive-viz-item.js +62 -55
- package/standalone/item-grid.js +10 -10
- package/standalone/manifest.json +44 -43
- package/utils/option-interaction/index.d.ts +2 -0
- package/utils/option-interaction/is-same-option-value.d.ts +10 -0
- package/utils/option-interaction/option-interaction-controller.d.ts +54 -0
- package/utils/option-interaction/tests/option-interaction-controller.test.d.ts +1 -0
- package/utils/store/base-store.d.ts +9 -0
- package/utils/store/tests/store-base-history.test.d.ts +1 -0
- package/components/chart-helpers-ufZ6VbXs.cjs +0 -20
- package/components/interactive-viz-item-D537mo3l.cjs +0 -261
- package/components/item-option-CqGDFdPj.cjs +0 -269
- package/components/item-option-color-picker-BpPoOO2b.cjs +0 -34
- package/components/item-option-color-picker-cojuCvu5.js +0 -84
- package/components/item-option-color-range-CMBEx1fi.cjs +0 -98
- package/components/item-option-color-range-Dt7Bv06p.js +0 -217
- package/components/item-option-guidelines-Beh0DlG0.cjs +0 -135
- package/components/item-option-slider-Bo5vs6nr.js +0 -89
- package/components/item-option-slider-CyWKWr5D.cjs +0 -33
- package/standalone/chunks/color-7IgCGZKz.js +0 -2
- package/standalone/chunks/de-mdZT2W1G.js +0 -2
- package/standalone/chunks/display-settings-binning-Byffw2Kl.js +0 -38
- package/standalone/chunks/display-settings-datetime-CD52d6Sv.js +0 -199
- package/standalone/chunks/display-settings-grand-totals-Cky99LX9.js +0 -26
- package/standalone/chunks/display-settings-numeric-C9ea7Tgc.js +0 -172
- package/standalone/chunks/display-settings-period-over-period-BLSGumkD.js +0 -209
- package/standalone/chunks/embed-BfHBKhIe.js +0 -231
- package/standalone/chunks/en-CSboh17P.js +0 -2
- package/standalone/chunks/en-GB-HoXKQBOY.js +0 -2
- package/standalone/chunks/en-US-CSboh17P.js +0 -2
- package/standalone/chunks/es-Di5D8JFd.js +0 -2
- package/standalone/chunks/fr-DZku7iB9.js +0 -2
- package/standalone/chunks/item-option-action-button-group-BEAwPHVw.js +0 -35
- package/standalone/chunks/item-option-base-CRUxNhJQ.js +0 -38
- package/standalone/chunks/item-option-color-palette-picker-CBz61iZb.js +0 -22
- package/standalone/chunks/item-option-color-picker-Cr7ujQNO.js +0 -16
- package/standalone/chunks/item-option-color-range-CyJd1LZ_.js +0 -80
- package/standalone/chunks/item-option-guidelines-6NjpzS6b.js +0 -117
- package/standalone/chunks/item-option-panel-VxvWU56c.js +0 -298
- package/standalone/chunks/item-option-position-picker-Bkc4JvJX.js +0 -14
- package/standalone/chunks/item-option-positions-number-field-Dr_315TE.js +0 -31
- package/standalone/chunks/item-option-slider-l9wt7_0c.js +0 -15
- package/standalone/chunks/item-option-switch-DeihDHhM.js +0 -12
- package/standalone/chunks/load-data-fields-for-datasets-ClctSj6y.js +0 -25
- package/standalone/chunks/localized-decorator-DJVBmJVH.js +0 -2
- package/standalone/chunks/nl-CViTevL3.js +0 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./localized-decorator-DJVBmJVH.js";import{t as a}from"./luzmoTrashOutline-DXZpJx7f.js";import{a as o,c as s,n as c,r as l}from"./load-data-fields-for-datasets-ClctSj6y.js";import{t as u}from"./luzmoPlus-Dyrrz0v8.js";import{t as d}from"./luzmo-icon-markup-ByaNI6dg.js";import{n as f,u as ee}from"./data-broker-DXDyIrj_.js";import{t as p}from"./localize-DXRmGRe-.js";import{t as te}from"./v4-BxSu4gkw.js";import{html as m,ifDefined as ne,nothing as h,property as g,query as re,repeat as ie,state as _,unsafeCSS as v}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/divider.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/menu.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/field-label.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/number-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/picker.js";import{ElementSizes as y,LuzmoElement as b,SizedMixin as x}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/utils.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/badge.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/select.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/options.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tags.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/text-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/date-time-picker.js";var S=[``,``,``],ae=``;function C(e,t){let n=RegExp(`(${S.join(`|`)})`,`u`),r=[];for(let i of e.replaceAll(ae,``).split(n)){let e=S.indexOf(i);e===-1?i&&r.push(i):r.push(t[e])}return r}var w=()=>[{id:`? = ?`,key:`? = ?`,expression:`? = ?`,name:t(`equals`,{desc:`Filter expression for equals comparison`}),description:t(`equals`,{desc:`Filter expression for equals comparison`}),tiny:t(`eq`,{desc:`Short form of equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? != ?`,key:`? != ?`,expression:`? != ?`,name:t(`not equals`,{desc:`Filter expression for not equals comparison`}),description:t(`not equals`,{desc:`Filter expression for not equals comparison`}),tiny:t(`not eq`,{desc:`Short form of not equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? in ?`,key:`? in ?`,expression:`? in ?`,name:t(`is in`,{desc:`Filter expression for in comparison`}),description:t(`is in`,{desc:`Filter expression for in comparison`}),tiny:t(`is in`,{desc:`Filter expression for in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? not in ?`,key:`? not in ?`,expression:`? not in ?`,name:t(`is not in`,{desc:`Filter expression for not in comparison`}),description:t(`is not in`,{desc:`Filter expression for not in comparison`}),tiny:t(`is not in`,{desc:`Filter expression for not in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? like ?`,key:`? like ?`,expression:`? like ?`,name:t(`contains`,{desc:`Filter expression for contains comparison`}),description:t(`contains`,{desc:`Filter expression for contains comparison`}),tiny:t(`cont`,{desc:`Short form of contains comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not like ?`,key:`? not like ?`,expression:`? not like ?`,name:t(`does not contain`,{desc:`Filter expression for does not contain comparison`}),description:t(`does not contain`,{desc:`Filter expression for does not contain comparison`}),tiny:t(`not cont`,{desc:`Short form of does not contain comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? starts with ?`,key:`? starts with ?`,expression:`? starts with ?`,name:t(`starts with`,{desc:`Filter expression for starts with comparison`}),description:t(`starts with`,{desc:`Filter expression for starts with comparison`}),tiny:t(`starts with`,{desc:`Filter expression for starts with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not starts with ?`,key:`? not starts with ?`,expression:`? not starts with ?`,name:t(`does not start with`,{desc:`Filter expression for does not start with comparison`}),description:t(`does not start with`,{desc:`Filter expression for does not start with comparison`}),tiny:t(`not starts with`,{desc:`Short form of does not start with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? ends with ?`,key:`? ends with ?`,expression:`? ends with ?`,name:t(`ends with`,{desc:`Filter expression for ends with comparison`}),description:t(`ends with`,{desc:`Filter expression for ends with comparison`}),tiny:t(`ends with`,{desc:`Filter expression for ends with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not ends with ?`,key:`? not ends with ?`,expression:`? not ends with ?`,name:t(`does not end with`,{desc:`Filter expression for does not end with comparison`}),description:t(`does not end with`,{desc:`Filter expression for does not end with comparison`}),tiny:t(`not ends with`,{desc:`Short form of does not end with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? < ?`,key:`? < ?`,expression:`? < ?`,name:t(`less than`,{desc:`Filter expression for less than comparison`}),description:t(`less than`,{desc:`Filter expression for less than comparison`}),tiny:`<`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? <= ?`,key:`? <= ?`,expression:`? <= ?`,name:t(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),description:t(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),tiny:`<=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? > ?`,key:`? > ?`,expression:`? > ?`,name:t(`greater than`,{desc:`Filter expression for greater than comparison`}),description:t(`greater than`,{desc:`Filter expression for greater than comparison`}),tiny:`>`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? >= ?`,key:`? >= ?`,expression:`? >= ?`,name:t(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),description:t(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),tiny:`>=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? between ?`,key:`? between ?`,expression:`? between ?`,name:t(`is between`,{desc:`Filter expression for between comparison`}),description:t(`is between`,{desc:`Filter expression for between comparison`}),tiny:t(`between`,{desc:`Short form of between comparison in filter expression`}),type:[],subtype:[`ip_address`]},{id:`last_now`,key:`last_now`,expression:`last_now`,name:t(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),description:t(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),tiny:t(`last`,{desc:`Short form of last (x) periods in filter expression`}),type:[`datetime`]},{id:`last_available`,key:`last_available`,expression:`last_available`,name:t(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),description:t(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),tiny:t(`last available`,{desc:`Short form of last (x) available periods in filter expression`}),type:[`datetime`]},{id:`last_completed`,key:`last_completed`,expression:`last_completed`,name:t(`last completed period`,{desc:`Filter expression for last completed period`}),description:t(`last completed (period)`,{desc:`Filter expression for last completed period`}),tiny:t(`last completed`,{desc:`Short form of last completed period in filter expression`}),type:[`datetime`]},{id:`next_now`,key:`next_now`,expression:`next_now`,name:t(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),description:t(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),tiny:t(`next`,{desc:`Short form of next (x) periods in filter expression`}),type:[`datetime`]},{id:`more_than_ago`,key:`more_than_ago`,expression:`more_than_ago`,name:t(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),description:t(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),tiny:t(`more than ago`,{desc:`Short form of more than (x) periods ago in filter expression`}),type:[`datetime`]},{id:`or_more_ago`,key:`or_more_ago`,expression:`or_more_ago`,name:t(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),description:t(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),tiny:t(`or more ago`,{desc:`Short form of (x) periods or more ago in filter expression`}),type:[`datetime`]},{id:`next_full`,key:`next_full`,expression:`next_full`,name:t(`next full (period)`,{desc:`Filter expression for next full period`}),description:t(`next full (period)`,{desc:`Filter expression for next full period`}),tiny:t(`next full`,{desc:`Short form of next full period in filter expression`}),type:[`datetime`]},{id:`WTD`,key:`to_date`,expression:`to_date`,unit:4,name:t(`week to date`,{desc:`Filter expression for week to date`}),description:t(`week to date`,{desc:`Filter expression for week to date`}),tiny:t(`WTD`,{desc:`Short form of week to date in filter expression`}),type:[`datetime`]},{id:`MTD`,key:`to_date`,expression:`to_date`,unit:3,name:t(`month to date`,{desc:`Filter expression for month to date`}),description:t(`month to date`,{desc:`Filter expression for month to date`}),tiny:t(`MTD`,{desc:`Short form of month to date in filter expression`}),type:[`datetime`]},{id:`QTD`,key:`to_date`,expression:`to_date`,unit:2,name:t(`quarter to date`,{desc:`Filter expression for quarter to date`}),description:t(`quarter to date`,{desc:`Filter expression for quarter to date`}),tiny:t(`QTD`,{desc:`Short form of quarter to date in filter expression`}),type:[`datetime`]},{id:`YTD`,key:`to_date`,expression:`to_date`,unit:1,name:t(`year to date`,{desc:`Filter expression for year to date`}),description:t(`year to date`,{desc:`Filter expression for year to date`}),tiny:t(`YTD`,{desc:`Short form of year to date in filter expression`}),type:[`datetime`]},{id:`? is null`,key:`? is null`,expression:`? is null`,name:t(`is missing`,{desc:`Filter expression for is missing`}),description:t(`is missing`,{desc:`Filter expression for is missing`}),tiny:t(`missing`,{desc:`Short form of is missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]},{id:`? is not null`,key:`? is not null`,expression:`? is not null`,name:t(`is not missing`,{desc:`Filter expression for is not missing`}),description:t(`is not missing`,{desc:`Filter expression for is not missing`}),tiny:t(`not missing`,{desc:`Short form of is not missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]}],oe=(e,t,n)=>{let r=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`]);return!e&&!t?w():w().filter(i=>(e&&i.type.includes(e)||t&&i.subtype?.includes(t))&&!(n&&r.has(i.key)))},se=/* @__PURE__ */ new Set([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`]),ce=/* @__PURE__ */ new Set([`last_completed`,`next_full`]),le=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`]),ue=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),de=3,fe=32;function T(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function E(e){return T(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function pe(e){return e.length<=fe?{display:e,truncated:!1}:{display:`${e.slice(0,31)}…`,truncated:!0}}function D(e,t,n){try{return new Intl.ListFormat(e||void 0,{style:`long`,type:n}).format(t)}catch{return t.join(`, `)}}function O(e,t,n){let r=De(e,t,n),{display:i,truncated:a}=pe(r);return{label:i,full:r,truncated:a}}function me(n){return n===1?t(`1 item`,{desc:`One selected hierarchy value whose name is still loading`}):t(e`${n} items`,{desc:`Selected hierarchy values whose names are still loading`})}function he(){return t(`Some item names could not be retrieved`,{desc:`Tooltip when a hierarchy filter value is still an id after name lookup`})}function ge(e,t){return!!(t?.type===`hierarchy`&&t.datasetId&&t.fieldId&&!(T(e)&&e.name!==void 0)&&A(e))}function _e(e,t,n){let r=n?.datasetId,i=n?.fieldId;return!r||!i?[]:e.flatMap(e=>{if(!ge(e,n))return[];let a=A(e);return a?t.hierarchyLabels?.get(Ee(r,i,a))?[]:[a]:[]})}function ve(e,t,n){return n.hierarchyLabelsLoading&&t.length>0?{valueText:me(t.length),valuePending:!0}:n.hierarchyLabels&&!n.hierarchyLabelsLoading&&t.length>0&&!e.valueTooltip?{...e,valueTooltip:he()}:e}function ye(n,r,i){let a=n.map(e=>O(e,r,i)),o=a.map(e=>e.full),s=D(r.contentLanguage,o,`conjunction`);if(n.length===1){let[e]=a;return{valueText:e.label,valueTooltip:e.truncated?e.full:void 0}}let c=Math.min(de,a.length),l=a.length-c,u=a.slice(0,c).map(e=>e.label),d=a.some(e=>e.truncated),f;if(l>0){let n=D(r.contentLanguage,u,`unit`);f=t(e`${n}, and ${l} more`,{desc:`Filter values after the first few shown in a read-only sentence, e.g. "Dresses, Shoes, Shorts, and 1 more"`})}else f=D(r.contentLanguage,a.map(e=>e.label),`conjunction`);return{valueText:f,valueTooltip:l>0||d?s:void 0}}function k(e,t,n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){let t=String(e);return t.length>0?t:n}if(e&&typeof e==`object`){let n=p(e,t);if(n)return n}return n}function be(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function xe(e,t){let n=be(e,[`datasetId`,`dataset_id`]),r=be(e,[`columnId`,`column_id`]),i=be(e,[`formulaId`,`formula_id`]),a=typeof e.formula==`string`?e.formula:void 0,o=t.datasets.find(e=>e.id===n),s=o?k(o.name,t.contentLanguage,``):``;if(i){let e=o?.formulas?.find(e=>e.id===i),r=k(e?.name,t.contentLanguage,i);return{label:r,tooltip:s?`${s} · ${r}`:r,type:e?.type,subtype:e?.subtype,formula:!0,datasetId:n,fieldId:i}}if(a)return{label:a,tooltip:s?`${s} · ${a}`:a,formula:!0,datasetId:n};let c=!r&&typeof e.expression==`string`?e.expression:void 0;if(c)return{label:c,tooltip:s?`${s} · ${c}`:c,formula:!0,datasetId:n};let l=r?o?.columns?.find(e=>e.id===r):void 0,u=r??(typeof e.columnExpression==`string`?e.columnExpression:``),d=k(l?.name,t.contentLanguage,u);return{label:d,tooltip:s?`${s} · ${d}`:d,type:l?.type,subtype:l?.subtype,formula:!1,datasetId:n,fieldId:r}}function Se(e){let t=o.find(t=>t.level===e);return t?t.i18n():``}function Ce(n,r){switch(r){case 1:return n===1?t(e`${n} Year`,{desc:`Singular relative filter quantity in years`}):t(e`${n} Years`,{desc:`Plural relative filter quantity in years`});case 2:return n===1?t(e`${n} Quarter`,{desc:`Singular relative filter quantity in quarters`}):t(e`${n} Quarters`,{desc:`Plural relative filter quantity in quarters`});case 3:return n===1?t(e`${n} Month`,{desc:`Singular relative filter quantity in months`}):t(e`${n} Months`,{desc:`Plural relative filter quantity in months`});case 4:return n===1?t(e`${n} Week`,{desc:`Singular relative filter quantity in weeks`}):t(e`${n} Weeks`,{desc:`Plural relative filter quantity in weeks`});case 5:return n===1?t(e`${n} Day`,{desc:`Singular relative filter quantity in days`}):t(e`${n} Days`,{desc:`Plural relative filter quantity in days`});case 6:return n===1?t(e`${n} Hour`,{desc:`Singular relative filter quantity in hours`}):t(e`${n} Hours`,{desc:`Plural relative filter quantity in hours`});case 7:return n===1?t(e`${n} Minute`,{desc:`Singular relative filter quantity in minutes`}):t(e`${n} Minutes`,{desc:`Plural relative filter quantity in minutes`});case 8:return n===1?t(e`${n} Second`,{desc:`Singular relative filter quantity in seconds`}):t(e`${n} Seconds`,{desc:`Plural relative filter quantity in seconds`});case 9:return n===1?t(e`${n} Millisecond`,{desc:`Singular relative filter quantity in milliseconds`}):t(e`${n} Milliseconds`,{desc:`Plural relative filter quantity in milliseconds`});default:return t(e`${n}`,{desc:`Relative filter quantity`})}}function we(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;try{return new Intl.DateTimeFormat(t.contentLanguage||void 0,{dateStyle:`medium`,timeStyle:`short`,...t.timeZone?{timeZone:t.timeZone}:{}}).format(n)}catch{return e}}function Te(e){return/^\d{4}-\d{2}-\d{2}(?:T|$)/.test(e)}function Ee(e,t,n){return`${e}:${t}:${n}`}function A(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(T(e)&&(typeof e.id==`string`||typeof e.id==`number`))return String(e.id)}function De(e,t,n){if(n?.type===`hierarchy`&&n.datasetId&&n.fieldId&&!(T(e)&&e.name!==void 0)){let r=A(e),i=r===void 0?void 0:t.hierarchyLabels?.get(Ee(n.datasetId,n.fieldId,r));if(i)return i}if(typeof e==`number`&&Number.isFinite(e))return new Intl.NumberFormat(t.contentLanguage||void 0).format(e);if(typeof e==`string`)return Te(e)?we(e,t):e;if(typeof e==`boolean`)return String(e);if(T(e)){if(typeof e.parameter==`string`)return e.parameter;if(e.name!==void 0){let n=k(e.name,t.contentLanguage,``);if(n)return n}if(typeof e.id==`string`||typeof e.id==`number`)return String(e.id)}return``}function Oe(e,t){let n=w().filter(t=>t.expression===e),r=T(t)&&typeof t.unit==`number`?t.unit:void 0;return(e===`to_date`&&r!==void 0?n.find(e=>e.unit===r)??n[0]:n[0])?.tiny??e}function ke(n,r,i,a){if(le.has(n)||r==null)return{valueText:``};if(T(r)&&typeof r.parameter==`string`){let e=r.parameter;if(!E(r))return{valueText:e}}if(ue.has(n)&&E(r))return{valueText:``,valueField:xe(r,i)};if(n===`? between ?`&&Array.isArray(r)&&r.length===2){let n=O(r[0],i,a),o=O(r[1],i,a);return ve({valueText:t(e`${n.label} and ${o.label}`,{desc:`Inclusive range shown between two filter values`}),valueTooltip:n.truncated||o.truncated?t(e`${n.full} and ${o.full}`,{id:`filter-range-tooltip`,desc:`Full inclusive range shown in a tooltip`}):void 0},_e(r,i,a),i)}if(se.has(n)&&T(r))return{valueText:Ce(typeof r.quantity==`number`?r.quantity:1,r.unit)};if(ce.has(n)&&T(r))return{valueText:Se(r.unit)};if(Array.isArray(r))return r.length===0?{valueText:``}:ve(ye(r,i,a),_e(r,i,a),i);let o=O(r,i,a);return ve({valueText:o.label,valueTooltip:o.truncated?o.full:void 0},_e([r],i,a),i)}function Ae(e,t){let n=e.parameters?.[0];if(!T(n)||!E(n))return null;let r=xe(n,t),i=typeof e.expression==`string`?e.expression:``,a=e.parameters?.[1];return{field:r,expression:i?Oe(i,a):``,...ke(i,a,t,r)}}function je(e){return`condition`in e&&`filters`in e}function Me(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(Me);if(T(e)){if(typeof e.parameter==`string`||e.name!==void 0||E(e))return[];let t=A(e);return t?[t]:[]}let t=A(e);return t?[t]:[]}function Ne(e,t){let n=/* @__PURE__ */ new Map,r=e=>{if(je(e)){e.filters.forEach(r);return}let i=e.parameters?.[0];if(!T(i)||!E(i))return;let a=xe(i,t);if(a.type!==`hierarchy`||!a.datasetId||!a.fieldId)return;let o=[...new Set(Me(e.parameters?.[1]))];if(o.length===0)return;let s=`${a.datasetId}:${a.fieldId}`,c=n.get(s);c?c.ids=[.../* @__PURE__ */ new Set([...c.ids,...o])]:n.set(s,{datasetId:a.datasetId,...a.formula?{formulaId:a.fieldId}:{columnId:a.fieldId},ids:o})};return r(e),[...n.values()]}async function Pe(e,t){let n=/* @__PURE__ */ new Map;return await Promise.all(e.map(async e=>{let r={dataset_id:e.datasetId,column_id:e.columnId,formula_id:e.formulaId},i=await f.fetchData({dimensions:[r],where:[{expression:`? in ?`,parameters:[r,e.ids]}],limit:{by:e.ids.length,offset:0}}),a=e.columnId??e.formulaId??``;for(let r of i.data??[]){let i=r[0],o=i&&typeof i==`object`&&`id`in i?String(i.id):String(i),s=i&&typeof i==`object`&&`name`in i?p(i.name,t):``;s&&n.set(Ee(e.datasetId,a,o),s)}})),n}var Fe=20,j=class extends Error{constructor(e){super(e),this.name=`FilterUnrepresentableError`}},Ie=/* @__PURE__ */ new Set([`and`,`or`]),Le=[`datasetId`,`dataset_id`,`columnId`,`column_id`,`formulaId`,`formula_id`,`formula`,`columnExpression`,`value`,`ignoredItemIds`];function M(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function N(e){return!M(e)||e.condition!==void 0&&(typeof e.condition!=`string`||!Ie.has(e.condition.toLowerCase()))?!1:`filters`in e||`subGroups`in e}function P(e){return M(e)&&`expression`in e&&!(`condition`in e)}function F(e){return Le.some(t=>t in e)}function Re(e,t=!1){let n=[e.columnId!==void 0||e.column_id!==void 0,e.formulaId!==void 0||e.formula_id!==void 0,e.formula!==void 0].filter(Boolean).length;return n===1?!0:n>1?!1:e.columnExpression!==void 0||t&&e.expression!==void 0}function ze(e){return!P(e)||typeof e.expression!=`string`||e.expression.length===0||`parameters`in e||typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?!1:Re(e)}function Be(e){return!P(e)||!Array.isArray(e.parameters)?!1:!F(e)}function Ve(e){if(!(`parameters`in e))return;let t=Le.find(t=>t in e);if(t!==void 0)throw new j(`Filter leaf mixes "parameters" with the clean inline key "${t}".`)}function He(e){throw typeof e.expression!=`string`||e.expression.length===0?new j(`Clean filter leaf is missing a non-empty "expression".`):typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?new j(`Clean filter leaf "${e.expression}" is missing a "datasetId".`):new j(`Clean filter leaf "${e.expression}" must name exactly one of "columnId", "formulaId", "formula", or "columnExpression".`)}function Ue(e){return e===`where`||e===`having`}function I(e){if(e>20)throw new j(`Filter nesting exceeds the maximum depth of 20.`)}function We(e){if(e==null)return`empty`;if(!Array.isArray(e))return`unknown`;if(e.length===0)return`empty`;let t=!1,n=!1,r=!1,i=(e,a)=>{if(a>20)r=!0;else if(N(e)){Ue(e.clause)&&(n=!0);let t=[...Array.isArray(e.filters)?e.filters:[],...Array.isArray(e.subGroups)?e.subGroups:[]];for(let e of t)i(e,a+1)}else P(e)?`parameters`in e&&F(e)?r=!0:ze(e)?n=!0:Be(e)?t=!0:r=!0:r=!0};for(let t of e)i(t,1);return r?`unknown`:n&&t?`mixed`:n?`clean`:t?`canonical`:`empty`}var Ge=/* @__PURE__ */ new Set([`? is null`,`? is not null`]),Ke=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),qe=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? between ?`]),Je={"array[numeric]":`numeric[]`,"array[hierarchy]":`hierarchy[]`,"array[datetime]":`datetime[]`},Ye=/* @__PURE__ */ new Set([`level`,`lowestLevel`,`unnest`,`discretization`,`aggregation`,`index`,`include_nonoccurring`,`simplification`]);function L(e,t){return e!==`lowestLevel`&&!(t===null&&Ye.has(e))}function R(e){return structuredClone(e)}function Xe(e){let t=e.datasetId??e.dataset_id;if(typeof t!=`string`||t.length===0)throw new j(`Filter reference is missing a "datasetId".`);return t}function Ze(e){return M(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function Qe(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>it(e))),t}function $e(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest),t}function et(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>M(e)?z(e):e)),t}function tt(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&(t.level=e.level),M(e.discretization)&&(t.discretization=et(e.discretization)),e.unnest!==void 0&&(t.unnest=e.unnest),t}function nt(e,t){e.level!==void 0&&(t.level=R(e.level)),M(e.discretization)&&(t.discretization=et(e.discretization)),M(e.aggregation)&&(t.aggregation=tt(e.aggregation)),e.unnest!==void 0&&(t.unnest=R(e.unnest))}function rt(e,t){let n=e.columnId??e.column_id;if(n!==void 0)return{kind:`columnId`,value:n};let r=e.formulaId??e.formula_id;if(r!==void 0)return{kind:`formulaId`,value:r};if(e.formula!==void 0)return{kind:`formula`,value:e.formula};let i=e.columnExpression??(t?e.expression:void 0);if(i!==void 0)return{kind:`expression`,value:i}}function z(e,t=!0){let n={datasetId:Xe(e)},r=rt(e,t);return r!==void 0&&(r.kind===`expression`?n.expression=r.value:n[r.kind]=r.value),nt(e,n),n}function it(e){if(!M(e))throw new j(`Cannot emit a clean filter reference.`);let t={datasetId:Xe(e)};e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),M(e.aggregation)&&(t.aggregation=$e(e.aggregation)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest);let n=rt(e,!0);if(n===void 0)throw new j(`Cannot emit a clean filter reference: no column, formula, or expression.`);return n.kind===`expression`?t.columnExpression=n.value:t[n.kind]=n.value,t}function at(e){if(!M(e)||typeof e.parameter!=`string`||typeof e.type!=`string`)return e;let t=Je[e.type];return t===void 0?e:{...e,type:t}}function ot(e,t){return M(t)&&typeof t.parameter==`string`?!0:Array.isArray(t)?e!==`? between ?`||t.length===2:!1}function st(e,t){let n=e.expression,r=[z(e,!1)];if(!Ge.has(n)&&e.value!==void 0){let t=Ke.has(n)&&Ze(e.value);r.push(t?z(e.value):R(e.value))}let i={};typeof e.id==`string`&&(i.id=e.id),`ignoredItemIds`in e&&(i.ignore=R(e.ignoredItemIds)),t!==void 0&&(i.type=t);let a={expression:n,parameters:r};return Object.keys(i).length>0&&(a.properties=i),a}function ct(e){let{expression:t}=e;if(typeof t!=`string`||t.length===0)return null;let n=Array.isArray(e.parameters)?e.parameters:[];if(!M(n[0]))throw new j(`Cannot emit a clean filter reference for "${t}".`);let r={...it(n[0]),expression:t};if(!Ge.has(t)){let e=n[1];if(e===void 0)throw new j(`Filter "${t}" is missing its value operand.`);if(r.value=Ze(e)&&Ke.has(t)?it(e):at(R(e)),qe.has(t)&&!ot(t,r.value))throw new j(`Cannot emit an invalid clean filter value for "${t}".`)}let{properties:i}=e;return i?.id!==void 0&&(r.id=i.id),i!==void 0&&`ignore`in i&&(r.ignoredItemIds=R(i.ignore)),r}function lt(e){return N(e)}function ut(e){return Array.isArray(e.filters)?e.filters:[]}function dt(e,t){return e.properties?.type===`having`||e.properties?.type===`where`?e.properties.type:t??`where`}function B(e,t,n=1,r=/* @__PURE__ */ new Set){I(n);let i=e.clause??t;for(let t of ut(e))lt(t)?B(t,i,n+1,r):typeof t.expression==`string`&&t.expression.length>0&&r.add(dt(t,i));return r}function ft(e,t,n=1){I(n);let r=e.clause??t;if(e.condition===`or`&&B(e,r,n).size>1)throw new j(`An "or" group mixes "where" and "having" filters, which clean output cannot represent.`);for(let t of ut(e))lt(t)&&ft(t,r,n+1)}function pt(e,t,n,r=1){I(r);let i=e.clause??n,a=[];for(let n of ut(e)){if(lt(n)){let e=pt(n,t,i,r+1);e.filters.length>0&&a.push(e);continue}if(dt(n,i)!==t)continue;let e=ct(n);e&&a.push(e)}let o={condition:e.condition===`or`?`or`:`and`,filters:a};return e.id!==void 0&&B(e,i,r).size<=1&&(o.id=e.id),o}function mt(e){let t=e.clause;ft(e,t);let n=B(e,t);return n.size===0&&n.add(t??`where`),[`where`,`having`].filter(e=>n.has(e)).map(n=>({...pt(e,n,t),clause:n})).filter(e=>e.filters.length>0)}var ht=[`origin`,`datasetId`,`vizId`,`itemId`,`isDrilldown`,`type`];function gt(e){return typeof e==`string`&&e.toLowerCase()===`or`?`or`:`and`}function _t(e){return N(e)}function vt(e){if(!Array.isArray(e)||e.length===0)return[];let t=M(e[0])?e[0]:void 0,n=e.length>1?e[1]:void 0;return e.length>1?[t,n]:[t]}function yt(e){if(typeof e.expression!=`string`||e.expression.length===0)return null;let t={expression:e.expression,parameters:vt(e.parameters)};return e.properties!==void 0&&Object.keys(e.properties).length>0&&(t.properties=structuredClone(e.properties)),t}function bt(e,t){let n=e,r=t;for(let e of ht)n[e]!==void 0&&(r[e]=n[e])}function xt(e){if(!e||!e.filters)return{condition:`and`,filters:[],subGroups:[]};let t=[],n=[];for(let r of e.filters)if(_t(r))n.push(xt(r));else{let e=yt(r);e&&t.push(e)}let r={condition:gt(e.condition),filters:t,subGroups:n};return e.id!==void 0&&(r.id=e.id),bt(e,r),r}function St(e,t){return e?t?.format===`clean`?mt(e):[xt(e)]:[]}function Ct(e,t){let n={expression:typeof e.expression==`string`?e.expression:void 0,parameters:Array.isArray(e.parameters)?[...e.parameters]:[]},r=M(e.properties)?structuredClone(e.properties):{};return t!==void 0&&r.type===void 0&&(r.type=t),Object.keys(r).length>0&&(n.properties=r),n}function wt(e,t,n){if(N(e))return Tt(e,t,n);if(!M(e))return;let r=e.expression;if(Ve(e),ze(e))return st(e,t);if(F(e)&&He(e),Be(e))return Ct(e,t);throw new j(`Filter leaf "${String(r)}" matches neither a complete clean nor a complete canonical encoding.`)}function Tt(e,t,n){I(n);let r=Ue(e.clause)?e.clause:void 0,i=r??t,a=[];for(let t of Array.isArray(e.filters)?e.filters:[]){let e=wt(t,i,n+1);e!==void 0&&a.push(e)}for(let t of Array.isArray(e.subGroups)?e.subGroups:[])N(t)&&a.push(Tt(t,i,n+1));let o={condition:gt(e.condition),filters:a};return typeof e.id==`string`&&(o.id=e.id),r!==void 0&&(o.clause=r),bt(e,o),o}function Et(e){return!e||e.length===0?[]:e.filter(e=>N(e)).map(e=>Tt(e,void 0,1))}var Dt=`:host{font-family:var(--luzmo-font-family)}luzmo-select{width:100%}:host{--var:blue}`,V=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.hasLabel=!1,this.allowEmpty=!1,this.placeholder=``,this.disabled=!1,this.readonly=!1,this.quiet=!1,this.invalid=!1,this.isFormula=!1,this._expressionConfigurations=w()}static get styles(){return[v(Dt)]}_sendChangeEvent(){if(this.disabled||this.readonly)return;let e={expression:this.filter?.expression};this.filter?.parameters?.[1]?.unit&&(e.unit=this.filter?.parameters?.[1]?.unit),this.dispatchEvent(new CustomEvent(`luzmo-expression-selected`,{bubbles:!0,composed:!0,cancelable:!0,detail:e}))}setExpression(e){this._richExpression=e?.detail?.value?.[0];let t=this._expressionConfigurations.find(e=>e.id===this._richExpression),n=structuredClone(this.filter);n.expression=t?.expression,t?.unit&&(this._unit=t.unit,n?.parameters[0]&&(n.parameters[1]={unit:this._unit})),this.filter=n,this._sendChangeEvent()}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`type`),r=e.has(`subtype`),i=e.has(`isFormula`),a=oe(this.type,this.subtype,this.isFormula),o=[`YTD`,`QTD`,`MTD`,`WTD`];if(this.filter?.expression===`to_date`){let e=this.filter?.parameters[1]?.unit??1;this._unit=e,this._richExpression=o[e-1]??`YTD`}else this._richExpression=this.filter?.expression;(n||r||i||t)&&this.filter&&!this.disabled&&!this.readonly&&!a?.find(e=>e.expression===this.filter?.expression)?(this.invalid=!0,console.warn(`Warning: ${this.filter?.expression} is not valid given the type: ${this.type} and subtype: ${this.subtype}`)):this.invalid=!1,!this.filter?.expression&&!this.allowEmpty&&(this._richExpression=a?.[0]?.id,this.filter={...this.filter,expression:this._richExpression},this._sendChangeEvent())}render(){let e=oe(this.type,this.subtype,this.isFormula)?.map(e=>({value:e.id,label:e.description,shortLabel:e.tiny})),n=this.disabled||!this.filter?.expression&&!this.allowEmpty,r=m`<luzmo-field-label
|
|
2
|
+
import{i as e,n as t,r as n,t as r}from"./localized-mixin-BWJj88bd.js";import{t as i}from"./localized-decorator-DosMCCQo.js";import{t as a}from"./luzmoTrashOutline-DXZpJx7f.js";import{a as o,c as s,n as c,r as l}from"./load-data-fields-for-datasets-CDlut-6S.js";import{t as u}from"./luzmoPlus-Dyrrz0v8.js";import{t as d}from"./luzmo-icon-markup-ByaNI6dg.js";import{n as f,u as ee}from"./data-broker-DXDyIrj_.js";import{t as p}from"./localize-DXRmGRe-.js";import{t as te}from"./v4-BxSu4gkw.js";import{html as m,ifDefined as ne,nothing as h,property as g,query as re,repeat as ie,state as _,unsafeCSS as v}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/divider.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/menu.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/field-label.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/number-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/picker.js";import{ElementSizes as y,LuzmoElement as b,SizedMixin as x}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/utils.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/badge.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/select.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/options.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tags.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/text-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/date-time-picker.js";var S=[``,``,``],ae=``;function C(e,t){let n=RegExp(`(${S.join(`|`)})`,`u`),r=[];for(let i of e.replaceAll(ae,``).split(n)){let e=S.indexOf(i);e===-1?i&&r.push(i):r.push(t[e])}return r}var w=()=>[{id:`? = ?`,key:`? = ?`,expression:`? = ?`,name:n(`equals`,{desc:`Filter expression for equals comparison`}),description:n(`equals`,{desc:`Filter expression for equals comparison`}),tiny:n(`eq`,{desc:`Short form of equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? != ?`,key:`? != ?`,expression:`? != ?`,name:n(`not equals`,{desc:`Filter expression for not equals comparison`}),description:n(`not equals`,{desc:`Filter expression for not equals comparison`}),tiny:n(`not eq`,{desc:`Short form of not equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? in ?`,key:`? in ?`,expression:`? in ?`,name:n(`is in`,{desc:`Filter expression for in comparison`}),description:n(`is in`,{desc:`Filter expression for in comparison`}),tiny:n(`is in`,{desc:`Filter expression for in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? not in ?`,key:`? not in ?`,expression:`? not in ?`,name:n(`is not in`,{desc:`Filter expression for not in comparison`}),description:n(`is not in`,{desc:`Filter expression for not in comparison`}),tiny:n(`is not in`,{desc:`Filter expression for not in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? like ?`,key:`? like ?`,expression:`? like ?`,name:n(`contains`,{desc:`Filter expression for contains comparison`}),description:n(`contains`,{desc:`Filter expression for contains comparison`}),tiny:n(`cont`,{desc:`Short form of contains comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not like ?`,key:`? not like ?`,expression:`? not like ?`,name:n(`does not contain`,{desc:`Filter expression for does not contain comparison`}),description:n(`does not contain`,{desc:`Filter expression for does not contain comparison`}),tiny:n(`not cont`,{desc:`Short form of does not contain comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? starts with ?`,key:`? starts with ?`,expression:`? starts with ?`,name:n(`starts with`,{desc:`Filter expression for starts with comparison`}),description:n(`starts with`,{desc:`Filter expression for starts with comparison`}),tiny:n(`starts with`,{desc:`Filter expression for starts with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not starts with ?`,key:`? not starts with ?`,expression:`? not starts with ?`,name:n(`does not start with`,{desc:`Filter expression for does not start with comparison`}),description:n(`does not start with`,{desc:`Filter expression for does not start with comparison`}),tiny:n(`not starts with`,{desc:`Short form of does not start with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? ends with ?`,key:`? ends with ?`,expression:`? ends with ?`,name:n(`ends with`,{desc:`Filter expression for ends with comparison`}),description:n(`ends with`,{desc:`Filter expression for ends with comparison`}),tiny:n(`ends with`,{desc:`Filter expression for ends with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not ends with ?`,key:`? not ends with ?`,expression:`? not ends with ?`,name:n(`does not end with`,{desc:`Filter expression for does not end with comparison`}),description:n(`does not end with`,{desc:`Filter expression for does not end with comparison`}),tiny:n(`not ends with`,{desc:`Short form of does not end with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? < ?`,key:`? < ?`,expression:`? < ?`,name:n(`less than`,{desc:`Filter expression for less than comparison`}),description:n(`less than`,{desc:`Filter expression for less than comparison`}),tiny:`<`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? <= ?`,key:`? <= ?`,expression:`? <= ?`,name:n(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),description:n(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),tiny:`<=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? > ?`,key:`? > ?`,expression:`? > ?`,name:n(`greater than`,{desc:`Filter expression for greater than comparison`}),description:n(`greater than`,{desc:`Filter expression for greater than comparison`}),tiny:`>`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? >= ?`,key:`? >= ?`,expression:`? >= ?`,name:n(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),description:n(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),tiny:`>=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? between ?`,key:`? between ?`,expression:`? between ?`,name:n(`is between`,{desc:`Filter expression for between comparison`}),description:n(`is between`,{desc:`Filter expression for between comparison`}),tiny:n(`between`,{desc:`Short form of between comparison in filter expression`}),type:[],subtype:[`ip_address`]},{id:`last_now`,key:`last_now`,expression:`last_now`,name:n(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),description:n(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),tiny:n(`last`,{desc:`Short form of last (x) periods in filter expression`}),type:[`datetime`]},{id:`last_available`,key:`last_available`,expression:`last_available`,name:n(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),description:n(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),tiny:n(`last available`,{desc:`Short form of last (x) available periods in filter expression`}),type:[`datetime`]},{id:`last_completed`,key:`last_completed`,expression:`last_completed`,name:n(`last completed period`,{desc:`Filter expression for last completed period`}),description:n(`last completed (period)`,{desc:`Filter expression for last completed period`}),tiny:n(`last completed`,{desc:`Short form of last completed period in filter expression`}),type:[`datetime`]},{id:`next_now`,key:`next_now`,expression:`next_now`,name:n(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),description:n(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),tiny:n(`next`,{desc:`Short form of next (x) periods in filter expression`}),type:[`datetime`]},{id:`more_than_ago`,key:`more_than_ago`,expression:`more_than_ago`,name:n(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),description:n(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),tiny:n(`more than ago`,{desc:`Short form of more than (x) periods ago in filter expression`}),type:[`datetime`]},{id:`or_more_ago`,key:`or_more_ago`,expression:`or_more_ago`,name:n(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),description:n(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),tiny:n(`or more ago`,{desc:`Short form of (x) periods or more ago in filter expression`}),type:[`datetime`]},{id:`next_full`,key:`next_full`,expression:`next_full`,name:n(`next full (period)`,{desc:`Filter expression for next full period`}),description:n(`next full (period)`,{desc:`Filter expression for next full period`}),tiny:n(`next full`,{desc:`Short form of next full period in filter expression`}),type:[`datetime`]},{id:`WTD`,key:`to_date`,expression:`to_date`,unit:4,name:n(`week to date`,{desc:`Filter expression for week to date`}),description:n(`week to date`,{desc:`Filter expression for week to date`}),tiny:n(`WTD`,{desc:`Short form of week to date in filter expression`}),type:[`datetime`]},{id:`MTD`,key:`to_date`,expression:`to_date`,unit:3,name:n(`month to date`,{desc:`Filter expression for month to date`}),description:n(`month to date`,{desc:`Filter expression for month to date`}),tiny:n(`MTD`,{desc:`Short form of month to date in filter expression`}),type:[`datetime`]},{id:`QTD`,key:`to_date`,expression:`to_date`,unit:2,name:n(`quarter to date`,{desc:`Filter expression for quarter to date`}),description:n(`quarter to date`,{desc:`Filter expression for quarter to date`}),tiny:n(`QTD`,{desc:`Short form of quarter to date in filter expression`}),type:[`datetime`]},{id:`YTD`,key:`to_date`,expression:`to_date`,unit:1,name:n(`year to date`,{desc:`Filter expression for year to date`}),description:n(`year to date`,{desc:`Filter expression for year to date`}),tiny:n(`YTD`,{desc:`Short form of year to date in filter expression`}),type:[`datetime`]},{id:`? is null`,key:`? is null`,expression:`? is null`,name:n(`is missing`,{desc:`Filter expression for is missing`}),description:n(`is missing`,{desc:`Filter expression for is missing`}),tiny:n(`missing`,{desc:`Short form of is missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]},{id:`? is not null`,key:`? is not null`,expression:`? is not null`,name:n(`is not missing`,{desc:`Filter expression for is not missing`}),description:n(`is not missing`,{desc:`Filter expression for is not missing`}),tiny:n(`not missing`,{desc:`Short form of is not missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]}],oe=(e,t,n)=>{let r=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`]);return!e&&!t?w():w().filter(i=>(e&&i.type.includes(e)||t&&i.subtype?.includes(t))&&!(n&&r.has(i.key)))},se=/* @__PURE__ */ new Set([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`]),ce=/* @__PURE__ */ new Set([`last_completed`,`next_full`]),le=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`]),ue=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),de=3,fe=32;function T(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function E(e){return T(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function pe(e){return e.length<=fe?{display:e,truncated:!1}:{display:`${e.slice(0,31)}…`,truncated:!0}}function D(e,t,n){try{return new Intl.ListFormat(e||void 0,{style:`long`,type:n}).format(t)}catch{return t.join(`, `)}}function O(e,t,n){let r=De(e,t,n),{display:i,truncated:a}=pe(r);return{label:i,full:r,truncated:a}}function me(t){return t===1?n(`1 item`,{desc:`One selected hierarchy value whose name is still loading`}):n(e`${t} items`,{desc:`Selected hierarchy values whose names are still loading`})}function he(){return n(`Some item names could not be retrieved`,{desc:`Tooltip when a hierarchy filter value is still an id after name lookup`})}function ge(e,t){return!!(t?.type===`hierarchy`&&t.datasetId&&t.fieldId&&!(T(e)&&e.name!==void 0)&&A(e))}function _e(e,t,n){let r=n?.datasetId,i=n?.fieldId;return!r||!i?[]:e.flatMap(e=>{if(!ge(e,n))return[];let a=A(e);return a?t.hierarchyLabels?.get(Ee(r,i,a))?[]:[a]:[]})}function ve(e,t,n){return n.hierarchyLabelsLoading&&t.length>0?{valueText:me(t.length),valuePending:!0}:n.hierarchyLabels&&!n.hierarchyLabelsLoading&&t.length>0&&!e.valueTooltip?{...e,valueTooltip:he()}:e}function ye(t,r,i){let a=t.map(e=>O(e,r,i)),o=a.map(e=>e.full),s=D(r.contentLanguage,o,`conjunction`);if(t.length===1){let[e]=a;return{valueText:e.label,valueTooltip:e.truncated?e.full:void 0}}let c=Math.min(de,a.length),l=a.length-c,u=a.slice(0,c).map(e=>e.label),d=a.some(e=>e.truncated),f;if(l>0){let t=D(r.contentLanguage,u,`unit`);f=n(e`${t}, and ${l} more`,{desc:`Filter values after the first few shown in a read-only sentence, e.g. "Dresses, Shoes, Shorts, and 1 more"`})}else f=D(r.contentLanguage,a.map(e=>e.label),`conjunction`);return{valueText:f,valueTooltip:l>0||d?s:void 0}}function k(e,t,n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){let t=String(e);return t.length>0?t:n}if(e&&typeof e==`object`){let n=p(e,t);if(n)return n}return n}function be(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function xe(e,t){let n=be(e,[`datasetId`,`dataset_id`]),r=be(e,[`columnId`,`column_id`]),i=be(e,[`formulaId`,`formula_id`]),a=typeof e.formula==`string`?e.formula:void 0,o=t.datasets.find(e=>e.id===n),s=o?k(o.name,t.contentLanguage,``):``;if(i){let e=o?.formulas?.find(e=>e.id===i),r=k(e?.name,t.contentLanguage,i);return{label:r,tooltip:s?`${s} · ${r}`:r,type:e?.type,subtype:e?.subtype,formula:!0,datasetId:n,fieldId:i}}if(a)return{label:a,tooltip:s?`${s} · ${a}`:a,formula:!0,datasetId:n};let c=!r&&typeof e.expression==`string`?e.expression:void 0;if(c)return{label:c,tooltip:s?`${s} · ${c}`:c,formula:!0,datasetId:n};let l=r?o?.columns?.find(e=>e.id===r):void 0,u=r??(typeof e.columnExpression==`string`?e.columnExpression:``),d=k(l?.name,t.contentLanguage,u);return{label:d,tooltip:s?`${s} · ${d}`:d,type:l?.type,subtype:l?.subtype,formula:!1,datasetId:n,fieldId:r}}function Se(e){let t=o.find(t=>t.level===e);return t?t.i18n():``}function Ce(t,r){switch(r){case 1:return t===1?n(e`${t} Year`,{desc:`Singular relative filter quantity in years`}):n(e`${t} Years`,{desc:`Plural relative filter quantity in years`});case 2:return t===1?n(e`${t} Quarter`,{desc:`Singular relative filter quantity in quarters`}):n(e`${t} Quarters`,{desc:`Plural relative filter quantity in quarters`});case 3:return t===1?n(e`${t} Month`,{desc:`Singular relative filter quantity in months`}):n(e`${t} Months`,{desc:`Plural relative filter quantity in months`});case 4:return t===1?n(e`${t} Week`,{desc:`Singular relative filter quantity in weeks`}):n(e`${t} Weeks`,{desc:`Plural relative filter quantity in weeks`});case 5:return t===1?n(e`${t} Day`,{desc:`Singular relative filter quantity in days`}):n(e`${t} Days`,{desc:`Plural relative filter quantity in days`});case 6:return t===1?n(e`${t} Hour`,{desc:`Singular relative filter quantity in hours`}):n(e`${t} Hours`,{desc:`Plural relative filter quantity in hours`});case 7:return t===1?n(e`${t} Minute`,{desc:`Singular relative filter quantity in minutes`}):n(e`${t} Minutes`,{desc:`Plural relative filter quantity in minutes`});case 8:return t===1?n(e`${t} Second`,{desc:`Singular relative filter quantity in seconds`}):n(e`${t} Seconds`,{desc:`Plural relative filter quantity in seconds`});case 9:return t===1?n(e`${t} Millisecond`,{desc:`Singular relative filter quantity in milliseconds`}):n(e`${t} Milliseconds`,{desc:`Plural relative filter quantity in milliseconds`});default:return n(e`${t}`,{desc:`Relative filter quantity`})}}function we(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;try{return new Intl.DateTimeFormat(t.contentLanguage||void 0,{dateStyle:`medium`,timeStyle:`short`,...t.timeZone?{timeZone:t.timeZone}:{}}).format(n)}catch{return e}}function Te(e){return/^\d{4}-\d{2}-\d{2}(?:T|$)/.test(e)}function Ee(e,t,n){return`${e}:${t}:${n}`}function A(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(T(e)&&(typeof e.id==`string`||typeof e.id==`number`))return String(e.id)}function De(e,t,n){if(n?.type===`hierarchy`&&n.datasetId&&n.fieldId&&!(T(e)&&e.name!==void 0)){let r=A(e),i=r===void 0?void 0:t.hierarchyLabels?.get(Ee(n.datasetId,n.fieldId,r));if(i)return i}if(typeof e==`number`&&Number.isFinite(e))return new Intl.NumberFormat(t.contentLanguage||void 0).format(e);if(typeof e==`string`)return Te(e)?we(e,t):e;if(typeof e==`boolean`)return String(e);if(T(e)){if(typeof e.parameter==`string`)return e.parameter;if(e.name!==void 0){let n=k(e.name,t.contentLanguage,``);if(n)return n}if(typeof e.id==`string`||typeof e.id==`number`)return String(e.id)}return``}function Oe(e,t){let n=w().filter(t=>t.expression===e),r=T(t)&&typeof t.unit==`number`?t.unit:void 0;return(e===`to_date`&&r!==void 0?n.find(e=>e.unit===r)??n[0]:n[0])?.tiny??e}function ke(t,r,i,a){if(le.has(t)||r==null)return{valueText:``};if(T(r)&&typeof r.parameter==`string`){let e=r.parameter;if(!E(r))return{valueText:e}}if(ue.has(t)&&E(r))return{valueText:``,valueField:xe(r,i)};if(t===`? between ?`&&Array.isArray(r)&&r.length===2){let t=O(r[0],i,a),o=O(r[1],i,a);return ve({valueText:n(e`${t.label} and ${o.label}`,{desc:`Inclusive range shown between two filter values`}),valueTooltip:t.truncated||o.truncated?n(e`${t.full} and ${o.full}`,{id:`filter-range-tooltip`,desc:`Full inclusive range shown in a tooltip`}):void 0},_e(r,i,a),i)}if(se.has(t)&&T(r))return{valueText:Ce(typeof r.quantity==`number`?r.quantity:1,r.unit)};if(ce.has(t)&&T(r))return{valueText:Se(r.unit)};if(Array.isArray(r))return r.length===0?{valueText:``}:ve(ye(r,i,a),_e(r,i,a),i);let o=O(r,i,a);return ve({valueText:o.label,valueTooltip:o.truncated?o.full:void 0},_e([r],i,a),i)}function Ae(e,t){let n=e.parameters?.[0];if(!T(n)||!E(n))return null;let r=xe(n,t),i=typeof e.expression==`string`?e.expression:``,a=e.parameters?.[1];return{field:r,expression:i?Oe(i,a):``,...ke(i,a,t,r)}}function je(e){return`condition`in e&&`filters`in e}function Me(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(Me);if(T(e)){if(typeof e.parameter==`string`||e.name!==void 0||E(e))return[];let t=A(e);return t?[t]:[]}let t=A(e);return t?[t]:[]}function Ne(e,t){let n=/* @__PURE__ */ new Map,r=e=>{if(je(e)){e.filters.forEach(r);return}let i=e.parameters?.[0];if(!T(i)||!E(i))return;let a=xe(i,t);if(a.type!==`hierarchy`||!a.datasetId||!a.fieldId)return;let o=[...new Set(Me(e.parameters?.[1]))];if(o.length===0)return;let s=`${a.datasetId}:${a.fieldId}`,c=n.get(s);c?c.ids=[.../* @__PURE__ */ new Set([...c.ids,...o])]:n.set(s,{datasetId:a.datasetId,...a.formula?{formulaId:a.fieldId}:{columnId:a.fieldId},ids:o})};return r(e),[...n.values()]}async function Pe(e,t){let n=/* @__PURE__ */ new Map;return await Promise.all(e.map(async e=>{let r={dataset_id:e.datasetId,column_id:e.columnId,formula_id:e.formulaId},i=await f.fetchData({dimensions:[r],where:[{expression:`? in ?`,parameters:[r,e.ids]}],limit:{by:e.ids.length,offset:0}}),a=e.columnId??e.formulaId??``;for(let r of i.data??[]){let i=r[0],o=i&&typeof i==`object`&&`id`in i?String(i.id):String(i),s=i&&typeof i==`object`&&`name`in i?p(i.name,t):``;s&&n.set(Ee(e.datasetId,a,o),s)}})),n}var Fe=20,j=class extends Error{constructor(e){super(e),this.name=`FilterUnrepresentableError`}},Ie=/* @__PURE__ */ new Set([`and`,`or`]),Le=[`datasetId`,`dataset_id`,`columnId`,`column_id`,`formulaId`,`formula_id`,`formula`,`columnExpression`,`value`,`ignoredItemIds`];function M(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function N(e){return!M(e)||e.condition!==void 0&&(typeof e.condition!=`string`||!Ie.has(e.condition.toLowerCase()))?!1:`filters`in e||`subGroups`in e}function P(e){return M(e)&&`expression`in e&&!(`condition`in e)}function F(e){return Le.some(t=>t in e)}function Re(e,t=!1){let n=[e.columnId!==void 0||e.column_id!==void 0,e.formulaId!==void 0||e.formula_id!==void 0,e.formula!==void 0].filter(Boolean).length;return n===1?!0:n>1?!1:e.columnExpression!==void 0||t&&e.expression!==void 0}function ze(e){return!P(e)||typeof e.expression!=`string`||e.expression.length===0||`parameters`in e||typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?!1:Re(e)}function Be(e){return!P(e)||!Array.isArray(e.parameters)?!1:!F(e)}function Ve(e){if(!(`parameters`in e))return;let t=Le.find(t=>t in e);if(t!==void 0)throw new j(`Filter leaf mixes "parameters" with the clean inline key "${t}".`)}function He(e){throw typeof e.expression!=`string`||e.expression.length===0?new j(`Clean filter leaf is missing a non-empty "expression".`):typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?new j(`Clean filter leaf "${e.expression}" is missing a "datasetId".`):new j(`Clean filter leaf "${e.expression}" must name exactly one of "columnId", "formulaId", "formula", or "columnExpression".`)}function Ue(e){return e===`where`||e===`having`}function I(e){if(e>20)throw new j(`Filter nesting exceeds the maximum depth of 20.`)}function We(e){if(e==null)return`empty`;if(!Array.isArray(e))return`unknown`;if(e.length===0)return`empty`;let t=!1,n=!1,r=!1,i=(e,a)=>{if(a>20)r=!0;else if(N(e)){Ue(e.clause)&&(n=!0);let t=[...Array.isArray(e.filters)?e.filters:[],...Array.isArray(e.subGroups)?e.subGroups:[]];for(let e of t)i(e,a+1)}else P(e)?`parameters`in e&&F(e)?r=!0:ze(e)?n=!0:Be(e)?t=!0:r=!0:r=!0};for(let t of e)i(t,1);return r?`unknown`:n&&t?`mixed`:n?`clean`:t?`canonical`:`empty`}var Ge=/* @__PURE__ */ new Set([`? is null`,`? is not null`]),Ke=/* @__PURE__ */ new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),qe=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? between ?`]),Je={"array[numeric]":`numeric[]`,"array[hierarchy]":`hierarchy[]`,"array[datetime]":`datetime[]`},Ye=/* @__PURE__ */ new Set([`level`,`lowestLevel`,`unnest`,`discretization`,`aggregation`,`index`,`include_nonoccurring`,`simplification`]);function L(e,t){return e!==`lowestLevel`&&!(t===null&&Ye.has(e))}function R(e){return structuredClone(e)}function Xe(e){let t=e.datasetId??e.dataset_id;if(typeof t!=`string`||t.length===0)throw new j(`Filter reference is missing a "datasetId".`);return t}function Ze(e){return M(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function Qe(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>it(e))),t}function $e(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest),t}function et(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>M(e)?z(e):e)),t}function tt(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&(t.level=e.level),M(e.discretization)&&(t.discretization=et(e.discretization)),e.unnest!==void 0&&(t.unnest=e.unnest),t}function nt(e,t){e.level!==void 0&&(t.level=R(e.level)),M(e.discretization)&&(t.discretization=et(e.discretization)),M(e.aggregation)&&(t.aggregation=tt(e.aggregation)),e.unnest!==void 0&&(t.unnest=R(e.unnest))}function rt(e,t){let n=e.columnId??e.column_id;if(n!==void 0)return{kind:`columnId`,value:n};let r=e.formulaId??e.formula_id;if(r!==void 0)return{kind:`formulaId`,value:r};if(e.formula!==void 0)return{kind:`formula`,value:e.formula};let i=e.columnExpression??(t?e.expression:void 0);if(i!==void 0)return{kind:`expression`,value:i}}function z(e,t=!0){let n={datasetId:Xe(e)},r=rt(e,t);return r!==void 0&&(r.kind===`expression`?n.expression=r.value:n[r.kind]=r.value),nt(e,n),n}function it(e){if(!M(e))throw new j(`Cannot emit a clean filter reference.`);let t={datasetId:Xe(e)};e.level!==void 0&&L(`level`,e.level)&&(t.level=e.level),M(e.discretization)&&(t.discretization=Qe(e.discretization)),M(e.aggregation)&&(t.aggregation=$e(e.aggregation)),e.unnest!==void 0&&L(`unnest`,e.unnest)&&(t.unnest=e.unnest);let n=rt(e,!0);if(n===void 0)throw new j(`Cannot emit a clean filter reference: no column, formula, or expression.`);return n.kind===`expression`?t.columnExpression=n.value:t[n.kind]=n.value,t}function at(e){if(!M(e)||typeof e.parameter!=`string`||typeof e.type!=`string`)return e;let t=Je[e.type];return t===void 0?e:{...e,type:t}}function ot(e,t){return M(t)&&typeof t.parameter==`string`?!0:Array.isArray(t)?e!==`? between ?`||t.length===2:!1}function st(e,t){let n=e.expression,r=[z(e,!1)];if(!Ge.has(n)&&e.value!==void 0){let t=Ke.has(n)&&Ze(e.value);r.push(t?z(e.value):R(e.value))}let i={};typeof e.id==`string`&&(i.id=e.id),`ignoredItemIds`in e&&(i.ignore=R(e.ignoredItemIds)),t!==void 0&&(i.type=t);let a={expression:n,parameters:r};return Object.keys(i).length>0&&(a.properties=i),a}function ct(e){let{expression:t}=e;if(typeof t!=`string`||t.length===0)return null;let n=Array.isArray(e.parameters)?e.parameters:[];if(!M(n[0]))throw new j(`Cannot emit a clean filter reference for "${t}".`);let r={...it(n[0]),expression:t};if(!Ge.has(t)){let e=n[1];if(e===void 0)throw new j(`Filter "${t}" is missing its value operand.`);if(r.value=Ze(e)&&Ke.has(t)?it(e):at(R(e)),qe.has(t)&&!ot(t,r.value))throw new j(`Cannot emit an invalid clean filter value for "${t}".`)}let{properties:i}=e;return i?.id!==void 0&&(r.id=i.id),i!==void 0&&`ignore`in i&&(r.ignoredItemIds=R(i.ignore)),r}function lt(e){return N(e)}function ut(e){return Array.isArray(e.filters)?e.filters:[]}function dt(e,t){return e.properties?.type===`having`||e.properties?.type===`where`?e.properties.type:t??`where`}function B(e,t,n=1,r=/* @__PURE__ */ new Set){I(n);let i=e.clause??t;for(let t of ut(e))lt(t)?B(t,i,n+1,r):typeof t.expression==`string`&&t.expression.length>0&&r.add(dt(t,i));return r}function ft(e,t,n=1){I(n);let r=e.clause??t;if(e.condition===`or`&&B(e,r,n).size>1)throw new j(`An "or" group mixes "where" and "having" filters, which clean output cannot represent.`);for(let t of ut(e))lt(t)&&ft(t,r,n+1)}function pt(e,t,n,r=1){I(r);let i=e.clause??n,a=[];for(let n of ut(e)){if(lt(n)){let e=pt(n,t,i,r+1);e.filters.length>0&&a.push(e);continue}if(dt(n,i)!==t)continue;let e=ct(n);e&&a.push(e)}let o={condition:e.condition===`or`?`or`:`and`,filters:a};return e.id!==void 0&&B(e,i,r).size<=1&&(o.id=e.id),o}function mt(e){let t=e.clause;ft(e,t);let n=B(e,t);return n.size===0&&n.add(t??`where`),[`where`,`having`].filter(e=>n.has(e)).map(n=>({...pt(e,n,t),clause:n})).filter(e=>e.filters.length>0)}var ht=[`origin`,`datasetId`,`vizId`,`itemId`,`isDrilldown`,`type`];function gt(e){return typeof e==`string`&&e.toLowerCase()===`or`?`or`:`and`}function _t(e){return N(e)}function vt(e){if(!Array.isArray(e)||e.length===0)return[];let t=M(e[0])?e[0]:void 0,n=e.length>1?e[1]:void 0;return e.length>1?[t,n]:[t]}function yt(e){if(typeof e.expression!=`string`||e.expression.length===0)return null;let t={expression:e.expression,parameters:vt(e.parameters)};return e.properties!==void 0&&Object.keys(e.properties).length>0&&(t.properties=structuredClone(e.properties)),t}function bt(e,t){let n=e,r=t;for(let e of ht)n[e]!==void 0&&(r[e]=n[e])}function xt(e){if(!e||!e.filters)return{condition:`and`,filters:[],subGroups:[]};let t=[],n=[];for(let r of e.filters)if(_t(r))n.push(xt(r));else{let e=yt(r);e&&t.push(e)}let r={condition:gt(e.condition),filters:t,subGroups:n};return e.id!==void 0&&(r.id=e.id),bt(e,r),r}function St(e,t){return e?t?.format===`clean`?mt(e):[xt(e)]:[]}function Ct(e,t){let n={expression:typeof e.expression==`string`?e.expression:void 0,parameters:Array.isArray(e.parameters)?[...e.parameters]:[]},r=M(e.properties)?structuredClone(e.properties):{};return t!==void 0&&r.type===void 0&&(r.type=t),Object.keys(r).length>0&&(n.properties=r),n}function wt(e,t,n){if(N(e))return Tt(e,t,n);if(!M(e))return;let r=e.expression;if(Ve(e),ze(e))return st(e,t);if(F(e)&&He(e),Be(e))return Ct(e,t);throw new j(`Filter leaf "${String(r)}" matches neither a complete clean nor a complete canonical encoding.`)}function Tt(e,t,n){I(n);let r=Ue(e.clause)?e.clause:void 0,i=r??t,a=[];for(let t of Array.isArray(e.filters)?e.filters:[]){let e=wt(t,i,n+1);e!==void 0&&a.push(e)}for(let t of Array.isArray(e.subGroups)?e.subGroups:[])N(t)&&a.push(Tt(t,i,n+1));let o={condition:gt(e.condition),filters:a};return typeof e.id==`string`&&(o.id=e.id),r!==void 0&&(o.clause=r),bt(e,o),o}function Et(e){return!e||e.length===0?[]:e.filter(e=>N(e)).map(e=>Tt(e,void 0,1))}var Dt=`:host{font-family:var(--luzmo-font-family)}luzmo-select{width:100%}:host{--var:blue}`,V=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.hasLabel=!1,this.allowEmpty=!1,this.placeholder=``,this.disabled=!1,this.readonly=!1,this.quiet=!1,this.invalid=!1,this.isFormula=!1,this._expressionConfigurations=w()}static get styles(){return[v(Dt)]}_sendChangeEvent(){if(this.disabled||this.readonly)return;let e={expression:this.filter?.expression};this.filter?.parameters?.[1]?.unit&&(e.unit=this.filter?.parameters?.[1]?.unit),this.dispatchEvent(new CustomEvent(`luzmo-expression-selected`,{bubbles:!0,composed:!0,cancelable:!0,detail:e}))}setExpression(e){this._richExpression=e?.detail?.value?.[0];let t=this._expressionConfigurations.find(e=>e.id===this._richExpression),n=structuredClone(this.filter);n.expression=t?.expression,t?.unit&&(this._unit=t.unit,n?.parameters[0]&&(n.parameters[1]={unit:this._unit})),this.filter=n,this._sendChangeEvent()}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`type`),r=e.has(`subtype`),i=e.has(`isFormula`),a=oe(this.type,this.subtype,this.isFormula),o=[`YTD`,`QTD`,`MTD`,`WTD`];if(this.filter?.expression===`to_date`){let e=this.filter?.parameters[1]?.unit??1;this._unit=e,this._richExpression=o[e-1]??`YTD`}else this._richExpression=this.filter?.expression;(n||r||i||t)&&this.filter&&!this.disabled&&!this.readonly&&!a?.find(e=>e.expression===this.filter?.expression)?(this.invalid=!0,console.warn(`Warning: ${this.filter?.expression} is not valid given the type: ${this.type} and subtype: ${this.subtype}`)):this.invalid=!1,!this.filter?.expression&&!this.allowEmpty&&(this._richExpression=a?.[0]?.id,this.filter={...this.filter,expression:this._richExpression},this._sendChangeEvent())}render(){let e=oe(this.type,this.subtype,this.isFormula)?.map(e=>({value:e.id,label:e.description,shortLabel:e.tiny})),t=this.disabled||!this.filter?.expression&&!this.allowEmpty,r=m`<luzmo-field-label
|
|
3
3
|
for="expression"
|
|
4
4
|
size=${this.size}
|
|
5
|
-
>${this.label??
|
|
6
|
-
>`,i=this.hasLabel?this.placeholder??
|
|
5
|
+
>${this.label??n(`Select an expression`,{desc:`Label for expression picker`})}</luzmo-field-label
|
|
6
|
+
>`,i=this.hasLabel?this.placeholder??n(`Select...`):this.placeholder||this.label||n(`Filter expression`,{desc:`Accessible label for expression picker`});return m`${this.hasLabel?r:``}
|
|
7
7
|
<luzmo-select
|
|
8
8
|
label=${i}
|
|
9
9
|
id="expression"
|
|
@@ -12,29 +12,29 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
12
12
|
.quiet=${this.quiet}
|
|
13
13
|
selects="single"
|
|
14
14
|
.language=${this.language}
|
|
15
|
-
?disabled=${
|
|
15
|
+
?disabled=${t}
|
|
16
16
|
.readonly=${this.readonly}
|
|
17
17
|
?invalid=${this.invalid}
|
|
18
18
|
.options=${e}
|
|
19
19
|
.value=${[this._richExpression]}
|
|
20
20
|
@change=${this.setExpression}
|
|
21
21
|
>
|
|
22
|
-
</luzmo-select>`}};r([g({type:String,reflect:!0})],V.prototype,`filter`,void 0),r([g({type:Boolean,attribute:`has-label`,reflect:!0})],V.prototype,`hasLabel`,void 0),r([g({type:String,reflect:!0})],V.prototype,`label`,void 0),r([g({type:Boolean,attribute:`allow-empty`,reflect:!0})],V.prototype,`allowEmpty`,void 0),r([g({type:String,attribute:`placeholder`,reflect:!0})],V.prototype,`placeholder`,void 0),r([g({type:Boolean,attribute:`disabled`,reflect:!0})],V.prototype,`disabled`,void 0),r([g({type:Boolean,reflect:!0})],V.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],V.prototype,`quiet`,void 0),r([g({type:String,attribute:`type`,reflect:!0})],V.prototype,`type`,void 0),r([g({type:String,attribute:`subtype`,reflect:!0})],V.prototype,`subtype`,void 0),r([g({type:Boolean,attribute:`invalid`,reflect:!0})],V.prototype,`invalid`,void 0),r([g({type:Boolean,attribute:`is-formula`,reflect:!0})],V.prototype,`isFormula`,void 0),r([_()],V.prototype,`_richExpression`,void 0),r([_()],V.prototype,`_unit`,void 0),V=r([i()],V),customElements.get(`luzmo-filter-expression-picker`)||customElements.define(`luzmo-filter-expression-picker`,V);var Ot=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`? between ?`,`YTD`,`QTD`,`MTD`,`WTD`,`to_date`,`last_available`,`last_completed`,`last_now`,`more_than_ago`,`or_more_ago`,`next_now`,`next_full`]),kt=/* @__PURE__ */ new Set([`? length = ?`,`? length >= ?`,`? length <= ?`]),At=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? includes all ?`,`? includes any ?`,`? includes only ?`]);function H(e,t){return!e||e===`spatial`||!t||Ot.has(t)?[]:kt.has(t)?[`numeric`]:e===`numeric`||e===`array[numeric]`?At.has(t)?[`array[numeric]`]:[`numeric`]:e===`datetime`||e===`array[datetime]`?At.has(t)?[`array[datetime]`,`datetime`]:[`datetime`,`array[datetime]`]:e===`hierarchy`||e===`array[hierarchy]`?At.has(t)?[`array[hierarchy]`]:[`hierarchy`]:[]}var jt={numeric:()=>t(`Numeric`,{id:`filter-parameter-type-numeric`,desc:`Numeric filter parameter type`}),datetime:()=>t(`Datetime`,{id:`filter-parameter-type-datetime`,desc:`Datetime filter parameter type`}),hierarchy:()=>t(`Hierarchy`,{id:`filter-parameter-type-hierarchy`,desc:`Hierarchy filter parameter type`}),"array[numeric]":()=>t(`Numeric[]`,{id:`filter-parameter-type-numeric-list`,desc:`List of numeric values filter parameter type`}),"array[datetime]":()=>t(`Datetime[]`,{id:`filter-parameter-type-datetime-list`,desc:`List of datetime values filter parameter type`}),"array[hierarchy]":()=>t(`Hierarchy[]`,{id:`filter-parameter-type-hierarchy-list`,desc:`List of hierarchy values filter parameter type`})};function Mt(e){return jt[e]?.()??e}function U(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.parameter==`string`&&typeof t.type==`string`&&`value`in t}function W(e){return`metadata.${e.trim().replace(/^metadata\./i,``)}`}function Nt(e,t,n){let r;if(t.startsWith(`array[`))r=Array.isArray(n)?structuredClone(n):[];else if(t===`numeric`)r=typeof n==`number`&&Number.isFinite(n)?n:0;else if(t===`datetime`){let e=n instanceof Date?n:new Date(typeof n==`string`?n:Date.now());r=Number.isNaN(e.getTime())?(/* @__PURE__ */ new Date()).toISOString():e.toISOString()}else r=typeof n==`string`?n:``;return{parameter:W(e),type:t,value:r}}function G(e,t){if(!t||t===`? is null`||t===`? is not null`)return;let[n]=H(e,t);if(n?.startsWith(`array[`))return[];if(n===`numeric`)return 0;if(n===`datetime`)return(/* @__PURE__ */ new Date()).toISOString();if(n===`hierarchy`)return``}var Pt=`:host{min-width:0;max-width:100%;color:var(--luzmo-font-color);font-family:var(--luzmo-font-family);font-size:var(--luzmo-font-size);align-items:center;display:inline-flex;position:relative}.parameter-control{align-items:center;gap:var(--filter-parameter-picker-gap);min-width:0;max-width:100%;display:flex}.create-row{align-items:center;gap:var(--filter-parameter-picker-panel-gap);display:flex}.parameter-trigger,.create-parameter{flex:none}.parameter-trigger{font-weight:var(--luzmo-font-weight-bold)}.selected-parameter-tags{--luzmo-tag-group-item-margin-block:0;min-width:0;max-width:100%}.selected-parameter{--luzmo-tag-max-inline-size:min(180px, 100%);min-width:0;max-width:100%}.parameter-panel{min-inline-size:var(--filter-parameter-picker-panel-min-width);padding:var(--filter-parameter-picker-panel-padding);display:block}.parameter-name-input{--luzmo-text-field-width:100%;flex:1;min-inline-size:0}.panel-content{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.validation-message{color:var(--filter-parameter-picker-error-color);font-size:var(--luzmo-font-size-s)}.parameter-options{max-block-size:var(--filter-parameter-picker-options-max-height);overflow-y:auto}.parameter-type-footer{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.parameter-type{justify-content:flex-end;align-items:center;gap:var(--luzmo-spacing-1);font-size:var(--filter-parameter-picker-type-font-size);font-weight:var(--luzmo-font-weight);display:flex}.parameter-type-icon{justify-content:center;align-items:center;min-block-size:24px;min-inline-size:24px;display:inline-flex}:host{--filter-parameter-picker-gap:var(--luzmo-spacing-2);--filter-parameter-picker-control-size:var(--luzmo-component-height);--filter-parameter-picker-panel-min-width:220px;--filter-parameter-picker-options-max-height:240px;--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-s);--filter-parameter-picker-panel-background:var(--luzmo-background-color);--filter-parameter-picker-panel-border:var(--luzmo-border-color);--filter-parameter-picker-error-color:var(--luzmo-negative-color)}:host([size=xxs]),:host([size=xs]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-2);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-2);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=s]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-l)}:host([size=xxl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-5);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-5);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xl)}`,K=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.parameters=[],this.allowedTypes=[],this.disabled=!1,this.readonly=!1,this.quiet=!1,this._open=!1,this._newParameterName=``,this._handleDocumentClick=e=>{this._open&&!e.composedPath().includes(this)&&this._close()}}static get styles(){return[...super.styles??[],v(Pt)]}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this._handleDocumentClick)}disconnectedCallback(){document.removeEventListener(`click`,this._handleDocumentClick),super.disconnectedCallback()}get _selectableParameters(){return this.parameters.filter(e=>this.allowedTypes.includes(e.type))}get _parameterOptions(){return this._selectableParameters.map(e=>({label:e.parameter.replace(/^metadata\./i,``),value:e.parameter}))}get _parameterType(){return this.selectedParameter?.type??this.allowedTypes[0]}get _duplicateName(){if(!this._hasParameterName)return!1;let e=W(this._newParameterName).toLowerCase();return this.parameters.some(t=>W(t.parameter).toLowerCase()===e)}get _triggerIconSize(){return{xxs:`xs`,xs:`xs`,s:`xs`,m:`xs`,l:`s`,xl:`m`,xxl:`l`}[this.size]??`xs`}get _hasParameterName(){return W(this._newParameterName).replace(/^metadata\./i,``).trim().length>0}_dispatchSelected(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-selected`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchCreated(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-created`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchRemoved(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-removed`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}async _handleTriggerClick(){this.disabled||this.readonly||this.allowedTypes.length===0||!this._overlay||(this._open=!0,this._newParameterName=``,this._overlay.open=!0,await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus())}_handleTriggerKeydown(e){(e.key===`Enter`||e.key===` `||e.key===`Space`)&&(e.preventDefault(),this._handleTriggerClick())}_handleOpened(){this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleClosed(){this._open=!1,this._newParameterName=``}_close(){this._overlay&&(this._overlay.open=!1),this._handleClosed(),this._triggerElement?.focusElement.focus()}_handlePanelKeydown(e){e.key===`Escape`&&(e.preventDefault(),this._close())}_handleNameInput(e){this._newParameterName=e.currentTarget.value}_selectParameter(e){this.disabled||this.readonly||(this.selectedParameter=e,this._dispatchSelected(e),this._close())}_handleOptionsChange(e){e.stopPropagation();let[t]=e.detail.value,n=this._selectableParameters.find(e=>e.parameter===t);n&&this._selectParameter(n)}async _handleCreateParameter(){if(this.disabled||this.readonly)return;let e=this.allowedTypes[0];if(!e||!this._hasParameterName||this._duplicateName)return;let t=Nt(this._newParameterName,e,this.currentValue);this.parameters=[...this.parameters,t],this._newParameterName=``,this._dispatchCreated(t),await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleNameKeydown(e){e.key===`Enter`?(e.preventDefault(),this._handleCreateParameter()):e.key===`ArrowDown`&&this._optionsElement&&(e.preventDefault(),this._optionsElement.focus())}_handleRemoveParameter(){this.disabled||this.readonly||!this.selectedParameter||this._dispatchRemoved(this.selectedParameter)}_renderParameterType(){let e=this._parameterType;if(!e)return h;let n=Mt(e);return m`
|
|
22
|
+
</luzmo-select>`}};t([g({type:String,reflect:!0})],V.prototype,`filter`,void 0),t([g({type:Boolean,attribute:`has-label`,reflect:!0})],V.prototype,`hasLabel`,void 0),t([g({type:String,reflect:!0})],V.prototype,`label`,void 0),t([g({type:Boolean,attribute:`allow-empty`,reflect:!0})],V.prototype,`allowEmpty`,void 0),t([g({type:String,attribute:`placeholder`,reflect:!0})],V.prototype,`placeholder`,void 0),t([g({type:Boolean,attribute:`disabled`,reflect:!0})],V.prototype,`disabled`,void 0),t([g({type:Boolean,reflect:!0})],V.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],V.prototype,`quiet`,void 0),t([g({type:String,attribute:`type`,reflect:!0})],V.prototype,`type`,void 0),t([g({type:String,attribute:`subtype`,reflect:!0})],V.prototype,`subtype`,void 0),t([g({type:Boolean,attribute:`invalid`,reflect:!0})],V.prototype,`invalid`,void 0),t([g({type:Boolean,attribute:`is-formula`,reflect:!0})],V.prototype,`isFormula`,void 0),t([_()],V.prototype,`_richExpression`,void 0),t([_()],V.prototype,`_unit`,void 0),V=t([i()],V),customElements.get(`luzmo-filter-expression-picker`)||customElements.define(`luzmo-filter-expression-picker`,V);var Ot=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`? between ?`,`YTD`,`QTD`,`MTD`,`WTD`,`to_date`,`last_available`,`last_completed`,`last_now`,`more_than_ago`,`or_more_ago`,`next_now`,`next_full`]),kt=/* @__PURE__ */ new Set([`? length = ?`,`? length >= ?`,`? length <= ?`]),At=/* @__PURE__ */ new Set([`? in ?`,`? not in ?`,`? includes all ?`,`? includes any ?`,`? includes only ?`]);function H(e,t){return!e||e===`spatial`||!t||Ot.has(t)?[]:kt.has(t)?[`numeric`]:e===`numeric`||e===`array[numeric]`?At.has(t)?[`array[numeric]`]:[`numeric`]:e===`datetime`||e===`array[datetime]`?At.has(t)?[`array[datetime]`,`datetime`]:[`datetime`,`array[datetime]`]:e===`hierarchy`||e===`array[hierarchy]`?At.has(t)?[`array[hierarchy]`]:[`hierarchy`]:[]}var jt={numeric:()=>n(`Numeric`,{id:`filter-parameter-type-numeric`,desc:`Numeric filter parameter type`}),datetime:()=>n(`Datetime`,{id:`filter-parameter-type-datetime`,desc:`Datetime filter parameter type`}),hierarchy:()=>n(`Hierarchy`,{id:`filter-parameter-type-hierarchy`,desc:`Hierarchy filter parameter type`}),"array[numeric]":()=>n(`Numeric[]`,{id:`filter-parameter-type-numeric-list`,desc:`List of numeric values filter parameter type`}),"array[datetime]":()=>n(`Datetime[]`,{id:`filter-parameter-type-datetime-list`,desc:`List of datetime values filter parameter type`}),"array[hierarchy]":()=>n(`Hierarchy[]`,{id:`filter-parameter-type-hierarchy-list`,desc:`List of hierarchy values filter parameter type`})};function Mt(e){return jt[e]?.()??e}function U(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.parameter==`string`&&typeof t.type==`string`&&`value`in t}function W(e){return`metadata.${e.trim().replace(/^metadata\./i,``)}`}function Nt(e,t,n){let r;if(t.startsWith(`array[`))r=Array.isArray(n)?structuredClone(n):[];else if(t===`numeric`)r=typeof n==`number`&&Number.isFinite(n)?n:0;else if(t===`datetime`){let e=n instanceof Date?n:new Date(typeof n==`string`?n:Date.now());r=Number.isNaN(e.getTime())?(/* @__PURE__ */ new Date()).toISOString():e.toISOString()}else r=typeof n==`string`?n:``;return{parameter:W(e),type:t,value:r}}function G(e,t){if(!t||t===`? is null`||t===`? is not null`)return;let[n]=H(e,t);if(n?.startsWith(`array[`))return[];if(n===`numeric`)return 0;if(n===`datetime`)return(/* @__PURE__ */ new Date()).toISOString();if(n===`hierarchy`)return``}var Pt=`:host{min-width:0;max-width:100%;color:var(--luzmo-font-color);font-family:var(--luzmo-font-family);font-size:var(--luzmo-font-size);align-items:center;display:inline-flex;position:relative}.parameter-control{align-items:center;gap:var(--filter-parameter-picker-gap);min-width:0;max-width:100%;display:flex}.create-row{align-items:center;gap:var(--filter-parameter-picker-panel-gap);display:flex}.parameter-trigger,.create-parameter{flex:none}.parameter-trigger{font-weight:var(--luzmo-font-weight-bold)}.selected-parameter-tags{--luzmo-tag-group-item-margin-block:0;min-width:0;max-width:100%}.selected-parameter{--luzmo-tag-max-inline-size:min(180px, 100%);min-width:0;max-width:100%}.parameter-panel{min-inline-size:var(--filter-parameter-picker-panel-min-width);padding:var(--filter-parameter-picker-panel-padding);display:block}.parameter-name-input{--luzmo-text-field-width:100%;flex:1;min-inline-size:0}.panel-content{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.validation-message{color:var(--filter-parameter-picker-error-color);font-size:var(--luzmo-font-size-s)}.parameter-options{max-block-size:var(--filter-parameter-picker-options-max-height);overflow-y:auto}.parameter-type-footer{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.parameter-type{justify-content:flex-end;align-items:center;gap:var(--luzmo-spacing-1);font-size:var(--filter-parameter-picker-type-font-size);font-weight:var(--luzmo-font-weight);display:flex}.parameter-type-icon{justify-content:center;align-items:center;min-block-size:24px;min-inline-size:24px;display:inline-flex}:host{--filter-parameter-picker-gap:var(--luzmo-spacing-2);--filter-parameter-picker-control-size:var(--luzmo-component-height);--filter-parameter-picker-panel-min-width:220px;--filter-parameter-picker-options-max-height:240px;--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-s);--filter-parameter-picker-panel-background:var(--luzmo-background-color);--filter-parameter-picker-panel-border:var(--luzmo-border-color);--filter-parameter-picker-error-color:var(--luzmo-negative-color)}:host([size=xxs]),:host([size=xs]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-2);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-2);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=s]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-l)}:host([size=xxl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-5);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-5);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xl)}`,K=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.parameters=[],this.allowedTypes=[],this.disabled=!1,this.readonly=!1,this.quiet=!1,this._open=!1,this._newParameterName=``,this._handleDocumentClick=e=>{this._open&&!e.composedPath().includes(this)&&this._close()}}static get styles(){return[...super.styles??[],v(Pt)]}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this._handleDocumentClick)}disconnectedCallback(){document.removeEventListener(`click`,this._handleDocumentClick),super.disconnectedCallback()}get _selectableParameters(){return this.parameters.filter(e=>this.allowedTypes.includes(e.type))}get _parameterOptions(){return this._selectableParameters.map(e=>({label:e.parameter.replace(/^metadata\./i,``),value:e.parameter}))}get _parameterType(){return this.selectedParameter?.type??this.allowedTypes[0]}get _duplicateName(){if(!this._hasParameterName)return!1;let e=W(this._newParameterName).toLowerCase();return this.parameters.some(t=>W(t.parameter).toLowerCase()===e)}get _triggerIconSize(){return{xxs:`xs`,xs:`xs`,s:`xs`,m:`xs`,l:`s`,xl:`m`,xxl:`l`}[this.size]??`xs`}get _hasParameterName(){return W(this._newParameterName).replace(/^metadata\./i,``).trim().length>0}_dispatchSelected(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-selected`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchCreated(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-created`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchRemoved(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-removed`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}async _handleTriggerClick(){this.disabled||this.readonly||this.allowedTypes.length===0||!this._overlay||(this._open=!0,this._newParameterName=``,this._overlay.open=!0,await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus())}_handleTriggerKeydown(e){(e.key===`Enter`||e.key===` `||e.key===`Space`)&&(e.preventDefault(),this._handleTriggerClick())}_handleOpened(){this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleClosed(){this._open=!1,this._newParameterName=``}_close(){this._overlay&&(this._overlay.open=!1),this._handleClosed(),this._triggerElement?.focusElement.focus()}_handlePanelKeydown(e){e.key===`Escape`&&(e.preventDefault(),this._close())}_handleNameInput(e){this._newParameterName=e.currentTarget.value}_selectParameter(e){this.disabled||this.readonly||(this.selectedParameter=e,this._dispatchSelected(e),this._close())}_handleOptionsChange(e){e.stopPropagation();let[t]=e.detail.value,n=this._selectableParameters.find(e=>e.parameter===t);n&&this._selectParameter(n)}async _handleCreateParameter(){if(this.disabled||this.readonly)return;let e=this.allowedTypes[0];if(!e||!this._hasParameterName||this._duplicateName)return;let t=Nt(this._newParameterName,e,this.currentValue);this.parameters=[...this.parameters,t],this._newParameterName=``,this._dispatchCreated(t),await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleNameKeydown(e){e.key===`Enter`?(e.preventDefault(),this._handleCreateParameter()):e.key===`ArrowDown`&&this._optionsElement&&(e.preventDefault(),this._optionsElement.focus())}_handleRemoveParameter(){this.disabled||this.readonly||!this.selectedParameter||this._dispatchRemoved(this.selectedParameter)}_renderParameterType(){let e=this._parameterType;if(!e)return h;let t=Mt(e);return m`
|
|
23
23
|
<div class="parameter-type-footer">
|
|
24
24
|
<luzmo-divider class="parameter-type-divider" size="s"></luzmo-divider>
|
|
25
25
|
<div class="parameter-type">
|
|
26
|
-
<span>${
|
|
27
|
-
<span class="parameter-type-icon" tabindex="0" role="img" aria-label=${
|
|
26
|
+
<span>${n(`Parameter type:`,{desc:`Label preceding the type of the filter parameter`})}</span>
|
|
27
|
+
<span class="parameter-type-icon" tabindex="0" role="img" aria-label=${t}>
|
|
28
28
|
<luzmo-icon
|
|
29
29
|
aria-hidden="true"
|
|
30
30
|
.icon=${c({type:e},`s`)}
|
|
31
31
|
size="s"
|
|
32
32
|
></luzmo-icon>
|
|
33
|
-
<luzmo-tooltip self-managed placement="top" .size=${this.size}>${
|
|
33
|
+
<luzmo-tooltip self-managed placement="top" .size=${this.size}>${t}</luzmo-tooltip>
|
|
34
34
|
</span>
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
|
-
`}render(){let e=this.selectedParameter?.parameter.replace(/^metadata\./i,``),
|
|
37
|
+
`}render(){let e=this.selectedParameter?.parameter.replace(/^metadata\./i,``),t=!this._hasParameterName||this._duplicateName;return m`
|
|
38
38
|
<div class="parameter-control">
|
|
39
39
|
${this.selectedParameter?m`
|
|
40
40
|
<luzmo-tags class="selected-parameter-tags">
|
|
@@ -45,7 +45,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
45
45
|
treatment="fill"
|
|
46
46
|
?deletable=${!this.disabled&&!this.readonly}
|
|
47
47
|
?disabled=${this.disabled}
|
|
48
|
-
aria-label=${
|
|
48
|
+
aria-label=${n(`Remove parameter`,{desc:`Detach a parameter from a filter`})}
|
|
49
49
|
@delete=${this._handleRemoveParameter}
|
|
50
50
|
>
|
|
51
51
|
${e}
|
|
@@ -58,8 +58,8 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
58
58
|
size=${this.size}
|
|
59
59
|
?quiet=${this.quiet||!this.selectedParameter}
|
|
60
60
|
.variant=${this.selectedParameter?`primary`:`neutral`}
|
|
61
|
-
aria-label=${
|
|
62
|
-
.label=${
|
|
61
|
+
aria-label=${n(`Use parameter`,{desc:`Open the filter parameter picker`})}
|
|
62
|
+
.label=${n(`Use parameter`,{desc:`Open the filter parameter picker`})}
|
|
63
63
|
aria-haspopup="dialog"
|
|
64
64
|
aria-disabled=${this.readonly?`true`:`false`}
|
|
65
65
|
aria-expanded=${this._open?`true`:`false`}
|
|
@@ -81,7 +81,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
81
81
|
class="parameter-panel"
|
|
82
82
|
size=${this.size}
|
|
83
83
|
role="dialog"
|
|
84
|
-
aria-label=${
|
|
84
|
+
aria-label=${n(`Filter parameters`,{desc:`Filter parameter picker dialog label`})}
|
|
85
85
|
@keydown=${this._handlePanelKeydown}
|
|
86
86
|
>
|
|
87
87
|
<div class="panel-content">
|
|
@@ -90,8 +90,8 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
90
90
|
id="parameter-name"
|
|
91
91
|
class="parameter-name-input"
|
|
92
92
|
size=${this.size}
|
|
93
|
-
.label=${
|
|
94
|
-
.placeholder=${
|
|
93
|
+
.label=${n(`Parameter name`,{desc:`Name for a new filter parameter`})}
|
|
94
|
+
.placeholder=${n(`New parameter…`,{desc:`Placeholder of the new filter parameter name field`})}
|
|
95
95
|
.invalid=${this._duplicateName}
|
|
96
96
|
.value=${this._newParameterName}
|
|
97
97
|
@input=${this._handleNameInput}
|
|
@@ -101,19 +101,19 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
101
101
|
class="create-parameter"
|
|
102
102
|
size=${this.size}
|
|
103
103
|
variant="primary"
|
|
104
|
-
?disabled=${
|
|
104
|
+
?disabled=${t}
|
|
105
105
|
@click=${this._handleCreateParameter}
|
|
106
106
|
>
|
|
107
|
-
${
|
|
107
|
+
${n(`Add`,{desc:`Create a new filter parameter`})}
|
|
108
108
|
</luzmo-button>
|
|
109
109
|
</div>
|
|
110
110
|
${this._duplicateName?m`<div class="validation-message" role="alert">
|
|
111
|
-
${
|
|
111
|
+
${n(`A parameter with this name already exists.`,{desc:`Duplicate filter parameter name error`})}
|
|
112
112
|
</div>`:h}
|
|
113
113
|
${this._parameterOptions.length>0?m`<luzmo-options
|
|
114
114
|
class="parameter-options"
|
|
115
115
|
size=${this.size}
|
|
116
|
-
.label=${
|
|
116
|
+
.label=${n(`Available parameters`,{desc:`Accessible label of the filter parameter list`})}
|
|
117
117
|
.options=${this._parameterOptions}
|
|
118
118
|
.value=${this.selectedParameter?[this.selectedParameter.parameter]:[]}
|
|
119
119
|
@change=${this._handleOptionsChange}
|
|
@@ -123,8 +123,8 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
123
123
|
</luzmo-popover>
|
|
124
124
|
</luzmo-overlay>
|
|
125
125
|
</div>
|
|
126
|
-
`}};
|
|
127
|
-
aria-label=${
|
|
126
|
+
`}};t([g({attribute:!1})],K.prototype,`parameters`,void 0),t([g({attribute:!1})],K.prototype,`allowedTypes`,void 0),t([g({attribute:!1})],K.prototype,`selectedParameter`,void 0),t([g({attribute:!1})],K.prototype,`currentValue`,void 0),t([g({type:Boolean,reflect:!0})],K.prototype,`disabled`,void 0),t([g({type:Boolean,reflect:!0})],K.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],K.prototype,`quiet`,void 0),t([_()],K.prototype,`_open`,void 0),t([_()],K.prototype,`_newParameterName`,void 0),t([re(`luzmo-overlay`)],K.prototype,`_overlay`,void 0),t([re(`.parameter-trigger`)],K.prototype,`_triggerElement`,void 0),t([re(`.parameter-options`)],K.prototype,`_optionsElement`,void 0),K=t([i()],K),typeof customElements<`u`&&!customElements.get(`luzmo-filter-parameter-picker`)&&customElements.define(`luzmo-filter-parameter-picker`,K);var Ft=`:host{flex-direction:row;min-width:0;max-width:100%;display:flex}luzmo-text-field{min-width:var(--luzmo-filter-value-picker-control-min-width,var(--filter-value-picker-control-min-width));max-width:100%}luzmo-filter-value-picker-datetime,luzmo-filter-value-picker-hierarchy,luzmo-filter-value-picker-numeric{flex:1;min-width:0;max-width:100%}:host{--filter-value-picker-control-min-width:0}`,It=`:host{gap:var(--luzmo-filter-value-picker-datetime-gap,var(--filter-value-picker-datetime-gap));flex-flow:row;width:100%;min-width:0;max-width:100%;display:flex}luzmo-date-time-picker{--luzmo-date-time-picker-min-width:var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));flex:auto;min-width:0;max-width:100%}luzmo-number-field{flex:0 1 var(--luzmo-filter-value-picker-datetime-quantity-width,var(--filter-value-picker-datetime-quantity-width));min-width:0;max-width:100%}luzmo-picker{flex:1 1 var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));min-width:0;max-width:100%}:host{--filter-value-picker-datetime-gap:var(--luzmo-spacing-3);--filter-value-picker-datetime-control-min-width:5rem;--filter-value-picker-datetime-quantity-width:4.5rem}:host([size=s]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-2)}:host([size=m]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-value-picker-datetime-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1))}:host([size=xl]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-4)}`,q=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1}static get styles(){return[v(It)]}willUpdate(e){super.willUpdate(e),e.get(`filter`)&&([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(this.filter?.expression)?this.filter.parameters[1]={quantity:this.filter?.parameters?.[1]?.quantity??1,unit:this.filter?.parameters?.[1]?.unit??1}:[`last_completed`,`next_full`,`to_date`].includes(this.filter?.expression)?this.filter.parameters[1]={unit:this.filter?.parameters?.[1]?.unit??1}:this.filter.parameters[1]=typeof this.filter.parameters[1]==`string`?this.filter.parameters[1]:(/* @__PURE__ */ new Date()).toISOString())}_sendChangeEvent(){this.filter.parameters=[{...this.filter?.parameters?.[0]},this._value],this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setDate(e){this.readonly||this.disabled||(this._value=e.detail.value,this._value!==this.filter?.parameters?.[1]&&this._sendChangeEvent())}setUnit(e){if(this.readonly||this.disabled)return;let t=o.find(t=>t.key===e?.target?.value)?.level;this.filter?.parameters?.[1]?.unit!==t&&(this._value={unit:t??1,quantity:this.filter?.parameters?.[1]?.quantity??1},this._sendChangeEvent())}setQuantity(e){if(this.readonly||this.disabled)return;let t=e?.target?.value;this.filter?.parameters?.[1]?.quantity!==t&&(this._value={quantity:t,unit:this.filter?.parameters?.[1]?.unit??1},this._sendChangeEvent())}renderDatePicker(){let e=`second`;return this.filter?.parameters?.[0]?.lowestLevel>4&&(e=this.filter?.parameters?.[0]?.lowestLevel===5?`day`:this.filter?.parameters?.[0]?.lowestLevel===6?`hour`:this.filter?.parameters?.[0]?.lowestLevel===7?`minute`:`second`),m`<luzmo-date-time-picker
|
|
127
|
+
aria-label=${n(`Filter date`,{desc:`Aria label for filter date picker`})}
|
|
128
128
|
.size=${this.size}
|
|
129
129
|
.quiet=${this.quiet}
|
|
130
130
|
.readonly=${this.readonly}
|
|
@@ -134,7 +134,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
134
134
|
@change=${this.setDate}
|
|
135
135
|
.value=${this.filter?.parameters?.[1]}
|
|
136
136
|
></luzmo-date-time-picker>`}renderQuantityField(){return m`<luzmo-number-field
|
|
137
|
-
label=${
|
|
137
|
+
label=${n(`Quantity`,{desc:`Label for quantity number field`})}
|
|
138
138
|
.size=${this.size}
|
|
139
139
|
.quiet=${this.quiet}
|
|
140
140
|
.readonly=${this.readonly}
|
|
@@ -144,18 +144,18 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
144
144
|
@change=${this.setQuantity}
|
|
145
145
|
></luzmo-number-field>`}renderUnitPicker(){let e=o.map(e=>m`<luzmo-menu-item .value=${e.key}>
|
|
146
146
|
${e.i18n()}
|
|
147
|
-
</luzmo-menu-item>`),
|
|
148
|
-
.label=${
|
|
147
|
+
</luzmo-menu-item>`),t=o.find(e=>e.level===this.filter?.parameters?.[1]?.unit)?.key??o?.[0]?.key;return m`<luzmo-picker
|
|
148
|
+
.label=${n(`Time unit`,{desc:`Aria label for time unit picker`})}
|
|
149
149
|
.size=${this.size}
|
|
150
150
|
.quiet=${this.quiet}
|
|
151
151
|
.readonly=${this.readonly}
|
|
152
152
|
.disabled=${this.disabled}
|
|
153
|
-
.value=${
|
|
153
|
+
.value=${t}
|
|
154
154
|
@change=${this.setUnit}
|
|
155
155
|
variant="highlight"
|
|
156
156
|
>${e}</luzmo-picker
|
|
157
|
-
>`}render(){let e=this.filter?.expression;return[`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(e)?m`${this.renderQuantityField()}${this.renderUnitPicker()}`:[`last_completed`,`next_full`].includes(e)?this.renderUnitPicker():this.renderDatePicker()}};
|
|
158
|
-
label=${
|
|
157
|
+
>`}render(){let e=this.filter?.expression;return[`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(e)?m`${this.renderQuantityField()}${this.renderUnitPicker()}`:[`last_completed`,`next_full`].includes(e)?this.renderUnitPicker():this.renderDatePicker()}};t([g({type:String,attribute:`content-language`,reflect:!0})],q.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],q.prototype,`timeZone`,void 0),t([g({type:Object,reflect:!1})],q.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],q.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],q.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],q.prototype,`disabled`,void 0),q=t([i()],q),customElements.get(`luzmo-filter-value-picker-datetime`)||customElements.define(`luzmo-filter-value-picker-datetime`,q);var Lt=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-select,luzmo-text-field{min-width:var(--luzmo-filter-value-picker-hierarchy-control-min-width,var(--filter-value-picker-hierarchy-control-min-width));flex:auto;max-width:100%}.missing-value{color:var(--luzmo-filter-value-picker-hierarchy-missing-value-color,#767676)}:host{--filter-value-picker-hierarchy-control-min-width:0}`,Rt=5e3,J=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._hierarchyValues=[],this._retrieving=!1,this._search=``,this._error=null,this._pending=!1,this._allValuesRetrieved=!1,this._hierarchyRequestGeneration=0,this._runningQueries=[]}static get styles(){return[v(Lt)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),f.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`),n=t?.expression,r=t?.parameters?.[0],i=this.filter?.parameters?.[0],a=(r?.columnId||r?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||r?.datasetId!==i?.datasetId;this.filter?.parameters?.[1]!==this._lastResolvedOutput&&(this._lastResolutionKey=void 0),a&&(this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1),a&&([`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter?.expression)||![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(n))&&(this._hierarchyValues=[],this._allValuesRetrieved=!1),[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter.expression)&&this._hierarchyValues.length===0&&this._restoreCachedFirstPage()}}updated(e){if(super.updated(e),!e.has(`filter`)||!this.filter)return;let t=e.get(`filter`)?.expression,n=[`? = ?`,`? != ?`].includes(this.filter.expression)&&t!==void 0&&![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(t);n&&this._hierarchyValues.length>0?this._resolveSingleSelectValue():n&&!this._retrieving&&queueMicrotask(()=>{[`? = ?`,`? != ?`].includes(this.filter?.expression)&&this._hierarchyValues.length===0&&!this._retrieving&&this._fetchHierarchyValues(0,!0)})}_buildHierarchyQuery(e=0,t=this._search){let n=this.filter?.parameters?.[0];if(!n?.datasetId||!n.columnId&&!n.formulaId)return null;let r={column_id:n.columnId,formula_id:n.formulaId,dataset_id:n.datasetId},i={dimensions:[r],where:[],order:[{...r,order:`asc`}],limit:{by:Rt,offset:e}};return t&&i.where.push({expression:`? like ?`,parameters:[r,t]}),i}_getValues(e){return e&&Array.isArray(e.data)?e.data.map(e=>e[0]):[]}_applyHierarchyResult(e,t,n){let r=this._getValues(e);n||(this._allValuesRetrieved=r.length<Rt),this._hierarchyValues=t>0?[...this._hierarchyValues,...r]:r}_restoreCachedFirstPage(){let e=this._buildHierarchyQuery(0,``);if(!e)return!1;let t=f.getCachedData(e);return t?(this._applyHierarchyResult(t,0,``),this._retrieving=!1,this._error=null,!0):!1}_getMemberLabel(e){let t=p(e?.name,this.contentLanguage,{allowEmpty:!0});return typeof t==`string`?t:``}_findExactMember(e){return this._hierarchyValues.find(t=>String(t?.id)===e||this._getMemberLabel(t)===e)}_resolveSingleSelectValue(){if(![`? = ?`,`? != ?`].includes(this.filter?.expression)||this._hierarchyValues.length===0)return;let e=this.filter?.parameters?.[1];if(typeof e!=`string`&&typeof e!=`number`)return;let t=String(e),n=this._findExactMember(t),r=t.toLocaleLowerCase(this.contentLanguage),i=n??this._hierarchyValues.find(e=>String(e?.id).toLocaleLowerCase(this.contentLanguage).includes(r)||this._getMemberLabel(e).toLocaleLowerCase(this.contentLanguage).includes(r)),a=(n??i??this._hierarchyValues[0])?.id;if(typeof a!=`string`&&typeof a!=`number`)return;let o=this.filter.parameters[0],s=[o.datasetId,o.columnId??o.formulaId,this.filter.expression,String(e),String(a)].join(`|`);s!==this._lastResolutionKey&&(this._lastResolutionKey=s,this._lastResolvedOutput=a,this._value=a,this.filter={...this.filter,parameters:[{...this.filter.parameters[0]},a]},this._sendChangeEvent())}async _fetchHierarchyValues(e=0,t=!1){let n=this._search;if(!n&&this._allValuesRetrieved||e===0&&!n&&(this._restoreCachedFirstPage()||this._hierarchyValues.length>0)){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let r=this.filter.parameters[0],i=r.columnId,a=r.formulaId,o=r.datasetId;if(!i&&!a){this._retrieving=!1,this._error=`Missing column id or formula id`;return}if(!o){this._retrieving=!1,this._error=`Missing dataset id`;return}let s=this._buildHierarchyQuery(e,n);if(!s)return;let c=this._hierarchyRequestGeneration;this._pending=t,this._retrieving=!0,this._error=null;let l=new AbortController,u=new Promise((e,t)=>{f.fetchData(s).then(e).catch(t),l.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),t({status:`aborted`})})}),d={promise:u,abortController:l};this._runningQueries.push(d);try{let r=await u;if(c!==this._hierarchyRequestGeneration)return;this._applyHierarchyResult(r,e,n),t&&!n&&this._resolveSingleSelectValue()}catch(e){if(c!==this._hierarchyRequestGeneration||e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._hierarchyValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==u),c===this._hierarchyRequestGeneration&&(this._pending=!1,this._retrieving=!1)}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setHierarchy(e){if(this.readonly||this.disabled)return;let t;t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:[`? = ?`,`? != ?`].includes(this.filter?.expression)?e?.detail?.value?.[0]:e?.target?.value,this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},this._value]},this._sendChangeEvent())}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._hierarchyValues.length-1&&this._fetchHierarchyValues(this._hierarchyValues.length)}renderTextField(){return m`<luzmo-text-field
|
|
158
|
+
label=${n(`Filter value`,{desc:`Label for filter value text field`})}
|
|
159
159
|
.size=${this.size}
|
|
160
160
|
.quiet=${this.quiet}
|
|
161
161
|
.readonly=${this.readonly}
|
|
@@ -163,7 +163,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
163
163
|
@change=${this.setHierarchy}
|
|
164
164
|
@input=${this.setHierarchy}
|
|
165
165
|
.value=${this.filter?.parameters?.[1]??``}
|
|
166
|
-
></luzmo-text-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchHierarchyValues()},500))}resetSearchString(){this._search=``,this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1,this._restoreCachedFirstPage()}onOpened(){this._fetchHierarchyValues()}_getSelectedOptionValue(){let e=this.filter?.parameters?.[1];return typeof e!=`string`&&typeof e!=`number`?e:this._findExactMember(String(e))?.id??e}renderHierarchyPicker(){if(this._error)return m`<div class="error" role="alert">Error: ${this._error}</div>`;let e=(this._search?this._hierarchyValues.filter(e=>p(e.name,this.contentLanguage,{allowEmpty:!0})?.toLowerCase().includes(this._search.toLowerCase())||e.toString().toLowerCase().includes(this._search.toLowerCase())):this._hierarchyValues).map(e=>{let t=p(e?.name,this.contentLanguage)??`N/A`;return typeof t!=`string`&&(t=`N/A`),{value:e?.id,label:t}}),
|
|
166
|
+
></luzmo-text-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchHierarchyValues()},500))}resetSearchString(){this._search=``,this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1,this._restoreCachedFirstPage()}onOpened(){this._fetchHierarchyValues()}_getSelectedOptionValue(){let e=this.filter?.parameters?.[1];return typeof e!=`string`&&typeof e!=`number`?e:this._findExactMember(String(e))?.id??e}renderHierarchyPicker(){if(this._error)return m`<div class="error" role="alert">Error: ${this._error}</div>`;let e=(this._search?this._hierarchyValues.filter(e=>p(e.name,this.contentLanguage,{allowEmpty:!0})?.toLowerCase().includes(this._search.toLowerCase())||e.toString().toLowerCase().includes(this._search.toLowerCase())):this._hierarchyValues).map(e=>{let t=p(e?.name,this.contentLanguage)??`N/A`;return typeof t!=`string`&&(t=`N/A`),{value:e?.id,label:t}}),t=this.filter?.expression,r=[`? = ?`,`? != ?`].includes(t),i=n(`Selected {count} items`),a=n(`Search`),o=n(`No data`),s=n(`No results`),c=n(`Select...`);return m`<luzmo-select
|
|
167
167
|
.size=${this.size}
|
|
168
168
|
.label=${c}
|
|
169
169
|
.retrieving=${this._retrieving}
|
|
@@ -188,7 +188,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
188
188
|
.options=${e}
|
|
189
189
|
.value=${r?[this._getSelectedOptionValue()]:this.filter?.parameters?.[1]}
|
|
190
190
|
>
|
|
191
|
-
</luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(e)?this.renderHierarchyPicker():this.renderTextField()}};
|
|
191
|
+
</luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(e)?this.renderHierarchyPicker():this.renderTextField()}};t([g({type:String,attribute:`api-url`,reflect:!0})],J.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],J.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],J.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],J.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],J.prototype,`contentLanguage`,void 0),t([g({type:Object,reflect:!1})],J.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],J.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],J.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],J.prototype,`disabled`,void 0),t([_()],J.prototype,`_hierarchyValues`,void 0),t([_()],J.prototype,`_retrieving`,void 0),t([_()],J.prototype,`_search`,void 0),t([_()],J.prototype,`_error`,void 0),t([_()],J.prototype,`_pending`,void 0),J=t([i()],J),customElements.get(`luzmo-filter-value-picker-hierarchy`)||customElements.define(`luzmo-filter-value-picker-hierarchy`,J);var zt=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-number-field,luzmo-select{min-width:var(--luzmo-filter-value-picker-numeric-control-min-width,var(--filter-value-picker-numeric-control-min-width));flex:auto;max-width:100%}.missing-value{opacity:.4}:host{--filter-value-picker-numeric-control-min-width:0}`,Bt=5e3,Y=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._numericValues=[],this._retrieving=!0,this._search=``,this._error=null,this._allValuesRetrieved=!1,this._runningQueries=[]}static get styles(){return[v(zt)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),f.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`)?.expression,n=this.filter?.expression;((e.get(`filter`)?.parameters?.[0]?.columnId||e.get(`filter`)?.parameters?.[0]?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||![`? in ?`,`? not in ?`].includes(t))&&[`? in ?`,`? not in ?`].includes(n)&&(this._numericValues=[],this._allValuesRetrieved=!1,this._retrieving=!0)}}async _fetchNumericValues(e=0){if(this._allValuesRetrieved){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let t=this.filter.parameters[0],n=t.columnId,r=t.formulaId,i=t.datasetId;if(!n&&!r){this._retrieving=!1,this._error=`Missing column id or formula id`;return}if(!i){this._retrieving=!1,this._error=`Missing dataset id`;return}this._retrieving=!0,this._error=null;let a={expression:`? like ?`,parameters:[{dataset_id:i,expression:`CAST({${i}:${n??r}},hierarchy)`},this._search]},o={dimensions:[{column_id:n,formula_id:r,dataset_id:i}],where:[],order:[{column_id:n,formula_id:r,dataset_id:i,order:`asc`}],limit:{by:Bt,offset:e}};this._search&&!this._allValuesRetrieved&&o.where.push(a);let s=new AbortController,c=new Promise((e,t)=>{f.fetchData(o).then(e).catch(t),s.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),t({status:`aborted`})})}),l={promise:c,abortController:s};this._runningQueries.push(l);try{let t=await c,n=t&&Array.isArray(t.data)?t.data.map(e=>e[0]):[];this._search||(this._allValuesRetrieved=n.length<Bt),this._numericValues=e>0?[...this._numericValues,...n]:n}catch(e){if(e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._numericValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==c),this._retrieving=!1}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setValue(e){if(this.readonly||this.disabled)return;let t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:e?.target?.value;this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._sendChangeEvent())}selectValue(e){if(this.readonly||this.disabled)return;let t=(e.detail?.value??``).map(e=>Number.parseFloat(e));this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._value=t,this._sendChangeEvent()}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._numericValues.length-1&&this._fetchNumericValues(this._numericValues.length)}renderNumberField(){return m`<luzmo-number-field
|
|
192
192
|
label="Numeric filter value"
|
|
193
193
|
grows
|
|
194
194
|
.size=${this.size}
|
|
@@ -198,7 +198,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
198
198
|
@change=${this.setValue}
|
|
199
199
|
@input=${this.setValue}
|
|
200
200
|
.value=${this.filter?.parameters?.[1]}
|
|
201
|
-
></luzmo-number-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchNumericValues()},500))}resetSearchString(){this._search=``}onOpened(){this._fetchNumericValues()}renderValuePicker(){if(this._error)return m`<div class="error" role="alert">${this._error}</div>`;let e=this._numericValues.filter(e=>e.toString().toLowerCase().includes(this._search.toLowerCase())).map(e=>({value:e,label:e})),n
|
|
201
|
+
></luzmo-number-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchNumericValues()},500))}resetSearchString(){this._search=``}onOpened(){this._fetchNumericValues()}renderValuePicker(){if(this._error)return m`<div class="error" role="alert">${this._error}</div>`;let e=this._numericValues.filter(e=>e.toString().toLowerCase().includes(this._search.toLowerCase())).map(e=>({value:e,label:e})),t=n(`Selected {count} items`),r=n(`Search`),i=n(`No data`),a=n(`No results`),o=n(`Select...`);return m`<luzmo-select
|
|
202
202
|
.size=${this.size}
|
|
203
203
|
.label=${o}
|
|
204
204
|
.retrieving=${this._retrieving}
|
|
@@ -210,7 +210,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
210
210
|
.disabled=${this.disabled}
|
|
211
211
|
no-wrap
|
|
212
212
|
?invalid=${!!this._error}
|
|
213
|
-
.multipleLabelTemplate=${
|
|
213
|
+
.multipleLabelTemplate=${t}
|
|
214
214
|
.searchLabel=${r}
|
|
215
215
|
.noDataLabel=${i}
|
|
216
216
|
.noResultsLabel=${a}
|
|
@@ -222,7 +222,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
222
222
|
.options=${e}
|
|
223
223
|
.value=${this.filter?.parameters?.[1]}
|
|
224
224
|
>
|
|
225
|
-
</luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`].includes(e)?this.renderValuePicker():this.renderNumberField()}};
|
|
225
|
+
</luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`].includes(e)?this.renderValuePicker():this.renderNumberField()}};t([g({type:String,attribute:`api-url`,reflect:!0})],Y.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],Y.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],Y.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],Y.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],Y.prototype,`contentLanguage`,void 0),t([g({type:Object,reflect:!1})],Y.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],Y.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],Y.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],Y.prototype,`disabled`,void 0),t([_()],Y.prototype,`_numericValues`,void 0),t([_()],Y.prototype,`_retrieving`,void 0),t([_()],Y.prototype,`_search`,void 0),t([_()],Y.prototype,`_error`,void 0),Y=t([i()],Y),customElements.get(`luzmo-filter-value-picker-numeric`)||customElements.define(`luzmo-filter-value-picker-numeric`,Y);var X=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.contentLanguage=`en`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this._expressionsWithoutValuePicker=/* @__PURE__ */ new Set([`? is null`,`? is not null`,`to_date`])}static get styles(){return[v(Ft)]}_sendChangeEvent(e){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:e}}))}setFilterValue(e){e.stopPropagation(),!(this.readonly||this.disabled)&&this._sendChangeEvent(e?.detail?.value)}renderNumericValuePicker(){return m`<luzmo-filter-value-picker-numeric
|
|
226
226
|
.apiUrl=${this.apiUrl}
|
|
227
227
|
.authKey=${this.authKey}
|
|
228
228
|
.authToken=${this.authToken}
|
|
@@ -263,7 +263,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
263
263
|
.disabled=${this.disabled}
|
|
264
264
|
@luzmo-filter-value-changed=${this.setFilterValue}
|
|
265
265
|
></luzmo-filter-value-picker-datetime>`}renderDisabledTextField(){let e=this.filter?.parameters?.[1]??``;return m`<luzmo-text-field
|
|
266
|
-
label=${
|
|
266
|
+
label=${n(`Filter value`,{desc:`Label for filter value text field`})}
|
|
267
267
|
.size=${this.size}
|
|
268
268
|
.value=${e}
|
|
269
269
|
.disabled=${!0}
|
|
@@ -271,7 +271,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
271
271
|
|
|
272
272
|
`:[`numeric`,`hierarchy`,`datetime`].includes(e)?e===`numeric`?this.renderNumericValuePicker():e===`datetime`?this.renderDateTimeValuePicker():this.renderHierarchyValuePicker():typeof this.filter?.parameters?.[1]==`string`?this.renderDisabledTextField():m`
|
|
273
273
|
|
|
274
|
-
`}};r([g({type:String,attribute:`api-url`,reflect:!0})],X.prototype,`apiUrl`,void 0),r([g({type:String,attribute:`auth-key`,reflect:!0})],X.prototype,`authKey`,void 0),r([g({type:String,attribute:`auth-token`,reflect:!0})],X.prototype,`authToken`,void 0),r([g({type:Number,attribute:`cache-time`,reflect:!0})],X.prototype,`cacheTime`,void 0),r([g({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),r([g({type:String,attribute:`time-zone`,reflect:!0})],X.prototype,`timeZone`,void 0),r([g({type:String,attribute:`value-type`,reflect:!0})],X.prototype,`valueType`,void 0),r([g({type:Object,reflect:!1})],X.prototype,`filter`,void 0),r([g({type:Boolean,reflect:!0})],X.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],X.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],X.prototype,`disabled`,void 0),customElements.get(`luzmo-filter-value-picker`)||customElements.define(`luzmo-filter-value-picker`,X);var Vt=`:host{box-sizing:border-box;min-width:0;max-width:100%;font-family:var(--luzmo-font-family);color:var(--luzmo-font-color);flex-direction:row;display:flex}:host([display=text]){vertical-align:middle;align-items:center;max-width:100%;display:inline-flex}.filter-item-text{min-width:0;max-width:100%;font-size:var(--luzmo-filter-item-text-font-size,var(--filter-item-text-font-size));white-space:normal;flex-wrap:wrap;align-items:center;column-gap:.25em;line-height:1.5;display:inline-flex}.filter-item-text-field{white-space:nowrap}.filter-item-column-badge{white-space:nowrap;align-items:center;display:inline-flex}.filter-item-text-field-icon{margin-inline-end:var(--luzmo-filter-item-text-icon-gap,var(--filter-item-text-icon-gap))}.filter-item-column-badge luzmo-icon{--luzmo-icon-vertical-align:0}.filter-item-text-expression{color:var(--luzmo-filter-item-text-expression-color,var(--filter-item-text-expression-color));font-weight:var(--luzmo-filter-item-text-expression-font-weight,var(--filter-item-text-expression-font-weight))}:host([column-display=outline]) .filter-item-column-badge luzmo-badge{--luzmo-badge-border-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-border-color-full));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-filter-item-column-badge-color,var(--luzmo-font-color)))}:host([column-display=subtle]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:color-mix(in srgb, var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard)) 10%, var(--luzmo-background-color));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color)}:host([column-display=fill]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard));--luzmo-badge-border-color:transparent;--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-background-color))}.filter-item-text-value{align-items:center;gap:var(--luzmo-spacing-1);display:inline-flex}.filter-item-text-value luzmo-progress-circle{--luzmo-progress-circle-size:var(--filter-item-progress-circle-size)}.filter-item-text-value--has-tooltip{text-underline-offset:.15em;cursor:help;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor}[role=group]{box-sizing:border-box;align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-flow:wrap;width:100%;min-width:0;max-width:100%;display:flex}luzmo-data-fields-select{flex:0 1 var(--luzmo-filter-item-field-width,var(--filter-item-field-width));min-width:min(100%, var(--luzmo-filter-item-field-min-width,var(--filter-item-field-min-width)));max-width:100%}luzmo-filter-expression-picker{flex:0 0 var(--luzmo-filter-item-expression-width,var(--filter-item-expression-width));max-width:100%}.value-controls{align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-wrap:nowrap;flex:var(--luzmo-filter-item-value-grow,var(--filter-item-value-grow)) 1 var(--luzmo-filter-item-value-width,var(--filter-item-value-width));min-width:min(100%, var(--luzmo-filter-item-value-min-width,var(--filter-item-value-min-width)));max-width:100%;display:flex}luzmo-filter-value-picker{flex:auto;min-width:0;max-width:100%}luzmo-filter-parameter-picker{flex:0 auto;min-width:0;max-width:100%}:host{--filter-item-gap:var(--luzmo-spacing-3);--filter-item-field-width:auto;--filter-item-expression-width:auto;--filter-item-value-width:auto;--filter-item-value-grow:0;--filter-item-field-min-width:4.5rem;--filter-item-value-min-width:4.5rem;--filter-item-text-font-size:var(--luzmo-font-size-m);--filter-item-text-icon-gap:var(--luzmo-spacing-1);--filter-item-text-expression-color:var(--luzmo-font-color);--filter-item-text-expression-font-weight:var(--luzmo-font-weight);--filter-item-progress-circle-size:var(--luzmo-component-height)}:host([size=s]){--filter-item-gap:var(--luzmo-spacing-2);--filter-item-text-font-size:var(--luzmo-font-size-s);--filter-item-progress-circle-size:var(--luzmo-component-height-s)}:host([size=m]){--filter-item-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-item-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filter-item-text-font-size:var(--luzmo-font-size-l);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-l)}:host([size=xl]){--filter-item-gap:var(--luzmo-spacing-4);--filter-item-text-font-size:var(--luzmo-font-size-xl);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-xl)}`,Z=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filter={},this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this.allowParameters=!1,this.parameters=[],this._loading=!1,this._datasetsDataFields=[],this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hierarchyRequest=0}static get styles(){return[v(Vt)]}connectedCallback(){if(super.connectedCallback(),this.textContext)return;let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),e.authKey=this.authKey||``,e.authToken=this.authToken||``,f.configure(e),this.hasUpdated&&this.display===`text`&&this._loadHierarchyLabelsForText()}disconnectedCallback(){super.disconnectedCallback(),this._hierarchyRequest+=1}_clearTypeState(){this._type=void 0,this._subType=void 0,this._isFormula=void 0}async _fetchDatasetDataFields(){if(!this.datasetIds||this.datasetIds.length===0){this._error=`Missing dataset ids to fetch columns & formulas`,this._datasetsDataFields=[],this._loading=!1;return}let{valid:e,invalid:t}=ee(this.datasetIds);if(t.length>0&&console.warn(`[LuzmoFilterItem] Invalid dataset IDs provided (not valid UUIDs): ${t.join(`, `)}. These will be skipped.`),e.length===0)this._error=`Invalid dataset IDs provided. Dataset IDs must be valid UUIDs.`,this._datasetsDataFields=[],this._loading=!1;else{this._loading=!0,this._error=null;try{let t=await f.fetchDatasetsWithColumnsAndFormulas(e);for(let e of t)for(let t of[...e.columns,...e.formulas])t.datasetId=e.id;this._datasetsDataFields=t}catch(e){console.error(`Error fetching dataset columns & formulas:`,e),this._error=e instanceof Error?e.message:`Unknown error`,this._datasetsDataFields=[]}finally{this._loading=!1}}}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`datasetIds`),r=e.has(`authKey`),i=e.has(`authToken`),a=e.has(`_datasetsDataFields`),o=e.has(`parameters`);if(!this.textContext&&this.display===`text`&&(t||a||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForText(),t||n||a&&(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)&&this.filter?.parameters?.[0]?.datasetId){if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)this._clearTypeState();else{let e=this._datasetsDataFields.find(e=>e.id===this.filter.parameters?.[0]?.datasetId);if(e){let t=!1;for(let n of[...e.columns||[],...e?.formulas||[]])if(n.id===this.filter.parameters?.[0]?.columnId||n.id===this.filter.parameters?.[0]?.formulaId){this._type=n.type,this._subType=n.subtype,this._isFormula=n.id===this.filter.parameters?.[0]?.formulaId,t=!0;break}t||this._clearTypeState()}else this._clearTypeState()}}if(!this.textContext&&(r||i)){let e={authKey:this.authKey||``,authToken:this.authToken||``};f.configure(e)}!this.textContext&&(n||r||i)&&this._fetchDatasetDataFields();let s=this.filter?.parameters?.[1],c=e.get(`filter`),l=!!c&&c.expression!==this.filter?.expression;if(this.allowParameters&&this._type&&(o||e.has(`_type`)||l)&&U(s)){let t=this.parameters.find(e=>e.parameter===s.parameter),n=H(this._type,this.filter?.expression),r=o||e.has(`_type`);if(l&&!n.includes(s.type)||r&&(!t||!n.includes(t.type))){let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}else if(r&&t&&JSON.stringify(t)!==JSON.stringify(s)){let e=structuredClone(this.filter);e.parameters[1]=structuredClone(t),this.filter=e,this._sendChangeEvent()}}}async _loadHierarchyLabelsForText(){let e=++this._hierarchyRequest,t=this._filterTextContext(),n=Ne({condition:`and`,filters:[this.filter]},t);if(n.length===0)this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;else{this._hierarchyLabelsLoading=!0;try{let t=await Pe(n,this.contentLanguage);e===this._hierarchyRequest&&(this._hierarchyLabels=t)}catch(t){e===this._hierarchyRequest&&console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_sendChangeEvent(){this.readonly||this.disabled||this.dispatchEvent(new CustomEvent(`luzmo-filter-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{filter:this.filter}}))}setFilterDataField(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=e.detail?.dataFields?.[0],n=this._type,r=this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId,i=!!this.filter?.parameters?.[0]?.formulaId,a=t?.columnId||t?.formulaId,o=U(this.filter?.parameters?.[1]);this._type=t?.type,this._subType=t?.subtype,this._isFormula=!!t?.formulaId;let s=oe(this._type,this._subType,this._isFormula);this.filter=structuredClone(this.filter??{}),s?.includes(this.filter?.expression)||(this.filter.expression=s?.[0]?.expression),this.filter.parameters=this.filter?.parameters??[],this.filter.parameters[0]={datasetId:t?.datasetId},this._isFormula?this.filter.parameters[0].formulaId=t?.formulaId:this.filter.parameters[0].columnId=t?.columnId;let c=this.filter.properties??{};if(this._isFormula?i&&c.type!==void 0||(this.filter.properties={...c,type:`having`}):(c.type===void 0||i&&c.type===`having`)&&(this.filter.properties={...c,type:`where`}),t?.lowestLevel,n!==this._type)this._type===`hierarchy`?(this.filter.expression=`? like ?`,this.filter.parameters[1]=``):this._type===`numeric`?(this.filter.expression=`? > ?`,this.filter.parameters[1]=0):this._type===`datetime`?(this.filter.expression=`? < ?`,this.filter.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()):(this.filter.expression=`? is not null`,this.filter.parameters=[this.filter.parameters[0]]);else if(o&&r!==a){let e=G(this._type,this.filter.expression);this.filter.parameters=e===void 0?[this.filter.parameters[0]]:[this.filter.parameters[0],e]}else r!==a&&this._type===`hierarchy`&&(this.filter.parameters[1]=[`? in ?`,`? not in ?`].includes(this.filter.expression)?[]:``);this._sendChangeEvent()}setFilterExpression(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=structuredClone(this.filter??{}),n=t.expression;if(t.expression=e.detail?.expression,n!==t.expression){if(U(t.parameters?.[1])){let e=t.parameters[1];if(!H(this._type,t.expression).some(t=>t===e.type)){let e=G(this._type,t.expression);t.parameters=e===void 0?[t.parameters[0]]:[t.parameters[0],e]}}else if([`? is null`,`? is not null`].includes(t.expression))t.parameters=[t.parameters[0]];else if(this._type===`datetime`){if([`YTD`,`QTD`,`MTD`,`WTD`].includes(t.expression)){let n=e?.detail?.unit;n&&(t.parameters[1]={unit:typeof n==`number`?n:1})}else if([`last_completed`,`next_full`,`to_date`].includes(t.expression)){let e=t?.parameters?.[1]?.unit;t.parameters[1]={unit:typeof e==`number`?e:1}}else if([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(t.expression)){let e=t?.parameters?.[1]?.unit,n=t?.parameters?.[1]?.quantity;t.parameters[1]={unit:typeof e==`number`?e:1,quantity:typeof n==`number`?n:1}}else t.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()}else if(this._type===`hierarchy`){if([`? in ?`,`? not in ?`].includes(t.expression))[`? = ?`,`? != ?`].includes(n)?t.parameters[1]=t.parameters[1]?[t.parameters[1]]:[]:t.parameters[1]=[];else if([`? = ?`,`? != ?`].includes(t.expression)){if([`? in ?`,`? not in ?`].includes(n))t.parameters[1]=Array.isArray(t.parameters[1])&&t.parameters[1][0]!=null?t.parameters[1][0]:``;else{let e=t.parameters[1];t.parameters[1]=typeof e==`string`||typeof e==`number`?e:``}}else t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?``:t.parameters[1]??``}else this._type===`numeric`&&([`? in ?`,`? not in ?`].includes(t.expression)&&[`? in ?`,`? not in ?`].includes(n)?t.parameters[1]=t.parameters[1]??[]:[`? in ?`,`? not in ?`].includes(t.expression)?t.parameters[1]=[]:t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?0:t.parameters[1]??0);this.filter=t,this._sendChangeEvent()}}setFilterValue(e){this.readonly||this.disabled||this._cannotReferenceColumn()||(this.filter.parameters[1]=e?.detail?.value,this._sendChangeEvent())}handleFilterParameterSelected(e){if(this.readonly||this.disabled)return;let t=e.detail?.parameter;if(!t)return;let n=structuredClone(this.filter??{});n.parameters=n.parameters??[],n.parameters[1]=structuredClone(t),this.filter=n,this._sendChangeEvent()}handleFilterParameterRemoved(){if(this.readonly||this.disabled||!U(this.filter?.parameters?.[1]))return;let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}_cannotReferenceColumn(){if(!(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId))return!1;if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)return!0;let e=this.filter?.parameters?.[0]?.datasetId,t=this._datasetsDataFields.find(t=>t.id===e);return!t||![...t.columns||[],...t.formulas||[]].find(e=>e.id===this.filter?.parameters?.[0]?.columnId||e.id===this.filter?.parameters?.[0]?.formulaId)}renderDataFieldPicker(){let e=this._cannotReferenceColumn(),n=e?t(`Unknown`):void 0,r=e||this._loading?``:this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId;return m`<luzmo-data-fields-select
|
|
274
|
+
`}};t([g({type:String,attribute:`api-url`,reflect:!0})],X.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],X.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],X.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],X.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],X.prototype,`timeZone`,void 0),t([g({type:String,attribute:`value-type`,reflect:!0})],X.prototype,`valueType`,void 0),t([g({type:Object,reflect:!1})],X.prototype,`filter`,void 0),t([g({type:Boolean,reflect:!0})],X.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],X.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],X.prototype,`disabled`,void 0),customElements.get(`luzmo-filter-value-picker`)||customElements.define(`luzmo-filter-value-picker`,X);var Vt=`:host{box-sizing:border-box;min-width:0;max-width:100%;font-family:var(--luzmo-font-family);color:var(--luzmo-font-color);flex-direction:row;display:flex}:host([display=text]){vertical-align:middle;align-items:center;max-width:100%;display:inline-flex}.filter-item-text{min-width:0;max-width:100%;font-size:var(--luzmo-filter-item-text-font-size,var(--filter-item-text-font-size));white-space:normal;flex-wrap:wrap;align-items:center;column-gap:.25em;line-height:1.5;display:inline-flex}.filter-item-text-field{white-space:nowrap}.filter-item-column-badge{white-space:nowrap;align-items:center;display:inline-flex}.filter-item-text-field-icon{margin-inline-end:var(--luzmo-filter-item-text-icon-gap,var(--filter-item-text-icon-gap))}.filter-item-column-badge luzmo-icon{--luzmo-icon-vertical-align:0}.filter-item-text-expression{color:var(--luzmo-filter-item-text-expression-color,var(--filter-item-text-expression-color));font-weight:var(--luzmo-filter-item-text-expression-font-weight,var(--filter-item-text-expression-font-weight))}:host([column-display=outline]) .filter-item-column-badge luzmo-badge{--luzmo-badge-border-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-border-color-full));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-filter-item-column-badge-color,var(--luzmo-font-color)))}:host([column-display=subtle]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:color-mix(in srgb, var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard)) 10%, var(--luzmo-background-color));--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color)}:host([column-display=fill]) .filter-item-column-badge luzmo-badge{--luzmo-badge-background-color:var(--luzmo-filter-item-column-badge-color,var(--luzmo-selected-color-hard));--luzmo-badge-border-color:transparent;--luzmo-badge-content-color:var(--luzmo-filter-item-column-badge-font-color,var(--luzmo-background-color))}.filter-item-text-value{align-items:center;gap:var(--luzmo-spacing-1);display:inline-flex}.filter-item-text-value luzmo-progress-circle{--luzmo-progress-circle-size:var(--filter-item-progress-circle-size)}.filter-item-text-value--has-tooltip{text-underline-offset:.15em;cursor:help;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor}[role=group]{box-sizing:border-box;align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-flow:wrap;width:100%;min-width:0;max-width:100%;display:flex}luzmo-data-fields-select{flex:0 1 var(--luzmo-filter-item-field-width,var(--filter-item-field-width));min-width:min(100%, var(--luzmo-filter-item-field-min-width,var(--filter-item-field-min-width)));max-width:100%}luzmo-filter-expression-picker{flex:0 0 var(--luzmo-filter-item-expression-width,var(--filter-item-expression-width));max-width:100%}.value-controls{align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-wrap:nowrap;flex:var(--luzmo-filter-item-value-grow,var(--filter-item-value-grow)) 1 var(--luzmo-filter-item-value-width,var(--filter-item-value-width));min-width:min(100%, var(--luzmo-filter-item-value-min-width,var(--filter-item-value-min-width)));max-width:100%;display:flex}luzmo-filter-value-picker{flex:auto;min-width:0;max-width:100%}luzmo-filter-parameter-picker{flex:0 auto;min-width:0;max-width:100%}:host{--filter-item-gap:var(--luzmo-spacing-3);--filter-item-field-width:auto;--filter-item-expression-width:auto;--filter-item-value-width:auto;--filter-item-value-grow:0;--filter-item-field-min-width:4.5rem;--filter-item-value-min-width:4.5rem;--filter-item-text-font-size:var(--luzmo-font-size-m);--filter-item-text-icon-gap:var(--luzmo-spacing-1);--filter-item-text-expression-color:var(--luzmo-font-color);--filter-item-text-expression-font-weight:var(--luzmo-font-weight);--filter-item-progress-circle-size:var(--luzmo-component-height)}:host([size=s]){--filter-item-gap:var(--luzmo-spacing-2);--filter-item-text-font-size:var(--luzmo-font-size-s);--filter-item-progress-circle-size:var(--luzmo-component-height-s)}:host([size=m]){--filter-item-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-item-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filter-item-text-font-size:var(--luzmo-font-size-l);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-l)}:host([size=xl]){--filter-item-gap:var(--luzmo-spacing-4);--filter-item-text-font-size:var(--luzmo-font-size-xl);--filter-item-text-icon-gap:var(--luzmo-spacing-2);--filter-item-progress-circle-size:var(--luzmo-component-height-xl)}`,Z=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filter={},this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.disabled=!1,this.allowParameters=!1,this.parameters=[],this._loading=!1,this._datasetsDataFields=[],this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hierarchyRequest=0}static get styles(){return[v(Vt)]}connectedCallback(){if(super.connectedCallback(),this.textContext)return;let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),e.authKey=this.authKey||``,e.authToken=this.authToken||``,f.configure(e),this.hasUpdated&&this.display===`text`&&this._loadHierarchyLabelsForText()}disconnectedCallback(){super.disconnectedCallback(),this._hierarchyRequest+=1}_clearTypeState(){this._type=void 0,this._subType=void 0,this._isFormula=void 0}async _fetchDatasetDataFields(){if(!this.datasetIds||this.datasetIds.length===0){this._error=`Missing dataset ids to fetch columns & formulas`,this._datasetsDataFields=[],this._loading=!1;return}let{valid:e,invalid:t}=ee(this.datasetIds);if(t.length>0&&console.warn(`[LuzmoFilterItem] Invalid dataset IDs provided (not valid UUIDs): ${t.join(`, `)}. These will be skipped.`),e.length===0)this._error=`Invalid dataset IDs provided. Dataset IDs must be valid UUIDs.`,this._datasetsDataFields=[],this._loading=!1;else{this._loading=!0,this._error=null;try{let t=await f.fetchDatasetsWithColumnsAndFormulas(e);for(let e of t)for(let t of[...e.columns,...e.formulas])t.datasetId=e.id;this._datasetsDataFields=t}catch(e){console.error(`Error fetching dataset columns & formulas:`,e),this._error=e instanceof Error?e.message:`Unknown error`,this._datasetsDataFields=[]}finally{this._loading=!1}}}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`datasetIds`),r=e.has(`authKey`),i=e.has(`authToken`),a=e.has(`_datasetsDataFields`),o=e.has(`parameters`);if(!this.textContext&&this.display===`text`&&(t||a||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForText(),t||n||a&&(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)&&this.filter?.parameters?.[0]?.datasetId){if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)this._clearTypeState();else{let e=this._datasetsDataFields.find(e=>e.id===this.filter.parameters?.[0]?.datasetId);if(e){let t=!1;for(let n of[...e.columns||[],...e?.formulas||[]])if(n.id===this.filter.parameters?.[0]?.columnId||n.id===this.filter.parameters?.[0]?.formulaId){this._type=n.type,this._subType=n.subtype,this._isFormula=n.id===this.filter.parameters?.[0]?.formulaId,t=!0;break}t||this._clearTypeState()}else this._clearTypeState()}}if(!this.textContext&&(r||i)){let e={authKey:this.authKey||``,authToken:this.authToken||``};f.configure(e)}!this.textContext&&(n||r||i)&&this._fetchDatasetDataFields();let s=this.filter?.parameters?.[1],c=e.get(`filter`),l=!!c&&c.expression!==this.filter?.expression;if(this.allowParameters&&this._type&&(o||e.has(`_type`)||l)&&U(s)){let t=this.parameters.find(e=>e.parameter===s.parameter),n=H(this._type,this.filter?.expression),r=o||e.has(`_type`);if(l&&!n.includes(s.type)||r&&(!t||!n.includes(t.type))){let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}else if(r&&t&&JSON.stringify(t)!==JSON.stringify(s)){let e=structuredClone(this.filter);e.parameters[1]=structuredClone(t),this.filter=e,this._sendChangeEvent()}}}async _loadHierarchyLabelsForText(){let e=++this._hierarchyRequest,t=this._filterTextContext(),n=Ne({condition:`and`,filters:[this.filter]},t);if(n.length===0)this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;else{this._hierarchyLabelsLoading=!0;try{let t=await Pe(n,this.contentLanguage);e===this._hierarchyRequest&&(this._hierarchyLabels=t)}catch(t){e===this._hierarchyRequest&&console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_sendChangeEvent(){this.readonly||this.disabled||this.dispatchEvent(new CustomEvent(`luzmo-filter-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{filter:this.filter}}))}setFilterDataField(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=e.detail?.dataFields?.[0],n=this._type,r=this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId,i=!!this.filter?.parameters?.[0]?.formulaId,a=t?.columnId||t?.formulaId,o=U(this.filter?.parameters?.[1]);this._type=t?.type,this._subType=t?.subtype,this._isFormula=!!t?.formulaId;let s=oe(this._type,this._subType,this._isFormula);this.filter=structuredClone(this.filter??{}),s?.includes(this.filter?.expression)||(this.filter.expression=s?.[0]?.expression),this.filter.parameters=this.filter?.parameters??[],this.filter.parameters[0]={datasetId:t?.datasetId},this._isFormula?this.filter.parameters[0].formulaId=t?.formulaId:this.filter.parameters[0].columnId=t?.columnId;let c=this.filter.properties??{};if(this._isFormula?i&&c.type!==void 0||(this.filter.properties={...c,type:`having`}):(c.type===void 0||i&&c.type===`having`)&&(this.filter.properties={...c,type:`where`}),t?.lowestLevel,n!==this._type)this._type===`hierarchy`?(this.filter.expression=`? like ?`,this.filter.parameters[1]=``):this._type===`numeric`?(this.filter.expression=`? > ?`,this.filter.parameters[1]=0):this._type===`datetime`?(this.filter.expression=`? < ?`,this.filter.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()):(this.filter.expression=`? is not null`,this.filter.parameters=[this.filter.parameters[0]]);else if(o&&r!==a){let e=G(this._type,this.filter.expression);this.filter.parameters=e===void 0?[this.filter.parameters[0]]:[this.filter.parameters[0],e]}else r!==a&&this._type===`hierarchy`&&(this.filter.parameters[1]=[`? in ?`,`? not in ?`].includes(this.filter.expression)?[]:``);this._sendChangeEvent()}setFilterExpression(e){if(this.readonly||this.disabled||this._cannotReferenceColumn())return;let t=structuredClone(this.filter??{}),n=t.expression;if(t.expression=e.detail?.expression,n!==t.expression){if(U(t.parameters?.[1])){let e=t.parameters[1];if(!H(this._type,t.expression).some(t=>t===e.type)){let e=G(this._type,t.expression);t.parameters=e===void 0?[t.parameters[0]]:[t.parameters[0],e]}}else if([`? is null`,`? is not null`].includes(t.expression))t.parameters=[t.parameters[0]];else if(this._type===`datetime`){if([`YTD`,`QTD`,`MTD`,`WTD`].includes(t.expression)){let n=e?.detail?.unit;n&&(t.parameters[1]={unit:typeof n==`number`?n:1})}else if([`last_completed`,`next_full`,`to_date`].includes(t.expression)){let e=t?.parameters?.[1]?.unit;t.parameters[1]={unit:typeof e==`number`?e:1}}else if([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(t.expression)){let e=t?.parameters?.[1]?.unit,n=t?.parameters?.[1]?.quantity;t.parameters[1]={unit:typeof e==`number`?e:1,quantity:typeof n==`number`?n:1}}else t.parameters[1]=(/* @__PURE__ */ new Date()).toISOString()}else if(this._type===`hierarchy`){if([`? in ?`,`? not in ?`].includes(t.expression))[`? = ?`,`? != ?`].includes(n)?t.parameters[1]=t.parameters[1]?[t.parameters[1]]:[]:t.parameters[1]=[];else if([`? = ?`,`? != ?`].includes(t.expression)){if([`? in ?`,`? not in ?`].includes(n))t.parameters[1]=Array.isArray(t.parameters[1])&&t.parameters[1][0]!=null?t.parameters[1][0]:``;else{let e=t.parameters[1];t.parameters[1]=typeof e==`string`||typeof e==`number`?e:``}}else t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?``:t.parameters[1]??``}else this._type===`numeric`&&([`? in ?`,`? not in ?`].includes(t.expression)&&[`? in ?`,`? not in ?`].includes(n)?t.parameters[1]=t.parameters[1]??[]:[`? in ?`,`? not in ?`].includes(t.expression)?t.parameters[1]=[]:t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?0:t.parameters[1]??0);this.filter=t,this._sendChangeEvent()}}setFilterValue(e){this.readonly||this.disabled||this._cannotReferenceColumn()||(this.filter.parameters[1]=e?.detail?.value,this._sendChangeEvent())}handleFilterParameterSelected(e){if(this.readonly||this.disabled)return;let t=e.detail?.parameter;if(!t)return;let n=structuredClone(this.filter??{});n.parameters=n.parameters??[],n.parameters[1]=structuredClone(t),this.filter=n,this._sendChangeEvent()}handleFilterParameterRemoved(){if(this.readonly||this.disabled||!U(this.filter?.parameters?.[1]))return;let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}_cannotReferenceColumn(){if(!(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId))return!1;if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)return!0;let e=this.filter?.parameters?.[0]?.datasetId,t=this._datasetsDataFields.find(t=>t.id===e);return!t||![...t.columns||[],...t.formulas||[]].find(e=>e.id===this.filter?.parameters?.[0]?.columnId||e.id===this.filter?.parameters?.[0]?.formulaId)}renderDataFieldPicker(){let e=this._cannotReferenceColumn(),t=e?n(`Unknown`):void 0,r=e||this._loading?``:this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId;return m`<luzmo-data-fields-select
|
|
275
275
|
.language=${this.language}
|
|
276
276
|
.contentLanguage=${this.contentLanguage}
|
|
277
277
|
.size=${this.size}
|
|
@@ -279,7 +279,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
279
279
|
selects="single"
|
|
280
280
|
levels="off"
|
|
281
281
|
.datasetsDataFields=${this._datasetsDataFields}
|
|
282
|
-
placeholder=${ne(
|
|
282
|
+
placeholder=${ne(t)}
|
|
283
283
|
.invalid=${!!this._error||e}
|
|
284
284
|
?disabled=${e||this.disabled}
|
|
285
285
|
.readonly=${this.readonly}
|
|
@@ -339,9 +339,9 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
339
339
|
title=${e.tooltip}
|
|
340
340
|
><span class="filter-item-text-field-icon filters-text-field-icon" aria-hidden="true">${t?d(t):h}</span
|
|
341
341
|
><span class="filter-item-text-field-label filters-text-field-label">${e.label}</span></span
|
|
342
|
-
>`}_renderTextValue(e){if(e.valueField)return this._renderTextField(e.valueField);if(!e.valueText)return h;let
|
|
342
|
+
>`}_renderTextValue(e){if(e.valueField)return this._renderTextField(e.valueField);if(!e.valueText)return h;let t=e.valuePending?m`<luzmo-progress-circle
|
|
343
343
|
indeterminate
|
|
344
|
-
.label=${
|
|
344
|
+
.label=${n(`Loading item names`,{desc:`Accessible label while hierarchy item names load beside the item count`})}
|
|
345
345
|
.size=${this.size}
|
|
346
346
|
></luzmo-progress-circle>`:h;return e.valueTooltip?m`<span
|
|
347
347
|
class="filter-item-text-value filter-item-text-value--has-tooltip filters-text-value filters-text-value--has-tooltip outline-value outline-value--has-tooltip"
|
|
@@ -350,19 +350,19 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
350
350
|
>${e.valueText}<luzmo-tooltip self-managed placement="top" .size=${this.size}
|
|
351
351
|
>${e.valueTooltip}</luzmo-tooltip
|
|
352
352
|
></span
|
|
353
|
-
>`:m`<span class="filter-item-text-value filters-text-value outline-value" aria-live="polite">${e.valueText}${
|
|
353
|
+
>`:m`<span class="filter-item-text-value filters-text-value outline-value" aria-live="polite">${e.valueText}${t}</span>`}_renderTextDisplay(){let t=Ae(this.filter,this._filterTextContext());if(!t)return m`
|
|
354
354
|
<span
|
|
355
355
|
class="filter-item-text"
|
|
356
356
|
part="filter-item-text"
|
|
357
357
|
></span>
|
|
358
|
-
`;let r=this._renderTextField(
|
|
359
|
-
>${
|
|
360
|
-
>`,a=
|
|
358
|
+
`;let r=this._renderTextField(t.field),i=m`<span class="filter-item-text-expression filters-text-expression outline-expression"
|
|
359
|
+
>${t.expression}</span
|
|
360
|
+
>`,a=t.valueField||t.valueText?this._renderTextValue(t):h,o=t.expression&&a!==h?C(n(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filter-item-field-expression-value`,desc:`Field, expression, and value in a read-only filter sentence`}),[r,i,a]):t.expression?C(n(e`${S[0]}\u2063 ${S[1]}`,{id:`filter-item-field-expression`,desc:`Field and expression in a read-only filter sentence without a value`}),[r,i]):a===h?r:C(n(e`${S[0]}\u2063 ${S[1]}`,{id:`filter-item-field-value`,desc:`Field and value in a read-only filter sentence without an expression`}),[r,a]);return m`<span class="filter-item-text" part="filter-item-text">${o}</span>`}render(){if(this.display===`text`)return this._renderTextDisplay();let e=U(this.filter?.parameters?.[1]);return m`<div role="group" aria-label=${n(`Filter condition`,{desc:`Accessible label for filter item group`})}>
|
|
361
361
|
${this.renderDataFieldPicker()} ${this.renderExpressionPicker()}
|
|
362
362
|
<div class="value-controls">
|
|
363
363
|
${e?null:this.renderValuePicker()} ${this.renderParameterPicker()}
|
|
364
364
|
</div>
|
|
365
|
-
</div>`}};r([g({type:String,attribute:`api-url`,reflect:!0})],Z.prototype,`apiUrl`,void 0),r([g({type:String,attribute:`auth-key`,reflect:!0})],Z.prototype,`authKey`,void 0),r([g({type:String,attribute:`auth-token`,reflect:!0})],Z.prototype,`authToken`,void 0),r([g({type:Number,attribute:`cache-time`,reflect:!0})],Z.prototype,`cacheTime`,void 0),r([g({type:String,reflect:!0})],Z.prototype,`contentLanguage`,void 0),r([g({type:String,attribute:`time-zone`,reflect:!0})],Z.prototype,`timeZone`,void 0),r([g({type:Array,attribute:`dataset-ids`,reflect:!0})],Z.prototype,`datasetIds`,void 0),r([g({type:Object,reflect:!1})],Z.prototype,`filter`,void 0),r([g({type:String,reflect:!0})],Z.prototype,`display`,void 0),r([g({type:String,attribute:`column-display`,reflect:!0})],Z.prototype,`columnDisplay`,void 0),r([g({type:Boolean,reflect:!0})],Z.prototype,`quiet`,void 0),r([g({type:Boolean,reflect:!0})],Z.prototype,`readonly`,void 0),r([g({type:Boolean,reflect:!0})],Z.prototype,`disabled`,void 0),r([g({attribute:!1})],Z.prototype,`textContext`,void 0),r([g({type:Boolean,attribute:`allow-parameters`,reflect:!0})],Z.prototype,`allowParameters`,void 0),r([g({attribute:!1})],Z.prototype,`parameters`,void 0),r([_()],Z.prototype,`_type`,void 0),r([_()],Z.prototype,`_subType`,void 0),r([_()],Z.prototype,`_isFormula`,void 0),r([_()],Z.prototype,`_error`,void 0),r([_()],Z.prototype,`_loading`,void 0),r([_()],Z.prototype,`_datasetsDataFields`,void 0),r([_()],Z.prototype,`_hierarchyLabels`,void 0),r([_()],Z.prototype,`_hierarchyLabelsLoading`,void 0),Z=r([i()],Z),customElements.get(`luzmo-filter-item`)||customElements.define(`luzmo-filter-item`,Z);var Ht=`:host{font-family:var(--luzmo-filters-font-family,var(--luzmo-font-family));color:var(--luzmo-filters-font-color,var(--luzmo-font-color));max-width:100%;display:block;container-type:inline-size}.filter-group-container{max-width:100%;padding:calc(var(--luzmo-indicator-gap) + 2 * var(--luzmo-indicator-width));overflow-x:hidden}.filter-group{flex-direction:row;min-width:0;max-width:100%;display:flex}.filter-group.nested{margin-top:var(--luzmo-filters-nested-group-margin-top,var(--filters-nested-group-margin-top));margin-bottom:var(--luzmo-filters-nested-group-margin-bottom,var(--filters-nested-group-margin-bottom))}.group-content{flex-direction:column;flex:1;min-width:0;display:flex}.filters-list{gap:var(--luzmo-filters-filters-list-gap,var(--filters-filters-list-gap));flex-direction:column;min-width:0;max-width:100%;display:flex}.filter-item-wrapper{align-items:flex-start;min-width:0;max-width:100%;display:flex;position:relative}.filter-item-content{align-items:flex-start;gap:var(--luzmo-filters-filter-line-gap,var(--filters-filter-line-gap));flex-wrap:nowrap;flex:1;min-width:0;display:flex}.filter-item-content luzmo-filter-item{flex:1;min-width:0}.filter-item-content .delete-filter-button{flex-shrink:0;align-self:flex-end;margin-inline-start:auto}.condition-wrapper{flex:0 0 var(--luzmo-filters-condition-warpper-width,var(--filters-condition-warpper-width));justify-content:center;align-items:center;display:flex;position:relative}.condition-wrapper:before{content:"";left:50%;top:var(--luzmo-filters-vertical-line-top,var(--filters-vertical-line-top));bottom:var(--luzmo-filters-vertical-line-bottom,var(--filters-vertical-line-bottom));width:var(--luzmo-filters-vertical-line-width,var(--filters-vertical-line-width));background:var(--luzmo-filters-vertical-line-color,var(--luzmo-border-color));position:absolute}.condition-badge{min-width:auto;padding-inline:var(--luzmo-filters-condition-padding-horizontal,var(--filters-condition-padding-horizontal));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));text-transform:uppercase;background:var(--luzmo-filters-condition-badge-background,var(--luzmo-primary));color:var(--luzmo-filters-condition-badge-color,var(--luzmo-primary-inverse-color));border-radius:var(--luzmo-filters-condition-badge-border-radius,var(--luzmo-border-radius));box-shadow:0 0 0 var(--luzmo-filters-condition-badge-halo,var(--filters-condition-badge-halo)) var(--luzmo-filters-condition-badge-background,var(--luzmo-background-color))}.condition-badge:hover{background:var(--luzmo-filters-condition-badge-background-hover,var(--luzmo-primary-hover))}.group-actions{margin-top:var(--luzmo-filters-group-actions-margin-top,var(--filters-group-actions-margin-top));gap:var(--luzmo-filters-group-actions-gap,var(--filters-group-actions-gap));flex-wrap:wrap;display:flex}.delete-group-button{margin-left:auto}.add-root-group-container{margin-top:var(--luzmo-filters-add-root-group-container-margin-top,var(--filters-add-root-group-container-margin-top));padding-left:0}.add-subgroup-button,.add-filter-button{--luzmo-action-button-text-to-visual:var(--luzmo-filters-group-actions-text-to-visual,var(--filters-group-actions-text-to-visual));--luzmo-action-button-content-color-default:var(--luzmo-filters-group-actions-color,var(--luzmo-primary-hover));--luzmo-action-button-content-color-hover:var(--luzmo-filters-group-actions-color-hover,var(--luzmo-primary-hover));--luzmo-action-button-content-color-down:var(--luzmo-filters-group-actions-color-down,var(--luzmo-primary-down));--luzmo-action-button-content-color-focus:var(--luzmo-filters-group-actions-color-focus,var(--luzmo-primary-focus))}.add-group-button{--luzmo-button-padding-label-to-icon:var(--luzmo-filters-add-group-button-text-to-visual,var(--filters-add-group-button-text-to-visual))}.dataset-ids-empty-message{color:var(--luzmo-filters-error-message-color,var(--luzmo-disabled-color));font-size:var(--luzmo-filters-error-message-font-size,var(--filters-font-size))}@container (width<=480px){.condition-badge{--luzmo-action-button-font-size:.6875rem;--luzmo-action-button-height:1.2rem;--luzmo-button-line-height:1.2rem;font-size:.6875rem;line-height:1.2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}:host([dir=rtl]) .condition-badge{transform:translate(-50%,-50%)rotate(90deg)}}.filters-loading{min-height:var(--filters-progress-circle-size);align-items:center;display:inline-flex}.filters-loading luzmo-progress-circle{--luzmo-progress-circle-size:var(--filters-progress-circle-size)}.filters-text,.filters-outline{font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));line-height:1.5}.filters-outline{--filters-outline-sentence-padding-block:calc((var(--filters-outline-row-min-height) - 1lh) / 2)}luzmo-filter-item[display=text]{--luzmo-filter-item-column-badge-color:var(--luzmo-filters-column-badge-color);--luzmo-filter-item-column-badge-font-color:var(--luzmo-filters-column-badge-font-color);--luzmo-filter-item-text-font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));--luzmo-filter-item-text-expression-color:var(--luzmo-filters-expression-color,var(--filters-expression-color));--luzmo-filter-item-text-expression-font-weight:var(--luzmo-filters-expression-font-weight,var(--filters-expression-font-weight))}.filters-text luzmo-filter-item[display=text],.filters-text-group luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-icon-gap,var(--filters-text-icon-gap))}.outline-sentence>luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap))}.filters-text{white-space:pre-wrap;word-break:break-word}.filters-text .filters-text-condition{margin-inline:0}.filters-text-condition,.filters-text-paren{vertical-align:middle}.filters-text-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight))}.outline-group{gap:var(--luzmo-spacing-1);flex-direction:column;min-width:0;display:flex}.outline-children>.outline-group:not(:first-child){margin-top:calc(var(--luzmo-spacing-1) + var(--filters-outline-sentence-padding-block) + var(--filters-outline-join-spacing) - var(--luzmo-spacing-2))}.outline-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-size:var(--luzmo-filters-outline-condition-font-size,var(--filters-outline-condition-font-size));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));letter-spacing:.04em}.outline-children{gap:var(--luzmo-spacing-2);min-width:0;flex-direction:column;margin-inline-start:var(--luzmo-filters-outline-children-margin-inline-start,var(--filters-outline-children-margin-inline-start));padding-inline-start:var(--luzmo-filters-outline-children-padding-inline-start,var(--filters-outline-children-padding-inline-start));display:flex;position:relative}.outline-children:not(.outline-children--single):before{content:"";inset-inline-start:0;inset-block:var(--luzmo-filters-outline-bracket-inset,var(--filters-outline-bracket-inset));width:var(--luzmo-spacing-2);border-inline-start:1px solid var(--luzmo-border-color);border-block-start:1px solid var(--luzmo-border-color);border-block-end:1px solid var(--luzmo-border-color);border-start-start-radius:var(--luzmo-border-radius);border-end-start-radius:var(--luzmo-border-radius);position:absolute}.outline-children--single{margin-inline-start:0;padding-inline-start:0}.outline-row{align-items:flex-start;column-gap:var(--luzmo-spacing-2);min-width:0;min-height:var(--filters-outline-row-min-height);flex-wrap:nowrap;display:flex}.outline-sentence{align-items:center;gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap));min-width:0;padding-block:var(--filters-outline-sentence-padding-block);flex-wrap:wrap;flex:auto;display:flex}.outline-delete{flex:none;align-self:flex-end;margin-inline-start:auto}:host{--filters-condition-warpper-width:56px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-3);--filters-filters-list-gap:var(--luzmo-spacing-3);--filters-nested-group-margin-top:var(--luzmo-spacing-3);--filters-nested-group-margin-bottom:var(--luzmo-spacing-3);--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-vertical-line-width:1px;--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-3);--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-4);--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size);--filters-text-font-size:var(--luzmo-font-size-m);--filters-outline-row-min-height:var(--luzmo-component-height);--filters-progress-circle-size:var(--luzmo-component-height);--filters-text-part-gap:var(--luzmo-spacing-2);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-2);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-2);--filters-expression-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-expression-font-weight:var(--luzmo-font-weight);--filters-condition-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-condition-font-weight:var(--luzmo-font-weight);--filters-condition-font-weight-emphasized:var(--luzmo-font-weight-bold);--filters-outline-condition-font-size:var(--luzmo-font-size-s)}:host([size=s]){--filters-condition-warpper-width:48px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-group-actions-text-to-visual:var(--luzmo-spacing-1);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-2);--filters-group-actions-gap:var(--luzmo-spacing-2);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-3);--filters-filter-line-gap:var(--luzmo-spacing-2);--filters-group-actions-margin-top:var(--luzmo-spacing-2);--filters-error-message-font-size:var(--luzmo-font-size-s);--filters-text-font-size:var(--luzmo-font-size-s);--filters-outline-row-min-height:var(--luzmo-component-height-s);--filters-progress-circle-size:var(--luzmo-component-height-s);--filters-text-part-gap:var(--luzmo-spacing-1);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-1);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-1);--filters-outline-join-spacing:var(--luzmo-spacing-1);--filters-outline-condition-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filters-condition-warpper-width:64px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:var(--luzmo-spacing-4);--filters-nested-group-margin-top:var(--luzmo-spacing-4);--filters-nested-group-margin-bottom:var(--luzmo-spacing-4);--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size-l);--filters-text-font-size:var(--luzmo-font-size-l);--filters-outline-row-min-height:var(--luzmo-component-height-l);--filters-progress-circle-size:var(--luzmo-component-height-l);--filters-text-part-gap:var(--luzmo-spacing-3);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-3);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-4);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filters-condition-warpper-width:72px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-add-group-button-text-to-visual:var(--luzmo-spacing-4);--filters-group-actions-gap:var(--luzmo-spacing-4);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-5);--filters-filter-line-gap:var(--luzmo-spacing-4);--filters-group-actions-margin-top:var(--luzmo-spacing-4);--filters-error-message-font-size:var(--luzmo-font-size-xl);--filters-text-font-size:var(--luzmo-font-size-xl);--filters-outline-row-min-height:var(--luzmo-component-height-xl);--filters-progress-circle-size:var(--luzmo-component-height-xl);--filters-text-part-gap:var(--luzmo-spacing-4);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-4);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-5);--filters-outline-bracket-inset:var(--luzmo-spacing-3);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-l)}@container (width<=480px){.filter-group-container{--filters-condition-warpper-width:32px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:var(--luzmo-spacing-5)}}`;function Ut(e){if(e instanceof j)return e;throw e}var Wt={and:()=>t(`AND`,{desc:`Logical AND condition for combining filters`}),or:()=>t(`OR`,{desc:`Logical OR condition for combining filters`})};function Q(e){return e===`and`?`or`:`and`}var $=class extends n(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filters=[],this.format=`canonical`,this.simple=!1,this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.allowParameters=!1,this.parameters=[],this.debounce=300,this._internalFilterGroup=null,this._datasets=[],this._datasetsLoading=!1,this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hasSyntheticRoot=!1,this._datasetRequest=0,this._hierarchyRequest=0,this._debounceTimeout=null,this._filterKeys=/* @__PURE__ */ new WeakMap}static get styles(){return[v(Ht)]}_filterKey(e){let t=this._filterKeys.get(e);return t||(t={},this._filterKeys.set(e,t)),t}_preserveFilterKeys(e,t){this._isGroup(e)===this._isGroup(t)&&(this._filterKeys.set(t,this._filterKey(e)),this._isGroup(e)&&this._isGroup(t)&&t.filters.forEach((t,n)=>{let r=e.filters[n];r&&this._preserveFilterKeys(r,t)}))}_isCurrentGroup(e){return this._internalFilterGroup!==null&&(e===this._internalFilterGroup||this._findParentGroup(this._internalFilterGroup,e)!==null)}get _oneSizeSmaller(){return{xxs:`xxs`,xs:`xs`,s:`xs`,m:`s`,l:`m`,xl:`l`,xxl:`xl`}[this.size]||`s`}get _isDatasetIdsEmpty(){return!this.datasetIds||this.datasetIds.length===0}get _hasUnsupportedConditions(){let e=t=>t.condition===`or`||t.filters.some(t=>this._isGroup(t)&&e(t));return this.simple&&this._internalFilterGroup!==null&&e(this._internalFilterGroup)}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.display!==`rich`&&this._loadDatasetsForDisplay()}disconnectedCallback(){super.disconnectedCallback(),this._datasetRequest+=1,this._hierarchyRequest+=1,this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null)}willUpdate(e){if(super.willUpdate(e),e.has(`filters`))try{let e=Et(this.filters),t=this._internalFilterGroup;this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null),e.length===0?(this._internalFilterGroup=null,this._hasSyntheticRoot=!1):e.length===1?(this._internalFilterGroup=structuredClone(e[0]),this._hasSyntheticRoot=!1):(this._internalFilterGroup={condition:`and`,filters:structuredClone(e)},this._hasSyntheticRoot=!0),t&&this._internalFilterGroup&&this._preserveFilterKeys(t,this._internalFilterGroup)}catch(t){console.warn(`[${this.localName}] Keeping the current filters, the new value cannot be normalized:`,Ut(t)),this.filters=e.get(`filters`)??[]}this.display!==`rich`&&(e.has(`display`)||e.has(`datasetIds`)||e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`cacheTime`))&&this._loadDatasetsForDisplay(),this.display!==`rich`&&(e.has(`filters`)||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForDisplay()}async _loadDatasetsForDisplay(){let e=++this._datasetRequest;if(!this.datasetIds||this.datasetIds.length===0){this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();return}let{valid:t,invalid:n}=ee(this.datasetIds);if(n.length>0&&console.warn(`[${this.localName}] Invalid dataset IDs provided (not valid UUIDs): ${n.join(`, `)}. These will be skipped.`),t.length===0)this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();else{this._datasetsLoading=!0,this._configureDataBroker();try{let n=await f.fetchDatasetsWithColumnsAndFormulas(t);if(!this.isConnected||e!==this._datasetRequest)return;this._datasets=n}catch(t){if(!this.isConnected||e!==this._datasetRequest)return;console.error(`[${this.localName}] Error fetching dataset columns & formulas:`,t),this._datasets=[]}finally{this.isConnected&&e===this._datasetRequest&&(this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay())}}}_configureDataBroker(){let e={authKey:this.authKey||``,authToken:this.authToken||``};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),f.configure(e)}async _loadHierarchyLabelsForDisplay(){let e=++this._hierarchyRequest;if(this.display===`rich`||!this._internalFilterGroup){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;return}let t=Ne(this._internalFilterGroup,this._filterTextContext());if(t.length===0){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1}else{this._hierarchyLabelsLoading=!0,this._configureDataBroker();try{let n=await Pe(t,this.contentLanguage);if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=n}catch(t){if(!this.isConnected||e!==this._hierarchyRequest)return;console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{this.isConnected&&e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_filterTextContext(){return{datasets:this._datasets,contentLanguage:this.contentLanguage,timeZone:this.timeZone,hierarchyLabels:this._hierarchyLabels,hierarchyLabelsLoading:this._hierarchyLabelsLoading}}_generateEmptyGroup(){return{id:te(),condition:`and`,filters:[]}}_generateEmptyFilter(){return{expression:void 0,parameters:[],properties:{id:te()}}}_rootGroupsForExport(){if(!this._internalFilterGroup)return[];let e=this._internalFilterGroup.filters.length>0&&this._internalFilterGroup.filters.every(e=>this._isGroup(e));return this._hasSyntheticRoot&&e?structuredClone(this._internalFilterGroup.filters):[structuredClone(this._internalFilterGroup)]}_getFiltersForExport(){let e=this._rootGroupsForExport(),t=this.format===`clean`?`clean`:`canonical`;if(e.length===0)return{filters:[],format:t};if(t===`clean`)try{return{filters:e.flatMap(e=>St(e,{format:`clean`})),format:`clean`}}catch(e){console.warn(`[${this.localName}] Cannot emit clean filters, falling back to canonical output:`,Ut(e))}return{filters:e.flatMap(e=>St(e)),format:`canonical`}}_sendChangeEvent(){this._debounceTimeout&&clearTimeout(this._debounceTimeout);let e=()=>{this._debounceTimeout=null,!this._hasUnsupportedConditions&&this.dispatchEvent(new CustomEvent(`luzmo-filters-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:this._getFiltersForExport()}))};this.debounce>0?this._debounceTimeout=setTimeout(e,this.debounce):e()}_isGroup(e){return`condition`in e&&`filters`in e}_handleParameterCreated(e){let t=e.detail?.parameter;this.readonly||!t||this.parameters.some(({parameter:e})=>e===t.parameter)||(this.parameters=[...this.parameters,t])}_toggleCondition(e){this.readonly||this.simple||(e.condition=Q(e.condition),e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1),this.requestUpdate(),this._sendChangeEvent())}_addFilter(e){if(this.readonly||this._isDatasetIdsEmpty||this._hasUnsupportedConditions)return;let t=e;t||=(this._internalFilterGroup||=this._generateEmptyGroup(),this._internalFilterGroup),t.filters.push(this._generateEmptyFilter()),this.requestUpdate(),this._sendChangeEvent()}_addSubGroup(e){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this.requestUpdate(),this._sendChangeEvent()}_removeFilter(e,t){if(this.readonly||!this._internalFilterGroup||!this._isCurrentGroup(e)||this._hasUnsupportedConditions)return;let n=e.filters.findIndex(e=>this._filterKey(e)===t);if(n!==-1){if(e.filters.splice(n,1),e!==this._internalFilterGroup&&e.filters.length===0){let t=this._findParentGroup(this._internalFilterGroup,e);if(t){let n=t.filters.indexOf(e);n!==-1&&t.filters.splice(n,1)}}this._collapseGroupsAfterDelete(),this.requestUpdate(),this._sendChangeEvent()}}_updateFilter(e,t,n){n.stopPropagation();let r=n.currentTarget;if(this.readonly||!r?.isConnected||this._hasUnsupportedConditions||!this._isCurrentGroup(e))return;let i=e.filters.findIndex(e=>this._filterKey(e)===t);i!==-1&&(this._isGroup(e.filters[i])||(this._filterKeys.set(n.detail.filter,t),e.filters[i]=n.detail.filter,this._sendChangeEvent()))}_addGroup(){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;this._internalFilterGroup||=this._generateEmptyGroup();let e=this._generateEmptyGroup();e.condition=Q(this._internalFilterGroup.condition),e.filters.push(this._internalFilterGroup);let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this._internalFilterGroup=e,this._hasSyntheticRoot=!1,this.requestUpdate(),this._sendChangeEvent()}_renderFilterItem(e,n){return m`
|
|
365
|
+
</div>`}};t([g({type:String,attribute:`api-url`,reflect:!0})],Z.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],Z.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],Z.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],Z.prototype,`cacheTime`,void 0),t([g({type:String,reflect:!0})],Z.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],Z.prototype,`timeZone`,void 0),t([g({type:Array,attribute:`dataset-ids`,reflect:!0})],Z.prototype,`datasetIds`,void 0),t([g({type:Object,reflect:!1})],Z.prototype,`filter`,void 0),t([g({type:String,reflect:!0})],Z.prototype,`display`,void 0),t([g({type:String,attribute:`column-display`,reflect:!0})],Z.prototype,`columnDisplay`,void 0),t([g({type:Boolean,reflect:!0})],Z.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],Z.prototype,`readonly`,void 0),t([g({type:Boolean,reflect:!0})],Z.prototype,`disabled`,void 0),t([g({attribute:!1})],Z.prototype,`textContext`,void 0),t([g({type:Boolean,attribute:`allow-parameters`,reflect:!0})],Z.prototype,`allowParameters`,void 0),t([g({attribute:!1})],Z.prototype,`parameters`,void 0),t([_()],Z.prototype,`_type`,void 0),t([_()],Z.prototype,`_subType`,void 0),t([_()],Z.prototype,`_isFormula`,void 0),t([_()],Z.prototype,`_error`,void 0),t([_()],Z.prototype,`_loading`,void 0),t([_()],Z.prototype,`_datasetsDataFields`,void 0),t([_()],Z.prototype,`_hierarchyLabels`,void 0),t([_()],Z.prototype,`_hierarchyLabelsLoading`,void 0),Z=t([i()],Z),customElements.get(`luzmo-filter-item`)||customElements.define(`luzmo-filter-item`,Z);var Ht=`:host{font-family:var(--luzmo-filters-font-family,var(--luzmo-font-family));color:var(--luzmo-filters-font-color,var(--luzmo-font-color));max-width:100%;display:block;container-type:inline-size}.filter-group-container{max-width:100%;padding:calc(var(--luzmo-indicator-gap) + 2 * var(--luzmo-indicator-width));overflow-x:hidden}.filter-group{flex-direction:row;min-width:0;max-width:100%;display:flex}.filter-group.nested{margin-top:var(--luzmo-filters-nested-group-margin-top,var(--filters-nested-group-margin-top));margin-bottom:var(--luzmo-filters-nested-group-margin-bottom,var(--filters-nested-group-margin-bottom))}.group-content{flex-direction:column;flex:1;min-width:0;display:flex}.filters-list{gap:var(--luzmo-filters-filters-list-gap,var(--filters-filters-list-gap));flex-direction:column;min-width:0;max-width:100%;display:flex}.filter-item-wrapper{align-items:flex-start;min-width:0;max-width:100%;display:flex;position:relative}.filter-item-content{align-items:flex-start;gap:var(--luzmo-filters-filter-line-gap,var(--filters-filter-line-gap));flex-wrap:nowrap;flex:1;min-width:0;display:flex}.filter-item-content luzmo-filter-item{flex:1;min-width:0}.filter-item-content .delete-filter-button{flex-shrink:0;align-self:flex-end;margin-inline-start:auto}.condition-wrapper{flex:0 0 var(--luzmo-filters-condition-warpper-width,var(--filters-condition-warpper-width));justify-content:center;align-items:center;display:flex;position:relative}.condition-wrapper:before{content:"";left:50%;top:var(--luzmo-filters-vertical-line-top,var(--filters-vertical-line-top));bottom:var(--luzmo-filters-vertical-line-bottom,var(--filters-vertical-line-bottom));width:var(--luzmo-filters-vertical-line-width,var(--filters-vertical-line-width));background:var(--luzmo-filters-vertical-line-color,var(--luzmo-border-color));position:absolute}.condition-badge{min-width:auto;padding-inline:var(--luzmo-filters-condition-padding-horizontal,var(--filters-condition-padding-horizontal));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));text-transform:uppercase;background:var(--luzmo-filters-condition-badge-background,var(--luzmo-primary));color:var(--luzmo-filters-condition-badge-color,var(--luzmo-primary-inverse-color));border-radius:var(--luzmo-filters-condition-badge-border-radius,var(--luzmo-border-radius));box-shadow:0 0 0 var(--luzmo-filters-condition-badge-halo,var(--filters-condition-badge-halo)) var(--luzmo-filters-condition-badge-background,var(--luzmo-background-color))}.condition-badge:hover{background:var(--luzmo-filters-condition-badge-background-hover,var(--luzmo-primary-hover))}.group-actions{margin-top:var(--luzmo-filters-group-actions-margin-top,var(--filters-group-actions-margin-top));gap:var(--luzmo-filters-group-actions-gap,var(--filters-group-actions-gap));flex-wrap:wrap;display:flex}.delete-group-button{margin-left:auto}.add-root-group-container{margin-top:var(--luzmo-filters-add-root-group-container-margin-top,var(--filters-add-root-group-container-margin-top));padding-left:0}.add-subgroup-button,.add-filter-button{--luzmo-action-button-text-to-visual:var(--luzmo-filters-group-actions-text-to-visual,var(--filters-group-actions-text-to-visual));--luzmo-action-button-content-color-default:var(--luzmo-filters-group-actions-color,var(--luzmo-primary-hover));--luzmo-action-button-content-color-hover:var(--luzmo-filters-group-actions-color-hover,var(--luzmo-primary-hover));--luzmo-action-button-content-color-down:var(--luzmo-filters-group-actions-color-down,var(--luzmo-primary-down));--luzmo-action-button-content-color-focus:var(--luzmo-filters-group-actions-color-focus,var(--luzmo-primary-focus))}.add-group-button{--luzmo-button-padding-label-to-icon:var(--luzmo-filters-add-group-button-text-to-visual,var(--filters-add-group-button-text-to-visual))}.dataset-ids-empty-message{color:var(--luzmo-filters-error-message-color,var(--luzmo-disabled-color));font-size:var(--luzmo-filters-error-message-font-size,var(--filters-font-size))}@container (width<=480px){.condition-badge{--luzmo-action-button-font-size:.6875rem;--luzmo-action-button-height:1.2rem;--luzmo-button-line-height:1.2rem;font-size:.6875rem;line-height:1.2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}:host([dir=rtl]) .condition-badge{transform:translate(-50%,-50%)rotate(90deg)}}.filters-loading{min-height:var(--filters-progress-circle-size);align-items:center;display:inline-flex}.filters-loading luzmo-progress-circle{--luzmo-progress-circle-size:var(--filters-progress-circle-size)}.filters-text,.filters-outline{font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));line-height:1.5}.filters-outline{--filters-outline-sentence-padding-block:calc((var(--filters-outline-row-min-height) - 1lh) / 2)}luzmo-filter-item[display=text]{--luzmo-filter-item-column-badge-color:var(--luzmo-filters-column-badge-color);--luzmo-filter-item-column-badge-font-color:var(--luzmo-filters-column-badge-font-color);--luzmo-filter-item-text-font-size:var(--luzmo-filters-text-font-size,var(--filters-text-font-size));--luzmo-filter-item-text-expression-color:var(--luzmo-filters-expression-color,var(--filters-expression-color));--luzmo-filter-item-text-expression-font-weight:var(--luzmo-filters-expression-font-weight,var(--filters-expression-font-weight))}.filters-text luzmo-filter-item[display=text],.filters-text-group luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-icon-gap,var(--filters-text-icon-gap))}.outline-sentence>luzmo-filter-item[display=text]{--luzmo-filter-item-text-icon-gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap))}.filters-text{white-space:pre-wrap;word-break:break-word}.filters-text .filters-text-condition{margin-inline:0}.filters-text-condition,.filters-text-paren{vertical-align:middle}.filters-text-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight))}.outline-group{gap:var(--luzmo-spacing-1);flex-direction:column;min-width:0;display:flex}.outline-children>.outline-group:not(:first-child){margin-top:calc(var(--luzmo-spacing-1) + var(--filters-outline-sentence-padding-block) + var(--filters-outline-join-spacing) - var(--luzmo-spacing-2))}.outline-condition{color:var(--luzmo-filters-condition-color,var(--filters-condition-color));font-size:var(--luzmo-filters-outline-condition-font-size,var(--filters-outline-condition-font-size));font-weight:var(--luzmo-filters-condition-font-weight,var(--filters-condition-font-weight-emphasized));letter-spacing:.04em}.outline-children{gap:var(--luzmo-spacing-2);min-width:0;flex-direction:column;margin-inline-start:var(--luzmo-filters-outline-children-margin-inline-start,var(--filters-outline-children-margin-inline-start));padding-inline-start:var(--luzmo-filters-outline-children-padding-inline-start,var(--filters-outline-children-padding-inline-start));display:flex;position:relative}.outline-children:not(.outline-children--single):before{content:"";inset-inline-start:0;inset-block:var(--luzmo-filters-outline-bracket-inset,var(--filters-outline-bracket-inset));width:var(--luzmo-spacing-2);border-inline-start:1px solid var(--luzmo-border-color);border-block-start:1px solid var(--luzmo-border-color);border-block-end:1px solid var(--luzmo-border-color);border-start-start-radius:var(--luzmo-border-radius);border-end-start-radius:var(--luzmo-border-radius);position:absolute}.outline-children--single{margin-inline-start:0;padding-inline-start:0}.outline-row{align-items:flex-start;column-gap:var(--luzmo-spacing-2);min-width:0;min-height:var(--filters-outline-row-min-height);flex-wrap:nowrap;display:flex}.outline-sentence{align-items:center;gap:var(--luzmo-filters-text-part-gap,var(--filters-text-part-gap));min-width:0;padding-block:var(--filters-outline-sentence-padding-block);flex-wrap:wrap;flex:auto;display:flex}.outline-delete{flex:none;align-self:flex-end;margin-inline-start:auto}:host{--filters-condition-warpper-width:56px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-3);--filters-filters-list-gap:var(--luzmo-spacing-3);--filters-nested-group-margin-top:var(--luzmo-spacing-3);--filters-nested-group-margin-bottom:var(--luzmo-spacing-3);--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-vertical-line-width:1px;--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-3);--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-4);--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size);--filters-text-font-size:var(--luzmo-font-size-m);--filters-outline-row-min-height:var(--luzmo-component-height);--filters-progress-circle-size:var(--luzmo-component-height);--filters-text-part-gap:var(--luzmo-spacing-2);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-2);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-2);--filters-expression-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-expression-font-weight:var(--luzmo-font-weight);--filters-condition-color:var(--luzmo-filters-font-color,var(--luzmo-font-color));--filters-condition-font-weight:var(--luzmo-font-weight);--filters-condition-font-weight-emphasized:var(--luzmo-font-weight-bold);--filters-outline-condition-font-size:var(--luzmo-font-size-s)}:host([size=s]){--filters-condition-warpper-width:48px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-group-actions-text-to-visual:var(--luzmo-spacing-1);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-2);--filters-group-actions-gap:var(--luzmo-spacing-2);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-3);--filters-filter-line-gap:var(--luzmo-spacing-2);--filters-group-actions-margin-top:var(--luzmo-spacing-2);--filters-error-message-font-size:var(--luzmo-font-size-s);--filters-text-font-size:var(--luzmo-font-size-s);--filters-outline-row-min-height:var(--luzmo-component-height-s);--filters-progress-circle-size:var(--luzmo-component-height-s);--filters-text-part-gap:var(--luzmo-spacing-1);--filters-text-icon-gap:var(--luzmo-spacing-1);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-1);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-3);--filters-outline-bracket-inset:var(--luzmo-spacing-1);--filters-outline-join-spacing:var(--luzmo-spacing-1);--filters-outline-condition-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filters-condition-warpper-width:64px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:var(--luzmo-spacing-4);--filters-nested-group-margin-top:var(--luzmo-spacing-4);--filters-nested-group-margin-bottom:var(--luzmo-spacing-4);--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size-l);--filters-text-font-size:var(--luzmo-font-size-l);--filters-outline-row-min-height:var(--luzmo-component-height-l);--filters-progress-circle-size:var(--luzmo-component-height-l);--filters-text-part-gap:var(--luzmo-spacing-3);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-3);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-4);--filters-outline-bracket-inset:var(--luzmo-spacing-2);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filters-condition-warpper-width:72px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-add-group-button-text-to-visual:var(--luzmo-spacing-4);--filters-group-actions-gap:var(--luzmo-spacing-4);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-5);--filters-filter-line-gap:var(--luzmo-spacing-4);--filters-group-actions-margin-top:var(--luzmo-spacing-4);--filters-error-message-font-size:var(--luzmo-font-size-xl);--filters-text-font-size:var(--luzmo-font-size-xl);--filters-outline-row-min-height:var(--luzmo-component-height-xl);--filters-progress-circle-size:var(--luzmo-component-height-xl);--filters-text-part-gap:var(--luzmo-spacing-4);--filters-text-icon-gap:var(--luzmo-spacing-2);--filters-outline-children-margin-inline-start:var(--luzmo-spacing-4);--filters-outline-children-padding-inline-start:var(--luzmo-spacing-5);--filters-outline-bracket-inset:var(--luzmo-spacing-3);--filters-outline-join-spacing:var(--luzmo-spacing-3);--filters-outline-condition-font-size:var(--luzmo-font-size-l)}@container (width<=480px){.filter-group-container{--filters-condition-warpper-width:32px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:var(--luzmo-spacing-5)}}`;function Ut(e){if(e instanceof j)return e;throw e}var Wt={and:()=>n(`AND`,{desc:`Logical AND condition for combining filters`}),or:()=>n(`OR`,{desc:`Logical OR condition for combining filters`})};function Q(e){return e===`and`?`or`:`and`}var $=class extends r(x(b,{validSizes:Object.values(y)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filters=[],this.format=`canonical`,this.simple=!1,this.display=`rich`,this.columnDisplay=`text`,this.quiet=!1,this.readonly=!1,this.allowParameters=!1,this.parameters=[],this.debounce=300,this._internalFilterGroup=null,this._datasets=[],this._datasetsLoading=!1,this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1,this._hasSyntheticRoot=!1,this._datasetRequest=0,this._hierarchyRequest=0,this._debounceTimeout=null,this._filterKeys=/* @__PURE__ */ new WeakMap}static get styles(){return[v(Ht)]}_filterKey(e){let t=this._filterKeys.get(e);return t||(t={},this._filterKeys.set(e,t)),t}_preserveFilterKeys(e,t){this._isGroup(e)===this._isGroup(t)&&(this._filterKeys.set(t,this._filterKey(e)),this._isGroup(e)&&this._isGroup(t)&&t.filters.forEach((t,n)=>{let r=e.filters[n];r&&this._preserveFilterKeys(r,t)}))}_isCurrentGroup(e){return this._internalFilterGroup!==null&&(e===this._internalFilterGroup||this._findParentGroup(this._internalFilterGroup,e)!==null)}get _oneSizeSmaller(){return{xxs:`xxs`,xs:`xs`,s:`xs`,m:`s`,l:`m`,xl:`l`,xxl:`xl`}[this.size]||`s`}get _isDatasetIdsEmpty(){return!this.datasetIds||this.datasetIds.length===0}get _hasUnsupportedConditions(){let e=t=>t.condition===`or`||t.filters.some(t=>this._isGroup(t)&&e(t));return this.simple&&this._internalFilterGroup!==null&&e(this._internalFilterGroup)}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.display!==`rich`&&this._loadDatasetsForDisplay()}disconnectedCallback(){super.disconnectedCallback(),this._datasetRequest+=1,this._hierarchyRequest+=1,this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null)}willUpdate(e){if(super.willUpdate(e),e.has(`filters`))try{let e=Et(this.filters),t=this._internalFilterGroup;this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null),e.length===0?(this._internalFilterGroup=null,this._hasSyntheticRoot=!1):e.length===1?(this._internalFilterGroup=structuredClone(e[0]),this._hasSyntheticRoot=!1):(this._internalFilterGroup={condition:`and`,filters:structuredClone(e)},this._hasSyntheticRoot=!0),t&&this._internalFilterGroup&&this._preserveFilterKeys(t,this._internalFilterGroup)}catch(t){console.warn(`[${this.localName}] Keeping the current filters, the new value cannot be normalized:`,Ut(t)),this.filters=e.get(`filters`)??[]}this.display!==`rich`&&(e.has(`display`)||e.has(`datasetIds`)||e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`cacheTime`))&&this._loadDatasetsForDisplay(),this.display!==`rich`&&(e.has(`filters`)||e.has(`display`)||e.has(`contentLanguage`))&&this._loadHierarchyLabelsForDisplay()}async _loadDatasetsForDisplay(){let e=++this._datasetRequest;if(!this.datasetIds||this.datasetIds.length===0){this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();return}let{valid:t,invalid:n}=ee(this.datasetIds);if(n.length>0&&console.warn(`[${this.localName}] Invalid dataset IDs provided (not valid UUIDs): ${n.join(`, `)}. These will be skipped.`),t.length===0)this._datasets=[],this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay();else{this._datasetsLoading=!0,this._configureDataBroker();try{let n=await f.fetchDatasetsWithColumnsAndFormulas(t);if(!this.isConnected||e!==this._datasetRequest)return;this._datasets=n}catch(t){if(!this.isConnected||e!==this._datasetRequest)return;console.error(`[${this.localName}] Error fetching dataset columns & formulas:`,t),this._datasets=[]}finally{this.isConnected&&e===this._datasetRequest&&(this._datasetsLoading=!1,this._loadHierarchyLabelsForDisplay())}}}_configureDataBroker(){let e={authKey:this.authKey||``,authToken:this.authToken||``};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),f.configure(e)}async _loadHierarchyLabelsForDisplay(){let e=++this._hierarchyRequest;if(this.display===`rich`||!this._internalFilterGroup){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1;return}let t=Ne(this._internalFilterGroup,this._filterTextContext());if(t.length===0){if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=/* @__PURE__ */ new Map,this._hierarchyLabelsLoading=!1}else{this._hierarchyLabelsLoading=!0,this._configureDataBroker();try{let n=await Pe(t,this.contentLanguage);if(!this.isConnected||e!==this._hierarchyRequest)return;this._hierarchyLabels=n}catch(t){if(!this.isConnected||e!==this._hierarchyRequest)return;console.error(`[${this.localName}] Error fetching hierarchy member names:`,t)}finally{this.isConnected&&e===this._hierarchyRequest&&(this._hierarchyLabelsLoading=!1)}}}_filterTextContext(){return{datasets:this._datasets,contentLanguage:this.contentLanguage,timeZone:this.timeZone,hierarchyLabels:this._hierarchyLabels,hierarchyLabelsLoading:this._hierarchyLabelsLoading}}_generateEmptyGroup(){return{id:te(),condition:`and`,filters:[]}}_generateEmptyFilter(){return{expression:void 0,parameters:[],properties:{id:te()}}}_rootGroupsForExport(){if(!this._internalFilterGroup)return[];let e=this._internalFilterGroup.filters.length>0&&this._internalFilterGroup.filters.every(e=>this._isGroup(e));return this._hasSyntheticRoot&&e?structuredClone(this._internalFilterGroup.filters):[structuredClone(this._internalFilterGroup)]}_getFiltersForExport(){let e=this._rootGroupsForExport(),t=this.format===`clean`?`clean`:`canonical`;if(e.length===0)return{filters:[],format:t};if(t===`clean`)try{return{filters:e.flatMap(e=>St(e,{format:`clean`})),format:`clean`}}catch(e){console.warn(`[${this.localName}] Cannot emit clean filters, falling back to canonical output:`,Ut(e))}return{filters:e.flatMap(e=>St(e)),format:`canonical`}}_sendChangeEvent(){this._debounceTimeout&&clearTimeout(this._debounceTimeout);let e=()=>{this._debounceTimeout=null,!this._hasUnsupportedConditions&&this.dispatchEvent(new CustomEvent(`luzmo-filters-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:this._getFiltersForExport()}))};this.debounce>0?this._debounceTimeout=setTimeout(e,this.debounce):e()}_isGroup(e){return`condition`in e&&`filters`in e}_handleParameterCreated(e){let t=e.detail?.parameter;this.readonly||!t||this.parameters.some(({parameter:e})=>e===t.parameter)||(this.parameters=[...this.parameters,t])}_toggleCondition(e){this.readonly||this.simple||(e.condition=Q(e.condition),e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1),this.requestUpdate(),this._sendChangeEvent())}_addFilter(e){if(this.readonly||this._isDatasetIdsEmpty||this._hasUnsupportedConditions)return;let t=e;t||=(this._internalFilterGroup||=this._generateEmptyGroup(),this._internalFilterGroup),t.filters.push(this._generateEmptyFilter()),this.requestUpdate(),this._sendChangeEvent()}_addSubGroup(e){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this.requestUpdate(),this._sendChangeEvent()}_removeFilter(e,t){if(this.readonly||!this._internalFilterGroup||!this._isCurrentGroup(e)||this._hasUnsupportedConditions)return;let n=e.filters.findIndex(e=>this._filterKey(e)===t);if(n!==-1){if(e.filters.splice(n,1),e!==this._internalFilterGroup&&e.filters.length===0){let t=this._findParentGroup(this._internalFilterGroup,e);if(t){let n=t.filters.indexOf(e);n!==-1&&t.filters.splice(n,1)}}this._collapseGroupsAfterDelete(),this.requestUpdate(),this._sendChangeEvent()}}_updateFilter(e,t,n){n.stopPropagation();let r=n.currentTarget;if(this.readonly||!r?.isConnected||this._hasUnsupportedConditions||!this._isCurrentGroup(e))return;let i=e.filters.findIndex(e=>this._filterKey(e)===t);i!==-1&&(this._isGroup(e.filters[i])||(this._filterKeys.set(n.detail.filter,t),e.filters[i]=n.detail.filter,this._sendChangeEvent()))}_addGroup(){if(this.readonly||this._isDatasetIdsEmpty||this.simple)return;this._internalFilterGroup||=this._generateEmptyGroup();let e=this._generateEmptyGroup();e.condition=Q(this._internalFilterGroup.condition),e.filters.push(this._internalFilterGroup);let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this._internalFilterGroup=e,this._hasSyntheticRoot=!1,this.requestUpdate(),this._sendChangeEvent()}_renderFilterItem(e,t){return m`
|
|
366
366
|
<div class="filter-item-wrapper">
|
|
367
367
|
<div class="filter-item-content">
|
|
368
368
|
<luzmo-filter-item
|
|
@@ -380,7 +380,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
380
380
|
.size=${this.size}
|
|
381
381
|
.quiet=${this.quiet}
|
|
382
382
|
.readonly=${this.readonly}
|
|
383
|
-
@luzmo-filter-changed=${this._updateFilter.bind(this,
|
|
383
|
+
@luzmo-filter-changed=${this._updateFilter.bind(this,t,this._filterKey(e))}
|
|
384
384
|
@luzmo-parameter-created=${this._handleParameterCreated}
|
|
385
385
|
></luzmo-filter-item>
|
|
386
386
|
<luzmo-action-button
|
|
@@ -388,16 +388,16 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
388
388
|
.size=${this.size}
|
|
389
389
|
quiet
|
|
390
390
|
aria-disabled=${this.readonly?`true`:h}
|
|
391
|
-
.label=${
|
|
392
|
-
@click=${this._removeFilter.bind(this,
|
|
391
|
+
.label=${n(`Remove filter`,{desc:`Aria label for remove filter button`})}
|
|
392
|
+
@click=${this._removeFilter.bind(this,t,this._filterKey(e))}
|
|
393
393
|
>
|
|
394
394
|
<luzmo-icon slot="icon" .icon=${a} .size=${this.size}></luzmo-icon>
|
|
395
395
|
</luzmo-action-button>
|
|
396
396
|
</div>
|
|
397
397
|
</div>
|
|
398
|
-
`}_renderGroup(e,
|
|
399
|
-
<div class="filter-group ${
|
|
400
|
-
${!this.simple&&(
|
|
398
|
+
`}_renderGroup(e,t=!1){let r=e.filters.length>0,i=e.filters.length>1,a=Wt[e.condition]?.()??e.condition;return m`
|
|
399
|
+
<div class="filter-group ${t&&!this.simple?`nested`:``}" role="group">
|
|
400
|
+
${!this.simple&&(t||i)?m`
|
|
401
401
|
<div class="condition-wrapper">
|
|
402
402
|
${i?m`
|
|
403
403
|
<luzmo-action-button
|
|
@@ -406,7 +406,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
406
406
|
quiet
|
|
407
407
|
aria-disabled=${this.readonly?`true`:h}
|
|
408
408
|
aria-pressed=${e.condition===`and`?`true`:`false`}
|
|
409
|
-
.label=${
|
|
409
|
+
.label=${n(`Toggle filter condition, currently `,{desc:`Aria label prefix for filter condition toggle`})+a}
|
|
410
410
|
@click=${this._toggleCondition.bind(this,e)}
|
|
411
411
|
>
|
|
412
412
|
${a}
|
|
@@ -433,7 +433,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
433
433
|
@click=${this._addFilter.bind(this,e)}
|
|
434
434
|
>
|
|
435
435
|
<luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
436
|
-
${
|
|
436
|
+
${n(`Filter`,{desc:`Add filter button label`})}
|
|
437
437
|
</luzmo-action-button>
|
|
438
438
|
|
|
439
439
|
${this.simple?h:m`<luzmo-action-button
|
|
@@ -445,7 +445,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
445
445
|
@click=${this._addSubGroup.bind(this,e)}
|
|
446
446
|
>
|
|
447
447
|
<luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
448
|
-
${
|
|
448
|
+
${n(`Subgroup`,{desc:`Add subgroup button label`})}
|
|
449
449
|
</luzmo-action-button>`}
|
|
450
450
|
</div>
|
|
451
451
|
</div>
|
|
@@ -461,20 +461,20 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
461
461
|
.timeZone=${this.timeZone}
|
|
462
462
|
.size=${this.size}
|
|
463
463
|
readonly
|
|
464
|
-
></luzmo-filter-item>`:h}_renderTextGroup(
|
|
465
|
-
>${C(
|
|
466
|
-
>`}_renderDatasetLoading(){let e=
|
|
464
|
+
></luzmo-filter-item>`:h}_renderTextGroup(t,r){let i=[];for(let e of t.filters){let t=this._isGroup(e)?this._renderTextGroup(e,!1):this._renderTextLeaf(e);t!==h&&i.push(t)}if(i.length===0)return h;if(i.length===1)return i[0];let a=m`<span class="filters-text-condition">${Wt[t.condition]()}</span>`,o=t.condition===`or`?n(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filters-sentence-or`,desc:`Left filter sentence, logical OR condition, and right filter sentence`}):n(e`${S[0]}\u2063 ${S[1]}\u2063 ${S[2]}`,{id:`filters-sentence-and`,desc:`Left filter sentence, logical AND condition, and right filter sentence`}),s=i.slice(1).reduce((e,t)=>C(o,[m`${e}`,a,t]),[i[0]]);return r?m`${s}`:m`<span class="filters-text-group"
|
|
465
|
+
>${C(n(e`(${S[0]})`,{id:`filters-sentence-parentheses`,desc:`Nested filter sentence wrapped in parentheses`}),[m`${s}`]).map(e=>typeof e==`string`?m`<span class="filters-text-paren">${e}</span>`:e)}</span
|
|
466
|
+
>`}_renderDatasetLoading(){let e=n(`Loading filters`,{desc:`Accessible label while filter column names are loading`});return m`<div class="filters-loading" role="status">
|
|
467
467
|
<luzmo-progress-circle indeterminate .label=${e} .size=${this.size}></luzmo-progress-circle>
|
|
468
468
|
</div>`}_renderTextDisplay(){return m`<span class="filters-text" part="filters-text"
|
|
469
469
|
>${this._internalFilterGroup?this._renderTextGroup(this._internalFilterGroup,!0):h}</span
|
|
470
|
-
>`}_deleteOutlineFilter(e,t){this.readonly||this.display!==`outline`||this._removeFilter(e,t)}_renderOutlineRow(e,
|
|
470
|
+
>`}_deleteOutlineFilter(e,t){this.readonly||this.display!==`outline`||this._removeFilter(e,t)}_renderOutlineRow(e,t){let r=this._renderTextLeaf(e);if(r===h)return h;let i=n(`Remove filter`,{desc:`Aria label for remove filter button`});return m`<div class="outline-row" part="filters-outline-row">
|
|
471
471
|
<span class="outline-sentence">${r}</span>
|
|
472
472
|
${this.readonly?h:m`<luzmo-action-button
|
|
473
473
|
class="delete-filter-button outline-delete"
|
|
474
474
|
.size=${this.size}
|
|
475
475
|
quiet
|
|
476
476
|
.label=${i}
|
|
477
|
-
@click=${()=>this._deleteOutlineFilter(
|
|
477
|
+
@click=${()=>this._deleteOutlineFilter(t,this._filterKey(e))}
|
|
478
478
|
>
|
|
479
479
|
<luzmo-icon slot="icon" .icon=${a} .size=${this.size}></luzmo-icon>
|
|
480
480
|
</luzmo-action-button>`}
|
|
@@ -486,11 +486,11 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
486
486
|
</div>`}_renderOutlineDisplay(){return m`<div class="filters-outline" part="filters-outline">
|
|
487
487
|
${this._internalFilterGroup?this._renderOutlineGroup(this._internalFilterGroup):h}
|
|
488
488
|
</div>`}render(){if(this._hasUnsupportedConditions&&this.display!==`text`)return m`<div class="filter-group-container" role="status">
|
|
489
|
-
${
|
|
489
|
+
${n(`Filters containing OR cannot be edited in AND-only mode.`,{desc:`Explains why existing OR filters are not editable in the simplified filter editor`})}
|
|
490
490
|
</div>`;if(this.display===`text`||this.display===`outline`)return this._datasetsLoading&&this._datasets.length===0?this._renderDatasetLoading():this.display===`text`?this._renderTextDisplay():this._renderOutlineDisplay();if(this._isDatasetIdsEmpty)return m`
|
|
491
491
|
<div class="filter-group-container">
|
|
492
492
|
<div class="dataset-ids-empty-message" role="status">
|
|
493
|
-
${
|
|
493
|
+
${n(`Cannot retrieve dataset data fields`,{desc:`Error message when datasetIds is empty`})}
|
|
494
494
|
</div>
|
|
495
495
|
</div>
|
|
496
496
|
`;if(!this._internalFilterGroup||this._internalFilterGroup.filters.length===0)return m`
|
|
@@ -505,7 +505,7 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
505
505
|
@click=${()=>this._addFilter()}
|
|
506
506
|
>
|
|
507
507
|
<luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
508
|
-
${
|
|
508
|
+
${n(`Add filter`,{desc:`Add filter button label`})}
|
|
509
509
|
</luzmo-button>
|
|
510
510
|
</div>
|
|
511
511
|
`;let e=this._internalFilterGroup.filters.length>1;return m`
|
|
@@ -524,9 +524,9 @@ import{a as e,i as t,n,r}from"./version-BW4Ixl63.js";import{t as i}from"./locali
|
|
|
524
524
|
@click=${this._addGroup}
|
|
525
525
|
>
|
|
526
526
|
<luzmo-icon slot="icon" .icon=${u} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
527
|
-
${
|
|
527
|
+
${n(`Group`,{desc:`Add group button label`})}
|
|
528
528
|
</luzmo-button>
|
|
529
529
|
</div>
|
|
530
530
|
`:``}
|
|
531
531
|
</div>
|
|
532
|
-
`}};
|
|
532
|
+
`}};t([g({type:String,attribute:`api-url`,reflect:!0})],$.prototype,`apiUrl`,void 0),t([g({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),t([g({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),t([g({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),t([g({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),t([g({type:String,attribute:`time-zone`,reflect:!0})],$.prototype,`timeZone`,void 0),t([g({type:Array,attribute:`dataset-ids`,reflect:!0})],$.prototype,`datasetIds`,void 0),t([g({type:Array,reflect:!1})],$.prototype,`filters`,void 0),t([g({type:String,reflect:!0})],$.prototype,`format`,void 0),t([g({type:Boolean,reflect:!0})],$.prototype,`simple`,void 0),t([g({type:String,reflect:!0})],$.prototype,`display`,void 0),t([g({type:String,attribute:`column-display`,reflect:!0})],$.prototype,`columnDisplay`,void 0),t([g({type:Boolean,reflect:!0})],$.prototype,`quiet`,void 0),t([g({type:Boolean,reflect:!0})],$.prototype,`readonly`,void 0),t([g({type:Boolean,attribute:`allow-parameters`,reflect:!0})],$.prototype,`allowParameters`,void 0),t([g({attribute:!1})],$.prototype,`parameters`,void 0),t([g({type:Number,reflect:!0})],$.prototype,`debounce`,void 0),t([_()],$.prototype,`_internalFilterGroup`,void 0),t([_()],$.prototype,`_datasets`,void 0),t([_()],$.prototype,`_datasetsLoading`,void 0),t([_()],$.prototype,`_hierarchyLabels`,void 0),t([_()],$.prototype,`_hierarchyLabelsLoading`,void 0),$=t([i()],$),customElements.get(`luzmo-filters`)||customElements.define(`luzmo-filters`,$);export{j as FilterUnrepresentableError,$ as LuzmoFilters,Fe as MAX_FILTER_NESTING_DEPTH,We as detectFiltersFormat,Et as reverseTransformFilters,gt as toLogicalCondition,St as transformFilters};
|