@luzmo/analytics-components-kit 1.0.5 → 1.0.7
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 +17 -4
- package/angular/components/data-fields-select.ts +7 -0
- package/angular/components/filter-item.ts +15 -0
- package/angular/components/filter-parameter-picker.ts +70 -18
- package/angular/components/filters.ts +46 -6
- package/angular/esm/components/data-fields-select.d.ts +3 -1
- package/angular/esm/components/data-fields-select.js +9 -1
- package/angular/esm/components/filter-item.d.ts +7 -1
- package/angular/esm/components/filter-item.js +18 -2
- package/angular/esm/components/filter-parameter-picker.d.ts +22 -7
- package/angular/esm/components/filter-parameter-picker.js +63 -22
- package/angular/esm/components/filters.d.ts +21 -7
- package/angular/esm/components/filters.js +41 -5
- package/angular/package.json +2 -2
- package/angular/utils/formula/store/formula-display-store.d.ts +6 -0
- package/components/ai-chat/index.cjs +1 -1
- package/components/ai-chat/index.js +3 -3
- package/components/{ai-chat-BtQaM37y.js → ai-chat-CDSRFmJK.js} +713 -677
- package/components/ai-chat-CVNU2mCV.cjs +319 -0
- package/components/ai-interaction-textarea/index.cjs +1 -1
- package/components/ai-interaction-textarea/index.js +2 -2
- package/components/{ai-interaction-textarea-CQBP9-DW.cjs → ai-interaction-textarea-BXDeplJF.cjs} +1 -1
- package/components/{ai-interaction-textarea-Bgd3y_cP.js → ai-interaction-textarea-BiMbUGCy.js} +3 -3
- package/components/{area-chart-positioning.config-QGEo5sr-.js → area-chart-positioning.config-SLtTkKJB.js} +1 -1
- package/components/{area-chart-positioning.config-1YVSxjRa.cjs → area-chart-positioning.config-dwRUFC--.cjs} +1 -1
- package/components/{bar-chart-positioning.config-Cs56EAWY.cjs → bar-chart-positioning.config-CcQ2iQdl.cjs} +1 -1
- package/components/{bar-chart-positioning.config-KLzBnoCu.js → bar-chart-positioning.config-Ch4sVyJS.js} +1 -1
- package/components/{base-DMQUzJ4L.js → base-2sulw8ws.js} +1 -1
- package/components/{base-DRFleWoz.cjs → base-DYRe99_q.cjs} +1 -1
- package/components/{box-plot-positioning.config-DKGY1Qqb.js → box-plot-positioning.config-Bb7r-Rfl.js} +1 -1
- package/components/{box-plot-positioning.config-BpDEb4Uo.cjs → box-plot-positioning.config-Dwtiqho4.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-BZsvCSyT.cjs → bubble-chart-positioning.config-Bp_l4Cw1.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-CL3mDsC-.js → bubble-chart-positioning.config-Q7mIfpcz.js} +1 -1
- package/components/{bullet-chart-positioning.config-DxXEGnbz.js → bullet-chart-positioning.config-B7aXCajU.js} +1 -1
- package/components/{bullet-chart-positioning.config-DA-1zmsD.cjs → bullet-chart-positioning.config-sj7E3xEM.cjs} +1 -1
- package/components/{choropleth-map-positioning.config-BicHLfN0.js → choropleth-map-positioning.config-CtoJov9H.js} +1 -1
- package/components/{choropleth-map-positioning.config-D_1MCD5i.cjs → choropleth-map-positioning.config-DM-iNbgs.cjs} +1 -1
- package/components/{circle-pack-chart-positioning.config-a_vo4VFg.js → circle-pack-chart-positioning.config-BgxnBOQT.js} +1 -1
- package/components/{circle-pack-chart-positioning.config-oTUkvFFJ.cjs → circle-pack-chart-positioning.config-Cs9xMDpi.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-TG1wPyHz.cjs → circular-gauge-positioning.config-Bzulob5F.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-BEM85XhO.js → circular-gauge-positioning.config-FEkbw6hK.js} +1 -1
- package/components/{column-chart-positioning.config-D1kXKreT.cjs → column-chart-positioning.config-9ho9oUo8.cjs} +1 -1
- package/components/{column-chart-positioning.config-x-wEIoTZ.js → column-chart-positioning.config-BeVOSQaJ.js} +1 -1
- package/components/{combination-chart-positioning.config-COksdK7F.cjs → combination-chart-positioning.config-CaShl4vv.cjs} +1 -1
- package/components/{combination-chart-positioning.config-DLyPa1Im.js → combination-chart-positioning.config-D4VUK54k.js} +1 -1
- package/components/{conditional-number-positioning.config-5SBhp4Kh.cjs → conditional-number-positioning.config-BEMjjhdi.cjs} +1 -1
- package/components/{conditional-number-positioning.config-6ZQHIgAA.js → conditional-number-positioning.config-C-LpjCJN.js} +1 -1
- package/components/data-field/index.cjs +1 -1
- package/components/data-field/index.js +2 -2
- package/components/{data-field-D1lrRnLX.js → data-field-Dz0XFrep.js} +3 -3
- package/components/{data-field-D050EJkx.cjs → data-field-lGJ557o4.cjs} +1 -1
- package/components/data-field-level/index.cjs +1 -1
- package/components/data-field-level/index.js +2 -2
- package/components/{data-field-level-CKlijSjc.cjs → data-field-level-B9r4ucP6.cjs} +1 -1
- package/components/{data-field-level-Da8Pwva2.js → data-field-level-DJoidlHN.js} +1 -1
- package/components/data-field-panel/index.cjs +1 -1
- package/components/data-field-panel/index.js +2 -2
- package/components/{data-field-panel-47PGrrIi.cjs → data-field-panel-BzyjbJO5.cjs} +1 -1
- package/components/{data-field-panel-CgqJ1bLg.js → data-field-panel-CdeJxZCr.js} +3 -3
- package/components/data-fields-select/data-fields-select.d.ts +6 -0
- package/components/data-fields-select/index.cjs +1 -1
- package/components/data-fields-select/index.js +2 -2
- package/components/data-fields-select-BBzzUG2u.cjs +41 -0
- package/components/{data-fields-select-B40TXGd7.js → data-fields-select-BRBBrS-x.js} +23 -5
- package/components/dataset-icon/index.js +1 -1
- package/components/dataset-selector-list/index.cjs +1 -1
- package/components/dataset-selector-list/index.js +2 -2
- package/components/{dataset-selector-list-C0dheupb.js → dataset-selector-list-DGCh1bvb.js} +1 -1
- package/components/{dataset-selector-list-CKQ7OgMN.cjs → dataset-selector-list-xF3yKGan.cjs} +1 -1
- package/components/dataset-selector-row/index.cjs +1 -1
- package/components/dataset-selector-row/index.js +2 -2
- package/components/{dataset-selector-row-DP6QUWYs.js → dataset-selector-row-BbnjxfIz.js} +1 -1
- package/components/{dataset-selector-row-_FZPTBE1.cjs → dataset-selector-row-fmrY3y86.cjs} +1 -1
- package/components/de-BzcAVqyW.cjs +20 -0
- package/components/{de-CPcJgwTx.js → de-CRrCVuH7.js} +15 -0
- package/components/display-settings/index.cjs +1 -1
- package/components/display-settings/index.js +2 -2
- package/components/{display-settings-B-eamVdN.js → display-settings-C9OQ4Eou.js} +3 -3
- package/components/display-settings-binning/index.cjs +1 -1
- package/components/display-settings-binning/index.js +2 -2
- package/components/{display-settings-binning-BGtp0Wvl.js → display-settings-binning-B8E2H5cY.js} +2 -2
- package/components/{display-settings-binning-Cs8MS7BY.cjs → display-settings-binning-BBNL97l9.cjs} +1 -1
- package/components/display-settings-datetime/index.cjs +1 -1
- package/components/display-settings-datetime/index.js +2 -2
- package/components/{display-settings-datetime-CbTnG486.js → display-settings-datetime-BBzvzwl5.js} +2 -2
- package/components/{display-settings-datetime-q20qbrOL.cjs → display-settings-datetime-czjk5Msv.cjs} +1 -1
- package/components/display-settings-eSQCidqh.cjs +140 -0
- package/components/display-settings-grand-totals/index.cjs +1 -1
- package/components/display-settings-grand-totals/index.js +2 -2
- package/components/{display-settings-grand-totals-BDeeC6-h.js → display-settings-grand-totals-CF01m8x-.js} +2 -2
- package/components/{display-settings-grand-totals-DdEXs_mA.cjs → display-settings-grand-totals-RwMnGwFZ.cjs} +1 -1
- package/components/display-settings-numeric/index.cjs +1 -1
- package/components/display-settings-numeric/index.js +2 -2
- package/components/{display-settings-numeric-C5FlahN_.js → display-settings-numeric-BcpwYX16.js} +2 -2
- package/components/{display-settings-numeric-PtcxP80Z.cjs → display-settings-numeric-C4X7oOEU.cjs} +1 -1
- package/components/display-settings-period-over-period/index.cjs +1 -1
- package/components/display-settings-period-over-period/index.js +2 -2
- package/components/{display-settings-period-over-period-CUlsSQZv.js → display-settings-period-over-period-B8UNYZ0I.js} +2 -2
- package/components/{display-settings-period-over-period-Csv7Kwri.cjs → display-settings-period-over-period-BG9YAcCw.cjs} +1 -1
- package/components/{donut-chart-positioning.config-EudGY45O.js → donut-chart-positioning.config-CaADC7Qr.js} +1 -1
- package/components/{donut-chart-positioning.config-m_uVKoNn.cjs → donut-chart-positioning.config-Dfws3ojS.cjs} +1 -1
- package/components/{es-fXPjX3vY.js → es-BIgv-ijQ.js} +15 -0
- package/components/es-mPmtD7j4.cjs +20 -0
- package/components/{evolution-number-positioning.config-BcLsEydB.js → evolution-number-positioning.config-C-OV1wpL.js} +1 -1
- package/components/{evolution-number-positioning.config-CJii0q3V.cjs → evolution-number-positioning.config-CI_2m2Sr.cjs} +1 -1
- package/components/filter-expression-picker/index.cjs +1 -1
- package/components/filter-expression-picker/index.js +2 -2
- package/components/{filter-expression-picker-nW1Hff7C.js → filter-expression-picker-CH2Fna8C.js} +1 -1
- package/components/{filter-expression-picker-D28THjzU.cjs → filter-expression-picker-_mfcXZ-n.cjs} +1 -1
- package/components/filter-item/filter-item.d.ts +15 -0
- package/components/filter-item/index.cjs +1 -1
- package/components/filter-item/index.js +2 -2
- package/components/filter-item-5HCSM9cu.cjs +71 -0
- package/components/{filter-item-BoYKU9tK.js → filter-item-CL3S9HOx.js} +100 -41
- package/components/filter-parameter-picker/filter-parameter-picker.d.ts +71 -9
- package/components/filter-parameter-picker/filter-parameter-picker.helpers.d.ts +8 -0
- package/components/filter-parameter-picker/index.cjs +1 -3
- package/components/filter-parameter-picker/index.d.ts +2 -0
- package/components/filter-parameter-picker/index.js +3 -33
- package/components/filter-parameter-picker/types.d.ts +4 -0
- package/components/filter-parameter-picker-CU48aEOS.js +363 -0
- package/components/filter-parameter-picker-CxbAY5hy.cjs +123 -0
- package/components/filter-value-picker/filter-value-picker.d.ts +1 -0
- package/components/filter-value-picker/index.cjs +1 -1
- package/components/filter-value-picker/index.js +2 -2
- package/components/{filter-value-picker-1kMJ9slB.js → filter-value-picker-CD8DjcHo.js} +5 -5
- package/components/{filter-value-picker-D08bAAKt.cjs → filter-value-picker-CRrUhngj.cjs} +1 -1
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +2 -0
- package/components/filter-value-picker-datetime/index.cjs +1 -1
- package/components/filter-value-picker-datetime/index.js +2 -2
- package/components/{filter-value-picker-datetime-Cnwlipah.js → filter-value-picker-datetime-DS7IK9aN.js} +2 -2
- package/components/{filter-value-picker-datetime-OIgFSdU2.cjs → filter-value-picker-datetime-dXaHpCRX.cjs} +1 -1
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +2 -0
- package/components/filter-value-picker-hierarchy/index.cjs +1 -1
- package/components/filter-value-picker-hierarchy/index.js +2 -2
- package/components/{filter-value-picker-hierarchy-DdMLbCO3.js → filter-value-picker-hierarchy-k0T56CvH.js} +3 -3
- package/components/{filter-value-picker-hierarchy-BGgHIji-.cjs → filter-value-picker-hierarchy-kwnEzxIk.cjs} +1 -1
- package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +1 -0
- package/components/filter-value-picker-numeric/index.cjs +1 -1
- package/components/filter-value-picker-numeric/index.js +2 -2
- package/components/{filter-value-picker-numeric-BL2gD2ED.cjs → filter-value-picker-numeric-BVei4Vlc.cjs} +1 -1
- package/components/{filter-value-picker-numeric-BqrsENh6.js → filter-value-picker-numeric-BaQe4r82.js} +2 -2
- package/components/filters/filters.d.ts +38 -4
- package/components/filters/index.cjs +1 -1
- package/components/filters/index.d.ts +4 -1
- package/components/filters/index.js +3 -3
- package/components/filters/transformations/clean-filters.d.ts +37 -0
- package/components/filters/transformations/filter-format.d.ts +54 -0
- package/components/filters/transformations/transform-filters.d.ts +27 -12
- package/components/filters/types.d.ts +48 -3
- package/components/filters-B70hF2NT.js +742 -0
- package/components/filters-ms2gFstA.cjs +153 -0
- package/components/formula/index.cjs +1 -1
- package/components/formula/index.js +2 -2
- package/components/{formula-CNzBOTRQ.js → formula-DdgD312W.js} +2 -2
- package/components/{formula-codemirror-pnijOvXU.js → formula-codemirror-D3Z1Qa0J.js} +4 -4
- package/components/{formula-codemirror-D1hgPIW_.cjs → formula-codemirror-GoFCSp6r.cjs} +1 -1
- package/components/{formula-display-store-BBMmHCRp.js → formula-display-store-bPGDv_xk.js} +10 -7
- package/components/formula-display-store-eE3zaCyB.cjs +20 -0
- package/components/formula-editor/index.cjs +1 -1
- package/components/formula-editor/index.js +4 -4
- package/components/{formula-editor-Uejdzkm6.cjs → formula-editor-8wWzGGJr.cjs} +1 -1
- package/components/{formula-editor-DvDB6JYI.js → formula-editor-BnWiiFr5.js} +5 -5
- package/components/formula-field/index.cjs +1 -1
- package/components/formula-field/index.js +2 -2
- package/components/{formula-field-o_zZQACN.js → formula-field-DlEgUu58.js} +1 -1
- package/components/{formula-field-CNyKz9wY.cjs → formula-field-IHf6I8mL.cjs} +1 -1
- package/components/{formula-DeRjtboJ.cjs → formula-glPlLx_5.cjs} +1 -1
- package/components/{formula-input-base-DlVNZBUA.js → formula-input-base-7I069pOJ.js} +1 -1
- package/components/{formula-input-base-fTF1KXpl.cjs → formula-input-base-D5yx7RYX.cjs} +1 -1
- package/components/fr-BHUhOl6R.cjs +20 -0
- package/components/{fr-B50vb6LP.js → fr-CI9fC-NM.js} +15 -0
- package/components/{funnel-chart-positioning.config-B_C8nr1y.js → funnel-chart-positioning.config-CNEeOwuT.js} +1 -1
- package/components/{funnel-chart-positioning.config-DhrMsuyt.cjs → funnel-chart-positioning.config-Cz8gQRh_.cjs} +1 -1
- package/components/{get-dataset-name-DrTVBElb.cjs → get-dataset-name-Bae0I2_J.cjs} +1 -1
- package/components/{get-dataset-name-DYLJB67F.js → get-dataset-name-OJK38mEs.js} +1 -1
- package/components/{groupings-BPlu4GFe.cjs → groupings-B0qMZHSd.cjs} +1 -1
- package/components/{groupings-DAj2iFeA.js → groupings-BZJTnpwR.js} +1 -1
- package/components/{heat-map-positioning.config-Bya2_TR8.cjs → heat-map-positioning.config-CEH6qyrN.cjs} +1 -1
- package/components/{heat-map-positioning.config-Cxembqle.js → heat-map-positioning.config-D-Ba4Ts_.js} +1 -1
- package/components/{heat-table-positioning.config-CNeTnuHy.js → heat-table-positioning.config-DCnowqOc.js} +1 -1
- package/components/{heat-table-positioning.config-CYZr5ksc.cjs → heat-table-positioning.config-DWNETZMx.cjs} +1 -1
- package/components/{hexbin-map-positioning.config-Dfdgub0y.js → hexbin-map-positioning.config-Br0pjvMN.js} +1 -1
- package/components/{hexbin-map-positioning.config-bXZEY4nP.cjs → hexbin-map-positioning.config-DoiUVZ8h.cjs} +1 -1
- package/components/index.cjs +1 -1
- package/components/index.js +64 -63
- package/components/interactive-viz-item/index.cjs +1 -1
- package/components/interactive-viz-item/index.js +2 -2
- package/components/{interactive-viz-item-D-hR2G5x.cjs → interactive-viz-item-DZoRqeJW.cjs} +1 -1
- package/components/{interactive-viz-item-C3fzZq7j.js → interactive-viz-item-Dogksvpq.js} +5 -5
- package/components/item-grid/index.cjs +1 -1
- package/components/item-grid/index.js +2 -2
- package/components/{item-grid-BruAZOla.cjs → item-grid-VPRvzGCa.cjs} +1 -1
- package/components/{item-grid-cyMiRw7P.js → item-grid-ZQpp1brq.js} +1 -1
- package/components/item-option/index.cjs +1 -1
- package/components/item-option/index.js +2 -2
- package/components/{item-option-CZb01VJb.js → item-option-B9tALelF.js} +1 -1
- package/components/{item-option-BclNWwdZ.cjs → item-option-BRgOBMM0.cjs} +1 -1
- package/components/item-option-action-button-group/index.cjs +1 -1
- package/components/item-option-action-button-group/index.js +2 -2
- package/components/{item-option-action-button-group-AkMaJHuv.cjs → item-option-action-button-group-BYE7i8Zd.cjs} +1 -1
- package/components/{item-option-action-button-group-HfUtaTi9.js → item-option-action-button-group-WrHKP761.js} +1 -1
- package/components/{item-option-base-CZegYACf.cjs → item-option-base-CTBIeARi.cjs} +1 -1
- package/components/{item-option-base-DlHZAfWZ.js → item-option-base-CuxvyS-a.js} +1 -1
- package/components/item-option-color-palette-picker/index.cjs +1 -1
- package/components/item-option-color-palette-picker/index.js +2 -2
- package/components/{item-option-color-palette-picker-B336qQRk.cjs → item-option-color-palette-picker-CyailqDd.cjs} +1 -1
- package/components/{item-option-color-palette-picker-Dt4z0c4W.js → item-option-color-palette-picker-eYAyoXM1.js} +1 -1
- package/components/item-option-color-picker/index.cjs +1 -1
- package/components/item-option-color-picker/index.js +2 -2
- package/components/{item-option-color-picker-BRO416_T.js → item-option-color-picker-D_x6FgZy.js} +1 -1
- package/components/{item-option-color-picker-Hfu2fhRF.cjs → item-option-color-picker-DsfZKPDo.cjs} +1 -1
- package/components/item-option-color-range/index.cjs +1 -1
- package/components/item-option-color-range/index.js +2 -2
- package/components/{item-option-color-range-DgalNZ9b.js → item-option-color-range-CHSbql1w.js} +1 -1
- package/components/{item-option-color-range-DWoaz57E.cjs → item-option-color-range-tAMMKg6y.cjs} +1 -1
- package/components/item-option-multi-language-field/index.cjs +1 -1
- package/components/item-option-multi-language-field/index.js +2 -2
- package/components/{item-option-multi-language-field-BvJXIFgu.js → item-option-multi-language-field-D51cJ4BM.js} +1 -1
- package/components/{item-option-multi-language-field-IQP6fbgB.cjs → item-option-multi-language-field-DjWm-jWC.cjs} +1 -1
- package/components/item-option-number-field/index.cjs +1 -1
- package/components/item-option-number-field/index.js +2 -2
- package/components/{item-option-number-field-B07NhNSm.cjs → item-option-number-field-Dep43Ym5.cjs} +1 -1
- package/components/{item-option-number-field-CvGknDpu.js → item-option-number-field-Df56sivV.js} +1 -1
- package/components/item-option-panel/index.cjs +1 -1
- package/components/item-option-panel/index.js +2 -2
- package/components/{item-option-panel-RYdx8Hfk.js → item-option-panel-BYCfnDeP.js} +3 -3
- package/components/{item-option-panel-BWP9E8cW.cjs → item-option-panel-ClDspg51.cjs} +1 -1
- package/components/item-option-picker/index.cjs +1 -1
- package/components/item-option-picker/index.js +2 -2
- package/components/{item-option-picker-DM1pU3w9.js → item-option-picker-BCsB7psT.js} +1 -1
- package/components/{item-option-picker-C7SZfnLP.cjs → item-option-picker-CBfFgSKs.cjs} +1 -1
- package/components/item-option-position-picker/index.cjs +1 -1
- package/components/item-option-position-picker/index.js +2 -2
- package/components/{item-option-position-picker-BuDvx3SX.js → item-option-position-picker-CXJGmmWF.js} +1 -1
- package/components/{item-option-position-picker-M9CBH9NE.cjs → item-option-position-picker-CYoOkH1m.cjs} +1 -1
- package/components/item-option-positions-number-field/index.cjs +1 -1
- package/components/item-option-positions-number-field/index.js +2 -2
- package/components/{item-option-positions-number-field-C4zW5-Hc.cjs → item-option-positions-number-field-CNUCVm78.cjs} +1 -1
- package/components/{item-option-positions-number-field-RN5AG-Ic.js → item-option-positions-number-field-CkfSHCFO.js} +1 -1
- package/components/item-option-radio-button-group/index.cjs +1 -1
- package/components/item-option-radio-button-group/index.js +2 -2
- package/components/{item-option-radio-button-group-Ce780UyR.js → item-option-radio-button-group-CSyh4eS2.js} +1 -1
- package/components/{item-option-radio-button-group-DRiwqorh.cjs → item-option-radio-button-group-ZIvbpJf9.cjs} +1 -1
- package/components/item-option-slider/index.cjs +1 -1
- package/components/item-option-slider/index.js +2 -2
- package/components/item-option-slider/item-option-slider.d.ts +5 -0
- package/components/{item-option-slider-BUdWMAzT.js → item-option-slider-CTt5aYbb.js} +31 -16
- package/components/{item-option-slider-CycHQFnr.cjs → item-option-slider-CaxIGDWN.cjs} +3 -3
- package/components/item-option-switch/index.cjs +1 -1
- package/components/item-option-switch/index.js +2 -2
- package/components/{item-option-switch-CvcZSytb.js → item-option-switch-B91r65eW.js} +1 -1
- package/components/{item-option-switch-CM5R8wO_.cjs → item-option-switch-wEx5JkSe.cjs} +1 -1
- package/components/item-option-text-field/index.cjs +1 -1
- package/components/item-option-text-field/index.js +2 -2
- package/components/{item-option-text-field-BZjOilSu.cjs → item-option-text-field-BLcYkH-j.cjs} +1 -1
- package/components/{item-option-text-field-CyuYUITv.js → item-option-text-field-BvSCGhuH.js} +1 -1
- package/components/item-slot-drop/index.cjs +1 -1
- package/components/item-slot-drop/index.js +2 -2
- package/components/{item-slot-drop-C6DO5mPk.js → item-slot-drop-Box1wnvM.js} +5 -5
- package/components/{item-slot-drop-CrzFRobc.cjs → item-slot-drop-n-lD8Zyh.cjs} +1 -1
- package/components/item-slot-drop-panel/index.cjs +1 -1
- package/components/item-slot-drop-panel/index.js +2 -2
- package/components/{item-slot-drop-panel-DvmPk1pJ.js → item-slot-drop-panel-KtZKw0Ly.js} +39 -39
- package/components/{item-slot-drop-panel-ChazcNSe.cjs → item-slot-drop-panel-sCkQ0dUU.cjs} +1 -1
- package/components/item-slot-picker/index.cjs +1 -1
- package/components/item-slot-picker/index.js +2 -2
- package/components/{item-slot-picker-CmG71mGy.js → item-slot-picker-Cm8o4A00.js} +6 -6
- package/components/{item-slot-picker-DQkG3Lt7.cjs → item-slot-picker-DKPE2NQn.cjs} +1 -1
- package/components/item-slot-picker-panel/index.cjs +1 -1
- package/components/item-slot-picker-panel/index.js +2 -2
- package/components/{item-slot-picker-panel-Bi2jXvQA.cjs → item-slot-picker-panel-DK5jRBYs.cjs} +1 -1
- package/components/{item-slot-picker-panel-DmGYI5YI.js → item-slot-picker-panel-DOHi_8UO.js} +3 -3
- package/components/{line-chart-positioning.config-Cqnfz4Lc.cjs → line-chart-positioning.config-C05IZ4Jj.cjs} +1 -1
- package/components/{line-chart-positioning.config-CFHFq0wp.js → line-chart-positioning.config-DQfyOkWV.js} +1 -1
- package/components/{localized-mixin-CUuRZu9t.cjs → localized-mixin-BForHr3t.cjs} +1 -1
- package/components/{localized-mixin-B4fDdsF0.js → localized-mixin-D-vXCJuU.js} +1 -1
- package/components/{marker-map-positioning.config-x3KUsgzD.js → marker-map-positioning.config-CD7n0uLB.js} +1 -1
- package/components/{marker-map-positioning.config-BM-ZrmE9.cjs → marker-map-positioning.config-DOhXf-CR.cjs} +1 -1
- package/components/{nl-Do6FfV7U.js → nl-HLnZHvTS.js} +15 -0
- package/components/nl-NxeHJ8X8.cjs +20 -0
- package/components/{ohlc-chart-positioning.config-C-vx6lt-.js → ohlc-chart-positioning.config-Bl-ckdlQ.js} +1 -1
- package/components/{ohlc-chart-positioning.config-SIhJhFel.cjs → ohlc-chart-positioning.config-CDf77OgH.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-Br1OGTEZ.cjs → parallel-coordinates-plot-positioning.config-DfsKsUdv.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-BaofZgit.js → parallel-coordinates-plot-positioning.config-Tbzzr5L6.js} +1 -1
- package/components/{pivot-table-positioning.config-BaBkuXV0.cjs → pivot-table-positioning.config-DwuKN2xz.cjs} +1 -1
- package/components/{pivot-table-positioning.config-DeeS1MaO.js → pivot-table-positioning.config-_YDPeFQz.js} +1 -1
- package/components/{pyramid-chart-positioning.config-g55mkotb.cjs → pyramid-chart-positioning.config-7AJy2_zR.cjs} +1 -1
- package/components/{pyramid-chart-positioning.config-D14NnyH1.js → pyramid-chart-positioning.config-Btm_8m46.js} +1 -1
- package/components/{radar-chart-positioning.config-CWGfQ7-j.cjs → radar-chart-positioning.config-7Kx_uKbW.cjs} +1 -1
- package/components/{radar-chart-positioning.config-C9fiYOnB.js → radar-chart-positioning.config-DWziVqMW.js} +1 -1
- package/components/{route-map-positioning.config-Cd4azpuW.js → route-map-positioning.config-C4-2zLGp.js} +1 -1
- package/components/{route-map-positioning.config-Dswq4pH_.cjs → route-map-positioning.config-DDgEAW4k.cjs} +1 -1
- package/components/{sankey-diagram-positioning.config-CAHzdKBq.cjs → sankey-diagram-positioning.config-BxVJaOKN.cjs} +1 -1
- package/components/{sankey-diagram-positioning.config-CzGCvTeX.js → sankey-diagram-positioning.config-DQcUg8Cg.js} +1 -1
- package/components/{scatter-plot-positioning.config-CrVJZ-X9.cjs → scatter-plot-positioning.config-D3xI_5P8.cjs} +1 -1
- package/components/{scatter-plot-positioning.config-C7nu7quv.js → scatter-plot-positioning.config-DOgeShUF.js} +1 -1
- package/components/{set-locale-DBVSKk_b.js → set-locale-D9gR8t-s.js} +4 -4
- package/components/{set-locale-1r0lDa7J.cjs → set-locale-MQpiifTB.cjs} +1 -1
- package/components/{slicer-filter-positioning.config-7sucz3_y.js → slicer-filter-positioning.config-CiHfPrM5.js} +1 -1
- package/components/{slicer-filter-positioning.config-D9Tehydc.cjs → slicer-filter-positioning.config-bN36DdLc.cjs} +1 -1
- package/components/slot-menu/index.cjs +1 -1
- package/components/slot-menu/index.js +2 -2
- package/components/{slot-menu-AavTGkLk.cjs → slot-menu-K5QiEu6o.cjs} +1 -1
- package/components/{slot-menu-Dz-O1ypQ.js → slot-menu-Qy35BZZ_.js} +3 -3
- package/components/slot-menu-list/index.cjs +1 -1
- package/components/slot-menu-list/index.js +2 -2
- package/components/{slot-menu-list-BegM0w8C.js → slot-menu-list-BKMbIFg1.js} +1 -1
- package/components/{slot-menu-list-Cahst0TY.cjs → slot-menu-list-DmQe7882.cjs} +1 -1
- package/components/{speedometer-chart-positioning.config-DiDSe44G.js → speedometer-chart-positioning.config-B7M91sKN.js} +1 -1
- package/components/{speedometer-chart-positioning.config-CZgXkEsG.cjs → speedometer-chart-positioning.config-Ce70l0Ei.cjs} +1 -1
- package/components/{spike-map-positioning.config-RExJASrJ.cjs → spike-map-positioning.config-D3wIf0RU.cjs} +1 -1
- package/components/{spike-map-positioning.config-W-xJbchu.js → spike-map-positioning.config-Qf4LOPvB.js} +1 -1
- package/components/{strip-plot-positioning.config-C70pTRqg.cjs → strip-plot-positioning.config-BIoncLjm.cjs} +1 -1
- package/components/{strip-plot-positioning.config-DsKb9ton.js → strip-plot-positioning.config-MbfBVHf8.js} +1 -1
- package/components/{sunburst-chart-positioning.config-BAhEnZtE.js → sunburst-chart-positioning.config-CqyXZPxE.js} +1 -1
- package/components/{sunburst-chart-positioning.config-BHvaDZCC.cjs → sunburst-chart-positioning.config-zqPLL8yF.cjs} +1 -1
- package/components/{symbol-map-positioning.config-B2RZQPND.cjs → symbol-map-positioning.config-CQ4Vxu96.cjs} +1 -1
- package/components/{symbol-map-positioning.config-DNPiG975.js → symbol-map-positioning.config-plXDTBA3.js} +1 -1
- package/components/{treemap-chart-positioning.config-C0LbkC6B.js → treemap-chart-positioning.config-BTGBN1f9.js} +1 -1
- package/components/{treemap-chart-positioning.config-CIYguC9V.cjs → treemap-chart-positioning.config-CSZXzuT5.cjs} +1 -1
- package/components/utils/base.cjs +1 -1
- package/components/utils/base.js +2 -2
- package/components/{utils-Cx4X0PBr.cjs → utils-BDvDwAn7.cjs} +1 -1
- package/components/{utils-C8ATDm66.js → utils-Z9xbTTWG.js} +1 -1
- package/components/utils.cjs +1 -1
- package/components/utils.js +2 -2
- package/components/{venn-diagram-positioning.config-CGmfYuoj.cjs → venn-diagram-positioning.config-C4vcZDtW.cjs} +1 -1
- package/components/{venn-diagram-positioning.config-CPUT2LXS.js → venn-diagram-positioning.config-fPvrjtfX.js} +1 -1
- package/components/viz-item-menu/index.cjs +1 -1
- package/components/viz-item-menu/index.js +2 -2
- package/components/{viz-item-menu-BKXdr3_Q.cjs → viz-item-menu-DxA295eM.cjs} +1 -1
- package/components/{viz-item-menu-XoCSn7z_.js → viz-item-menu-vckPQBdf.js} +1 -1
- package/components/{wordcloud-chart-positioning.config-roHRUT_m.cjs → wordcloud-chart-positioning.config-Cf1ErL-B.cjs} +1 -1
- package/components/{wordcloud-chart-positioning.config-CqCOWKL4.js → wordcloud-chart-positioning.config-ChUx_Ahc.js} +1 -1
- package/custom-elements.json +1325 -122
- package/index.d.ts +1 -0
- package/package.json +5 -5
- package/react/components/filter-parameter-picker.component.ts +15 -4
- package/react/components/filters.component.ts +9 -3
- package/react/esm/components/filter-parameter-picker.component.d.ts +11 -3
- package/react/esm/components/filter-parameter-picker.component.js +9 -1
- package/react/esm/components/filters.component.d.ts +10 -2
- package/react/esm/components/filters.component.js +6 -2
- package/react/luzmo-stub.d.ts +2 -1
- package/react/package.json +2 -2
- package/storybook/register-components.d.ts +18 -13
- package/utils/formula/store/formula-display-store.d.ts +6 -0
- package/components/ai-chat-CBLWbv9C.cjs +0 -319
- package/components/data-fields-select-CQVqxMCS.cjs +0 -41
- package/components/de-CFFG1QN7.cjs +0 -20
- package/components/display-settings-1AdcENcv.cjs +0 -140
- package/components/es-Bd7rtLnM.cjs +0 -20
- package/components/filter-item-BirgEXGE.cjs +0 -58
- package/components/filters-BLss6wBx.js +0 -407
- package/components/filters-rjc5xsF_.cjs +0 -150
- package/components/formula-display-store-Dn7r5kK8.cjs +0 -20
- package/components/fr-kmzf1vls.cjs +0 -20
- package/components/nl-FcPtgtcL.cjs +0 -20
package/README.md
CHANGED
|
@@ -15,9 +15,11 @@ ACK produces and edits chart configuration (type, slots, options, filters). It d
|
|
|
15
15
|
## Installation
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npm install @luzmo/analytics-components-kit
|
|
18
|
+
npm install @luzmo/analytics-components-kit lit@^3.3.2 @luzmo/lucero@^2.0.1 @luzmo/icons@^1.0.1-alpha.46
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
ACK uses Lucero 2 for its design-system primitives. Package managers that do not install peer dependencies automatically must install the compatible peer versions explicitly.
|
|
22
|
+
|
|
21
23
|
To render the configured charts, also install Luzmo Embed (optional):
|
|
22
24
|
|
|
23
25
|
```bash
|
|
@@ -108,7 +110,11 @@ Individual option control editors are also exported for fully custom option UIs:
|
|
|
108
110
|
| --------- | ----------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------- |
|
|
109
111
|
| Filters | `@luzmo/analytics-components-kit/filters` | Filter editor with nested AND/OR groups | [Docs](https://developer.luzmo.com/guide/ack--components--filters--luzmo-filters) |
|
|
110
112
|
|
|
111
|
-
`<luzmo-filters>`
|
|
113
|
+
`<luzmo-filters>` defaults to the standard Luzmo filter format (`ItemFilterGroup[]` from `@luzmo/dashboard-contents-types`). Narrow `luzmo-filters-changed` on `event.detail.format` before forwarding: canonical groups are compatible with `luzmo-embed-viz-item`'s `filters` property and `luzmo-item-grid` items' `filters`; clean groups are for aligned hosts that accept `ItemFilterOutput` / `DashboardFilterOutput`. Group `condition` values are lowercase `and` / `or`. The published `FilterGroup` editor type uses the same casing, so typed consumers must migrate uppercase literals to `and` / `or`. At runtime uppercase `AND` / `OR` input is still accepted and normalized to lowercase on output.
|
|
114
|
+
|
|
115
|
+
`filters` accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions, so the result of an aligned `getFilters()` can be passed straight back in: canonical `ItemFilterGroup[]`, or clean clause groups that own a top-level `clause`, nest inline, and flatten each leaf onto its reference (including dashboard retrieval envelopes). Output stays canonical unless you set `format="clean"`, and `event.detail.format` names the half you received. A tree that cannot be represented cleanly — mixed `where`/`having` under `or`, a missing reference or value, an `in` / `not in` expression whose value is not an array, or a `between` expression whose range does not contain exactly two values — falls back to canonical output. A leaf that mixes encodings, or that matches neither a complete clean nor a complete canonical encoding, is rejected and the previous `filters` value is kept. Typed consumers of `FiltersChangedEventDetail` must narrow on `format` to keep `filters` as `ItemFilterGroup[]`. `transformFilters`, `reverseTransformFilters`, and `detectFiltersFormat` are exported from `@luzmo/analytics-components-kit/filters` for hosts that convert outside the editor.
|
|
116
|
+
|
|
117
|
+
Named parameter-backed values are opt-in with `allow-parameters`. Supply the initial definitions through the `parameters` property. A parameter created in the editor is appended to `parameters` and announced with `luzmo-parameter-created`, so handle that event to persist it; creating does not apply it to a filter, since the user attaches it by picking it from the list. Listen for `luzmo-parameter-removed` when a definition is detached from one filter. Detaching does not delete the definition. The exported `FilterParameter`, `FilterParameterType`, and `FilterParameterEventDetail` types describe this API.
|
|
112
118
|
|
|
113
119
|
### Chart rendering
|
|
114
120
|
|
|
@@ -180,7 +186,7 @@ vizItem.authToken = 'your-auth-token';
|
|
|
180
186
|
vizItem.type = itemType; // chart type
|
|
181
187
|
vizItem.slots = slotsContents; // from luzmo-slots-contents-changed
|
|
182
188
|
vizItem.options = options; // from luzmo-options-changed
|
|
183
|
-
vizItem.filters = filters; // from luzmo-filters-changed
|
|
189
|
+
vizItem.filters = filters; // canonical ItemFilterGroup[] from luzmo-filters-changed (narrow on detail.format if you set format="clean")
|
|
184
190
|
```
|
|
185
191
|
|
|
186
192
|
See the Flex reference and the "Using luzmo-embed-viz-item with the kit" guide in the [ACK docs](https://developer.luzmo.com/guide/ack--overview) for every viz item property, event, and method.
|
|
@@ -281,7 +287,14 @@ import type {
|
|
|
281
287
|
SlotContentsChangedEventDetail,
|
|
282
288
|
SlotConstraintTriggeredEventDetail,
|
|
283
289
|
ItemFilterGroup,
|
|
284
|
-
FilterGroup
|
|
290
|
+
FilterGroup,
|
|
291
|
+
FiltersChangedEventDetail,
|
|
292
|
+
FiltersInput,
|
|
293
|
+
FiltersOutput,
|
|
294
|
+
FiltersFormat,
|
|
295
|
+
CleanFilterClauseGroup,
|
|
296
|
+
ItemFilterOutput,
|
|
297
|
+
DashboardFilterOutput
|
|
285
298
|
} from '@luzmo/analytics-components-kit/types';
|
|
286
299
|
```
|
|
287
300
|
|
|
@@ -39,6 +39,10 @@ export class LuzmoDataFieldsSelect implements OnChanges {
|
|
|
39
39
|
@Input({ alias: 'icons' })
|
|
40
40
|
icons?: 'none' | 'menu-only' | 'all';
|
|
41
41
|
|
|
42
|
+
/** Whether datetime and hierarchy columns expand into selectable sublevels. Turn this off in contexts that address the column as a whole, so the column stays selectable by its own id. */
|
|
43
|
+
@Input({ alias: 'levels' })
|
|
44
|
+
levels?: 'on' | 'off';
|
|
45
|
+
|
|
42
46
|
/** Allow no selection. If true, the picker will not show a value when no item is selected. Else if no value is provided it will pick the first item. */
|
|
43
47
|
@Input({ alias: 'allowEmpty', transform: booleanAttribute })
|
|
44
48
|
allowEmpty?: boolean;
|
|
@@ -127,6 +131,9 @@ export class LuzmoDataFieldsSelect implements OnChanges {
|
|
|
127
131
|
case 'icons':
|
|
128
132
|
this.setHostProperty('icons', changes['icons'].currentValue);
|
|
129
133
|
break;
|
|
134
|
+
case 'levels':
|
|
135
|
+
this.setHostProperty('levels', changes['levels'].currentValue);
|
|
136
|
+
break;
|
|
130
137
|
case 'allowEmpty':
|
|
131
138
|
this.setHostProperty('allowEmpty', changes['allowEmpty'].currentValue);
|
|
132
139
|
break;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
|
|
2
2
|
import '@luzmo/analytics-components-kit/filter-item';
|
|
3
3
|
import type { LuzmoFilterItem as LuzmoFilterItemHostElement } from '@luzmo/analytics-components-kit/filter-item';
|
|
4
|
+
import type { FilterParameter } from '@luzmo/analytics-components-kit/filters';
|
|
4
5
|
|
|
5
6
|
@Component({
|
|
6
7
|
selector: 'luzmo-filter-item',
|
|
@@ -56,6 +57,14 @@ export class LuzmoFilterItem implements OnChanges {
|
|
|
56
57
|
@Input({ alias: 'filter' })
|
|
57
58
|
filter?: any;
|
|
58
59
|
|
|
60
|
+
/** Whether parameter-backed filter values can be created and selected. */
|
|
61
|
+
@Input({ alias: 'allowParameters', transform: booleanAttribute })
|
|
62
|
+
allowParameters?: boolean;
|
|
63
|
+
|
|
64
|
+
/** Consumer-owned parameter definitions available for selection. */
|
|
65
|
+
@Input({ alias: 'parameters' })
|
|
66
|
+
parameters?: FilterParameter[];
|
|
67
|
+
|
|
59
68
|
/** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
|
|
60
69
|
@Input({ alias: 'language' })
|
|
61
70
|
language?: string;
|
|
@@ -115,6 +124,12 @@ export class LuzmoFilterItem implements OnChanges {
|
|
|
115
124
|
case 'filter':
|
|
116
125
|
this.setHostProperty('filter', changes['filter'].currentValue);
|
|
117
126
|
break;
|
|
127
|
+
case 'allowParameters':
|
|
128
|
+
this.setHostProperty('allowParameters', changes['allowParameters'].currentValue);
|
|
129
|
+
break;
|
|
130
|
+
case 'parameters':
|
|
131
|
+
this.setHostProperty('parameters', changes['parameters'].currentValue);
|
|
132
|
+
break;
|
|
118
133
|
case 'language':
|
|
119
134
|
this.setHostProperty('language', changes['language'].currentValue);
|
|
120
135
|
break;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
|
|
2
2
|
import '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
3
|
-
import type { LuzmoFilterParameterPicker as LuzmoFilterParameterPickerHostElement } from '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
3
|
+
import type { LuzmoFilterParameterPicker as LuzmoFilterParameterPickerHostElement, FilterParameterPickerEventDetail } from '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
4
|
+
export type { FilterParameterPickerEventDetail } from '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
5
|
+
import type { FilterParameterType } from '@luzmo/analytics-components-kit/filters';
|
|
6
|
+
import type { ItemFilterParameterDefinition } from '@luzmo/dashboard-contents-types';
|
|
4
7
|
|
|
5
8
|
@Component({
|
|
6
9
|
selector: 'luzmo-filter-parameter-picker',
|
|
@@ -24,22 +27,34 @@ export class LuzmoFilterParameterPicker implements OnChanges {
|
|
|
24
27
|
return this.host;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
|
-
/**
|
|
30
|
+
/** Parameter definitions available for selection. */
|
|
31
|
+
@Input({ alias: 'parameters' })
|
|
32
|
+
parameters?: ItemFilterParameterDefinition[];
|
|
33
|
+
|
|
34
|
+
/** Parameter types compatible with the active field and expression. */
|
|
35
|
+
@Input({ alias: 'allowedTypes' })
|
|
36
|
+
allowedTypes?: FilterParameterType[];
|
|
37
|
+
|
|
38
|
+
/** The parameter currently attached to the filter. */
|
|
39
|
+
@Input({ alias: 'selectedParameter' })
|
|
40
|
+
selectedParameter?: ItemFilterParameterDefinition;
|
|
41
|
+
|
|
42
|
+
/** The current literal filter value used as the default for a new parameter. */
|
|
43
|
+
@Input({ alias: 'currentValue' })
|
|
44
|
+
currentValue?: unknown;
|
|
45
|
+
|
|
46
|
+
/** Whether parameter selection is disabled. */
|
|
47
|
+
@Input({ alias: 'disabled', transform: booleanAttribute })
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
|
|
50
|
+
/** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
|
|
28
51
|
@Input({ alias: 'language' })
|
|
29
52
|
language?: string;
|
|
30
53
|
|
|
31
|
-
/** The language to use for locale-aware formatting and labels */
|
|
32
|
-
@Input({ alias: 'contentLanguage' })
|
|
33
|
-
contentLanguage?: string;
|
|
34
|
-
|
|
35
54
|
/** The size of the element */
|
|
36
55
|
@Input({ alias: 'size' })
|
|
37
56
|
size?: 's' | 'm' | 'l' | 'xl';
|
|
38
57
|
|
|
39
|
-
/** Disable this control. It will not receive focus or events */
|
|
40
|
-
@Input({ alias: 'disabled', transform: booleanAttribute })
|
|
41
|
-
disabled?: boolean;
|
|
42
|
-
|
|
43
58
|
/** When this control is rendered, focus it automatically */
|
|
44
59
|
@Input({ alias: 'autofocus', transform: booleanAttribute })
|
|
45
60
|
autofocus?: boolean;
|
|
@@ -48,6 +63,15 @@ export class LuzmoFilterParameterPicker implements OnChanges {
|
|
|
48
63
|
@Input({ alias: 'tabIndex' })
|
|
49
64
|
tabIndex?: number;
|
|
50
65
|
|
|
66
|
+
/** Fired when a parameter is selected. */
|
|
67
|
+
readonly luzmoParameterSelected = output<CustomEvent<FilterParameterPickerEventDetail>>({ alias: 'luzmoParameterSelected' });
|
|
68
|
+
|
|
69
|
+
/** Fired when a parameter is created. */
|
|
70
|
+
readonly luzmoParameterCreated = output<CustomEvent<FilterParameterPickerEventDetail>>({ alias: 'luzmoParameterCreated' });
|
|
71
|
+
|
|
72
|
+
/** Fired when a parameter is detached from the filter. */
|
|
73
|
+
readonly luzmoParameterRemoved = output<CustomEvent<FilterParameterPickerEventDetail>>({ alias: 'luzmoParameterRemoved' });
|
|
74
|
+
|
|
51
75
|
constructor() {
|
|
52
76
|
this.bindEvents();
|
|
53
77
|
this.destroyRef.onDestroy(() => {
|
|
@@ -60,18 +84,27 @@ export class LuzmoFilterParameterPicker implements OnChanges {
|
|
|
60
84
|
ngOnChanges(changes: SimpleChanges): void {
|
|
61
85
|
for (const key of Object.keys(changes)) {
|
|
62
86
|
switch (key) {
|
|
63
|
-
case '
|
|
64
|
-
this.setHostProperty('
|
|
87
|
+
case 'parameters':
|
|
88
|
+
this.setHostProperty('parameters', changes['parameters'].currentValue);
|
|
65
89
|
break;
|
|
66
|
-
case '
|
|
67
|
-
this.setHostProperty('
|
|
90
|
+
case 'allowedTypes':
|
|
91
|
+
this.setHostProperty('allowedTypes', changes['allowedTypes'].currentValue);
|
|
68
92
|
break;
|
|
69
|
-
case '
|
|
70
|
-
this.setHostProperty('
|
|
93
|
+
case 'selectedParameter':
|
|
94
|
+
this.setHostProperty('selectedParameter', changes['selectedParameter'].currentValue);
|
|
95
|
+
break;
|
|
96
|
+
case 'currentValue':
|
|
97
|
+
this.setHostProperty('currentValue', changes['currentValue'].currentValue);
|
|
71
98
|
break;
|
|
72
99
|
case 'disabled':
|
|
73
100
|
this.setHostProperty('disabled', changes['disabled'].currentValue);
|
|
74
101
|
break;
|
|
102
|
+
case 'language':
|
|
103
|
+
this.setHostProperty('language', changes['language'].currentValue);
|
|
104
|
+
break;
|
|
105
|
+
case 'size':
|
|
106
|
+
this.setHostProperty('size', changes['size'].currentValue);
|
|
107
|
+
break;
|
|
75
108
|
case 'autofocus':
|
|
76
109
|
this.setHostProperty('autofocus', changes['autofocus'].currentValue);
|
|
77
110
|
break;
|
|
@@ -95,7 +128,26 @@ export class LuzmoFilterParameterPicker implements OnChanges {
|
|
|
95
128
|
}
|
|
96
129
|
|
|
97
130
|
private bindEvents(): void {
|
|
98
|
-
|
|
131
|
+
this.listenerCleanup.push(
|
|
132
|
+
this.renderer.listen(this.host, 'luzmo-parameter-selected', (event: Event) => {
|
|
133
|
+
const typed = event as CustomEvent<FilterParameterPickerEventDetail>;
|
|
134
|
+
this.luzmoParameterSelected.emit(typed);
|
|
135
|
+
})
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
this.listenerCleanup.push(
|
|
139
|
+
this.renderer.listen(this.host, 'luzmo-parameter-created', (event: Event) => {
|
|
140
|
+
const typed = event as CustomEvent<FilterParameterPickerEventDetail>;
|
|
141
|
+
this.luzmoParameterCreated.emit(typed);
|
|
142
|
+
})
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
this.listenerCleanup.push(
|
|
146
|
+
this.renderer.listen(this.host, 'luzmo-parameter-removed', (event: Event) => {
|
|
147
|
+
const typed = event as CustomEvent<FilterParameterPickerEventDetail>;
|
|
148
|
+
this.luzmoParameterRemoved.emit(typed);
|
|
149
|
+
})
|
|
150
|
+
);
|
|
99
151
|
}
|
|
100
152
|
}
|
|
101
153
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, OnChanges, output, Renderer2, SimpleChanges } from '@angular/core';
|
|
2
2
|
import '@luzmo/analytics-components-kit/filters';
|
|
3
|
-
import type { LuzmoFilters as LuzmoFiltersHostElement, FiltersChangedEventDetail } from '@luzmo/analytics-components-kit/filters';
|
|
4
|
-
export type { FilterCondition, FilterGroup, FiltersChangedEventDetail } from '@luzmo/analytics-components-kit/filters';
|
|
5
|
-
import type { ItemFilterGroup } from '@luzmo/dashboard-contents-types';
|
|
3
|
+
import type { LuzmoFilters as LuzmoFiltersHostElement, FilterParameter, FiltersChangedEventDetail, FiltersFormat, FiltersInput } from '@luzmo/analytics-components-kit/filters';
|
|
4
|
+
export type { CleanFilter, CleanFilterClauseGroup, CleanFilterGroup, CleanRetrievedFilterGroup, DashboardFilterOutput, DetectedFiltersFormat, FilterClause, FilterCondition, FilterGroup, FilterParameter, FilterParameterEventDetail, FilterParameterType, FiltersChangedEventDetail, FiltersFormat, FiltersInput, FiltersOutput, ItemFilterOutput, TransformFiltersOptions } from '@luzmo/analytics-components-kit/filters';
|
|
6
5
|
|
|
7
6
|
@Component({
|
|
8
7
|
selector: 'luzmo-filters',
|
|
@@ -54,9 +53,21 @@ export class LuzmoFilters implements OnChanges {
|
|
|
54
53
|
@Input({ alias: 'datasetIds' })
|
|
55
54
|
datasetIds?: string[];
|
|
56
55
|
|
|
57
|
-
/** The filter groups to display */
|
|
56
|
+
/** The filter groups to display. Accepts both halves of the public `ItemFilterOutput` / `DashboardFilterOutput` unions: canonical `ItemFilterGroup[]` and clean clause groups with flattened leaves. Nested `and` / `or` groups are preserved either way. */
|
|
58
57
|
@Input({ alias: 'filters' })
|
|
59
|
-
filters?:
|
|
58
|
+
filters?: FiltersInput;
|
|
59
|
+
|
|
60
|
+
/** Output format for the `luzmo-filters-changed` event. `canonical` emits `ItemFilterGroup[]`; `clean` emits the clean clause groups that aligned hosts consume. A tree that cannot be represented cleanly falls back to canonical output, and the event says which format it carries. */
|
|
61
|
+
@Input({ alias: 'format' })
|
|
62
|
+
format?: FiltersFormat;
|
|
63
|
+
|
|
64
|
+
/** Whether parameter-backed filter values can be created and selected. */
|
|
65
|
+
@Input({ alias: 'allowParameters', transform: booleanAttribute })
|
|
66
|
+
allowParameters?: boolean;
|
|
67
|
+
|
|
68
|
+
/** Consumer-owned parameter definitions available to filter rows. */
|
|
69
|
+
@Input({ alias: 'parameters' })
|
|
70
|
+
parameters?: FilterParameter[];
|
|
60
71
|
|
|
61
72
|
/** Debounce time in milliseconds for the filters-changed event */
|
|
62
73
|
@Input({ alias: 'debounce' })
|
|
@@ -82,9 +93,15 @@ export class LuzmoFilters implements OnChanges {
|
|
|
82
93
|
@Input({ alias: 'tabIndex' })
|
|
83
94
|
tabIndex?: number;
|
|
84
95
|
|
|
85
|
-
/** Announces that the filters have changed */
|
|
96
|
+
/** Announces that the filters have changed, carrying the emitted groups and the format they are in */
|
|
86
97
|
readonly luzmoFiltersChanged = output<CustomEvent<FiltersChangedEventDetail>>({ alias: 'luzmoFiltersChanged' });
|
|
87
98
|
|
|
99
|
+
/** Announces that a parameter was created and added to `parameters`. */
|
|
100
|
+
readonly luzmoParameterCreated = output<CustomEvent<{ parameter: FilterParameter }>>({ alias: 'luzmoParameterCreated' });
|
|
101
|
+
|
|
102
|
+
/** Announces that a parameter was detached from a filter. */
|
|
103
|
+
readonly luzmoParameterRemoved = output<CustomEvent<{ parameter: FilterParameter }>>({ alias: 'luzmoParameterRemoved' });
|
|
104
|
+
|
|
88
105
|
constructor() {
|
|
89
106
|
this.bindEvents();
|
|
90
107
|
this.destroyRef.onDestroy(() => {
|
|
@@ -121,6 +138,15 @@ export class LuzmoFilters implements OnChanges {
|
|
|
121
138
|
case 'filters':
|
|
122
139
|
this.setHostProperty('filters', changes['filters'].currentValue);
|
|
123
140
|
break;
|
|
141
|
+
case 'format':
|
|
142
|
+
this.setHostProperty('format', changes['format'].currentValue);
|
|
143
|
+
break;
|
|
144
|
+
case 'allowParameters':
|
|
145
|
+
this.setHostProperty('allowParameters', changes['allowParameters'].currentValue);
|
|
146
|
+
break;
|
|
147
|
+
case 'parameters':
|
|
148
|
+
this.setHostProperty('parameters', changes['parameters'].currentValue);
|
|
149
|
+
break;
|
|
124
150
|
case 'debounce':
|
|
125
151
|
this.setHostProperty('debounce', changes['debounce'].currentValue);
|
|
126
152
|
break;
|
|
@@ -162,6 +188,20 @@ export class LuzmoFilters implements OnChanges {
|
|
|
162
188
|
this.luzmoFiltersChanged.emit(typed);
|
|
163
189
|
})
|
|
164
190
|
);
|
|
191
|
+
|
|
192
|
+
this.listenerCleanup.push(
|
|
193
|
+
this.renderer.listen(this.host, 'luzmo-parameter-created', (event: Event) => {
|
|
194
|
+
const typed = event as CustomEvent<{ parameter: FilterParameter }>;
|
|
195
|
+
this.luzmoParameterCreated.emit(typed);
|
|
196
|
+
})
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
this.listenerCleanup.push(
|
|
200
|
+
this.renderer.listen(this.host, 'luzmo-parameter-removed', (event: Event) => {
|
|
201
|
+
const typed = event as CustomEvent<{ parameter: FilterParameter }>;
|
|
202
|
+
this.luzmoParameterRemoved.emit(typed);
|
|
203
|
+
})
|
|
204
|
+
);
|
|
165
205
|
}
|
|
166
206
|
}
|
|
167
207
|
|
|
@@ -19,6 +19,8 @@ export declare class LuzmoDataFieldsSelect implements OnChanges {
|
|
|
19
19
|
label?: string;
|
|
20
20
|
/** Where to show icons */
|
|
21
21
|
icons?: 'none' | 'menu-only' | 'all';
|
|
22
|
+
/** Whether datetime and hierarchy columns expand into selectable sublevels. Turn this off in contexts that address the column as a whole, so the column stays selectable by its own id. */
|
|
23
|
+
levels?: 'on' | 'off';
|
|
22
24
|
/** Allow no selection. If true, the picker will not show a value when no item is selected. Else if no value is provided it will pick the first item. */
|
|
23
25
|
allowEmpty?: boolean;
|
|
24
26
|
/** The placeholder text for the picker is no value selected. If allowEmpty is true, this will be used as the label. */
|
|
@@ -66,7 +68,7 @@ export declare class LuzmoDataFieldsSelect implements OnChanges {
|
|
|
66
68
|
private setHostProperty;
|
|
67
69
|
private bindEvents;
|
|
68
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoDataFieldsSelect, never>;
|
|
69
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoDataFieldsSelect, "luzmo-data-fields-select", ["luzmoDataFieldsSelect"], { "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "label": { "alias": "label"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; "allowEmpty": { "alias": "allowEmpty"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "selects": { "alias": "selects"; "required": false; }; "value": { "alias": "value"; "required": false; }; "retrieving": { "alias": "retrieving"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "pending": { "alias": "pending"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "search": { "alias": "search"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "datasetsDataFields": { "alias": "datasetsDataFields"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoDataFieldsSelected": "luzmoDataFieldsSelected"; }, never, ["*"], true, never>;
|
|
71
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoDataFieldsSelect, "luzmo-data-fields-select", ["luzmoDataFieldsSelect"], { "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "label": { "alias": "label"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; "levels": { "alias": "levels"; "required": false; }; "allowEmpty": { "alias": "allowEmpty"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "selects": { "alias": "selects"; "required": false; }; "value": { "alias": "value"; "required": false; }; "retrieving": { "alias": "retrieving"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "pending": { "alias": "pending"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "search": { "alias": "search"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "datasetsDataFields": { "alias": "datasetsDataFields"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoDataFieldsSelected": "luzmoDataFieldsSelected"; }, never, ["*"], true, never>;
|
|
70
72
|
static ngAcceptInputType_allowEmpty: unknown;
|
|
71
73
|
static ngAcceptInputType_retrieving: unknown;
|
|
72
74
|
static ngAcceptInputType_invalid: unknown;
|
|
@@ -21,6 +21,8 @@ export class LuzmoDataFieldsSelect {
|
|
|
21
21
|
label;
|
|
22
22
|
/** Where to show icons */
|
|
23
23
|
icons;
|
|
24
|
+
/** Whether datetime and hierarchy columns expand into selectable sublevels. Turn this off in contexts that address the column as a whole, so the column stays selectable by its own id. */
|
|
25
|
+
levels;
|
|
24
26
|
/** Allow no selection. If true, the picker will not show a value when no item is selected. Else if no value is provided it will pick the first item. */
|
|
25
27
|
allowEmpty;
|
|
26
28
|
/** The placeholder text for the picker is no value selected. If allowEmpty is true, this will be used as the label. */
|
|
@@ -75,6 +77,9 @@ export class LuzmoDataFieldsSelect {
|
|
|
75
77
|
case 'icons':
|
|
76
78
|
this.setHostProperty('icons', changes['icons'].currentValue);
|
|
77
79
|
break;
|
|
80
|
+
case 'levels':
|
|
81
|
+
this.setHostProperty('levels', changes['levels'].currentValue);
|
|
82
|
+
break;
|
|
78
83
|
case 'allowEmpty':
|
|
79
84
|
this.setHostProperty('allowEmpty', changes['allowEmpty'].currentValue);
|
|
80
85
|
break;
|
|
@@ -144,7 +149,7 @@ export class LuzmoDataFieldsSelect {
|
|
|
144
149
|
}));
|
|
145
150
|
}
|
|
146
151
|
static ɵfac = function LuzmoDataFieldsSelect_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoDataFieldsSelect)(); };
|
|
147
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoDataFieldsSelect, selectors: [["luzmo-data-fields-select"]], inputs: { contentLanguage: "contentLanguage", label: "label", icons: "icons", allowEmpty: [2, "allowEmpty", "allowEmpty", booleanAttribute], placeholder: "placeholder", selects: "selects", value: "value", retrieving: [2, "retrieving", "retrieving", booleanAttribute], invalid: [2, "invalid", "invalid", booleanAttribute], clearable: [2, "clearable", "clearable", booleanAttribute], pending: [2, "pending", "pending", booleanAttribute], disabled: [2, "disabled", "disabled", booleanAttribute], search: "search", placement: "placement", datasetsDataFields: "datasetsDataFields", language: "language", size: "size", autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoDataFieldsSelected: "luzmoDataFieldsSelected" }, exportAs: ["luzmoDataFieldsSelect"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoDataFieldsSelect_Template(rf, ctx) { if (rf & 1) {
|
|
152
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoDataFieldsSelect, selectors: [["luzmo-data-fields-select"]], inputs: { contentLanguage: "contentLanguage", label: "label", icons: "icons", levels: "levels", allowEmpty: [2, "allowEmpty", "allowEmpty", booleanAttribute], placeholder: "placeholder", selects: "selects", value: "value", retrieving: [2, "retrieving", "retrieving", booleanAttribute], invalid: [2, "invalid", "invalid", booleanAttribute], clearable: [2, "clearable", "clearable", booleanAttribute], pending: [2, "pending", "pending", booleanAttribute], disabled: [2, "disabled", "disabled", booleanAttribute], search: "search", placement: "placement", datasetsDataFields: "datasetsDataFields", language: "language", size: "size", autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoDataFieldsSelected: "luzmoDataFieldsSelected" }, exportAs: ["luzmoDataFieldsSelect"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoDataFieldsSelect_Template(rf, ctx) { if (rf & 1) {
|
|
148
153
|
i0.ɵɵprojectionDef();
|
|
149
154
|
i0.ɵɵprojection(0);
|
|
150
155
|
} }, encapsulation: 2 });
|
|
@@ -167,6 +172,9 @@ export class LuzmoDataFieldsSelect {
|
|
|
167
172
|
}], icons: [{
|
|
168
173
|
type: Input,
|
|
169
174
|
args: [{ alias: 'icons' }]
|
|
175
|
+
}], levels: [{
|
|
176
|
+
type: Input,
|
|
177
|
+
args: [{ alias: 'levels' }]
|
|
170
178
|
}], allowEmpty: [{
|
|
171
179
|
type: Input,
|
|
172
180
|
args: [{ alias: 'allowEmpty', transform: booleanAttribute }]
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import '@luzmo/analytics-components-kit/filter-item';
|
|
3
3
|
import type { LuzmoFilterItem as LuzmoFilterItemHostElement } from '@luzmo/analytics-components-kit/filter-item';
|
|
4
|
+
import type { FilterParameter } from '@luzmo/analytics-components-kit/filters';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class LuzmoFilterItem implements OnChanges {
|
|
6
7
|
private readonly elementRef;
|
|
@@ -26,6 +27,10 @@ export declare class LuzmoFilterItem implements OnChanges {
|
|
|
26
27
|
datasetIds?: string[];
|
|
27
28
|
/** The filter to display */
|
|
28
29
|
filter?: any;
|
|
30
|
+
/** Whether parameter-backed filter values can be created and selected. */
|
|
31
|
+
allowParameters?: boolean;
|
|
32
|
+
/** Consumer-owned parameter definitions available for selection. */
|
|
33
|
+
parameters?: FilterParameter[];
|
|
29
34
|
/** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
|
|
30
35
|
language?: string;
|
|
31
36
|
/** The size of the element */
|
|
@@ -49,7 +54,8 @@ export declare class LuzmoFilterItem implements OnChanges {
|
|
|
49
54
|
private setHostProperty;
|
|
50
55
|
private bindEvents;
|
|
51
56
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoFilterItem, never>;
|
|
52
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoFilterItem, "luzmo-filter-item", ["luzmoFilterItem"], { "apiUrl": { "alias": "apiUrl"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "cacheTime": { "alias": "cacheTime"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "timeZone": { "alias": "timeZone"; "required": false; }; "datasetIds": { "alias": "datasetIds"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoFilterChanged": "luzmoFilterChanged"; }, never, ["*"], true, never>;
|
|
57
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoFilterItem, "luzmo-filter-item", ["luzmoFilterItem"], { "apiUrl": { "alias": "apiUrl"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "cacheTime": { "alias": "cacheTime"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "timeZone": { "alias": "timeZone"; "required": false; }; "datasetIds": { "alias": "datasetIds"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "allowParameters": { "alias": "allowParameters"; "required": false; }; "parameters": { "alias": "parameters"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoFilterChanged": "luzmoFilterChanged"; }, never, ["*"], true, never>;
|
|
58
|
+
static ngAcceptInputType_allowParameters: unknown;
|
|
53
59
|
static ngAcceptInputType_disabled: unknown;
|
|
54
60
|
static ngAcceptInputType_autofocus: unknown;
|
|
55
61
|
}
|
|
@@ -31,6 +31,10 @@ export class LuzmoFilterItem {
|
|
|
31
31
|
datasetIds;
|
|
32
32
|
/** The filter to display */
|
|
33
33
|
filter;
|
|
34
|
+
/** Whether parameter-backed filter values can be created and selected. */
|
|
35
|
+
allowParameters;
|
|
36
|
+
/** Consumer-owned parameter definitions available for selection. */
|
|
37
|
+
parameters;
|
|
34
38
|
/** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
|
|
35
39
|
language;
|
|
36
40
|
/** The size of the element */
|
|
@@ -78,6 +82,12 @@ export class LuzmoFilterItem {
|
|
|
78
82
|
case 'filter':
|
|
79
83
|
this.setHostProperty('filter', changes['filter'].currentValue);
|
|
80
84
|
break;
|
|
85
|
+
case 'allowParameters':
|
|
86
|
+
this.setHostProperty('allowParameters', changes['allowParameters'].currentValue);
|
|
87
|
+
break;
|
|
88
|
+
case 'parameters':
|
|
89
|
+
this.setHostProperty('parameters', changes['parameters'].currentValue);
|
|
90
|
+
break;
|
|
81
91
|
case 'language':
|
|
82
92
|
this.setHostProperty('language', changes['language'].currentValue);
|
|
83
93
|
break;
|
|
@@ -114,7 +124,7 @@ export class LuzmoFilterItem {
|
|
|
114
124
|
}));
|
|
115
125
|
}
|
|
116
126
|
static ɵfac = function LuzmoFilterItem_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoFilterItem)(); };
|
|
117
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoFilterItem, selectors: [["luzmo-filter-item"]], inputs: { apiUrl: "apiUrl", authKey: "authKey", authToken: "authToken", cacheTime: "cacheTime", contentLanguage: "contentLanguage", timeZone: "timeZone", datasetIds: "datasetIds", filter: "filter", language: "language", size: "size", disabled: [2, "disabled", "disabled", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoFilterChanged: "luzmoFilterChanged" }, exportAs: ["luzmoFilterItem"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoFilterItem_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoFilterItem, selectors: [["luzmo-filter-item"]], inputs: { apiUrl: "apiUrl", authKey: "authKey", authToken: "authToken", cacheTime: "cacheTime", contentLanguage: "contentLanguage", timeZone: "timeZone", datasetIds: "datasetIds", filter: "filter", allowParameters: [2, "allowParameters", "allowParameters", booleanAttribute], parameters: "parameters", language: "language", size: "size", disabled: [2, "disabled", "disabled", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], tabIndex: "tabIndex" }, outputs: { luzmoFilterChanged: "luzmoFilterChanged" }, exportAs: ["luzmoFilterItem"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoFilterItem_Template(rf, ctx) { if (rf & 1) {
|
|
118
128
|
i0.ɵɵprojectionDef();
|
|
119
129
|
i0.ɵɵprojection(0);
|
|
120
130
|
} }, encapsulation: 2 });
|
|
@@ -152,6 +162,12 @@ export class LuzmoFilterItem {
|
|
|
152
162
|
}], filter: [{
|
|
153
163
|
type: Input,
|
|
154
164
|
args: [{ alias: 'filter' }]
|
|
165
|
+
}], allowParameters: [{
|
|
166
|
+
type: Input,
|
|
167
|
+
args: [{ alias: 'allowParameters', transform: booleanAttribute }]
|
|
168
|
+
}], parameters: [{
|
|
169
|
+
type: Input,
|
|
170
|
+
args: [{ alias: 'parameters' }]
|
|
155
171
|
}], language: [{
|
|
156
172
|
type: Input,
|
|
157
173
|
args: [{ alias: 'language' }]
|
|
@@ -168,4 +184,4 @@ export class LuzmoFilterItem {
|
|
|
168
184
|
type: Input,
|
|
169
185
|
args: [{ alias: 'tabIndex' }]
|
|
170
186
|
}], luzmoFilterChanged: [{ type: i0.Output, args: ["luzmoFilterChanged"] }] }); })();
|
|
171
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoFilterItem, { className: "LuzmoFilterItem", filePath: "components/filter-item.ts", lineNumber:
|
|
187
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoFilterItem, { className: "LuzmoFilterItem", filePath: "components/filter-item.ts", lineNumber: 16 }); })();
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
3
|
-
import type { LuzmoFilterParameterPicker as LuzmoFilterParameterPickerHostElement } from '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
3
|
+
import type { LuzmoFilterParameterPicker as LuzmoFilterParameterPickerHostElement, FilterParameterPickerEventDetail } from '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
4
|
+
import type { FilterParameterType } from '@luzmo/analytics-components-kit/filters';
|
|
5
|
+
import type { ItemFilterParameterDefinition } from '@luzmo/dashboard-contents-types';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
export type { FilterParameterPickerEventDetail } from '@luzmo/analytics-components-kit/filter-parameter-picker';
|
|
5
8
|
export declare class LuzmoFilterParameterPicker implements OnChanges {
|
|
6
9
|
private readonly elementRef;
|
|
7
10
|
private readonly renderer;
|
|
@@ -10,18 +13,30 @@ export declare class LuzmoFilterParameterPicker implements OnChanges {
|
|
|
10
13
|
private readonly listenerCleanup;
|
|
11
14
|
/** The underlying custom element instance. Use to call imperative methods. */
|
|
12
15
|
get nativeElement(): LuzmoFilterParameterPickerHostElement;
|
|
13
|
-
/**
|
|
16
|
+
/** Parameter definitions available for selection. */
|
|
17
|
+
parameters?: ItemFilterParameterDefinition[];
|
|
18
|
+
/** Parameter types compatible with the active field and expression. */
|
|
19
|
+
allowedTypes?: FilterParameterType[];
|
|
20
|
+
/** The parameter currently attached to the filter. */
|
|
21
|
+
selectedParameter?: ItemFilterParameterDefinition;
|
|
22
|
+
/** The current literal filter value used as the default for a new parameter. */
|
|
23
|
+
currentValue?: unknown;
|
|
24
|
+
/** Whether parameter selection is disabled. */
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/** The language for UI labels. Supported values: 'en', 'nl', 'fr', 'de', 'es' */
|
|
14
27
|
language?: string;
|
|
15
|
-
/** The language to use for locale-aware formatting and labels */
|
|
16
|
-
contentLanguage?: string;
|
|
17
28
|
/** The size of the element */
|
|
18
29
|
size?: 's' | 'm' | 'l' | 'xl';
|
|
19
|
-
/** Disable this control. It will not receive focus or events */
|
|
20
|
-
disabled?: boolean;
|
|
21
30
|
/** When this control is rendered, focus it automatically */
|
|
22
31
|
autofocus?: boolean;
|
|
23
32
|
/** The tab index to apply to this control. See general documentation about the tabindex HTML property */
|
|
24
33
|
tabIndex?: number;
|
|
34
|
+
/** Fired when a parameter is selected. */
|
|
35
|
+
readonly luzmoParameterSelected: import("@angular/core").OutputEmitterRef<CustomEvent<FilterParameterPickerEventDetail>>;
|
|
36
|
+
/** Fired when a parameter is created. */
|
|
37
|
+
readonly luzmoParameterCreated: import("@angular/core").OutputEmitterRef<CustomEvent<FilterParameterPickerEventDetail>>;
|
|
38
|
+
/** Fired when a parameter is detached from the filter. */
|
|
39
|
+
readonly luzmoParameterRemoved: import("@angular/core").OutputEmitterRef<CustomEvent<FilterParameterPickerEventDetail>>;
|
|
25
40
|
constructor();
|
|
26
41
|
ngOnChanges(changes: SimpleChanges): void;
|
|
27
42
|
/**
|
|
@@ -33,7 +48,7 @@ export declare class LuzmoFilterParameterPicker implements OnChanges {
|
|
|
33
48
|
private setHostProperty;
|
|
34
49
|
private bindEvents;
|
|
35
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoFilterParameterPicker, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoFilterParameterPicker, "luzmo-filter-parameter-picker", ["luzmoFilterParameterPicker"], { "
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoFilterParameterPicker, "luzmo-filter-parameter-picker", ["luzmoFilterParameterPicker"], { "parameters": { "alias": "parameters"; "required": false; }; "allowedTypes": { "alias": "allowedTypes"; "required": false; }; "selectedParameter": { "alias": "selectedParameter"; "required": false; }; "currentValue": { "alias": "currentValue"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "language": { "alias": "language"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "luzmoParameterSelected": "luzmoParameterSelected"; "luzmoParameterCreated": "luzmoParameterCreated"; "luzmoParameterRemoved": "luzmoParameterRemoved"; }, never, ["*"], true, never>;
|
|
37
52
|
static ngAcceptInputType_disabled: unknown;
|
|
38
53
|
static ngAcceptInputType_autofocus: unknown;
|
|
39
54
|
}
|