@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,172 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import{i as e,n as t,r as n}from"./version-BW4Ixl63.js";import{t as r}from"./localized-decorator-DJVBmJVH.js";import{t as i}from"./luzmoAngleDown-PNrItYzK.js";import{n as a,u as o}from"./load-data-fields-for-datasets-ClctSj6y.js";import{t as s}from"./luzmo-icon-markup-ByaNI6dg.js";import{d as c,f as l,p as u}from"./chart-helpers-DsIGsaDc.js";import{t as d}from"./localize-DXRmGRe-.js";import{v as f}from"./item-slot-picker-panel-D4BMxGs9.js";import{html as p,nothing as m,property as h,query as g,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/menu.js";import{removeSlottableRequest as y}from"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/tooltip.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-group.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";var b=`:host .settings-container{gap:var(--luzmo-display-settings-vertical-gap,var(--luzmo-spacing-2));flex-direction:column;display:flex}:host .settings-row{justify-content:flex-start;align-items:center;gap:var(--luzmo-display-settings-numeric-gap,var(--display-settings-numeric-gap));display:flex}.duration-angle-down-icon{margin-inline-start:var(--luzmo-numeric-duration-levels-dropdown-icon-margin-inline-start,var(--numeric-duration-levels-dropdown-icon-margin-inline-start))}.dataset-header{white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;max-width:100%;color:var(--luzmo-font-color);white-space:nowrap;cursor:default;margin:.5rem 1rem;font-weight:600;overflow:hidden}.no-weight-label{margin-left:1rem}.with-secondary-icon{clip-path:polygon(0 0,60% 0,65% 60%,100% 65%,100% 100%,0 100%)}.secondary-icon{width:auto;font-size:.75em;line-height:1;position:absolute;bottom:45%;left:60%}.data-icon-type{text-align:center;width:1.5rem;display:inline-block;position:relative}:host{--display-settings-numeric-gap:var(--luzmo-spacing-3);--numeric-duration-levels-dropdown-icon-margin-inline-start:var(--luzmo-spacing-2)}:host([size=s]){--display-settings-numeric-gap:var(--luzmo-spacing-3);--numeric-duration-levels-dropdown-icon-margin-inline-start:var(--luzmo-spacing-1)}:host([size=l]){--display-settings-numeric-gap:var(--luzmo-spacing-4);--numeric-duration-levels-dropdown-icon-margin-inline-start:var(--luzmo-spacing-3)}:host([size=xl]){--display-settings-numeric-gap:var(--luzmo-spacing-5);--numeric-duration-levels-dropdown-icon-margin-inline-start:var(--luzmo-spacing-4)}`,x={sum:()=>e(`Sum`,{desc:`Aggregation label`}),cumulativesum:()=>e(`Cumulative sum`,{desc:`Aggregation label`}),average:()=>e(`Average`,{desc:`Aggregation label`}),median:()=>e(`Median`,{desc:`Aggregation label`}),count:()=>e(`Count rows`,{desc:`Aggregation label`}),distinctcount:()=>e(`Count distinct`,{desc:`Aggregation label`}),min:()=>e(`Minimum`,{desc:`Aggregation label`}),max:()=>e(`Maximum`,{desc:`Aggregation label`}),stddev:()=>e(`Standard deviation`,{desc:`Aggregation label`}),rate:()=>e(`Rate`,{desc:`Aggregation label`})},S={general:`123`,percentage:`%`,scientific:`SI`},C={time:()=>e(`Time`,{desc:`Time format option`}),short:()=>e(`Short`,{desc:`Short format option`}),long:()=>e(`Long`,{desc:`Long format option`})},w={Auto:{auto:!0,label:()=>e(`Auto`,{desc:`Automatic setting of the option`})},"1,000.00":{auto:!1,label:()=>`1,000.00`,thousandSeparator:`,`,decimalSeparator:`.`,hiddenFor:`scientific`},"1.000,00":{auto:!1,label:()=>`1.000,00`,thousandSeparator:`.`,decimalSeparator:`,`,hiddenFor:`scientific`},"1000.00":{auto:!1,label:()=>`1000.00`,decimalSeparator:`.`},"1000,00":{auto:!1,label:()=>`1000,00`,decimalSeparator:`,`}},T={levels:[{level:1,label:`years`},{level:2,label:`quarters`},{level:3,label:`months`},{level:4,label:`weeks`},{level:5,label:`days`},{level:6,label:`hours`},{level:7,label:`minutes`},{level:8,label:`seconds`},{level:9,label:`milliseconds`}]},E=class extends t(l(u,{validSizes:Object.values(c)})){constructor(...e){super(...e),this.slotContent={},this.measureColumns=[],this._durationLevels=[],this._renderDurationLevelMenu=!1,this._handleSlottableRequest=e=>{this._renderDurationLevelMenu=e.data!==y},this._sendEvent=()=>{let e={...this.slotContent,format:this._format,aggregationFunc:this._aggregationFunc};this._aggregationWeightColumn?e.aggregationWeight={...this._aggregationWeightColumn}:delete e.aggregationWeight,this._displayMode===`duration`?(e.duration=e.duration??{},e.duration.format=this._durationFormat,e.duration.levels=this._durationLevels):delete e.duration,this.dispatchEvent(new CustomEvent(`luzmo-slot-content-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{slotContent:e}}))}}static get styles(){return[v(b)]}_parseSavedNumericFormatSettings(){if(this._displayMode=this.slotContent?.subtype===`duration`?`duration`:`numeric`,this._durationFormat=this.slotContent?.duration?.format??`short`,this._durationLevels=this.slotContent?.duration?.levels??[1],this._displayMode===`duration`)this._precision=2,this._commaDecimals=!1,this._thousandSeparator=!1;else{this._format=this.slotContent?.format??`.0f`;let e=f(this._format??`.0f`);this._isAuto=e.typeFormat?.includes(`a`)??!1,this._displayAs=[`%`,`a%`,`y`,`ay`].includes(e.typeFormat)?`percentage`:[`s`,`as`,`w`,`aw`].includes(e.typeFormat)?`scientific`:`general`,this._precision=e.precision?Number.parseInt(e.precision.replace(`.`,``),10):+(this._displayAs===`scientific`),this._commaDecimals=[`z`,`az`,`y`,`ay`,`w`,`aw`].includes(e.typeFormat),this._thousandSeparator=e.comma===`,`,this._isAuto?this._numericFormatGroup=`Auto`:this._commaDecimals&&this._thousandSeparator?this._numericFormatGroup=`1.000,00`:!this._commaDecimals&&this._thousandSeparator?this._numericFormatGroup=`1,000.00`:this._commaDecimals&&!this._thousandSeparator?this._numericFormatGroup=`1000,00`:!this._commaDecimals&&!this._thousandSeparator&&(this._numericFormatGroup=`1000.00`)}}_setNumericDisplayAs(){this._displayAs=this._displayAsElement?.selected?.[0]??`general`,this._displayAs===`scientific`&&(this._precision=Math.max(this._precision??0,1),this._thousandSeparator=!1),this._setNumericFormat(),this._sendEvent(),this.requestUpdate()}_setNumericSeparators(e){let t=w[e?.detail??`Auto`];this._thousandSeparator=[`,`,`.`].includes(t?.thousandSeparator??``),this._commaDecimals=t?.decimalSeparator===`,`,this._isAuto=t?.auto,this._setNumericFormat(),this._sendEvent()}_setPrecision(){Number.isNaN(this._precisionElement.value)&&(this._precisionElement.value=+(this._displayAs===`scientific`)),this._precision=this._precisionElement.value,this._setNumericFormat(),this._sendEvent()}_setNumericFormat(){let e=`f`,t=this.slotContent.subtype===`duration`?this._durationLevels&&this._durationLevels?.length===1?`numeric`:`duration`:`numeric`;if(this._maxDurationLevel=Math.min(...this._durationLevels),t===`duration`)(![`time`,`short`,`long`].includes(this._durationFormat??``)||this._maxDurationLevel<6&&this._durationFormat===`time`)&&(this._durationFormat=`short`);else{let t=this._displayAs??`general`;t===`general`&&this._commaDecimals?e=`z`:t===`percentage`&&this._commaDecimals?e=`y`:t===`scientific`&&this._commaDecimals?e=`w`:t===`percentage`?e=`%`:t===`scientific`&&(e=`s`),this._format=(this._thousandSeparator||this._isAuto?`,`:``)+`.`+this._precision+(this._isAuto?`a`:``)+e}}_setAggregationFunc(){let e=this._aggregationElement.value,t=this._aggregationFunc,n=this.slotContent.format;if(e!==(t===`weightedaverage`?`average`:t)){if(this._aggregationFunc=e===`average`&&this._aggregationWeightColumn?.column?`weightedaverage`:e,t===`rate`){let e=f(n),t=[`%`,`y`,`a%`,`ay`].includes(e.typeFormat);this.slotContent.subtype===`currency`&&t&&this._setNumericDisplayAs()}this._sendEvent(),(this._aggregationFunc===`rate`||t===`rate`)&&this.requestUpdate()}}_setAggregationWeight(){let e=this._aggregationWeightElement.value,t=this._aggregationFunc;if(e===`none`)this._aggregationWeightColumn=void 0,this._aggregationFunc===`weightedaverage`&&(this._aggregationFunc=`average`);else{let t,n;for(let r of this.measureColumns??[]){let i=r.columns?.find(t=>t.id===e);if(i){t=i,n=r.datasetId;break}}t&&(this._aggregationWeightColumn={column:t.id,set:n,columnSubType:t.subtype}),this._aggregationFunc===`average`&&(this._aggregationFunc=`weightedaverage`)}this._sendEvent(),this.requestUpdate(),(t===`weightedaverage`&&this._aggregationFunc===`average`||t===`average`&&this._aggregationFunc===`weightedaverage`)&&this.requestUpdate()}_setDurationLevels(){let e=this._durationLevels,t=this._durationLevelsElement.value.split(`,`).filter(e=>e!==``).map(e=>Number.parseInt(e,10));this._durationLevels=(t?.length??0)>=1?t:e,this._maxDurationLevel=Math.min(...this._durationLevels),this._fillTimeDurationLevels(),this._setNumericFormat(),this._sendEvent(),this.requestUpdate()}_setDurationFormat(){this._durationFormat=this._durationFormatElement?.selected?.[0],this._fillTimeDurationLevels(),this._setNumericFormat(),this._sendEvent(),this.requestUpdate()}_fillTimeDurationLevels(){if(this._durationFormat===`time`){let e=this._durationLevels.sort().at(-1);if([7,8,9].includes(e)){for(let t of{lev7:[6],lev8:[6,7],lev9:[6,7,8]}[`lev`+e])this._durationLevels.includes(t)||this._durationLevels.push(t);this._durationLevels=[...this._durationLevels].sort()}}}willUpdate(e){super.willUpdate(e),e.has(`slotContent`)&&(this._parseSavedNumericFormatSettings(),this._aggregationFunc=this.slotContent?.aggregationFunc??(this.slotContent?.type===`numeric`?`sum`:`count`),this._aggregationWeightColumn=this.slotContent?.aggregationWeight,this._isFormula=this.slotContent?.formula||this.slotContent?.formulaId)}_renderDurationLevelsSettings(){let t=T.levels.map(e=>{let t=!1;return this._durationFormat===`time`&&e.level>=6&&this._durationLevels.includes(e.level)&&e.level!==Math.max(...this._durationLevels)&&(t=!0),this._durationLevels.length===1&&this._durationLevels.includes(e.level)&&(t=!0),p`<luzmo-menu-item
|
|
3
|
-
value=${e.level}
|
|
4
|
-
?selected=${this._durationLevels.includes(e.level)}
|
|
5
|
-
?disabled=${t}
|
|
6
|
-
>
|
|
7
|
-
${e.label}
|
|
8
|
-
</luzmo-menu-item>`});return p` <div class="setting">
|
|
9
|
-
<luzmo-field-label .size=${this.size} for="duration-levels">
|
|
10
|
-
${e(`Duration levels`,{desc:`Label for duration levels setting`})}
|
|
11
|
-
</luzmo-field-label>
|
|
12
|
-
<luzmo-action-button id="duration-levels-trigger" size=${this.size} aria-haspopup="true" aria-expanded=${this._renderDurationLevelMenu?`true`:`false`}>
|
|
13
|
-
${this._durationLevels.length}
|
|
14
|
-
${this._durationLevels.length===1?e(`level`,{desc:`Singular form of level for duration levels`}):e(`levels`,{desc:`Plural form of level for duration levels`})} ${e(`active`,{desc:`Active suffix for duration levels count`})}
|
|
15
|
-
<span class="duration-angle-down-icon">
|
|
16
|
-
${s(i)}
|
|
17
|
-
</span>
|
|
18
|
-
</luzmo-action-button>
|
|
19
|
-
<luzmo-overlay
|
|
20
|
-
id="duration-levels-overlay"
|
|
21
|
-
trigger="duration-levels-trigger@click"
|
|
22
|
-
type="auto"
|
|
23
|
-
placement="bottom-start"
|
|
24
|
-
type="page"
|
|
25
|
-
@slottable-request=${this._handleSlottableRequest}
|
|
26
|
-
>
|
|
27
|
-
<luzmo-popover style="position: relative">
|
|
28
|
-
${this._renderDurationLevelMenu?p` <luzmo-menu
|
|
29
|
-
id="duration-levels"
|
|
30
|
-
size=${this.size}
|
|
31
|
-
selects="multiple"
|
|
32
|
-
.value=${this._durationLevels.join(`,`)}
|
|
33
|
-
@change=${this._setDurationLevels}
|
|
34
|
-
>
|
|
35
|
-
${t}
|
|
36
|
-
</luzmo-menu>`:``}
|
|
37
|
-
</luzmo-popover>
|
|
38
|
-
</luzmo-overlay>
|
|
39
|
-
</div>`}_renderDurationFormatSettings(){let t=Object.keys(C).map(e=>e===`time`&&(this._maxDurationLevel??1)<6?``:p`<luzmo-action-button value=${e}>
|
|
40
|
-
${C[e]()}
|
|
41
|
-
</luzmo-action-button>`);return p` <div class="setting">
|
|
42
|
-
<luzmo-field-label .size=${this.size} for="duration-format">
|
|
43
|
-
${e(`Format`,{desc:`Label for format setting`})}
|
|
44
|
-
</luzmo-field-label>
|
|
45
|
-
<luzmo-action-group
|
|
46
|
-
emphasized
|
|
47
|
-
id="duration-format"
|
|
48
|
-
size=${this.size}
|
|
49
|
-
compact=""
|
|
50
|
-
.selected=${[this._durationFormat??`short`]}
|
|
51
|
-
selects="single"
|
|
52
|
-
@change=${this._setDurationFormat}
|
|
53
|
-
>
|
|
54
|
-
${t}
|
|
55
|
-
</luzmo-action-group>
|
|
56
|
-
</div>`}_renderNumericDisplayAsSettings(){let t=Object.keys(S).filter(e=>e!==`percentage`||(this.slotContent.subtype!==`currency`||this.slotContent.aggregationFunc===`rate`)&&this.slotContent.periodOverPeriod?.type!==`percentageChange`).map(e=>p`<luzmo-action-button value=${e}
|
|
57
|
-
>${S[e]}</luzmo-action-button
|
|
58
|
-
>`);return p`<div class="setting">
|
|
59
|
-
<luzmo-field-label .size=${this.size} for="display-as">
|
|
60
|
-
${e(`Display as`,{desc:`Label for display as setting for the datetime field`})}
|
|
61
|
-
</luzmo-field-label>
|
|
62
|
-
<luzmo-action-group
|
|
63
|
-
emphasized
|
|
64
|
-
id="display-as"
|
|
65
|
-
size=${this.size}
|
|
66
|
-
compact=""
|
|
67
|
-
.selected=${[this._displayAs]}
|
|
68
|
-
selects="single"
|
|
69
|
-
@change=${this._setNumericDisplayAs}
|
|
70
|
-
>
|
|
71
|
-
${t}
|
|
72
|
-
</luzmo-action-group>
|
|
73
|
-
</div>`}_renderNumericFormatSettings(){let t=Object.entries(w).filter(([,{hiddenFor:e}])=>!e||e!==this._displayAs).map(([e,{label:t}])=>p`<luzmo-menu-item value=${e}>${t()}</luzmo-menu-item>`);return p` <div class="setting">
|
|
74
|
-
<luzmo-field-label .size=${this.size} for="format">
|
|
75
|
-
${e(`Format`,{desc:`Label for format setting`})}
|
|
76
|
-
</luzmo-field-label>
|
|
77
|
-
<luzmo-picker
|
|
78
|
-
id="format"
|
|
79
|
-
size=${this.size}
|
|
80
|
-
variant="highlight"
|
|
81
|
-
value=${this._numericFormatGroup??`Auto`}
|
|
82
|
-
@change=${this._setNumericSeparators}
|
|
83
|
-
>
|
|
84
|
-
${t}
|
|
85
|
-
</luzmo-picker>
|
|
86
|
-
</div>
|
|
87
|
-
<div class="setting">
|
|
88
|
-
<luzmo-field-label .size=${this.size} for="precision" id="precision-label">
|
|
89
|
-
${this._displayAs===`scientific`?e(`Precision`,{desc:`Label for precision setting`}):e(`Decimals`,{desc:`Label for decimals setting`})}
|
|
90
|
-
</luzmo-field-label>
|
|
91
|
-
<luzmo-number-field
|
|
92
|
-
id="precision"
|
|
93
|
-
label=${this._displayAs===`scientific`?e(`Precision`,{desc:`Label for precision setting`}):e(`Decimals`,{desc:`Label for decimals setting`})}
|
|
94
|
-
min=${+(this._displayAs===`scientific`)}
|
|
95
|
-
max="22"
|
|
96
|
-
size=${this.size}
|
|
97
|
-
value=${this._precision??+(this._displayAs===`scientific`)}
|
|
98
|
-
@change=${this._setPrecision}
|
|
99
|
-
></luzmo-number-field>
|
|
100
|
-
</div>`}_renderAggregationSettings(){let t=Object.entries(x).filter(([e])=>[`count`,`distinctcount`].includes(e)||this.slotContent?.type===`numeric`).filter(([e])=>e!==`cumulativesum`||this.isCumulativeSumEnabled).map(([e,t])=>p`<luzmo-menu-item value=${e}>${t()}</luzmo-menu-item>`),n=[p`
|
|
101
|
-
<luzmo-menu-item
|
|
102
|
-
value="none"
|
|
103
|
-
class="no-weight"
|
|
104
|
-
>
|
|
105
|
-
<span class="no-weight-label">${e(`No weight`,{desc:`Label for no weight option`})}</span>
|
|
106
|
-
</luzmo-menu-item>
|
|
107
|
-
`,...(this.measureColumns??[]).flatMap(e=>{let t=typeof e.datasetName==`object`?d(e.datasetName,this.language):e.datasetName;return[p`<div class="dataset-header" role="group" aria-label=${t}>
|
|
108
|
-
${t}
|
|
109
|
-
<luzmo-tooltip self-managed placement="right" size=${this.size}>
|
|
110
|
-
${t}
|
|
111
|
-
</luzmo-tooltip>
|
|
112
|
-
</div>`,...(e.columns??[]).map(e=>{let t=typeof e.name==`object`?d(e.name,this.language):e.name,n=s(a(e,`s`)),r=e.expression?o:void 0,i=!!r,c=i?p`<span class="secondary-icon"
|
|
113
|
-
>${s(r)}</span
|
|
114
|
-
>`:m;return p`<luzmo-menu-item value=${e.id}>
|
|
115
|
-
<span class="data-icon-type" slot="icon">
|
|
116
|
-
<span class=${i?`with-secondary-icon`:``}
|
|
117
|
-
>${n}</span
|
|
118
|
-
>
|
|
119
|
-
${c}
|
|
120
|
-
</span>
|
|
121
|
-
<span class="column-label text-truncate">${t}</span>
|
|
122
|
-
<luzmo-tooltip self-managed placement="right" size=${this.size}>
|
|
123
|
-
${t}
|
|
124
|
-
</luzmo-tooltip>
|
|
125
|
-
</luzmo-menu-item>`})]})];return p`<div class="settings-row">
|
|
126
|
-
<div class="setting">
|
|
127
|
-
<luzmo-field-label .size=${this.size} for="aggregation">
|
|
128
|
-
${e(`Aggregation`,{desc:`Label for aggregation setting`})}
|
|
129
|
-
</luzmo-field-label>
|
|
130
|
-
<luzmo-picker
|
|
131
|
-
id="aggregation"
|
|
132
|
-
size=${this.size}
|
|
133
|
-
variant="highlight"
|
|
134
|
-
value=${(()=>{let e=this.slotContent?.type===`numeric`?`sum`:`count`;return this._aggregationFunc===`weightedaverage`?`average`:this._aggregationFunc??e})()}
|
|
135
|
-
@change=${this._setAggregationFunc}
|
|
136
|
-
>
|
|
137
|
-
${t}
|
|
138
|
-
</luzmo-picker>
|
|
139
|
-
</div>
|
|
140
|
-
${[`rate`,`average`,`weightedaverage`].includes(this._aggregationFunc??``)?p`<div class="setting">
|
|
141
|
-
<luzmo-field-label .size=${this.size} for="weighting-column">
|
|
142
|
-
${this._aggregationFunc===`rate`?e(`Denominator`,{desc:`Label for denominator field`}):e(`Weight`,{desc:`Label for weight field`})}
|
|
143
|
-
</luzmo-field-label>
|
|
144
|
-
${this.measureColumns.length>0?p`
|
|
145
|
-
<luzmo-picker
|
|
146
|
-
id="weighting-column"
|
|
147
|
-
size=${this.size}
|
|
148
|
-
variant="highlight"
|
|
149
|
-
icons="none"
|
|
150
|
-
value=${this._aggregationWeightColumn?.column??`none`}
|
|
151
|
-
@change=${this._setAggregationWeight}
|
|
152
|
-
>
|
|
153
|
-
${n}
|
|
154
|
-
</luzmo-picker>
|
|
155
|
-
`:p`<luzmo-picker
|
|
156
|
-
id="weighting-column"
|
|
157
|
-
size=${this.size}
|
|
158
|
-
variant="highlight"
|
|
159
|
-
icons="none"
|
|
160
|
-
value="none"
|
|
161
|
-
>
|
|
162
|
-
<luzmo-menu-item value="none">${e(`No weight`,{desc:`Label for no weight option`})}</luzmo-menu-item>
|
|
163
|
-
</luzmo-picker>`}
|
|
164
|
-
</div>`:``}
|
|
165
|
-
</div>`}render(){return p`<div class="settings-container">
|
|
166
|
-
<div class="settings-row">
|
|
167
|
-
${this._displayMode===`duration`?this._renderDurationLevelsSettings():this._renderNumericDisplayAsSettings()}
|
|
168
|
-
${this._durationLevels?.length>1?this._renderDurationFormatSettings():this._renderNumericFormatSettings()}
|
|
169
|
-
</div>
|
|
170
|
-
${this._isFormula||this.isAggregationDisabled?m:this._renderAggregationSettings()}
|
|
171
|
-
</div>
|
|
172
|
-
</div>`}};n([h({type:Object,attribute:!1})],E.prototype,`slotContent`,void 0),n([h({type:Array,reflect:!1})],E.prototype,`measureColumns`,void 0),n([h({type:Boolean})],E.prototype,`isAggregationDisabled`,void 0),n([h({type:Boolean})],E.prototype,`isCumulativeSumEnabled`,void 0),n([g(`#display-as`)],E.prototype,`_displayAsElement`,void 0),n([g(`#precision`)],E.prototype,`_precisionElement`,void 0),n([g(`#aggregation`)],E.prototype,`_aggregationElement`,void 0),n([g(`#weighting-column`)],E.prototype,`_aggregationWeightElement`,void 0),n([g(`#duration-levels`)],E.prototype,`_durationLevelsElement`,void 0),n([g(`#duration-format`)],E.prototype,`_durationFormatElement`,void 0),n([_()],E.prototype,`_renderDurationLevelMenu`,void 0),E=n([r()],E),customElements.get(`luzmo-display-settings-numeric`)||customElements.define(`luzmo-display-settings-numeric`,E);
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import{i as e,n as t,r as n}from"./version-BW4Ixl63.js";import{t as r}from"./localized-decorator-DJVBmJVH.js";import{d as i,f as a,p as o}from"./chart-helpers-DsIGsaDc.js";import{t as s}from"./localize-DXRmGRe-.js";import{p as c,v as l}from"./item-slot-picker-panel-D4BMxGs9.js";import{html as u,property as d,query as f,state as p,unsafeCSS as m}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/checkbox.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/action-group.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"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/accordion.js";var h={none:()=>e(`None`),past:()=>e(`Past value`,{desc:`Period option`}),absoluteChange:()=>e(`Absolute change`,{desc:`Period option`}),percentageChange:()=>e(`% change`,{desc:`Period option`})},g=[{key:`periods`,i18n:()=>e(`Periods`,{desc:`Period option`})},{key:`years`,i18n:()=>e(`Years`,{desc:`Period option`})},{key:`quarters`,i18n:()=>e(`Quarters`,{desc:`Period option`})},{key:`months`,i18n:()=>e(`Months`,{desc:`Period option`})},{key:`weeks`,i18n:()=>e(`Weeks`,{desc:`Period option`})},{key:`days`,i18n:()=>e(`Days`,{desc:`Period option`})},{key:`hours`,i18n:()=>e(`Hours`,{desc:`Period option`})},{key:`minutes`,i18n:()=>e(`Minutes`,{desc:`Period option`})},{key:`seconds`,i18n:()=>e(`Seconds`,{desc:`Period option`})}],_=/* @__PURE__ */ function(e){return e.Relative=`relative`,e.UserDefined=`user-defined`,e}({}),v=[{key:`relative`,i18n:()=>e(`Relative`,{desc:`Range type option`})},{key:`user-defined`,i18n:()=>e(`User-defined`,{desc:`Range type option`})}],y=`:host{font-family:var(--luzmo-display-settings-period-over-period-font-family,var(--luzmo-font-family));font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size));color:var(--luzmo-display-settings-period-over-period-color,var(--luzmo-font-color))}:host .settings-container{flex-direction:column;gap:0;display:flex}:host .settings-container:first-of-type{margin-right:var(--luzmo-spacing-4)}:host .settings-row{justify-content:flex-start;align-items:center;gap:var(--luzmo-display-settings-period-over-period-gap,var(--display-settings-period-over-period-gap));display:flex}:host .wrap{flex-wrap:wrap}:host .setting.period-number-setting{align-items:center;display:flex}:host .dynamic-settings-container{max-width:var(--luzmo-display-setting-period-over-period-dynamic-max-width,var(--display-setting-period-over-period-dynamic-max-width))}:host luzmo-accordion{--luzmo-accordion-item-content-area-top-to-content:0;--luzmo-accordion-item-content-padding-left:var(--luzmo-spacing-1);--luzmo-accordion-item-header-bottom-margin:0;--luzmo-accordion-item-content-area-bottom-to-content:var(--luzmo-spacing-2);--accordion-item-header-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size));--accordion-item-content-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}:host .label-container{align-items:center;gap:var(--luzmo-spacing-2);display:flex}:host .academy-link{color:var(--luzmo-link-color);font-size:var(--luzmo-font-size-s);margin-left:var(--luzmo-spacing-2);text-decoration:none}:host .academy-link:hover{color:var(--luzmo-link-color-hover)}:host(:focus){--luzmo-menu-item-label-icon-color-focus:var(--luzmo-menu-item-label-icon-color-focus,var(--luzmo-font-color))}luzmo-menu-item{--luzmo-menu-item-tooltip-font-size:var(--luzmo-display-settings-tooltip-font-size)}luzmo-checkbox{--checkbox-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}luzmo-picker{--picker-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}luzmo-number-field{--text-field-placeholder-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size));--stepper-button-font-size:var(--luzmo-display-settings-period-over-period-font-size,var(--display-settings-period-over-period-font-size))}:host{--display-settings-period-over-period-gap:var(--luzmo-spacing-3);--display-settings-period-over-period-font-size:var(--luzmo-font-size);--display-setting-period-over-period-dynamic-max-width:22rem}:host([size=xs]){--display-settings-period-over-period-gap:var(--luzmo-spacing-2);--display-settings-period-over-period-font-size:var(--luzmo-font-size-xs);--display-setting-period-over-period-dynamic-max-width:17rem}:host([size=s]){--display-settings-period-over-period-gap:var(--luzmo-spacing-3);--display-settings-period-over-period-font-size:var(--luzmo-font-size-s);--display-setting-period-over-period-dynamic-max-width:19rem}:host([size=l]){--display-settings-period-over-period-gap:var(--luzmo-spacing-4);--display-settings-period-over-period-font-size:var(--luzmo-font-size-l);--display-setting-period-over-period-dynamic-max-width:26rem}:host([size=xl]){--display-settings-period-over-period-gap:var(--luzmo-spacing-5);--display-settings-period-over-period-font-size:var(--luzmo-font-size-xl);--display-setting-period-over-period-dynamic-max-width:30rem}`,b=class extends t(a(o,{validSizes:Object.values(i)})){constructor(...e){super(...e),this.slotContent={},this.allowPeriodsWithoutDatetimeColumn=!1,this.hidePastValue=!1,this.linkedDatasetDatetimeColumns=[],this.needsOffsetDatetimeColumn=()=>this.periodOverPeriodUiType===c.NoDatetimeColumnButComparisonFilters||this.periodOverPeriodUiType===c.NoDatetimeColumnAndNoComparisonFilters}static get styles(){return[m(y)]}willUpdate(e){if(super.willUpdate(e),e.has(`slotContent`)){this._periodComparison=this.slotContent?.periodOverPeriod?.type,this._numberPeriods=this.slotContent?.periodOverPeriod?.quantity;let e=this.slotContent?.periodOverPeriod?.level;this._periodLevel=typeof e==`number`&&e>=0&&e<g.length?g[e].key:this.slotContent?.periodOverPeriod?.level||`periods`,this._incompletePeriods=this.slotContent?.periodOverPeriod?.periodToDate,this._offsetDateColumn=this.slotContent?.periodOverPeriod?.offsetDateColumn,this._minLevel=this.slotContent?.periodOverPeriod?.minLevel??this.slotContent?.periodOverPeriod?.offsetDateColumn?.lowestLevel??this.slotContent?.lowestLevel??(this.slotContent?.subtype===`date`?5:9),this._rangeType=this.slotContent?.periodOverPeriod?.rangeType}this._periodComparison=this._periodComparison??`none`,this._numberPeriods=this._numberPeriods??1,this._periodLevel=this._periodLevel??`periods`,this._incompletePeriods=this._incompletePeriods??!1,this._minLevel=this._minLevel??9,this._rangeType=this._rangeType??_.Relative,this._offsetDateColumn=this._offsetDateColumn||void 0}setPeriodComparison(){let e={...this.slotContent};this.setInitialOffsetDateColumn(e),this._periodComparison=this._periodComparisonElement.value;let t=l(this.slotContent?.format),n=[`%`,`y`,`a%`,`ay`].includes(t.typeFormat),r=t.typeFormat.includes(`a`),i=r?`a`:``,a=t.comma===`,`||r?`,`:``,o=t.precision?Number.parseInt(t.precision.replace(`.`,``),10):0,s=[`z`,`az`,`y`,`ay`,`w`,`aw`].includes(t.typeFormat);this._periodComparison===`percentageChange`&&n&&(e.format=`${a}.${o}${i}${s?`z`:`f`}`),this.sendEvent(e)}setNumberOfPeriods(){this._numberPeriods=Number.parseInt(this._numberPeriodsElement.value,10);let e={...this.slotContent};this.sendEvent(e)}setPeriodLevel(){this._periodLevel=this._periodLevelElement.value;let e={...this.slotContent};this.sendEvent(e)}setOffsetDateColumn(){this._offsetDateColumn=this.linkedDatasetDatetimeColumns.find(e=>e.id===this._offsetDateColumnElement.value);let e={...this.slotContent};this.sendEvent(e)}setIncompletePeriods(){this._incompletePeriods=this._incompletePeriodsElement.checked;let e={...this.slotContent};this.sendEvent(e)}setRangeType(e){this._rangeType=e;let t={...this.slotContent};this.setInitialOffsetDateColumn(t),this.sendEvent(t)}sendEvent(e){let t={...e},n=g.findIndex(e=>e.key===this._periodLevel);t.periodOverPeriod={...e.periodOverPeriod,type:this._periodComparison,level:Math.max(n,0),quantity:this._numberPeriods,periodToDate:this._incompletePeriods,minLevel:this._minLevel,rangeType:this._rangeType,offsetDateColumn:this._offsetDateColumn},this._periodComparison===`none`&&delete t.periodOverPeriod,this.dispatchEvent(new CustomEvent(`luzmo-slot-content-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{slotContent:t}}))}incompletePeriodsSetting(){return u`
|
|
3
|
-
<div class="settings-row">
|
|
4
|
-
<div class="setting">
|
|
5
|
-
<luzmo-checkbox
|
|
6
|
-
id="incomplete-periods"
|
|
7
|
-
size=${this.size}
|
|
8
|
-
emphasized
|
|
9
|
-
?checked=${this._incompletePeriods??!1}
|
|
10
|
-
@change=${this.setIncompletePeriods}
|
|
11
|
-
>
|
|
12
|
-
${e(`Use period-to-date for incomplete periods`,{desc:`Checkbox label for incomplete periods`})}
|
|
13
|
-
</luzmo-checkbox>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
16
|
-
`}relativeOffsetSetting(){let t=this.needsOffsetDatetimeColumn()&&!this.allowPeriodsWithoutDatetimeColumn,n=g.slice(+!!t,(this._minLevel??0)+1).map(t=>u`<luzmo-menu-item
|
|
17
|
-
value=${t.key}
|
|
18
|
-
tooltip=${t.key===`periods`?e(`Matches the date range visible in the chart or table`,{desc:`Tooltip for periods`}):``}
|
|
19
|
-
>
|
|
20
|
-
${t.i18n()}
|
|
21
|
-
</luzmo-menu-item>`);return u`
|
|
22
|
-
<div class="settings-container" role="group" aria-label=${e(`Relative offset`,{desc:`Label for relative offset`})}>
|
|
23
|
-
<luzmo-field-label .size=${this.size} for="number-periods">
|
|
24
|
-
${e(`Relative offset`,{desc:`Label for relative offset`})}
|
|
25
|
-
</luzmo-field-label>
|
|
26
|
-
|
|
27
|
-
<div class="settings-row">
|
|
28
|
-
<div class="setting period-number-setting">
|
|
29
|
-
<luzmo-number-field
|
|
30
|
-
id="number-periods"
|
|
31
|
-
label=${e(`Number of periods`,{desc:`Label for number of periods field`})}
|
|
32
|
-
min="1"
|
|
33
|
-
size=${this.size}
|
|
34
|
-
max="9999999999"
|
|
35
|
-
value=${this._numberPeriods??1}
|
|
36
|
-
@change=${this.setNumberOfPeriods}
|
|
37
|
-
></luzmo-number-field>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
<div class="setting">
|
|
41
|
-
<luzmo-picker
|
|
42
|
-
id="period-level"
|
|
43
|
-
size=${this.size}
|
|
44
|
-
variant="highlight"
|
|
45
|
-
value=${this._periodLevel??`periods`}
|
|
46
|
-
@change=${this.setPeriodLevel}
|
|
47
|
-
>
|
|
48
|
-
${n}
|
|
49
|
-
</luzmo-picker>
|
|
50
|
-
</div>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
`}rangeTypeSetting(){let t=v.map(e=>u`<luzmo-action-button
|
|
54
|
-
data-range-type=${e.key}
|
|
55
|
-
value=${e.key}
|
|
56
|
-
@click=${this._handleRangeTypeClick}
|
|
57
|
-
>
|
|
58
|
-
${e.i18n()}
|
|
59
|
-
</luzmo-action-button>`);return u`
|
|
60
|
-
<div class="settings-container">
|
|
61
|
-
<luzmo-field-label .size=${this.size} for="range-type">
|
|
62
|
-
${e(`Range type`,{desc:`Label for range type`})}
|
|
63
|
-
</luzmo-field-label>
|
|
64
|
-
|
|
65
|
-
<luzmo-action-group
|
|
66
|
-
size=${this.size}
|
|
67
|
-
compact
|
|
68
|
-
?emphasized=${!0}
|
|
69
|
-
selected=${JSON.stringify([this._rangeType])}
|
|
70
|
-
selects="single"
|
|
71
|
-
>
|
|
72
|
-
${t}
|
|
73
|
-
</luzmo-action-group>
|
|
74
|
-
</div>
|
|
75
|
-
`}_handleRangeTypeClick(e){let t=e.currentTarget?.dataset?.rangeType;t&&this.setRangeType(t)}offsetDateColumnSetting(){let t=this.linkedDatasetDatetimeColumns.map(e=>u`<luzmo-menu-item value=${e.id}>
|
|
76
|
-
${s(e.name,this.language)}
|
|
77
|
-
</luzmo-menu-item>`);return u`
|
|
78
|
-
<div class="settings-container">
|
|
79
|
-
<luzmo-field-label .size=${this.size} for="offset-date-column">
|
|
80
|
-
${e(`Offset date column`,{desc:`Label for offset date column`})}
|
|
81
|
-
</luzmo-field-label>
|
|
82
|
-
|
|
83
|
-
<div class="setting">
|
|
84
|
-
<luzmo-picker
|
|
85
|
-
id="offset-date-column"
|
|
86
|
-
size=${this.size}
|
|
87
|
-
variant="highlight"
|
|
88
|
-
value=${this._offsetDateColumn?.id}
|
|
89
|
-
@change=${this.setOffsetDateColumn}
|
|
90
|
-
>
|
|
91
|
-
${t}
|
|
92
|
-
</luzmo-picker>
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
`}comparisonTypeItems(){return Object.keys(h).filter(e=>!(this.hidePastValue&&e===`past`)).map(e=>u`<luzmo-menu-item value=${e}>
|
|
96
|
-
${h[e]()}
|
|
97
|
-
</luzmo-menu-item>`)}typeOfComparisonSetting(){let t=this.comparisonTypeItems();return u`<div class="settings-container">
|
|
98
|
-
<luzmo-field-label .size=${this.size} for="period-comparison">
|
|
99
|
-
${e(`Show`)}
|
|
100
|
-
</luzmo-field-label>
|
|
101
|
-
<luzmo-picker
|
|
102
|
-
id="period-comparison"
|
|
103
|
-
size=${this.size}
|
|
104
|
-
variant="highlight"
|
|
105
|
-
value=${this._periodComparison??`none`}
|
|
106
|
-
@change=${this.setPeriodComparison}
|
|
107
|
-
>
|
|
108
|
-
${t}
|
|
109
|
-
</luzmo-picker>
|
|
110
|
-
</div>`}renderPeriodSettings(){return{[c.HasDatetimeColumnAndNoComparisonFilters]:()=>u`
|
|
111
|
-
${this.relativeOffsetSetting()} ${this.incompletePeriodsSetting()}
|
|
112
|
-
`,[c.NoDatetimeColumnAndNoComparisonFilters]:()=>u`
|
|
113
|
-
${this.relativeOffsetSetting()} ${this.offsetDateColumnSetting()}
|
|
114
|
-
${this.incompletePeriodsSetting()}
|
|
115
|
-
`,[c.HasDatetimeColumnAndComparisonFilters]:()=>this._rangeType===_.Relative?u`${this.rangeTypeSetting()} ${this.relativeOffsetSetting()}
|
|
116
|
-
${this.incompletePeriodsSetting()} `:u` ${this.rangeTypeSetting()} `,[c.NoDatetimeColumnButComparisonFilters]:()=>this._rangeType===_.Relative?u`
|
|
117
|
-
${this.rangeTypeSetting()} ${this.relativeOffsetSetting()}
|
|
118
|
-
${this.offsetDateColumnSetting()} ${this.incompletePeriodsSetting()}
|
|
119
|
-
`:u` ${this.rangeTypeSetting()} `,[c.OldImplementation]:()=>``}[this.periodOverPeriodUiType]?.()??``}renderOldUiPeriodSettings(){let t=g.slice(0,(this._minLevel??0)+1).map(t=>u`<luzmo-menu-item
|
|
120
|
-
value=${t.key}
|
|
121
|
-
tooltip=${t.key===`periods`?e(`Matches the date range visible in the chart or table`,{desc:`Tooltip for periods`}):``}
|
|
122
|
-
>
|
|
123
|
-
${t.i18n()}
|
|
124
|
-
</luzmo-menu-item>`);return u` <div class="settings-row">
|
|
125
|
-
<div class="setting period-number-setting">
|
|
126
|
-
${[`percentageChange`,`absoluteChange`].includes(this._periodComparison??``)?u`<luzmo-field-label .size=${this.size} for="number-periods" side-aligned="start">
|
|
127
|
-
${e(`From`,{desc:`Label for number of periods`})}
|
|
128
|
-
</luzmo-field-label>`:``}
|
|
129
|
-
<luzmo-number-field
|
|
130
|
-
id="number-periods"
|
|
131
|
-
label="Number of periods"
|
|
132
|
-
min="1"
|
|
133
|
-
size=${this.size}
|
|
134
|
-
max="9999999999"
|
|
135
|
-
value=${this._numberPeriods??1}
|
|
136
|
-
@change=${this.setNumberOfPeriods}
|
|
137
|
-
></luzmo-number-field>
|
|
138
|
-
</div>
|
|
139
|
-
<div class="setting">
|
|
140
|
-
<luzmo-picker
|
|
141
|
-
id="period-level"
|
|
142
|
-
size=${this.size}
|
|
143
|
-
variant="highlight"
|
|
144
|
-
value=${this._periodLevel??`periods`}
|
|
145
|
-
@change=${this.setPeriodLevel}
|
|
146
|
-
>
|
|
147
|
-
${t}
|
|
148
|
-
</luzmo-picker>
|
|
149
|
-
</div>
|
|
150
|
-
<div>${e(`ago`,{desc:`Label for period ago`})}</div>
|
|
151
|
-
</div>
|
|
152
|
-
<div class="settings-row">
|
|
153
|
-
<div class="setting">
|
|
154
|
-
<luzmo-checkbox
|
|
155
|
-
id="incomplete-periods"
|
|
156
|
-
size=${this.size}
|
|
157
|
-
emphasized
|
|
158
|
-
?checked=${this._incompletePeriods??!1}
|
|
159
|
-
@change=${this.setIncompletePeriods}
|
|
160
|
-
>
|
|
161
|
-
${e(`Use period-to-date for incomplete periods`,{desc:`Checkbox label for incomplete periods`})}
|
|
162
|
-
</luzmo-checkbox>
|
|
163
|
-
</div>
|
|
164
|
-
</div>`}renderOldUi(){let t=this.comparisonTypeItems();return u`<div class="settings-container">
|
|
165
|
-
<div class="settings-row">
|
|
166
|
-
<div class="setting">
|
|
167
|
-
<div class="label-container">
|
|
168
|
-
<luzmo-field-label .size=${this.size} for="period-comparison">
|
|
169
|
-
${e(`Period comparison`,{desc:`Label for period comparison`})}
|
|
170
|
-
</luzmo-field-label>
|
|
171
|
-
|
|
172
|
-
<a
|
|
173
|
-
target="_blank"
|
|
174
|
-
rel="noopener noreferrer"
|
|
175
|
-
href="https://academy.luzmo.com/article/yh728g3n"
|
|
176
|
-
class="academy-link"
|
|
177
|
-
aria-label=${e(`Learn more (opens in new tab)`,{desc:`Aria label for academy link that opens in new tab`})}
|
|
178
|
-
>
|
|
179
|
-
${e(`Learn more`,{desc:`Label for academy link`})}
|
|
180
|
-
</a>
|
|
181
|
-
</div>
|
|
182
|
-
|
|
183
|
-
<luzmo-picker
|
|
184
|
-
id="period-comparison"
|
|
185
|
-
size=${this.size}
|
|
186
|
-
variant="highlight"
|
|
187
|
-
value=${this._periodComparison??`none`}
|
|
188
|
-
@change=${this.setPeriodComparison}
|
|
189
|
-
>
|
|
190
|
-
${t}
|
|
191
|
-
</luzmo-picker>
|
|
192
|
-
</div>
|
|
193
|
-
</div>
|
|
194
|
-
${this._periodComparison===`none`?``:this.renderOldUiPeriodSettings()}
|
|
195
|
-
</div>`}render(){return this.periodOverPeriodUiType===c.OldImplementation?this.renderOldUi():u`
|
|
196
|
-
<luzmo-accordion variant="highlight-child" class="setting">
|
|
197
|
-
<luzmo-accordion-item
|
|
198
|
-
?open=${this._periodComparison!==`none`}
|
|
199
|
-
label=${e(`Period comparison`,{desc:`Label for period comparison`})}
|
|
200
|
-
>
|
|
201
|
-
<div class="settings-container dynamic-settings-container">
|
|
202
|
-
<div class="settings-row wrap">
|
|
203
|
-
${this.typeOfComparisonSetting()}
|
|
204
|
-
${this._periodComparison===`none`?``:this.renderPeriodSettings()}
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
</luzmo-accordion-item>
|
|
208
|
-
</luzmo-accordion>
|
|
209
|
-
`}setInitialOffsetDateColumn(e){this._offsetDateColumn=this.needsOffsetDatetimeColumn()?this.linkedDatasetDatetimeColumns[0]:void 0,e.periodOverPeriod.offsetDateColumn=this._offsetDateColumn}};n([d({type:Object,attribute:`slot-content`})],b.prototype,`slotContent`,void 0),n([d({type:String,attribute:`period-over-period-type`})],b.prototype,`periodOverPeriodUiType`,void 0),n([d({type:Boolean,attribute:`allow-periods-without-datetime-column`,reflect:!0})],b.prototype,`allowPeriodsWithoutDatetimeColumn`,void 0),n([d({type:Boolean,attribute:`hide-past-value`,reflect:!0})],b.prototype,`hidePastValue`,void 0),n([d({type:Array,attribute:`linked-dataset-datetime-columns`})],b.prototype,`linkedDatasetDatetimeColumns`,void 0),n([f(`#period-comparison`)],b.prototype,`_periodComparisonElement`,void 0),n([f(`#number-periods`)],b.prototype,`_numberPeriodsElement`,void 0),n([f(`#period-level`)],b.prototype,`_periodLevelElement`,void 0),n([f(`#offset-date-column`)],b.prototype,`_offsetDateColumnElement`,void 0),n([f(`#incomplete-periods`)],b.prototype,`_incompletePeriodsElement`,void 0),n([p()],b.prototype,`_periodComparison`,void 0),n([p()],b.prototype,`_rangeType`,void 0),b=n([r()],b),customElements.get(`luzmo-display-settings-period-over-period`)||customElements.define(`luzmo-display-settings-period-over-period`,b);
|