@luzmo/analytics-components-kit 1.0.8-beta.6 → 1.0.8
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/components/{area-chart-positioning.config-BEwDQj3T.js → area-chart-positioning.config-BJK4Q4NL.js} +1 -1
- package/components/{area-chart-positioning.config-CS-5H8-C.cjs → area-chart-positioning.config-Cbeon6-x.cjs} +1 -1
- package/components/{bar-chart-positioning.config-CBbTYesB.js → bar-chart-positioning.config-B4UuSMIW.js} +1 -1
- package/components/{bar-chart-positioning.config-DkIvwJI5.cjs → bar-chart-positioning.config-BnhZQUtb.cjs} +1 -1
- package/components/base-BtRS5vm6.cjs +20 -0
- package/components/{base-DSeXdW9S.js → base-IE9Qxmub.js} +1 -2
- package/components/{box-plot-positioning.config-CNC-RTwl.js → box-plot-positioning.config-CYk5koLu.js} +1 -1
- package/components/{box-plot-positioning.config-o5D-mRFr.cjs → box-plot-positioning.config-DsldCFWm.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-3ilPXLpZ.js → bubble-chart-positioning.config-BSDmuPwq.js} +1 -1
- package/components/{bubble-chart-positioning.config-CtreNdST.cjs → bubble-chart-positioning.config-BV-T_2cy.cjs} +1 -1
- package/components/{bullet-chart-positioning.config-CkFhShBk.js → bullet-chart-positioning.config-B3GeLs8o.js} +1 -1
- package/components/{bullet-chart-positioning.config-dHj3YrT_.cjs → bullet-chart-positioning.config-BoqQq4g_.cjs} +1 -1
- package/components/{choropleth-map-positioning.config-DOt86t59.js → choropleth-map-positioning.config-6OT0sZa5.js} +1 -1
- package/components/{choropleth-map-positioning.config-BSs-bRGv.cjs → choropleth-map-positioning.config-C_I3wf8H.cjs} +1 -1
- package/components/{circle-pack-chart-positioning.config-BkFATJjC.js → circle-pack-chart-positioning.config-BuuhKB85.js} +1 -1
- package/components/{circle-pack-chart-positioning.config-CVNdIYau.cjs → circle-pack-chart-positioning.config-D7Oke8BW.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-SrbCaaOr.cjs → circular-gauge-positioning.config-B_IJzIBn.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-BV2xb5TF.js → circular-gauge-positioning.config-DlWvKl0e.js} +1 -1
- package/components/{column-chart-positioning.config-T7juV3XT.js → column-chart-positioning.config-BLacEiY5.js} +1 -1
- package/components/{column-chart-positioning.config-DTQe3h_H.cjs → column-chart-positioning.config-DngsP5So.cjs} +1 -1
- package/components/{combination-chart-positioning.config-BrSmdan-.cjs → combination-chart-positioning.config-BVV0Bq-d.cjs} +1 -1
- package/components/{combination-chart-positioning.config-78C7wKnS.js → combination-chart-positioning.config-DxnmzV6O.js} +1 -1
- package/components/{conditional-number-positioning.config-_9ySKU1z.cjs → conditional-number-positioning.config-DfitbPT6.cjs} +1 -1
- package/components/{conditional-number-positioning.config-z_eEfpud.js → conditional-number-positioning.config-YEo_yFBu.js} +1 -1
- package/components/data-field/index.cjs +1 -1
- package/components/data-field/index.d.ts +0 -1
- package/components/data-field/index.js +1 -1
- package/components/data-field-fvlYzmfX.cjs +89 -0
- package/components/data-field-panel/index.cjs +1 -1
- package/components/data-field-panel/index.d.ts +0 -1
- package/components/data-field-panel/index.js +1 -1
- package/components/{data-field-panel-U-5Q-TRp.js → data-field-panel-BWBr1Fog.js} +4 -5
- package/components/data-field-panel-Yrqn4L79.cjs +87 -0
- package/components/{data-field-level-DR_dXjnL.js → data-field-yTJb-R63.js} +141 -47
- package/components/{data-fields-select-BYhAzdA6.js → data-fields-select-Bb1HXwlO.js} +3 -4
- package/components/data-fields-select-Cor6sfzL.cjs +41 -0
- package/components/{display-settings-binning-GIE6ww1Q.js → display-settings-binning-CaE87u3h.js} +19 -17
- package/components/{display-settings-binning-HrXOdGwO.cjs → display-settings-binning-CjvB12ds.cjs} +2 -2
- package/components/{display-settings-datetime-YS7_TUet.js → display-settings-datetime-5rq55OAn.js} +71 -69
- package/components/display-settings-datetime-B23w7aH4.cjs +217 -0
- package/components/display-settings-grand-totals-BZ0nlLhu.cjs +44 -0
- package/components/{display-settings-grand-totals-Bt_ju8jp.js → display-settings-grand-totals-DnKvI34n.js} +19 -17
- package/components/{display-settings-numeric-OHmktQsz.js → display-settings-numeric-B8MCRz-V.js} +81 -79
- package/components/display-settings-numeric-DoScgfRy.cjs +190 -0
- package/components/display-settings-period-over-period-C-hp0ZKN.cjs +227 -0
- package/components/{display-settings-period-over-period-B1_IJjWK.js → display-settings-period-over-period-W3dPK8LR.js} +98 -88
- package/components/{donut-chart-positioning.config-BY2TIeeY.cjs → donut-chart-positioning.config-QOZXaJmt.cjs} +1 -1
- package/components/{donut-chart-positioning.config-D34HegyZ.js → donut-chart-positioning.config-fGckMun2.js} +1 -1
- package/components/{en-US-q_Ruzags.cjs → en-CSPDwq2y.cjs} +1 -1
- package/components/{en-US-CcLhGxIh.js → en-DdS5q1ZT.js} +1 -1
- package/components/{en-GB-uxY5qmIM.cjs → en-GB-CJR66Ci_.cjs} +1 -1
- package/components/{en-GB-DzkdeUQh.js → en-GB-Cn0xDC0K.js} +1 -1
- package/components/{en-q_Ruzags.cjs → en-US-CSPDwq2y.cjs} +1 -1
- package/components/{en-CcLhGxIh.js → en-US-DdS5q1ZT.js} +1 -1
- package/components/{evolution-number-positioning.config-BBvULr59.cjs → evolution-number-positioning.config-B7lBArog.cjs} +1 -1
- package/components/{evolution-number-positioning.config-CKzCTjdO.js → evolution-number-positioning.config-CVIysE4H.js} +1 -1
- package/components/filters/index.cjs +1 -1
- package/components/filters/index.js +2 -2
- package/components/filters-DndJU6D5.js +2454 -0
- package/components/filters-oB9qOk_M.cjs +443 -0
- package/components/formula/index.cjs +1 -1
- package/components/formula/index.js +1 -1
- package/components/formula-BFvxm8kj.cjs +45 -0
- package/components/{formula-BYx4gH6i.js → formula-CdAkO1za.js} +14 -15
- package/components/{formula-codemirror-CVzyYNLO.js → formula-codemirror-jVC8mjQ3.js} +19 -21
- package/components/formula-codemirror-ucFOD-2a.cjs +215 -0
- package/components/{formula-display-store-BPn9m5TL.js → formula-display-store-CLAt_fik.js} +271 -242
- package/components/formula-display-store-DmT65fUB.cjs +20 -0
- package/components/formula-editor/index.cjs +1 -1
- package/components/formula-editor/index.d.ts +0 -1
- package/components/formula-editor/index.js +3 -4
- package/components/{formula-editor-BxoIkARr.js → formula-editor-Bd9F-xdZ.js} +351 -146
- package/components/formula-editor-BeZ-fu-7.cjs +253 -0
- package/components/{funnel-chart-positioning.config-CvhpE7rN.js → funnel-chart-positioning.config-BGi7ixet.js} +1 -1
- package/components/{funnel-chart-positioning.config-BPSmV76y.cjs → funnel-chart-positioning.config-zEqgz9Wz.cjs} +1 -1
- package/components/{heat-map-positioning.config-CHDHFIo2.cjs → heat-map-positioning.config-3dxU6qwG.cjs} +1 -1
- package/components/{heat-map-positioning.config-AOHTEJf7.js → heat-map-positioning.config-CK2DBngE.js} +1 -1
- package/components/{heat-table-positioning.config-DprOfmlW.js → heat-table-positioning.config-C55D814C.js} +1 -1
- package/components/{heat-table-positioning.config-DCLE9cy4.cjs → heat-table-positioning.config-CbscS7w1.cjs} +1 -1
- package/components/{hexbin-map-positioning.config-BjxkoqGh.js → hexbin-map-positioning.config-9nnyZGzx.js} +1 -1
- package/components/{hexbin-map-positioning.config-BmLljWez.cjs → hexbin-map-positioning.config-CHecaD9p.cjs} +1 -1
- package/components/index.cjs +840 -1
- package/components/index.js +6783 -67
- package/components/item-grid/index.cjs +1 -1
- package/components/item-grid/index.js +1 -1
- package/components/{item-grid-CcwnD_u5.cjs → item-grid-C2ZvM04g.cjs} +22 -22
- package/components/{item-grid-C_OTtv4T.js → item-grid-D4xYhMOD.js} +1 -2
- package/components/item-option/index.cjs +1 -1
- package/components/item-option/index.js +1 -1
- package/components/{item-option-DRWLN89_.js → item-option-28BU_oaD.js} +2 -2
- package/components/item-option-BQpS6rM_.cjs +269 -0
- package/components/item-option-action-button-group/index.cjs +1 -1
- package/components/item-option-action-button-group/index.js +1 -1
- package/components/item-option-action-button-group-BwBxRLzB.cjs +53 -0
- package/components/{item-option-action-button-group-B9ghoHeh.js → item-option-action-button-group-D_g6aoYd.js} +2 -2
- package/components/item-option-base-C6uwowJD.cjs +56 -0
- package/components/{item-option-base-pYrkqt6q.js → item-option-base-CxQhI83u.js} +2 -2
- package/components/item-option-color-palette-picker/index.cjs +1 -1
- package/components/item-option-color-palette-picker/index.js +1 -1
- package/components/item-option-color-palette-picker-BjHadiN0.cjs +40 -0
- package/components/{item-option-color-palette-picker-DnVqGnm4.js → item-option-color-palette-picker-CRDFqhWx.js} +2 -2
- package/components/item-option-color-picker/index.cjs +1 -1
- package/components/item-option-color-picker/index.js +1 -1
- package/components/{item-option-color-picker-CNkNZ1p-.cjs → item-option-color-picker-BJgpBbDp.cjs} +2 -2
- package/components/{item-option-color-picker-CO-OAFOs.js → item-option-color-picker-BlkpWjQh.js} +2 -2
- package/components/item-option-color-range/index.cjs +1 -1
- package/components/item-option-color-range/index.js +1 -1
- package/components/{item-option-color-range-bdYUxgQ9.js → item-option-color-range-3Wp-Ywz6.js} +2 -2
- package/components/item-option-color-range-CQo8uThO.cjs +98 -0
- package/components/item-option-guidelines/index.cjs +1 -1
- package/components/item-option-guidelines/index.js +1 -1
- package/components/{item-option-guidelines-Ce88dTV-.js → item-option-guidelines-CQ_yb7Ar.js} +3 -4
- package/components/item-option-guidelines-Daf8Ce5z.cjs +135 -0
- package/components/item-option-multi-language-field/index.cjs +1 -1
- package/components/item-option-multi-language-field/index.js +1 -1
- package/components/{item-option-multi-language-field-D0jRPAjY.cjs → item-option-multi-language-field-BApbe3pp.cjs} +2 -2
- package/components/{item-option-multi-language-field-0qfdBanp.js → item-option-multi-language-field-aLIpQWiQ.js} +2 -2
- package/components/item-option-number-field/index.cjs +1 -1
- package/components/item-option-number-field/index.js +1 -1
- package/components/{item-option-number-field-DYJ0eIf7.cjs → item-option-number-field-B72ZYOAX.cjs} +2 -2
- package/components/{item-option-number-field-CcEav5C3.js → item-option-number-field-Bv5eGoxB.js} +2 -2
- package/components/item-option-panel/index.cjs +1 -1
- package/components/item-option-panel/index.js +1 -1
- package/components/{item-option-panel-6Voh87nt.cjs → item-option-panel-A8Jxzwml.cjs} +2 -2
- package/components/{item-option-panel-DrI7HYrY.js → item-option-panel-kRH7GbzA.js} +3 -3
- package/components/item-option-picker/index.cjs +1 -1
- package/components/item-option-picker/index.js +1 -1
- package/components/{item-option-picker-Bv4aGaCO.js → item-option-picker-BuUtW6gD.js} +2 -2
- package/components/{item-option-picker-DkEgfEE7.cjs → item-option-picker-DOFJ1CnI.cjs} +2 -2
- package/components/item-option-position-picker/index.cjs +1 -1
- package/components/item-option-position-picker/index.js +1 -1
- package/components/item-option-position-picker-Cnis4wLA.cjs +32 -0
- package/components/{item-option-position-picker-1d7qZmDv.js → item-option-position-picker-mf3JQu5q.js} +2 -2
- package/components/item-option-positions-number-field/index.cjs +1 -1
- package/components/item-option-positions-number-field/index.js +1 -1
- package/components/item-option-positions-number-field-B7gI1IKO.cjs +49 -0
- package/components/{item-option-positions-number-field-DUlBsbUL.js → item-option-positions-number-field-BIBWpagB.js} +2 -2
- package/components/item-option-radio-button-group/index.cjs +1 -1
- package/components/item-option-radio-button-group/index.js +1 -1
- package/components/{item-option-radio-button-group-ChtTIO3B.cjs → item-option-radio-button-group-B2HYZguB.cjs} +2 -2
- package/components/{item-option-radio-button-group-DuMcIZvr.js → item-option-radio-button-group-CFnfadK2.js} +2 -2
- package/components/item-option-slider/index.cjs +1 -1
- package/components/item-option-slider/index.js +1 -1
- package/components/item-option-slider--7hmhi97.cjs +33 -0
- package/components/{item-option-slider-CWxRoAbA.js → item-option-slider-CH1l0Ena.js} +2 -2
- package/components/item-option-switch/index.cjs +1 -1
- package/components/item-option-switch/index.js +1 -1
- package/components/{item-option-switch-dO66fjoD.cjs → item-option-switch-hUFRE9MC.cjs} +2 -2
- package/components/{item-option-switch-DvMLATBO.js → item-option-switch-rqu2ePVU.js} +2 -2
- package/components/item-option-text-field/index.cjs +1 -1
- package/components/item-option-text-field/index.js +1 -1
- package/components/{item-option-text-field-Furz80ho.cjs → item-option-text-field-C6CocZ5q.cjs} +2 -2
- package/components/{item-option-text-field-DS-gn_Gc.js → item-option-text-field-CBFMmuK2.js} +2 -2
- package/components/item-slot-drop/index.cjs +1 -1
- package/components/item-slot-drop/index.d.ts +0 -2
- package/components/item-slot-drop/index.js +1 -1
- package/components/{item-slot-drop-DE90FDdS.js → item-slot-drop-DDGclwbP.js} +12 -17
- package/components/item-slot-drop-hK-rLhwa.cjs +91 -0
- package/components/item-slot-drop-panel/index.cjs +1 -1
- package/components/item-slot-drop-panel/index.js +1 -1
- package/components/item-slot-drop-panel-CE4f9X6F.cjs +57 -0
- package/components/{item-slot-drop-panel-CyfhbUlE.js → item-slot-drop-panel-Cj6vbgJl.js} +40 -41
- package/components/item-slot-picker/index.cjs +1 -1
- package/components/item-slot-picker/index.js +1 -1
- package/components/{item-slot-picker-BM03UNRE.js → item-slot-picker-CjQH3MU-.js} +17 -22
- package/components/item-slot-picker-Wf50lM5u.cjs +174 -0
- package/components/item-slot-picker-panel/index.cjs +1 -1
- package/components/item-slot-picker-panel/index.js +1 -1
- package/components/{item-slot-picker-panel-DPaabfv5.js → item-slot-picker-panel-7IFk5QFC.js} +4 -5
- package/components/item-slot-picker-panel-Csn1tabr.cjs +81 -0
- package/components/{line-chart-positioning.config-CPGyHeJF.js → line-chart-positioning.config-D5WVvIZT.js} +1 -1
- package/components/{line-chart-positioning.config-BnDYCjGX.cjs → line-chart-positioning.config-DuXn1WD-.cjs} +1 -1
- package/components/load-data-fields-for-datasets-B76UR0sG.js +86 -0
- package/components/load-data-fields-for-datasets-DFYeACsu.cjs +20 -0
- package/components/{ad-hoc-slot-content-BwcFfXCV.cjs → localized-mixin-DfpurTYo.cjs} +1 -1
- package/components/{decorate-DyMgX_Uh.js → localized-mixin-DhiGdPMj.js} +26 -2
- package/components/{marker-map-positioning.config-CBERtxkG.js → marker-map-positioning.config-D2L7cvCP.js} +1 -1
- package/components/{marker-map-positioning.config-Bq1EPg3J.cjs → marker-map-positioning.config-DfN39a-Q.cjs} +1 -1
- package/components/{ohlc-chart-positioning.config-CpPJyyLB.js → ohlc-chart-positioning.config-C53dCwaT.js} +1 -1
- package/components/{ohlc-chart-positioning.config-aCf-SEt7.cjs → ohlc-chart-positioning.config-DsBuB0VU.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-DsNDp1G7.js → parallel-coordinates-plot-positioning.config-DhoVstsb.js} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-D1CB7jOv.cjs → parallel-coordinates-plot-positioning.config-aiFzLnnh.cjs} +1 -1
- package/components/period-over-period-condition.const-DDgiXIfR.cjs +20 -0
- package/components/{formatter-Cq5dFCyU.js → period-over-period-condition.const-IOVIrgKJ.js} +234 -44
- package/components/{pivot-table-positioning.config-gBHM1_-K.cjs → pivot-table-positioning.config-Bq9BoQWM.cjs} +1 -1
- package/components/{pivot-table-positioning.config-BFWS3Yk_.js → pivot-table-positioning.config-Cnai84AH.js} +1 -1
- package/components/{pyramid-chart-positioning.config-B8dbZhvt.js → pyramid-chart-positioning.config-BeJ5R_Ln.js} +1 -1
- package/components/{pyramid-chart-positioning.config-DD64vCwl.cjs → pyramid-chart-positioning.config-D5AKNCPb.cjs} +1 -1
- package/components/{radar-chart-positioning.config-DN51_Tzb.cjs → radar-chart-positioning.config-BEIwrzhb.cjs} +1 -1
- package/components/{radar-chart-positioning.config-C2DWQu8V.js → radar-chart-positioning.config-DsfUBq4B.js} +1 -1
- package/components/{route-map-positioning.config-ryk_dUkh.cjs → route-map-positioning.config-4Wyvj5OH.cjs} +1 -1
- package/components/{route-map-positioning.config-D7X6QuWY.js → route-map-positioning.config-CuiRWzbs.js} +1 -1
- package/components/{sankey-diagram-positioning.config-CJfGpnPS.cjs → sankey-diagram-positioning.config-CZ-zVCQo.cjs} +1 -1
- package/components/{sankey-diagram-positioning.config-A_7xM06n.js → sankey-diagram-positioning.config-DtN7dARd.js} +1 -1
- package/components/{scatter-plot-positioning.config-qpwrugRe.js → scatter-plot-positioning.config-BXrzdLIc.js} +1 -1
- package/components/{scatter-plot-positioning.config-Duao2ftU.cjs → scatter-plot-positioning.config-CfAf_FUW.cjs} +1 -1
- package/components/{slicer-filter-positioning.config-93hC7jID.js → slicer-filter-positioning.config-BLGeCJys.js} +1 -1
- package/components/{slicer-filter-positioning.config-DxhC39ak.cjs → slicer-filter-positioning.config-CU86hJi6.cjs} +1 -1
- package/components/slot-menu-1zlmyLVl.js +1060 -0
- package/components/slot-menu-BSu8wKLi.cjs +217 -0
- package/components/{speedometer-chart-positioning.config-DtRG3-e5.cjs → speedometer-chart-positioning.config-AeMlNxSj.cjs} +1 -1
- package/components/{speedometer-chart-positioning.config-CZbwyYsk.js → speedometer-chart-positioning.config-Dam0wOqp.js} +1 -1
- package/components/{spike-map-positioning.config-CevjyQ5F.cjs → spike-map-positioning.config-9ShV1fUh.cjs} +1 -1
- package/components/{spike-map-positioning.config-LBqSYD2n.js → spike-map-positioning.config-BVzewpfi.js} +1 -1
- package/components/{strip-plot-positioning.config-DF5VxzvB.cjs → strip-plot-positioning.config-BVBdHZvL.cjs} +1 -1
- package/components/{strip-plot-positioning.config-cCdQxMM_.js → strip-plot-positioning.config-OHm3LEo3.js} +1 -1
- package/components/{sunburst-chart-positioning.config-DmkZEexM.js → sunburst-chart-positioning.config-BynNbbxB.js} +1 -1
- package/components/{sunburst-chart-positioning.config-CERBvfoF.cjs → sunburst-chart-positioning.config-DQmuKm-N.cjs} +1 -1
- package/components/{symbol-map-positioning.config-DhYxG8RC.cjs → symbol-map-positioning.config-D6rgxXTO.cjs} +1 -1
- package/components/{symbol-map-positioning.config-BwG_G6He.js → symbol-map-positioning.config-bQk_pdAr.js} +1 -1
- package/components/{treemap-chart-positioning.config-arjPT6b_.js → treemap-chart-positioning.config-BB1-rZKL.js} +1 -1
- package/components/{treemap-chart-positioning.config-BwrrXs4a.cjs → treemap-chart-positioning.config-ZaoIngRn.cjs} +1 -1
- package/components/utils/base.cjs +1 -1
- package/components/utils/base.js +2 -2
- package/components/utils-CPIzW8sp.cjs +20 -0
- package/components/{utils-B_rE5b7a.js → utils-ZoJ1cp2P.js} +41 -42
- package/components/utils.cjs +1 -1
- package/components/utils.js +5 -8
- package/components/{venn-diagram-positioning.config-DSh3Ns9L.js → venn-diagram-positioning.config-C9ARqREi.js} +1 -1
- package/components/{venn-diagram-positioning.config-GGLCcrqp.cjs → venn-diagram-positioning.config-Cb10sStL.cjs} +1 -1
- package/components/{wordcloud-chart-positioning.config-B8ZzwIdd.js → wordcloud-chart-positioning.config-D59ntNtd.js} +1 -1
- package/components/{wordcloud-chart-positioning.config-Cxyhs6gk.cjs → wordcloud-chart-positioning.config-DC89_DYc.cjs} +1 -1
- package/custom-elements.json +6760 -18304
- package/index.d.ts +0 -25
- package/package.json +1 -126
- package/react/esm/index.d.ts +2 -27
- package/react/esm/index.js +2 -102
- package/react/index.ts +2 -102
- package/react/luzmo-stub.d.ts +0 -140
- package/react/package.json +2 -2
- package/types.d.ts +0 -9
- package/utils/slot-state/slot-store.d.ts +4 -0
- package/angular/README.md +0 -40
- package/angular/components/ai-chat-empty-state.ts +0 -98
- package/angular/components/ai-chat.ts +0 -440
- package/angular/components/ai-interaction-textarea.ts +0 -283
- package/angular/components/data-field-level.ts +0 -130
- package/angular/components/data-field-panel.ts +0 -256
- package/angular/components/data-field.ts +0 -130
- package/angular/components/data-fields-select.ts +0 -212
- package/angular/components/dataset-icon.ts +0 -83
- package/angular/components/dataset-selector-list.ts +0 -147
- package/angular/components/dataset-selector-row.ts +0 -198
- package/angular/components/display-settings-binning.ts +0 -92
- package/angular/components/display-settings-datetime.ts +0 -100
- package/angular/components/display-settings-grand-totals.ts +0 -92
- package/angular/components/display-settings-numeric.ts +0 -113
- package/angular/components/display-settings-period-over-period.ts +0 -107
- package/angular/components/display-settings.ts +0 -227
- package/angular/components/filter-expression-picker.ts +0 -168
- package/angular/components/filter-item.ts +0 -175
- package/angular/components/filter-parameter-picker.ts +0 -155
- package/angular/components/filter-value-picker-datetime.ts +0 -125
- package/angular/components/filter-value-picker-hierarchy.ts +0 -146
- package/angular/components/filter-value-picker-numeric.ts +0 -146
- package/angular/components/filter-value-picker.ts +0 -160
- package/angular/components/filters.ts +0 -209
- package/angular/components/formula-editor.ts +0 -229
- package/angular/components/formula-field.ts +0 -198
- package/angular/components/formula.ts +0 -170
- package/angular/components/interactive-viz-item.ts +0 -186
- package/angular/components/item-grid-item-actions-menu.ts +0 -113
- package/angular/components/item-grid.ts +0 -242
- package/angular/components/item-option-action-button-group.ts +0 -105
- package/angular/components/item-option-color-palette-picker.ts +0 -126
- package/angular/components/item-option-color-picker.ts +0 -134
- package/angular/components/item-option-color-range.ts +0 -168
- package/angular/components/item-option-guidelines.ts +0 -84
- package/angular/components/item-option-multi-language-field.ts +0 -133
- package/angular/components/item-option-number-field.ts +0 -161
- package/angular/components/item-option-panel.ts +0 -149
- package/angular/components/item-option-picker.ts +0 -120
- package/angular/components/item-option-position-picker.ts +0 -98
- package/angular/components/item-option-positions-number-field.ts +0 -140
- package/angular/components/item-option-radio-button-group.ts +0 -119
- package/angular/components/item-option-slider.ts +0 -126
- package/angular/components/item-option-switch.ts +0 -98
- package/angular/components/item-option-text-field.ts +0 -112
- package/angular/components/item-option.ts +0 -163
- package/angular/components/item-slot-drop-panel.ts +0 -236
- package/angular/components/item-slot-drop.ts +0 -231
- package/angular/components/item-slot-picker-panel.ts +0 -299
- package/angular/components/item-slot-picker.ts +0 -241
- package/angular/components/slot-menu-list.ts +0 -121
- package/angular/components/slot-menu.ts +0 -304
- package/angular/components/viz-item-menu.ts +0 -118
- package/angular/esm/components/ai-chat-empty-state.d.ts +0 -39
- package/angular/esm/components/ai-chat-empty-state.js +0 -99
- package/angular/esm/components/ai-chat.d.ts +0 -147
- package/angular/esm/components/ai-chat.js +0 -455
- package/angular/esm/components/ai-interaction-textarea.d.ts +0 -106
- package/angular/esm/components/ai-interaction-textarea.js +0 -305
- package/angular/esm/components/data-field-level.d.ts +0 -50
- package/angular/esm/components/data-field-level.js +0 -129
- package/angular/esm/components/data-field-panel.d.ts +0 -86
- package/angular/esm/components/data-field-panel.js +0 -268
- package/angular/esm/components/data-field.d.ts +0 -50
- package/angular/esm/components/data-field.js +0 -129
- package/angular/esm/components/data-fields-select.d.ts +0 -81
- package/angular/esm/components/data-fields-select.js +0 -227
- package/angular/esm/components/dataset-icon.d.ts +0 -34
- package/angular/esm/components/dataset-icon.js +0 -86
- package/angular/esm/components/dataset-selector-list.d.ts +0 -56
- package/angular/esm/components/dataset-selector-list.js +0 -155
- package/angular/esm/components/dataset-selector-row.d.ts +0 -70
- package/angular/esm/components/dataset-selector-row.js +0 -197
- package/angular/esm/components/display-settings-binning.d.ts +0 -37
- package/angular/esm/components/display-settings-binning.js +0 -91
- package/angular/esm/components/display-settings-datetime.d.ts +0 -40
- package/angular/esm/components/display-settings-datetime.js +0 -99
- package/angular/esm/components/display-settings-grand-totals.d.ts +0 -37
- package/angular/esm/components/display-settings-grand-totals.js +0 -91
- package/angular/esm/components/display-settings-numeric.d.ts +0 -45
- package/angular/esm/components/display-settings-numeric.js +0 -115
- package/angular/esm/components/display-settings-period-over-period.d.ts +0 -44
- package/angular/esm/components/display-settings-period-over-period.js +0 -107
- package/angular/esm/components/display-settings.d.ts +0 -83
- package/angular/esm/components/display-settings.js +0 -231
- package/angular/esm/components/filter-expression-picker.d.ts +0 -64
- package/angular/esm/components/filter-expression-picker.js +0 -179
- package/angular/esm/components/filter-item.d.ts +0 -63
- package/angular/esm/components/filter-item.js +0 -187
- package/angular/esm/components/filter-parameter-picker.d.ts +0 -56
- package/angular/esm/components/filter-parameter-picker.js +0 -151
- package/angular/esm/components/filter-value-picker-datetime.d.ts +0 -47
- package/angular/esm/components/filter-value-picker-datetime.js +0 -131
- package/angular/esm/components/filter-value-picker-hierarchy.d.ts +0 -53
- package/angular/esm/components/filter-value-picker-hierarchy.js +0 -155
- package/angular/esm/components/filter-value-picker-numeric.d.ts +0 -53
- package/angular/esm/components/filter-value-picker-numeric.js +0 -155
- package/angular/esm/components/filter-value-picker.d.ts +0 -57
- package/angular/esm/components/filter-value-picker.js +0 -171
- package/angular/esm/components/filters.d.ts +0 -75
- package/angular/esm/components/filters.js +0 -215
- package/angular/esm/components/formula-editor.d.ts +0 -78
- package/angular/esm/components/formula-editor.js +0 -236
- package/angular/esm/components/formula-field.d.ts +0 -70
- package/angular/esm/components/formula-field.js +0 -209
- package/angular/esm/components/formula.d.ts +0 -60
- package/angular/esm/components/formula.js +0 -177
- package/angular/esm/components/interactive-viz-item.d.ts +0 -63
- package/angular/esm/components/interactive-viz-item.js +0 -188
- package/angular/esm/components/item-grid-item-actions-menu.d.ts +0 -45
- package/angular/esm/components/item-grid-item-actions-menu.js +0 -115
- package/angular/esm/components/item-grid.d.ts +0 -80
- package/angular/esm/components/item-grid.js +0 -245
- package/angular/esm/components/item-option-action-button-group.d.ts +0 -41
- package/angular/esm/components/item-option-action-button-group.js +0 -107
- package/angular/esm/components/item-option-color-palette-picker.d.ts +0 -48
- package/angular/esm/components/item-option-color-palette-picker.js +0 -131
- package/angular/esm/components/item-option-color-picker.d.ts +0 -51
- package/angular/esm/components/item-option-color-picker.js +0 -139
- package/angular/esm/components/item-option-color-range.d.ts +0 -66
- package/angular/esm/components/item-option-color-range.js +0 -179
- package/angular/esm/components/item-option-guidelines.d.ts +0 -34
- package/angular/esm/components/item-option-guidelines.js +0 -83
- package/angular/esm/components/item-option-multi-language-field.d.ts +0 -50
- package/angular/esm/components/item-option-multi-language-field.js +0 -139
- package/angular/esm/components/item-option-number-field.d.ts +0 -58
- package/angular/esm/components/item-option-number-field.js +0 -171
- package/angular/esm/components/item-option-panel.d.ts +0 -54
- package/angular/esm/components/item-option-panel.js +0 -155
- package/angular/esm/components/item-option-picker.d.ts +0 -46
- package/angular/esm/components/item-option-picker.js +0 -123
- package/angular/esm/components/item-option-position-picker.d.ts +0 -39
- package/angular/esm/components/item-option-position-picker.js +0 -99
- package/angular/esm/components/item-option-positions-number-field.d.ts +0 -54
- package/angular/esm/components/item-option-positions-number-field.js +0 -147
- package/angular/esm/components/item-option-radio-button-group.d.ts +0 -45
- package/angular/esm/components/item-option-radio-button-group.js +0 -123
- package/angular/esm/components/item-option-slider.d.ts +0 -46
- package/angular/esm/components/item-option-slider.js +0 -131
- package/angular/esm/components/item-option-switch.d.ts +0 -40
- package/angular/esm/components/item-option-switch.js +0 -99
- package/angular/esm/components/item-option-text-field.d.ts +0 -44
- package/angular/esm/components/item-option-text-field.js +0 -115
- package/angular/esm/components/item-option.d.ts +0 -58
- package/angular/esm/components/item-option.js +0 -171
- package/angular/esm/components/item-slot-drop-panel.d.ts +0 -82
- package/angular/esm/components/item-slot-drop-panel.js +0 -249
- package/angular/esm/components/item-slot-drop.d.ts +0 -77
- package/angular/esm/components/item-slot-drop.js +0 -227
- package/angular/esm/components/item-slot-picker-panel.d.ts +0 -97
- package/angular/esm/components/item-slot-picker-panel.js +0 -309
- package/angular/esm/components/item-slot-picker.d.ts +0 -86
- package/angular/esm/components/item-slot-picker.js +0 -259
- package/angular/esm/components/slot-menu-list.d.ts +0 -46
- package/angular/esm/components/slot-menu-list.js +0 -123
- package/angular/esm/components/slot-menu.d.ts +0 -104
- package/angular/esm/components/slot-menu.js +0 -300
- package/angular/esm/components/viz-item-menu.d.ts +0 -42
- package/angular/esm/components/viz-item-menu.js +0 -111
- package/angular/esm/index.d.ts +0 -109
- package/angular/esm/index.js +0 -217
- package/angular/index.ts +0 -223
- package/angular/package.json +0 -40
- package/angular/tsconfig.json +0 -36
- package/angular/type-fallbacks.d.ts +0 -0
- package/angular/utils/ai-prompt/attachments.d.ts +0 -10
- package/angular/utils/ai-prompt/dictation.d.ts +0 -50
- package/angular/utils/ai-prompt/image-upload.d.ts +0 -12
- package/angular/utils/ai-prompt/index.d.ts +0 -6
- package/angular/utils/ai-prompt/tests/dictation.test.d.ts +0 -1
- package/angular/utils/ai-prompt/tests/image-upload.test.d.ts +0 -1
- package/angular/utils/base/base.d.ts +0 -16
- package/angular/utils/base/focus-visible.d.ts +0 -29
- package/angular/utils/base/focusable.d.ts +0 -58
- package/angular/utils/base/index.d.ts +0 -5
- package/angular/utils/base/localized-mixin.d.ts +0 -22
- package/angular/utils/base/sized-mixin.d.ts +0 -17
- package/angular/utils/color/color-palettes.d.ts +0 -17
- package/angular/utils/color/extrapolate-color.d.ts +0 -1
- package/angular/utils/data/load-data-fields-for-datasets.d.ts +0 -22
- package/angular/utils/data-broker/index.d.ts +0 -263
- package/angular/utils/data-field-types/calculate-data-field-icon.d.ts +0 -12
- package/angular/utils/data-field-types/default-acceptable-data-field-types.d.ts +0 -1
- package/angular/utils/data-field-types/tests/calculate-data-field-icon.test.d.ts +0 -1
- package/angular/utils/drag/draggable.d.ts +0 -13
- package/angular/utils/drag/pragmatic-element-adapter.d.ts +0 -2
- package/angular/utils/drag/tests/pragmatic-element-adapter.first-import.test.d.ts +0 -1
- package/angular/utils/drag/tests/pragmatic-element-adapter.test.d.ts +0 -1
- package/angular/utils/filters/expressions.d.ts +0 -15
- package/angular/utils/filters/index.d.ts +0 -1
- package/angular/utils/formatter/calculate-duration.d.ts +0 -2
- package/angular/utils/formatter/decompose-numeric-format.d.ts +0 -11
- package/angular/utils/formatter/default-local-formats.d.ts +0 -20
- package/angular/utils/formatter/formats/cs.d.ts +0 -20
- package/angular/utils/formatter/formats/da.d.ts +0 -20
- package/angular/utils/formatter/formats/de.d.ts +0 -21
- package/angular/utils/formatter/formats/en-GB.d.ts +0 -21
- package/angular/utils/formatter/formats/en-US.d.ts +0 -1
- package/angular/utils/formatter/formats/en.d.ts +0 -1
- package/angular/utils/formatter/formats/es.d.ts +0 -54
- package/angular/utils/formatter/formats/fi.d.ts +0 -20
- package/angular/utils/formatter/formats/fr.d.ts +0 -54
- package/angular/utils/formatter/formats/he.d.ts +0 -20
- package/angular/utils/formatter/formats/hu.d.ts +0 -20
- package/angular/utils/formatter/formats/it.d.ts +0 -54
- package/angular/utils/formatter/formats/ja.d.ts +0 -20
- package/angular/utils/formatter/formats/ko.d.ts +0 -20
- package/angular/utils/formatter/formats/mk.d.ts +0 -20
- package/angular/utils/formatter/formats/nl.d.ts +0 -21
- package/angular/utils/formatter/formats/no.d.ts +0 -21
- package/angular/utils/formatter/formats/pl.d.ts +0 -20
- package/angular/utils/formatter/formats/pt.d.ts +0 -20
- package/angular/utils/formatter/formats/ru.d.ts +0 -20
- package/angular/utils/formatter/formats/sv.d.ts +0 -20
- package/angular/utils/formatter/formats/tr.d.ts +0 -21
- package/angular/utils/formatter/formats/zh-CN.d.ts +0 -20
- package/angular/utils/formatter/formats/zh-TW.d.ts +0 -20
- package/angular/utils/formatter/formatter.d.ts +0 -9
- package/angular/utils/formatter/get-dataset-name.d.ts +0 -2
- package/angular/utils/formatter/get-localized-name.d.ts +0 -4
- package/angular/utils/formatter/localize.d.ts +0 -3
- package/angular/utils/formatter/smart-datetime-formats.const.d.ts +0 -36
- package/angular/utils/formatter/tests/calculate-duration.test.d.ts +0 -1
- package/angular/utils/formatter/tests/decompose-numeric-format.test.d.ts +0 -1
- package/angular/utils/formatter/tests/default-local-formats.test.d.ts +0 -1
- package/angular/utils/formatter/tests/formatter.test.d.ts +0 -1
- package/angular/utils/formatter/tests/get-localized-name.test.d.ts +0 -1
- package/angular/utils/formatter/tests/localize.test.d.ts +0 -1
- package/angular/utils/formula/base/formula-base.d.ts +0 -117
- package/angular/utils/formula/base/formula-input-base.d.ts +0 -62
- package/angular/utils/formula/codemirror/actions.d.ts +0 -47
- package/angular/utils/formula/codemirror/drop-cursor.d.ts +0 -15
- package/angular/utils/formula/codemirror/icon-element.d.ts +0 -7
- package/angular/utils/formula/codemirror/parser.d.ts +0 -16
- package/angular/utils/formula/codemirror/tests/actions.test.d.ts +0 -1
- package/angular/utils/formula/codemirror/theme.d.ts +0 -20
- package/angular/utils/formula/codemirror/widget.d.ts +0 -18
- package/angular/utils/formula/config/aggregations.d.ts +0 -9
- package/angular/utils/formula/config/build-datasets.d.ts +0 -10
- package/angular/utils/formula/config/expression-helpers.d.ts +0 -42
- package/angular/utils/formula/config/functions.d.ts +0 -3
- package/angular/utils/formula/config/groupings.d.ts +0 -9
- package/angular/utils/formula/config/regex.d.ts +0 -39
- package/angular/utils/formula/config/resolve-column-presentation.d.ts +0 -19
- package/angular/utils/formula/config/tests/build-datasets.test.d.ts +0 -1
- package/angular/utils/formula/config/validate-expression.d.ts +0 -19
- package/angular/utils/formula/load-formula-codemirror.d.ts +0 -4
- package/angular/utils/formula/render-explanation-tooltip.d.ts +0 -7
- package/angular/utils/formula/store/formula-display-store.d.ts +0 -93
- package/angular/utils/formula/store/formula-editor-context.d.ts +0 -8
- package/angular/utils/formula/store/formula-editor-store.d.ts +0 -46
- package/angular/utils/formula/store/tests/formula-editor-store.test.d.ts +0 -1
- package/angular/utils/formula/tests/validate-expression.test.d.ts +0 -1
- package/angular/utils/get-css-variable.d.ts +0 -1
- package/angular/utils/index.d.ts +0 -10
- package/angular/utils/localize/set-locale.d.ts +0 -7
- package/angular/utils/map-tile-providers/index.d.ts +0 -93
- package/angular/utils/set-nested-value.d.ts +0 -6
- package/angular/utils/slot-content/ad-hoc-slot-content.d.ts +0 -7
- package/angular/utils/slot-content/render-calculation-label.d.ts +0 -7
- package/angular/utils/slot-content/tests/ad-hoc-slot-content.test.d.ts +0 -1
- package/angular/utils/slot-state/slot-context.d.ts +0 -4
- package/angular/utils/slot-state/slot-store.d.ts +0 -39
- package/angular/utils/store/base-store.d.ts +0 -158
- package/angular/utils/store/dashboard-store.d.ts +0 -49
- package/angular/utils/store/index.d.ts +0 -135
- package/angular/utils/store/item-store.d.ts +0 -33
- package/angular/utils/store/store-registry.d.ts +0 -170
- package/angular/utils/store/tests/dashboard-store.test.d.ts +0 -1
- package/angular/utils/store/tests/item-store.test.d.ts +0 -1
- package/angular/utils/store/tests/store-registry.test.d.ts +0 -1
- package/angular/utils/store/types.d.ts +0 -270
- package/angular/utils/switch-item/index.d.ts +0 -34
- package/angular/utils/switch-item/slot-role-classification.d.ts +0 -31
- package/angular/utils/switch-item/stories/switch-item.stories.d.ts +0 -17
- package/angular/utils/switch-item/tests/slot-role-classification.test.d.ts +0 -1
- package/angular/utils/switch-item/tests/switch-item.test.d.ts +0 -1
- package/angular/utils/tests/set-nested-value.test.d.ts +0 -1
- package/angular/utils/themes/bliss.d.ts +0 -2
- package/angular/utils/themes/classic-dark.d.ts +0 -2
- package/angular/utils/themes/classic.d.ts +0 -2
- package/angular/utils/themes/default-dark.d.ts +0 -2
- package/angular/utils/themes/default.d.ts +0 -2
- package/angular/utils/themes/index.d.ts +0 -4
- package/angular/utils/themes/orion.d.ts +0 -2
- package/angular/utils/themes/pinky.d.ts +0 -2
- package/angular/utils/themes/radiant.d.ts +0 -2
- package/angular/utils/themes/royale.d.ts +0 -2
- package/angular/utils/themes/seasonal.d.ts +0 -2
- package/angular/utils/themes/urban.d.ts +0 -2
- package/angular/utils/themes/vivid.d.ts +0 -2
- package/angular/utils/time/formats.const.d.ts +0 -4
- package/angular/utils/time/period-over-period-condition.const.d.ts +0 -8
- package/angular/utils/time/periods.const.d.ts +0 -15
- package/angular/utils/timezone/datetime-timezone.d.ts +0 -25
- package/angular/utils/timezone/tests/datetime-timezone.test.d.ts +0 -1
- package/angular/utils/transformations/convert-data-field-to-slot-content.d.ts +0 -9
- package/angular/utils/transformations/convert-datasets-to-data-fields.d.ts +0 -30
- package/angular/utils/transformations/tests/convert-data-field-to-slot-content.test.d.ts +0 -1
- package/angular/utils/transformations/tests/convert-datasets-to-data-fields.test.d.ts +0 -1
- package/angular/utils/types/tests/type-check.test.d.ts +0 -1
- package/angular/utils/types/type-check.d.ts +0 -28
- package/components/ad-hoc-slot-content-hSlT62VS.js +0 -29
- package/components/ai-chat/ai-chat-events.d.ts +0 -139
- package/components/ai-chat/ai-chat-request.d.ts +0 -25
- package/components/ai-chat/ai-chat.d.ts +0 -347
- package/components/ai-chat/ai-prompt-types.d.ts +0 -133
- package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +0 -46
- package/components/ai-chat/empty-state/index.d.ts +0 -8
- package/components/ai-chat/empty-state/types.d.ts +0 -14
- package/components/ai-chat/helpers/agent-config.d.ts +0 -12
- package/components/ai-chat/helpers/elicitation-template.d.ts +0 -18
- package/components/ai-chat/index.cjs +0 -20
- package/components/ai-chat/index.d.ts +0 -24
- package/components/ai-chat/index.js +0 -29
- package/components/ai-chat/session/ai-chat-session-controller.d.ts +0 -60
- package/components/ai-chat/session/ai-chat-session-types.d.ts +0 -119
- package/components/ai-chat/session/ai-chat-session.d.ts +0 -119
- package/components/ai-chat/session/index.d.ts +0 -2
- package/components/ai-chat/stream/chunk-extractors.d.ts +0 -29
- package/components/ai-chat/stream/index.d.ts +0 -53
- package/components/ai-chat/stream/progress.d.ts +0 -3
- package/components/ai-chat/stream/registry.d.ts +0 -6
- package/components/ai-chat/stream/stream-processor.d.ts +0 -2
- package/components/ai-chat/stream/transport.d.ts +0 -26
- package/components/ai-chat/stream/types.d.ts +0 -59
- package/components/ai-chat/types.d.ts +0 -24
- package/components/ai-chat-CG-eIiBr.cjs +0 -337
- package/components/ai-chat-CMc_9Oo2.js +0 -4350
- package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +0 -232
- package/components/ai-interaction-textarea/index.cjs +0 -20
- package/components/ai-interaction-textarea/index.d.ts +0 -10
- package/components/ai-interaction-textarea/index.js +0 -28
- package/components/ai-interaction-textarea/types.d.ts +0 -12
- package/components/ai-interaction-textarea-B6tZgh5k.cjs +0 -99
- package/components/ai-interaction-textarea-D9g9G0T1.js +0 -820
- package/components/base-D6QPZnpu.cjs +0 -20
- package/components/convert-data-field-to-slot-content-C6IIqU7G.js +0 -53
- package/components/convert-data-field-to-slot-content-DLzkk6dT.cjs +0 -20
- package/components/convert-datasets-to-data-fields-B13rl1an.cjs +0 -20
- package/components/convert-datasets-to-data-fields-PmQzeVLG.js +0 -68
- package/components/data-field-9ZZFw68C.cjs +0 -54
- package/components/data-field-D1WW_V0N.js +0 -121
- package/components/data-field-level/data-field-level.d.ts +0 -40
- package/components/data-field-level/helpers/generate-preview.d.ts +0 -9
- package/components/data-field-level/index.cjs +0 -20
- package/components/data-field-level/index.d.ts +0 -8
- package/components/data-field-level/index.js +0 -28
- package/components/data-field-level-Dc-EMhC3.cjs +0 -55
- package/components/data-field-panel-DFA97_8o.cjs +0 -87
- package/components/data-fields-select/data-fields-select.d.ts +0 -133
- package/components/data-fields-select/index.cjs +0 -20
- package/components/data-fields-select/index.d.ts +0 -9
- package/components/data-fields-select/index.js +0 -28
- package/components/data-fields-select/types.d.ts +0 -4
- package/components/data-fields-select-BtXNFZy9.cjs +0 -41
- package/components/dataset-icon/dataset-icon.d.ts +0 -45
- package/components/dataset-icon/index.cjs +0 -20
- package/components/dataset-icon/index.d.ts +0 -8
- package/components/dataset-icon/index.js +0 -28
- package/components/dataset-icon/types.d.ts +0 -11
- package/components/dataset-icon-BAV0S4sZ.cjs +0 -64
- package/components/dataset-icon-CWT5Ju8w.js +0 -125
- package/components/dataset-selector-list/dataset-selector-list.d.ts +0 -106
- package/components/dataset-selector-list/index.cjs +0 -20
- package/components/dataset-selector-list/index.d.ts +0 -8
- package/components/dataset-selector-list/index.js +0 -28
- package/components/dataset-selector-list-BXg6DIKI.cjs +0 -75
- package/components/dataset-selector-list-q6qWA7B-.js +0 -323
- package/components/dataset-selector-row/dataset-selector-row.d.ts +0 -135
- package/components/dataset-selector-row/index.cjs +0 -20
- package/components/dataset-selector-row/index.d.ts +0 -9
- package/components/dataset-selector-row/index.js +0 -28
- package/components/dataset-selector-row-ZKET7lVc.js +0 -427
- package/components/dataset-selector-row-bqwY3zaf.cjs +0 -102
- package/components/decompose-numeric-format-DGJua3rU.cjs +0 -20
- package/components/decompose-numeric-format-DS0j2wa1.js +0 -36
- package/components/decorate-DCJt-2rt.cjs +0 -20
- package/components/display-settings/display-settings.d.ts +0 -117
- package/components/display-settings/index.cjs +0 -20
- package/components/display-settings/index.d.ts +0 -8
- package/components/display-settings/index.js +0 -28
- package/components/display-settings/types.d.ts +0 -9
- package/components/display-settings-BlMhlvVS.cjs +0 -140
- package/components/display-settings-D_wBgzm1.js +0 -313
- package/components/display-settings-binning/display-settings-binning.d.ts +0 -32
- package/components/display-settings-binning/index.cjs +0 -20
- package/components/display-settings-binning/index.d.ts +0 -8
- package/components/display-settings-binning/index.js +0 -28
- package/components/display-settings-datetime/display-settings-datetime.d.ts +0 -86
- package/components/display-settings-datetime/index.cjs +0 -20
- package/components/display-settings-datetime/index.d.ts +0 -8
- package/components/display-settings-datetime/index.js +0 -28
- package/components/display-settings-datetime-DNeLEl3L.cjs +0 -217
- package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +0 -29
- package/components/display-settings-grand-totals/index.cjs +0 -20
- package/components/display-settings-grand-totals/index.d.ts +0 -8
- package/components/display-settings-grand-totals/index.js +0 -28
- package/components/display-settings-grand-totals-C-7s1Tyo.cjs +0 -44
- package/components/display-settings-numeric/display-settings-numeric.d.ts +0 -82
- package/components/display-settings-numeric/helpers/constants.d.ts +0 -19
- package/components/display-settings-numeric/index.cjs +0 -20
- package/components/display-settings-numeric/index.d.ts +0 -8
- package/components/display-settings-numeric/index.js +0 -28
- package/components/display-settings-numeric--uwJWzC1.cjs +0 -190
- package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +0 -68
- package/components/display-settings-period-over-period/helpers/constants.d.ts +0 -44
- package/components/display-settings-period-over-period/index.cjs +0 -20
- package/components/display-settings-period-over-period/index.d.ts +0 -8
- package/components/display-settings-period-over-period/index.js +0 -28
- package/components/display-settings-period-over-period-C4X8c-_R.cjs +0 -229
- package/components/filter-expression-picker/filter-expression-picker.d.ts +0 -73
- package/components/filter-expression-picker/index.cjs +0 -20
- package/components/filter-expression-picker/index.d.ts +0 -7
- package/components/filter-expression-picker/index.js +0 -28
- package/components/filter-expression-picker-BOLyxG2r.cjs +0 -38
- package/components/filter-expression-picker-DurfSgRY.js +0 -425
- package/components/filter-item/filter-item.d.ts +0 -103
- package/components/filter-item/index.cjs +0 -20
- package/components/filter-item/index.d.ts +0 -7
- package/components/filter-item/index.js +0 -28
- package/components/filter-item-C58zIpPh.js +0 -316
- package/components/filter-item-obyHcs9f.cjs +0 -71
- package/components/filter-parameter-picker/filter-parameter-picker.d.ts +0 -87
- package/components/filter-parameter-picker/filter-parameter-picker.helpers.d.ts +0 -8
- package/components/filter-parameter-picker/index.cjs +0 -20
- package/components/filter-parameter-picker/index.d.ts +0 -9
- package/components/filter-parameter-picker/index.js +0 -28
- package/components/filter-parameter-picker/types.d.ts +0 -4
- package/components/filter-parameter-picker-BWNBc8BI.js +0 -363
- package/components/filter-parameter-picker-DSYaE9Sv.cjs +0 -123
- package/components/filter-value-picker/filter-value-picker.d.ts +0 -66
- package/components/filter-value-picker/index.cjs +0 -20
- package/components/filter-value-picker/index.d.ts +0 -7
- package/components/filter-value-picker/index.js +0 -28
- package/components/filter-value-picker-DYl_1pis.cjs +0 -60
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +0 -45
- package/components/filter-value-picker-datetime/index.cjs +0 -20
- package/components/filter-value-picker-datetime/index.d.ts +0 -7
- package/components/filter-value-picker-datetime/index.js +0 -28
- package/components/filter-value-picker-datetime-BFbmCKs3.cjs +0 -42
- package/components/filter-value-picker-datetime-CP5__ua6.js +0 -139
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +0 -99
- package/components/filter-value-picker-hierarchy/index.cjs +0 -20
- package/components/filter-value-picker-hierarchy/index.d.ts +0 -7
- package/components/filter-value-picker-hierarchy/index.js +0 -28
- package/components/filter-value-picker-hierarchy-BTf992WX.cjs +0 -48
- package/components/filter-value-picker-hierarchy-j0LRYW1c.js +0 -299
- package/components/filter-value-picker-kzIrnmdp.js +0 -151
- package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +0 -83
- package/components/filter-value-picker-numeric/index.cjs +0 -20
- package/components/filter-value-picker-numeric/index.d.ts +0 -7
- package/components/filter-value-picker-numeric/index.js +0 -28
- package/components/filter-value-picker-numeric-BmKmeOol.js +0 -219
- package/components/filter-value-picker-numeric-DJi0Utk_.cjs +0 -48
- package/components/filters-BddhKRZC.js +0 -745
- package/components/filters-Dx6g0xl9.cjs +0 -153
- package/components/formatter-BeXmurVe.cjs +0 -20
- package/components/formula-cc2AaiLt.cjs +0 -45
- package/components/formula-codemirror/formula-codemirror.d.ts +0 -79
- package/components/formula-codemirror/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-aggregation/formula-aggregation.d.ts +0 -125
- package/components/formula-codemirror/pills/formula-aggregation/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-empty-argument-pill/formula-empty-argument-pill.d.ts +0 -28
- package/components/formula-codemirror/pills/formula-empty-argument-pill/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-include-exclude-panel.d.ts +0 -38
- package/components/formula-codemirror-EMK3MCNZ.cjs +0 -215
- package/components/formula-display-store-DER7C0GG.cjs +0 -20
- package/components/formula-draggable-field/formula-draggable-field.d.ts +0 -53
- package/components/formula-draggable-field/index.d.ts +0 -8
- package/components/formula-draggable-field/types.d.ts +0 -24
- package/components/formula-editor-CWKXcUTF.cjs +0 -224
- package/components/formula-field/formula-field.d.ts +0 -20
- package/components/formula-field/index.cjs +0 -20
- package/components/formula-field/index.d.ts +0 -7
- package/components/formula-field/index.js +0 -28
- package/components/formula-field-BtvaOWki.js +0 -40
- package/components/formula-field-CzS2pKJI.cjs +0 -20
- package/components/formula-input-base-CvD0b2cO.cjs +0 -49
- package/components/formula-input-base-DVtGLoyA.js +0 -236
- package/components/get-dataset-name-D53TN7N9.js +0 -32
- package/components/get-dataset-name-DYLdbEs-.cjs +0 -20
- package/components/groupings-Bn9384Zw.cjs +0 -20
- package/components/groupings-BtmmUlPK.js +0 -52
- package/components/interactive-viz-item/helpers/chart-helpers.d.ts +0 -7
- package/components/interactive-viz-item/index.cjs +0 -20
- package/components/interactive-viz-item/index.d.ts +0 -10
- package/components/interactive-viz-item/index.js +0 -28
- package/components/interactive-viz-item/interactive-viz-item.d.ts +0 -96
- package/components/interactive-viz-item/types.d.ts +0 -117
- package/components/interactive-viz-item-DL5aqkvx.js +0 -693
- package/components/interactive-viz-item-DTr14-9-.cjs +0 -247
- package/components/item-menu/item-list/item-list.d.ts +0 -37
- package/components/item-option-action-button-group-Byg9h7uo.cjs +0 -53
- package/components/item-option-base/item-option-base.d.ts +0 -23
- package/components/item-option-base-Dwf3dByS.cjs +0 -56
- package/components/item-option-color-palette-picker-v6TBE-I0.cjs +0 -40
- package/components/item-option-color-range-BveD6fsp.cjs +0 -98
- package/components/item-option-guidelines-D8UjylMx.cjs +0 -135
- package/components/item-option-h8URFjZ2.cjs +0 -269
- package/components/item-option-position-picker-CKgaqFJR.cjs +0 -32
- package/components/item-option-positions-number-field-BJXer0y5.cjs +0 -49
- package/components/item-option-slider-CBSnkHVq.cjs +0 -33
- package/components/item-slot-drop-f8jm-34W.cjs +0 -91
- package/components/item-slot-drop-panel-DLqyYvKj.cjs +0 -57
- package/components/item-slot-picker-CgEtqhqe.cjs +0 -174
- package/components/item-slot-picker-panel-CuH3OcmV.cjs +0 -81
- package/components/load-data-fields-for-datasets-B3XcFFfg.js +0 -42
- package/components/load-data-fields-for-datasets-rL24A68g.cjs +0 -20
- package/components/localized-mixin-CtNoCjjI.cjs +0 -20
- package/components/localized-mixin-DBUkUh0o.js +0 -45
- package/components/period-over-period-condition.const-BZ7j5Z5t.js +0 -29
- package/components/period-over-period-condition.const-C1NZ9Bkp.cjs +0 -20
- package/components/slot-menu/index.cjs +0 -20
- package/components/slot-menu/index.d.ts +0 -10
- package/components/slot-menu/index.js +0 -28
- package/components/slot-menu/slot-menu.d.ts +0 -148
- package/components/slot-menu/types.d.ts +0 -24
- package/components/slot-menu-CPxyyKSe.cjs +0 -71
- package/components/slot-menu-DHJtAZ5_.js +0 -429
- package/components/slot-menu-list/index.cjs +0 -20
- package/components/slot-menu-list/index.d.ts +0 -8
- package/components/slot-menu-list/index.js +0 -28
- package/components/slot-menu-list/slot-menu-list.d.ts +0 -47
- package/components/slot-menu-list-CeWcE4KK.cjs +0 -44
- package/components/slot-menu-list-QltpaoWh.js +0 -347
- package/components/slot-role-classification-2wChhpcq.cjs +0 -20
- package/components/slot-role-classification-B8bkGhQ_.js +0 -133
- package/components/slots-config-Cd4xAG4H.cjs +0 -20
- package/components/slots-config-D3ivNWtC.js +0 -76
- package/components/utils-BwJNkc-z.cjs +0 -20
- package/components/viz-item-menu/index.cjs +0 -20
- package/components/viz-item-menu/index.d.ts +0 -8
- package/components/viz-item-menu/index.js +0 -28
- package/components/viz-item-menu/types.d.ts +0 -9
- package/components/viz-item-menu/viz-item-menu.d.ts +0 -75
- package/components/viz-item-menu-Ht6bklNL.js +0 -170
- package/components/viz-item-menu-XHh4qhtn.cjs +0 -55
- package/deprecated-react/components/ai-chat.component.cjs +0 -1
- package/deprecated-react/components/ai-interaction-textarea.component.cjs +0 -1
- package/deprecated-react/components/data-field-level.component.cjs +0 -1
- package/deprecated-react/components/data-fields-select.component.cjs +0 -1
- package/deprecated-react/components/dataset-icon.component.cjs +0 -1
- package/deprecated-react/components/dataset-selector-list.component.cjs +0 -1
- package/deprecated-react/components/dataset-selector-row.component.cjs +0 -1
- package/deprecated-react/components/display-settings-binning.component.cjs +0 -1
- package/deprecated-react/components/display-settings-datetime.component.cjs +0 -1
- package/deprecated-react/components/display-settings-grand-totals.component.cjs +0 -1
- package/deprecated-react/components/display-settings-numeric.component.cjs +0 -1
- package/deprecated-react/components/display-settings-period-over-period.component.cjs +0 -1
- package/deprecated-react/components/display-settings.component.cjs +0 -1
- package/deprecated-react/components/filter-expression-picker.component.cjs +0 -1
- package/deprecated-react/components/filter-item.component.cjs +0 -1
- package/deprecated-react/components/filter-parameter-picker.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker-datetime.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker-hierarchy.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker-numeric.component.cjs +0 -1
- package/deprecated-react/components/filter-value-picker.component.cjs +0 -1
- package/deprecated-react/components/formula-field.component.cjs +0 -1
- package/deprecated-react/components/interactive-viz-item.component.cjs +0 -1
- package/deprecated-react/components/slot-menu-list.component.cjs +0 -1
- package/deprecated-react/components/slot-menu.component.cjs +0 -1
- package/deprecated-react/components/viz-item-menu.component.cjs +0 -1
- package/react/components/ai-chat.component.ts +0 -45
- package/react/components/ai-interaction-textarea.component.ts +0 -30
- package/react/components/data-field-level.component.ts +0 -30
- package/react/components/data-fields-select.component.ts +0 -27
- package/react/components/dataset-icon.component.ts +0 -22
- package/react/components/dataset-selector-list.component.ts +0 -27
- package/react/components/dataset-selector-row.component.ts +0 -36
- package/react/components/display-settings-binning.component.ts +0 -27
- package/react/components/display-settings-datetime.component.ts +0 -27
- package/react/components/display-settings-grand-totals.component.ts +0 -27
- package/react/components/display-settings-numeric.component.ts +0 -27
- package/react/components/display-settings-period-over-period.component.ts +0 -27
- package/react/components/display-settings.component.ts +0 -33
- package/react/components/filter-expression-picker.component.ts +0 -27
- package/react/components/filter-item.component.ts +0 -27
- package/react/components/filter-parameter-picker.component.ts +0 -33
- package/react/components/filter-value-picker-datetime.component.ts +0 -27
- package/react/components/filter-value-picker-hierarchy.component.ts +0 -27
- package/react/components/filter-value-picker-numeric.component.ts +0 -27
- package/react/components/filter-value-picker.component.ts +0 -27
- package/react/components/formula-field.component.ts +0 -30
- package/react/components/interactive-viz-item.component.ts +0 -33
- package/react/components/slot-menu-list.component.ts +0 -27
- package/react/components/slot-menu.component.ts +0 -42
- package/react/components/viz-item-menu.component.ts +0 -33
- package/react/esm/components/ai-chat.component.d.ts +0 -24
- package/react/esm/components/ai-chat.component.js +0 -29
- package/react/esm/components/ai-interaction-textarea.component.d.ts +0 -14
- package/react/esm/components/ai-interaction-textarea.component.js +0 -19
- package/react/esm/components/data-field-level.component.d.ts +0 -14
- package/react/esm/components/data-field-level.component.js +0 -19
- package/react/esm/components/data-fields-select.component.d.ts +0 -12
- package/react/esm/components/data-fields-select.component.js +0 -17
- package/react/esm/components/dataset-icon.component.d.ts +0 -8
- package/react/esm/components/dataset-icon.component.js +0 -13
- package/react/esm/components/dataset-selector-list.component.d.ts +0 -12
- package/react/esm/components/dataset-selector-list.component.js +0 -17
- package/react/esm/components/dataset-selector-row.component.d.ts +0 -18
- package/react/esm/components/dataset-selector-row.component.js +0 -23
- package/react/esm/components/display-settings-binning.component.d.ts +0 -12
- package/react/esm/components/display-settings-binning.component.js +0 -17
- package/react/esm/components/display-settings-datetime.component.d.ts +0 -12
- package/react/esm/components/display-settings-datetime.component.js +0 -17
- package/react/esm/components/display-settings-grand-totals.component.d.ts +0 -12
- package/react/esm/components/display-settings-grand-totals.component.js +0 -17
- package/react/esm/components/display-settings-numeric.component.d.ts +0 -12
- package/react/esm/components/display-settings-numeric.component.js +0 -17
- package/react/esm/components/display-settings-period-over-period.component.d.ts +0 -12
- package/react/esm/components/display-settings-period-over-period.component.js +0 -17
- package/react/esm/components/display-settings.component.d.ts +0 -16
- package/react/esm/components/display-settings.component.js +0 -21
- package/react/esm/components/filter-expression-picker.component.d.ts +0 -12
- package/react/esm/components/filter-expression-picker.component.js +0 -17
- package/react/esm/components/filter-item.component.d.ts +0 -12
- package/react/esm/components/filter-item.component.js +0 -17
- package/react/esm/components/filter-parameter-picker.component.d.ts +0 -16
- package/react/esm/components/filter-parameter-picker.component.js +0 -21
- package/react/esm/components/filter-value-picker-datetime.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-datetime.component.js +0 -17
- package/react/esm/components/filter-value-picker-hierarchy.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-hierarchy.component.js +0 -17
- package/react/esm/components/filter-value-picker-numeric.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-numeric.component.js +0 -17
- package/react/esm/components/filter-value-picker.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker.component.js +0 -17
- package/react/esm/components/formula-field.component.d.ts +0 -14
- package/react/esm/components/formula-field.component.js +0 -19
- package/react/esm/components/interactive-viz-item.component.d.ts +0 -16
- package/react/esm/components/interactive-viz-item.component.js +0 -21
- package/react/esm/components/slot-menu-list.component.d.ts +0 -12
- package/react/esm/components/slot-menu-list.component.js +0 -17
- package/react/esm/components/slot-menu.component.d.ts +0 -22
- package/react/esm/components/slot-menu.component.js +0 -27
- package/react/esm/components/viz-item-menu.component.d.ts +0 -16
- package/react/esm/components/viz-item-menu.component.js +0 -21
- package/storybook/inject-global-vars.d.ts +0 -1
- package/storybook/register-components.d.ts +0 -57
- package/types/agent.types.d.ts +0 -4
- package/types/ai-chat.types.d.ts +0 -104
- package/types/data-field-events.types.d.ts +0 -7
- /package/{angular/utils/ai-prompt/tests/attachments.test.d.ts → utils/slot-state/tests/slot-store.test.d.ts} +0 -0
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
/*! * A kit of modern Luzmo Web Components for analytics in your web application.
|
|
2
|
+
*
|
|
3
|
+
* Copyright © 2026 Luzmo
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Luzmo web components (“Luzmo Web Components”)
|
|
6
|
+
* must be used according to the Luzmo Terms of Service.
|
|
7
|
+
* This license allows users with a current active Luzmo account
|
|
8
|
+
* to use the Luzmo Web Components. This license terminates
|
|
9
|
+
* automatically if a user no longer has an active Luzmo account.
|
|
10
|
+
* Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
|
|
11
|
+
*
|
|
12
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
14
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
15
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
16
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
17
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18
|
+
* SOFTWARE.
|
|
19
|
+
* */
|
|
20
|
+
const e=require("./localized-mixin-DfpurTYo.cjs"),t=require("./data-broker-CyMYR6w1.cjs"),n=require("./type-check-BehV9ZL1.cjs"),r=require("./calculate-data-field-icon-DenGmW74.cjs"),i=require("./localize-D3i4Epy_.cjs"),a=require("./v4-Dyp-SQ1c.cjs"),o=require("./periods.const-Db0nXrwr.cjs");require("./data-fields-select-Cor6sfzL.cjs"),require("./utils-CPIzW8sp.cjs");let s=require("@luzmo/icons");require("@luzmo/lucero/button"),require("@luzmo/lucero/icon"),require("@luzmo/lucero/overlay"),require("@luzmo/lucero/popover");let c=require("lit"),l=require("lit/decorators.js"),u=require("@lit/localize");require("@luzmo/lucero/action-button"),require("@luzmo/lucero/select"),require("@luzmo/lucero/tags"),require("@luzmo/lucero/tooltip");let d=require("lit/directives/repeat.js");require("@luzmo/lucero/field-label"),require("@luzmo/lucero/number-field"),require("@luzmo/lucero/picker");let f=require("@luzmo/lucero/utils"),ee=require("lit/directives/if-defined.js");require("@luzmo/lucero/menu"),require("@luzmo/lucero/divider"),require("@luzmo/lucero/options"),require("@luzmo/lucero/text-field"),require("@luzmo/lucero/date-time-picker");var te=20,p=class extends Error{constructor(e){super(e),this.name=`FilterUnrepresentableError`}},ne=new Set([`and`,`or`]),re=[`datasetId`,`dataset_id`,`columnId`,`column_id`,`formulaId`,`formula_id`,`formula`,`columnExpression`,`value`,`ignoredItemIds`];function m(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function h(e){return!m(e)||e.condition!==void 0&&(typeof e.condition!=`string`||!ne.has(e.condition.toLowerCase()))?!1:`filters`in e||`subGroups`in e}function g(e){return m(e)&&`expression`in e&&!(`condition`in e)}function _(e){return re.some(t=>t in e)}function ie(e,t=!1){let n=[e.columnId!==void 0||e.column_id!==void 0,e.formulaId!==void 0||e.formula_id!==void 0,e.formula!==void 0].filter(Boolean).length;return n===1?!0:n>1?!1:e.columnExpression!==void 0||t&&e.expression!==void 0}function ae(e){return!g(e)||typeof e.expression!=`string`||e.expression.length===0||`parameters`in e||typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?!1:ie(e)}function v(e){return!g(e)||!Array.isArray(e.parameters)?!1:!_(e)}function oe(e){if(!(`parameters`in e))return;let t=re.find(t=>t in e);if(t!==void 0)throw new p(`Filter leaf mixes "parameters" with the clean inline key "${t}".`)}function se(e){throw typeof e.expression!=`string`||e.expression.length===0?new p(`Clean filter leaf is missing a non-empty "expression".`):typeof e.datasetId!=`string`&&typeof e.dataset_id!=`string`?new p(`Clean filter leaf "${e.expression}" is missing a "datasetId".`):new p(`Clean filter leaf "${e.expression}" must name exactly one of "columnId", "formulaId", "formula", or "columnExpression".`)}function y(e){return e===`where`||e===`having`}function b(e){if(e>20)throw new p(`Filter nesting exceeds the maximum depth of 20.`)}function ce(e){if(e==null)return`empty`;if(!Array.isArray(e))return`unknown`;if(e.length===0)return`empty`;let t=!1,n=!1,r=!1,i=(e,a)=>{if(a>20){r=!0;return}if(h(e)){y(e.clause)&&(n=!0);let t=[...Array.isArray(e.filters)?e.filters:[],...Array.isArray(e.subGroups)?e.subGroups:[]];for(let e of t)i(e,a+1);return}if(g(e)){`parameters`in e&&_(e)?r=!0:ae(e)?n=!0:v(e)?t=!0:r=!0;return}r=!0};for(let t of e)i(t,1);return r?`unknown`:n&&t?`mixed`:n?`clean`:t?`canonical`:`empty`}var x=new Set([`? is null`,`? is not null`]),S=new Set([`? = ?`,`? != ?`,`? < ?`,`? <= ?`,`? > ?`,`? >= ?`]),le=new Set([`? in ?`,`? not in ?`,`? between ?`]),ue={"array[numeric]":`numeric[]`,"array[hierarchy]":`hierarchy[]`,"array[datetime]":`datetime[]`},de=new Set([`level`,`lowestLevel`,`unnest`,`discretization`,`aggregation`,`index`,`include_nonoccurring`,`simplification`]);function C(e,t){return e!==`lowestLevel`&&!(t===null&&de.has(e))}function w(e){return structuredClone(e)}function T(e){let t=e.datasetId??e.dataset_id;if(typeof t!=`string`||t.length===0)throw new p(`Filter reference is missing a "datasetId".`);return t}function fe(e){return m(e)?typeof e.columnId==`string`||typeof e.column_id==`string`||typeof e.formulaId==`string`||typeof e.formula_id==`string`||typeof e.formula==`string`||(typeof e.datasetId==`string`||typeof e.dataset_id==`string`)&&(e.columnExpression!==void 0||e.expression!==void 0):!1}function pe(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>O(e))),t}function me(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&C(`level`,e.level)&&(t.level=e.level),m(e.discretization)&&(t.discretization=pe(e.discretization)),e.unnest!==void 0&&C(`unnest`,e.unnest)&&(t.unnest=e.unnest),t}function he(e){let t={type:e.type};return e.bins!==void 0&&(t.bins=e.bins),Array.isArray(e.over)&&(t.over=e.over.map(e=>m(e)?D(e):e)),t}function ge(e){let t={type:e.type},n=e.datasetId??e.dataset_id,r=e.columnId??e.column_id;return n!==void 0&&(t.datasetId=n),r!==void 0&&(t.columnId=r),e.level!==void 0&&(t.level=e.level),m(e.discretization)&&(t.discretization=he(e.discretization)),e.unnest!==void 0&&(t.unnest=e.unnest),t}function _e(e,t){e.level!==void 0&&(t.level=w(e.level)),m(e.discretization)&&(t.discretization=he(e.discretization)),m(e.aggregation)&&(t.aggregation=ge(e.aggregation)),e.unnest!==void 0&&(t.unnest=w(e.unnest))}function E(e,t){let n=e.columnId??e.column_id;if(n!==void 0)return{kind:`columnId`,value:n};let r=e.formulaId??e.formula_id;if(r!==void 0)return{kind:`formulaId`,value:r};if(e.formula!==void 0)return{kind:`formula`,value:e.formula};let i=e.columnExpression??(t?e.expression:void 0);if(i!==void 0)return{kind:`expression`,value:i}}function D(e,t=!0){let n={datasetId:T(e)},r=E(e,t);return r!==void 0&&(r.kind===`expression`?n.expression=r.value:n[r.kind]=r.value),_e(e,n),n}function O(e){if(!m(e))throw new p(`Cannot emit a clean filter reference.`);let t={datasetId:T(e)};e.level!==void 0&&C(`level`,e.level)&&(t.level=e.level),m(e.discretization)&&(t.discretization=pe(e.discretization)),m(e.aggregation)&&(t.aggregation=me(e.aggregation)),e.unnest!==void 0&&C(`unnest`,e.unnest)&&(t.unnest=e.unnest);let n=E(e,!0);if(n===void 0)throw new p(`Cannot emit a clean filter reference: no column, formula, or expression.`);return n.kind===`expression`?t.columnExpression=n.value:t[n.kind]=n.value,t}function ve(e){if(!m(e)||typeof e.parameter!=`string`||typeof e.type!=`string`)return e;let t=ue[e.type];return t===void 0?e:{...e,type:t}}function ye(e,t){return m(t)&&typeof t.parameter==`string`?!0:Array.isArray(t)?e!==`? between ?`||t.length===2:!1}function be(e,t){let n=e.expression,r=[D(e,!1)];if(!x.has(n)&&e.value!==void 0){let t=S.has(n)&&fe(e.value);r.push(t?D(e.value):w(e.value))}let i={};typeof e.id==`string`&&(i.id=e.id),`ignoredItemIds`in e&&(i.ignore=w(e.ignoredItemIds)),t!==void 0&&(i.type=t);let a={expression:n,parameters:r};return Object.keys(i).length>0&&(a.properties=i),a}function xe(e){let{expression:t}=e;if(typeof t!=`string`||t.length===0)return null;let n=Array.isArray(e.parameters)?e.parameters:[];if(!m(n[0]))throw new p(`Cannot emit a clean filter reference for "${t}".`);let r={...O(n[0]),expression:t};if(!x.has(t)){let e=n[1];if(e===void 0)throw new p(`Filter "${t}" is missing its value operand.`);if(r.value=fe(e)&&S.has(t)?O(e):ve(w(e)),le.has(t)&&!ye(t,r.value))throw new p(`Cannot emit an invalid clean filter value for "${t}".`)}let{properties:i}=e;return i?.id!==void 0&&(r.id=i.id),i!==void 0&&`ignore`in i&&(r.ignoredItemIds=w(i.ignore)),r}function k(e){return h(e)}function A(e){return Array.isArray(e.filters)?e.filters:[]}function Se(e,t){return e.properties?.type===`having`||e.properties?.type===`where`?e.properties.type:t??`where`}function j(e,t,n=1,r=new Set){b(n);let i=e.clause??t;for(let t of A(e))k(t)?j(t,i,n+1,r):typeof t.expression==`string`&&t.expression.length>0&&r.add(Se(t,i));return r}function Ce(e,t,n=1){b(n);let r=e.clause??t;if(e.condition===`or`&&j(e,r,n).size>1)throw new p(`An "or" group mixes "where" and "having" filters, which clean output cannot represent.`);for(let t of A(e))k(t)&&Ce(t,r,n+1)}function M(e,t,n,r=1){b(r);let i=e.clause??n,a=[];for(let n of A(e)){if(k(n)){let e=M(n,t,i,r+1);e.filters.length>0&&a.push(e);continue}if(Se(n,i)!==t)continue;let e=xe(n);e&&a.push(e)}let o={condition:e.condition===`or`?`or`:`and`,filters:a};return e.id!==void 0&&j(e,i,r).size<=1&&(o.id=e.id),o}function we(e){let t=e.clause;Ce(e,t);let n=j(e,t);return n.size===0&&n.add(t??`where`),[`where`,`having`].filter(e=>n.has(e)).map(n=>({...M(e,n,t),clause:n})).filter(e=>e.filters.length>0)}var Te=[`origin`,`datasetId`,`vizId`,`itemId`,`isDrilldown`,`type`];function N(e){return typeof e==`string`&&e.toLowerCase()===`or`?`or`:`and`}function Ee(e){return h(e)}function De(e){if(!Array.isArray(e)||e.length===0)return[];let t=m(e[0])?e[0]:void 0,n=e.length>1?e[1]:void 0;return e.length>1?[t,n]:[t]}function Oe(e){if(typeof e.expression!=`string`||e.expression.length===0)return null;let t={expression:e.expression,parameters:De(e.parameters)};return e.properties!==void 0&&Object.keys(e.properties).length>0&&(t.properties=structuredClone(e.properties)),t}function ke(e,t){let n=e,r=t;for(let e of Te)n[e]!==void 0&&(r[e]=n[e])}function Ae(e){if(!e||!e.filters)return{condition:`and`,filters:[],subGroups:[]};let t=[],n=[];for(let r of e.filters)if(Ee(r))n.push(Ae(r));else{let e=Oe(r);e&&t.push(e)}let r={condition:N(e.condition),filters:t,subGroups:n};return e.id!==void 0&&(r.id=e.id),ke(e,r),r}function P(e,t){return e?t?.format===`clean`?we(e):[Ae(e)]:[]}function je(e,t){let n={expression:typeof e.expression==`string`?e.expression:void 0,parameters:Array.isArray(e.parameters)?[...e.parameters]:[]},r=m(e.properties)?structuredClone(e.properties):{};return t!==void 0&&r.type===void 0&&(r.type=t),Object.keys(r).length>0&&(n.properties=r),n}function Me(e,t,n){if(h(e))return F(e,t,n);if(!m(e))return;let r=e.expression;if(oe(e),ae(e))return be(e,t);if(_(e)&&se(e),v(e))return je(e,t);throw new p(`Filter leaf "${String(r)}" matches neither a complete clean nor a complete canonical encoding.`)}function F(e,t,n){b(n);let r=y(e.clause)?e.clause:void 0,i=r??t,a=[];for(let t of Array.isArray(e.filters)?e.filters:[]){let e=Me(t,i,n+1);e!==void 0&&a.push(e)}for(let t of Array.isArray(e.subGroups)?e.subGroups:[])h(t)&&a.push(F(t,i,n+1));let o={condition:N(e.condition),filters:a};return typeof e.id==`string`&&(o.id=e.id),r!==void 0&&(o.clause=r),ke(e,o),o}function I(e){return!e||e.length===0?[]:e.filter(e=>h(e)).map(e=>F(e,void 0,1))}var L=()=>[{id:`? = ?`,key:`? = ?`,expression:`? = ?`,name:(0,u.msg)(`equals`,{desc:`Filter expression for equals comparison`}),description:(0,u.msg)(`equals`,{desc:`Filter expression for equals comparison`}),tiny:(0,u.msg)(`eq`,{desc:`Short form of equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? != ?`,key:`? != ?`,expression:`? != ?`,name:(0,u.msg)(`not equals`,{desc:`Filter expression for not equals comparison`}),description:(0,u.msg)(`not equals`,{desc:`Filter expression for not equals comparison`}),tiny:(0,u.msg)(`not eq`,{desc:`Short form of not equals comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? in ?`,key:`? in ?`,expression:`? in ?`,name:(0,u.msg)(`is in`,{desc:`Filter expression for in comparison`}),description:(0,u.msg)(`is in`,{desc:`Filter expression for in comparison`}),tiny:(0,u.msg)(`is in`,{desc:`Filter expression for in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? not in ?`,key:`? not in ?`,expression:`? not in ?`,name:(0,u.msg)(`is not in`,{desc:`Filter expression for not in comparison`}),description:(0,u.msg)(`is not in`,{desc:`Filter expression for not in comparison`}),tiny:(0,u.msg)(`is not in`,{desc:`Filter expression for not in comparison`}),type:[`numeric`,`hierarchy`],subtype:[`ip_address`]},{id:`? like ?`,key:`? like ?`,expression:`? like ?`,name:(0,u.msg)(`contains`,{desc:`Filter expression for contains comparison`}),description:(0,u.msg)(`contains`,{desc:`Filter expression for contains comparison`}),tiny:(0,u.msg)(`cont`,{desc:`Short form of contains comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not like ?`,key:`? not like ?`,expression:`? not like ?`,name:(0,u.msg)(`does not contain`,{desc:`Filter expression for does not contain comparison`}),description:(0,u.msg)(`does not contain`,{desc:`Filter expression for does not contain comparison`}),tiny:(0,u.msg)(`not cont`,{desc:`Short form of does not contain comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? starts with ?`,key:`? starts with ?`,expression:`? starts with ?`,name:(0,u.msg)(`starts with`,{desc:`Filter expression for starts with comparison`}),description:(0,u.msg)(`starts with`,{desc:`Filter expression for starts with comparison`}),tiny:(0,u.msg)(`starts with`,{desc:`Filter expression for starts with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not starts with ?`,key:`? not starts with ?`,expression:`? not starts with ?`,name:(0,u.msg)(`does not start with`,{desc:`Filter expression for does not start with comparison`}),description:(0,u.msg)(`does not start with`,{desc:`Filter expression for does not start with comparison`}),tiny:(0,u.msg)(`not starts with`,{desc:`Short form of does not start with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? ends with ?`,key:`? ends with ?`,expression:`? ends with ?`,name:(0,u.msg)(`ends with`,{desc:`Filter expression for ends with comparison`}),description:(0,u.msg)(`ends with`,{desc:`Filter expression for ends with comparison`}),tiny:(0,u.msg)(`ends with`,{desc:`Filter expression for ends with comparison`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? not ends with ?`,key:`? not ends with ?`,expression:`? not ends with ?`,name:(0,u.msg)(`does not end with`,{desc:`Filter expression for does not end with comparison`}),description:(0,u.msg)(`does not end with`,{desc:`Filter expression for does not end with comparison`}),tiny:(0,u.msg)(`not ends with`,{desc:`Short form of does not end with comparison in filter expression`}),type:[`hierarchy`],subtype:[`ip_address`]},{id:`? < ?`,key:`? < ?`,expression:`? < ?`,name:(0,u.msg)(`less than`,{desc:`Filter expression for less than comparison`}),description:(0,u.msg)(`less than`,{desc:`Filter expression for less than comparison`}),tiny:`<`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? <= ?`,key:`? <= ?`,expression:`? <= ?`,name:(0,u.msg)(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),description:(0,u.msg)(`less than or equal`,{desc:`Filter expression for less than or equal comparison`}),tiny:`<=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? > ?`,key:`? > ?`,expression:`? > ?`,name:(0,u.msg)(`greater than`,{desc:`Filter expression for greater than comparison`}),description:(0,u.msg)(`greater than`,{desc:`Filter expression for greater than comparison`}),tiny:`>`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? >= ?`,key:`? >= ?`,expression:`? >= ?`,name:(0,u.msg)(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),description:(0,u.msg)(`greater than or equal`,{desc:`Filter expression for greater than or equal comparison`}),tiny:`>=`,type:[`numeric`,`datetime`],subtype:[`ip_address`]},{id:`? between ?`,key:`? between ?`,expression:`? between ?`,name:(0,u.msg)(`is between`,{desc:`Filter expression for between comparison`}),description:(0,u.msg)(`is between`,{desc:`Filter expression for between comparison`}),tiny:(0,u.msg)(`between`,{desc:`Short form of between comparison in filter expression`}),type:[],subtype:[`ip_address`]},{id:`last_now`,key:`last_now`,expression:`last_now`,name:(0,u.msg)(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),description:(0,u.msg)(`last (x) periods`,{desc:`Filter expression for last (x) periods`}),tiny:(0,u.msg)(`last`,{desc:`Short form of last (x) periods in filter expression`}),type:[`datetime`]},{id:`last_available`,key:`last_available`,expression:`last_available`,name:(0,u.msg)(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),description:(0,u.msg)(`last (x) available periods`,{desc:`Filter expression for last (x) available periods`}),tiny:(0,u.msg)(`last available`,{desc:`Short form of last (x) available periods in filter expression`}),type:[`datetime`]},{id:`last_completed`,key:`last_completed`,expression:`last_completed`,name:(0,u.msg)(`last completed period`,{desc:`Filter expression for last completed period`}),description:(0,u.msg)(`last completed (period)`,{desc:`Filter expression for last completed period`}),tiny:(0,u.msg)(`last completed`,{desc:`Short form of last completed period in filter expression`}),type:[`datetime`]},{id:`next_now`,key:`next_now`,expression:`next_now`,name:(0,u.msg)(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),description:(0,u.msg)(`next (x) periods`,{desc:`Filter expression for next (x) periods`}),tiny:(0,u.msg)(`next`,{desc:`Short form of next (x) periods in filter expression`}),type:[`datetime`]},{id:`more_than_ago`,key:`more_than_ago`,expression:`more_than_ago`,name:(0,u.msg)(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),description:(0,u.msg)(`more than (x) periods ago`,{desc:`Filter expression for more than (x) periods ago`}),tiny:(0,u.msg)(`more than ago`,{desc:`Short form of more than (x) periods ago in filter expression`}),type:[`datetime`]},{id:`or_more_ago`,key:`or_more_ago`,expression:`or_more_ago`,name:(0,u.msg)(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),description:(0,u.msg)(`(x) periods or more ago`,{desc:`Filter expression for (x) periods or more ago`}),tiny:(0,u.msg)(`or more ago`,{desc:`Short form of (x) periods or more ago in filter expression`}),type:[`datetime`]},{id:`next_full`,key:`next_full`,expression:`next_full`,name:(0,u.msg)(`next full (period)`,{desc:`Filter expression for next full period`}),description:(0,u.msg)(`next full (period)`,{desc:`Filter expression for next full period`}),tiny:(0,u.msg)(`next full`,{desc:`Short form of next full period in filter expression`}),type:[`datetime`]},{id:`WTD`,key:`to_date`,expression:`to_date`,unit:4,name:(0,u.msg)(`week to date`,{desc:`Filter expression for week to date`}),description:(0,u.msg)(`week to date`,{desc:`Filter expression for week to date`}),tiny:(0,u.msg)(`WTD`,{desc:`Short form of week to date in filter expression`}),type:[`datetime`]},{id:`MTD`,key:`to_date`,expression:`to_date`,unit:3,name:(0,u.msg)(`month to date`,{desc:`Filter expression for month to date`}),description:(0,u.msg)(`month to date`,{desc:`Filter expression for month to date`}),tiny:(0,u.msg)(`MTD`,{desc:`Short form of month to date in filter expression`}),type:[`datetime`]},{id:`QTD`,key:`to_date`,expression:`to_date`,unit:2,name:(0,u.msg)(`quarter to date`,{desc:`Filter expression for quarter to date`}),description:(0,u.msg)(`quarter to date`,{desc:`Filter expression for quarter to date`}),tiny:(0,u.msg)(`QTD`,{desc:`Short form of quarter to date in filter expression`}),type:[`datetime`]},{id:`YTD`,key:`to_date`,expression:`to_date`,unit:1,name:(0,u.msg)(`year to date`,{desc:`Filter expression for year to date`}),description:(0,u.msg)(`year to date`,{desc:`Filter expression for year to date`}),tiny:(0,u.msg)(`YTD`,{desc:`Short form of year to date in filter expression`}),type:[`datetime`]},{id:`? is null`,key:`? is null`,expression:`? is null`,name:(0,u.msg)(`is missing`,{desc:`Filter expression for is missing`}),description:(0,u.msg)(`is missing`,{desc:`Filter expression for is missing`}),tiny:(0,u.msg)(`missing`,{desc:`Short form of is missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]},{id:`? is not null`,key:`? is not null`,expression:`? is not null`,name:(0,u.msg)(`is not missing`,{desc:`Filter expression for is not missing`}),description:(0,u.msg)(`is not missing`,{desc:`Filter expression for is not missing`}),tiny:(0,u.msg)(`not missing`,{desc:`Short form of is not missing in filter expression`}),type:[`numeric`,`datetime`,`hierarchy`,`spatial`],subtype:[`ip_address`]}],R=(e,t,n)=>{let r=new Set([`? in ?`,`? not in ?`]);return!e&&!t?L():L().filter(i=>(e&&i.type.includes(e)||t&&i.subtype?.includes(t))&&!(n&&r.has(i.key)))},Ne=`:host{font-family:var(--luzmo-font-family)}luzmo-select{width:100%}:host{--var:blue}`,z=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.hasLabel=!1,this.allowEmpty=!1,this.placeholder=``,this.disabled=!1,this.invalid=!1,this.isFormula=!1,this._expressionConfigurations=L()}static get styles(){return[(0,c.unsafeCSS)(Ne)]}_sendChangeEvent(){if(this.disabled)return;let e={expression:this.filter?.expression};this.filter?.parameters?.[1]?.unit&&(e.unit=this.filter?.parameters?.[1]?.unit),this.dispatchEvent(new CustomEvent(`luzmo-expression-selected`,{bubbles:!0,composed:!0,cancelable:!0,detail:e}))}setExpression(e){this._richExpression=e?.detail?.value?.[0];let t=this._expressionConfigurations.find(e=>e.id===this._richExpression),n=structuredClone(this.filter);n.expression=t?.expression,t?.unit&&(this._unit=t.unit,n?.parameters[0]&&(n.parameters[1]={unit:this._unit})),this.filter=n,this._sendChangeEvent()}willUpdate(e){super.willUpdate(e);let t=e.has(`filter`),n=e.has(`type`),r=e.has(`subtype`),i=e.has(`isFormula`),a=R(this.type,this.subtype,this.isFormula),o=[`YTD`,`QTD`,`MTD`,`WTD`];if(this.filter?.expression===`to_date`){let e=this.filter?.parameters[1]?.unit??1;this._unit=e,this._richExpression=o[e-1]??`YTD`}else this._richExpression=this.filter?.expression;(n||r||i||t)&&this.filter&&!this.disabled&&!a?.find(e=>e.expression===this.filter?.expression)?(this.invalid=!0,console.warn(`Warning: ${this.filter?.expression} is not valid given the type: ${this.type} and subtype: ${this.subtype}`)):this.invalid=!1,!this.filter?.expression&&!this.allowEmpty&&(this._richExpression=a?.[0]?.id,this.filter={...this.filter,expression:this._richExpression},this._sendChangeEvent())}render(){let e=R(this.type,this.subtype,this.isFormula)?.map(e=>({value:e.id,label:e.description,shortLabel:e.tiny})),t=this.disabled||!this.filter?.expression&&!this.allowEmpty,n=c.html`<luzmo-field-label
|
|
21
|
+
for="expression"
|
|
22
|
+
size=${this.size}
|
|
23
|
+
>${this.label??(0,u.msg)(`Select an expression`,{desc:`Label for expression picker`})}</luzmo-field-label
|
|
24
|
+
>`,r=this.hasLabel?this.placeholder??(0,u.msg)(`Select...`):this.placeholder||this.label||(0,u.msg)(`Filter expression`,{desc:`Accessible label for expression picker`});return c.html`${this.hasLabel?n:``}
|
|
25
|
+
<luzmo-select
|
|
26
|
+
label=${r}
|
|
27
|
+
id="expression"
|
|
28
|
+
size=${this.size}
|
|
29
|
+
variant="highlight"
|
|
30
|
+
selects="single"
|
|
31
|
+
.language=${this.language}
|
|
32
|
+
?disabled=${t}
|
|
33
|
+
?invalid=${this.invalid}
|
|
34
|
+
.options=${e}
|
|
35
|
+
.value=${[this._richExpression]}
|
|
36
|
+
@change=${this.setExpression}
|
|
37
|
+
>
|
|
38
|
+
</luzmo-select>`}};e.n([(0,l.property)({type:String,reflect:!0})],z.prototype,`filter`,void 0),e.n([(0,l.property)({type:Boolean,attribute:`has-label`,reflect:!0})],z.prototype,`hasLabel`,void 0),e.n([(0,l.property)({type:String,reflect:!0})],z.prototype,`label`,void 0),e.n([(0,l.property)({type:Boolean,attribute:`allow-empty`,reflect:!0})],z.prototype,`allowEmpty`,void 0),e.n([(0,l.property)({type:String,attribute:`placeholder`,reflect:!0})],z.prototype,`placeholder`,void 0),e.n([(0,l.property)({type:Boolean,attribute:`disabled`,reflect:!0})],z.prototype,`disabled`,void 0),e.n([(0,l.property)({type:String,attribute:`type`,reflect:!0})],z.prototype,`type`,void 0),e.n([(0,l.property)({type:String,attribute:`subtype`,reflect:!0})],z.prototype,`subtype`,void 0),e.n([(0,l.property)({type:Boolean,attribute:`invalid`,reflect:!0})],z.prototype,`invalid`,void 0),e.n([(0,l.property)({type:Boolean,attribute:`is-formula`,reflect:!0})],z.prototype,`isFormula`,void 0),e.n([(0,l.state)()],z.prototype,`_richExpression`,void 0),e.n([(0,l.state)()],z.prototype,`_unit`,void 0),z=e.n([(0,u.localized)()],z),customElements.get(`luzmo-filter-expression-picker`)||customElements.define(`luzmo-filter-expression-picker`,z);var Pe=new Set([`? is null`,`? is not null`,`? between ?`,`YTD`,`QTD`,`MTD`,`WTD`,`to_date`,`last_available`,`last_completed`,`last_now`,`more_than_ago`,`or_more_ago`,`next_now`,`next_full`]),Fe=new Set([`? length = ?`,`? length >= ?`,`? length <= ?`]),B=new Set([`? in ?`,`? not in ?`,`? includes all ?`,`? includes any ?`,`? includes only ?`]);function V(e,t){return!e||e===`spatial`||!t||Pe.has(t)?[]:Fe.has(t)?[`numeric`]:e===`numeric`||e===`array[numeric]`?B.has(t)?[`array[numeric]`]:[`numeric`]:e===`datetime`||e===`array[datetime]`?B.has(t)?[`array[datetime]`,`datetime`]:[`datetime`,`array[datetime]`]:e===`hierarchy`||e===`array[hierarchy]`?B.has(t)?[`array[hierarchy]`]:[`hierarchy`]:[]}var Ie={numeric:()=>(0,u.msg)(`Numeric`,{id:`filter-parameter-type-numeric`,desc:`Numeric filter parameter type`}),datetime:()=>(0,u.msg)(`Datetime`,{id:`filter-parameter-type-datetime`,desc:`Datetime filter parameter type`}),hierarchy:()=>(0,u.msg)(`Hierarchy`,{id:`filter-parameter-type-hierarchy`,desc:`Hierarchy filter parameter type`}),"array[numeric]":()=>(0,u.msg)(`Numeric[]`,{id:`filter-parameter-type-numeric-list`,desc:`List of numeric values filter parameter type`}),"array[datetime]":()=>(0,u.msg)(`Datetime[]`,{id:`filter-parameter-type-datetime-list`,desc:`List of datetime values filter parameter type`}),"array[hierarchy]":()=>(0,u.msg)(`Hierarchy[]`,{id:`filter-parameter-type-hierarchy-list`,desc:`List of hierarchy values filter parameter type`})};function H(e){return Ie[e]?.()??e}function U(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.parameter==`string`&&typeof t.type==`string`&&`value`in t}function W(e){return`metadata.${e.trim().replace(/^metadata\./i,``)}`}function Le(e,t,n){let r;if(t.startsWith(`array[`))r=Array.isArray(n)?structuredClone(n):[];else if(t===`numeric`)r=typeof n==`number`&&Number.isFinite(n)?n:0;else if(t===`datetime`){let e=n instanceof Date?n:new Date(typeof n==`string`?n:Date.now());r=Number.isNaN(e.getTime())?new Date().toISOString():e.toISOString()}else r=typeof n==`string`?n:``;return{parameter:W(e),type:t,value:r}}function G(e,t){if(!t||t===`? is null`||t===`? is not null`)return;let[n]=V(e,t);if(n?.startsWith(`array[`))return[];if(n===`numeric`)return 0;if(n===`datetime`)return new Date().toISOString();if(n===`hierarchy`)return``}var Re=`:host{min-width:0;max-width:100%;color:var(--luzmo-font-color);font-family:var(--luzmo-font-family);font-size:var(--luzmo-font-size);align-items:center;display:inline-flex;position:relative}.parameter-control{align-items:center;gap:var(--filter-parameter-picker-gap);min-width:0;max-width:100%;display:flex}.create-row{align-items:center;gap:var(--filter-parameter-picker-panel-gap);display:flex}.parameter-trigger,.create-parameter{flex:none}.parameter-trigger{font-weight:var(--luzmo-font-weight-bold)}.selected-parameter-tags{--luzmo-tag-group-item-margin-block:0;min-width:0;max-width:100%}.selected-parameter{--luzmo-tag-max-inline-size:min(180px, 100%);min-width:0;max-width:100%}.parameter-panel{min-inline-size:var(--filter-parameter-picker-panel-min-width);padding:var(--filter-parameter-picker-panel-padding);display:block}.parameter-name-input{--luzmo-text-field-width:100%;flex:1;min-inline-size:0}.panel-content{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.validation-message{color:var(--filter-parameter-picker-error-color);font-size:var(--luzmo-font-size-s)}.parameter-options{max-block-size:var(--filter-parameter-picker-options-max-height);overflow-y:auto}.parameter-type-footer{gap:var(--filter-parameter-picker-panel-gap);flex-direction:column;display:flex}.parameter-type{justify-content:flex-end;align-items:center;gap:var(--luzmo-spacing-1);font-size:var(--filter-parameter-picker-type-font-size);font-weight:var(--luzmo-font-weight);display:flex}.parameter-type-icon{justify-content:center;align-items:center;min-block-size:24px;min-inline-size:24px;display:inline-flex}:host{--filter-parameter-picker-gap:var(--luzmo-spacing-2);--filter-parameter-picker-control-size:var(--luzmo-component-height);--filter-parameter-picker-panel-min-width:220px;--filter-parameter-picker-options-max-height:240px;--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-s);--filter-parameter-picker-panel-background:var(--luzmo-background-color);--filter-parameter-picker-panel-border:var(--luzmo-border-color);--filter-parameter-picker-error-color:var(--luzmo-negative-color)}:host([size=xxs]),:host([size=xs]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-2);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-2);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=s]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-3);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-3);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xs)}:host([size=l]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-m)}:host([size=xl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-4);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-4);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-l)}:host([size=xxl]){--filter-parameter-picker-panel-padding:var(--luzmo-spacing-5);--filter-parameter-picker-panel-gap:var(--luzmo-spacing-5);--filter-parameter-picker-type-font-size:var(--luzmo-font-size-xl)}`,K=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.parameters=[],this.allowedTypes=[],this.disabled=!1,this._open=!1,this._newParameterName=``,this._handleDocumentClick=e=>{this._open&&!e.composedPath().includes(this)&&this._close()}}static get styles(){return[...super.styles??[],(0,c.unsafeCSS)(Re)]}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this._handleDocumentClick)}disconnectedCallback(){document.removeEventListener(`click`,this._handleDocumentClick),super.disconnectedCallback()}get _selectableParameters(){return this.parameters.filter(e=>this.allowedTypes.includes(e.type))}get _parameterOptions(){return this._selectableParameters.map(e=>({label:e.parameter.replace(/^metadata\./i,``),value:e.parameter}))}get _parameterType(){return this.selectedParameter?.type??this.allowedTypes[0]}get _duplicateName(){if(!this._hasParameterName)return!1;let e=W(this._newParameterName).toLowerCase();return this.parameters.some(t=>W(t.parameter).toLowerCase()===e)}get _triggerIconSize(){return{xxs:`xs`,xs:`xs`,s:`xs`,m:`xs`,l:`s`,xl:`m`,xxl:`l`}[this.size]??`xs`}get _hasParameterName(){return W(this._newParameterName).replace(/^metadata\./i,``).trim().length>0}_dispatchSelected(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-selected`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchCreated(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-created`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}_dispatchRemoved(e){this.dispatchEvent(new CustomEvent(`luzmo-parameter-removed`,{bubbles:!0,composed:!0,detail:{parameter:e}}))}async _handleTriggerClick(){this.disabled||this.allowedTypes.length===0||!this._overlay||(this._open=!0,this._newParameterName=``,this._overlay.open=!0,await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus())}_handleTriggerKeydown(e){e.key!==`Enter`&&e.key!==` `&&e.key!==`Space`||(e.preventDefault(),this._handleTriggerClick())}_handleOpened(){this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleClosed(){this._open=!1,this._newParameterName=``}_close(){this._overlay&&(this._overlay.open=!1),this._handleClosed(),this._triggerElement?.focusElement.focus()}_handlePanelKeydown(e){e.key===`Escape`&&(e.preventDefault(),this._close())}_handleNameInput(e){this._newParameterName=e.currentTarget.value}_selectParameter(e){this.selectedParameter=e,this._dispatchSelected(e),this._close()}_handleOptionsChange(e){e.stopPropagation();let[t]=e.detail.value,n=this._selectableParameters.find(e=>e.parameter===t);n&&this._selectParameter(n)}async _handleCreateParameter(){let e=this.allowedTypes[0];if(!e||!this._hasParameterName||this._duplicateName)return;let t=Le(this._newParameterName,e,this.currentValue);this.parameters=[...this.parameters,t],this._newParameterName=``,this._dispatchCreated(t),await this.updateComplete,this.shadowRoot?.querySelector(`.parameter-name-input`)?.focusElement.focus()}_handleNameKeydown(e){if(e.key===`Enter`){e.preventDefault(),this._handleCreateParameter();return}e.key===`ArrowDown`&&this._optionsElement&&(e.preventDefault(),this._optionsElement.focus())}_handleRemoveParameter(){this.selectedParameter&&this._dispatchRemoved(this.selectedParameter)}_renderParameterType(){let e=this._parameterType;if(!e)return c.nothing;let t=H(e);return c.html`
|
|
39
|
+
<div class="parameter-type-footer">
|
|
40
|
+
<luzmo-divider class="parameter-type-divider" size="s"></luzmo-divider>
|
|
41
|
+
<div class="parameter-type">
|
|
42
|
+
<span>${(0,u.msg)(`Parameter type:`,{desc:`Label preceding the type of the filter parameter`})}</span>
|
|
43
|
+
<span class="parameter-type-icon" tabindex="0" role="img" aria-label=${t}>
|
|
44
|
+
<luzmo-icon
|
|
45
|
+
aria-hidden="true"
|
|
46
|
+
.icon=${r.t({type:e},`s`)}
|
|
47
|
+
size="s"
|
|
48
|
+
></luzmo-icon>
|
|
49
|
+
<luzmo-tooltip self-managed placement="top" .size=${this.size}>${t}</luzmo-tooltip>
|
|
50
|
+
</span>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
`}render(){let e=this.selectedParameter?.parameter.replace(/^metadata\./i,``),t=!this._hasParameterName||this._duplicateName;return c.html`
|
|
54
|
+
<div class="parameter-control">
|
|
55
|
+
${this.selectedParameter?c.html`
|
|
56
|
+
<luzmo-tags class="selected-parameter-tags">
|
|
57
|
+
<luzmo-tag
|
|
58
|
+
class="selected-parameter"
|
|
59
|
+
size=${this.size}
|
|
60
|
+
variant="accent"
|
|
61
|
+
treatment="fill"
|
|
62
|
+
?deletable=${!this.disabled}
|
|
63
|
+
?disabled=${this.disabled}
|
|
64
|
+
aria-label=${(0,u.msg)(`Remove parameter`,{desc:`Detach a parameter from a filter`})}
|
|
65
|
+
@delete=${this._handleRemoveParameter}
|
|
66
|
+
>
|
|
67
|
+
${e}
|
|
68
|
+
</luzmo-tag>
|
|
69
|
+
</luzmo-tags>
|
|
70
|
+
`:c.nothing}
|
|
71
|
+
<luzmo-action-button
|
|
72
|
+
id="parameter-trigger"
|
|
73
|
+
class="parameter-trigger"
|
|
74
|
+
size=${this.size}
|
|
75
|
+
?quiet=${!this.selectedParameter}
|
|
76
|
+
.variant=${this.selectedParameter?`primary`:`neutral`}
|
|
77
|
+
aria-label=${(0,u.msg)(`Use parameter`,{desc:`Open the filter parameter picker`})}
|
|
78
|
+
.label=${(0,u.msg)(`Use parameter`,{desc:`Open the filter parameter picker`})}
|
|
79
|
+
aria-haspopup="dialog"
|
|
80
|
+
aria-expanded=${this._open?`true`:`false`}
|
|
81
|
+
.disabled=${this.disabled||this.allowedTypes.length===0}
|
|
82
|
+
@click=${this._handleTriggerClick}
|
|
83
|
+
@keydown=${this._handleTriggerKeydown}
|
|
84
|
+
>
|
|
85
|
+
<luzmo-icon slot="icon" .icon=${s.luzmoFormula} .size=${this._triggerIconSize}></luzmo-icon>
|
|
86
|
+
</luzmo-action-button>
|
|
87
|
+
<luzmo-overlay
|
|
88
|
+
type="manual"
|
|
89
|
+
placement="bottom-end"
|
|
90
|
+
trigger="parameter-trigger"
|
|
91
|
+
receives-focus="false"
|
|
92
|
+
@luzmo-opened=${this._handleOpened}
|
|
93
|
+
@luzmo-closed=${this._handleClosed}
|
|
94
|
+
>
|
|
95
|
+
<luzmo-popover
|
|
96
|
+
class="parameter-panel"
|
|
97
|
+
size=${this.size}
|
|
98
|
+
role="dialog"
|
|
99
|
+
aria-label=${(0,u.msg)(`Filter parameters`,{desc:`Filter parameter picker dialog label`})}
|
|
100
|
+
@keydown=${this._handlePanelKeydown}
|
|
101
|
+
>
|
|
102
|
+
<div class="panel-content">
|
|
103
|
+
<div class="create-row">
|
|
104
|
+
<luzmo-text-field
|
|
105
|
+
id="parameter-name"
|
|
106
|
+
class="parameter-name-input"
|
|
107
|
+
size=${this.size}
|
|
108
|
+
.label=${(0,u.msg)(`Parameter name`,{desc:`Name for a new filter parameter`})}
|
|
109
|
+
.placeholder=${(0,u.msg)(`New parameter…`,{desc:`Placeholder of the new filter parameter name field`})}
|
|
110
|
+
.invalid=${this._duplicateName}
|
|
111
|
+
.value=${this._newParameterName}
|
|
112
|
+
@input=${this._handleNameInput}
|
|
113
|
+
@keydown=${this._handleNameKeydown}
|
|
114
|
+
></luzmo-text-field>
|
|
115
|
+
<luzmo-button
|
|
116
|
+
class="create-parameter"
|
|
117
|
+
size=${this.size}
|
|
118
|
+
variant="primary"
|
|
119
|
+
?disabled=${t}
|
|
120
|
+
@click=${this._handleCreateParameter}
|
|
121
|
+
>
|
|
122
|
+
${(0,u.msg)(`Add`,{desc:`Create a new filter parameter`})}
|
|
123
|
+
</luzmo-button>
|
|
124
|
+
</div>
|
|
125
|
+
${this._duplicateName?c.html`<div class="validation-message" role="alert">
|
|
126
|
+
${(0,u.msg)(`A parameter with this name already exists.`,{desc:`Duplicate filter parameter name error`})}
|
|
127
|
+
</div>`:c.nothing}
|
|
128
|
+
${this._parameterOptions.length>0?c.html`<luzmo-options
|
|
129
|
+
class="parameter-options"
|
|
130
|
+
size=${this.size}
|
|
131
|
+
.label=${(0,u.msg)(`Available parameters`,{desc:`Accessible label of the filter parameter list`})}
|
|
132
|
+
.options=${this._parameterOptions}
|
|
133
|
+
.value=${this.selectedParameter?[this.selectedParameter.parameter]:[]}
|
|
134
|
+
@change=${this._handleOptionsChange}
|
|
135
|
+
></luzmo-options>`:c.nothing}
|
|
136
|
+
${this._renderParameterType()}
|
|
137
|
+
</div>
|
|
138
|
+
</luzmo-popover>
|
|
139
|
+
</luzmo-overlay>
|
|
140
|
+
</div>
|
|
141
|
+
`}};e.n([(0,l.property)({attribute:!1})],K.prototype,`parameters`,void 0),e.n([(0,l.property)({attribute:!1})],K.prototype,`allowedTypes`,void 0),e.n([(0,l.property)({attribute:!1})],K.prototype,`selectedParameter`,void 0),e.n([(0,l.property)({attribute:!1})],K.prototype,`currentValue`,void 0),e.n([(0,l.property)({type:Boolean,reflect:!0})],K.prototype,`disabled`,void 0),e.n([(0,l.state)()],K.prototype,`_open`,void 0),e.n([(0,l.state)()],K.prototype,`_newParameterName`,void 0),e.n([(0,l.query)(`luzmo-overlay`)],K.prototype,`_overlay`,void 0),e.n([(0,l.query)(`.parameter-trigger`)],K.prototype,`_triggerElement`,void 0),e.n([(0,l.query)(`.parameter-options`)],K.prototype,`_optionsElement`,void 0),K=e.n([(0,u.localized)()],K),typeof customElements<`u`&&!customElements.get(`luzmo-filter-parameter-picker`)&&customElements.define(`luzmo-filter-parameter-picker`,K);var ze=`:host{flex-direction:row;min-width:0;max-width:100%;display:flex}luzmo-text-field{min-width:var(--luzmo-filter-value-picker-control-min-width,var(--filter-value-picker-control-min-width));max-width:100%}luzmo-filter-value-picker-datetime,luzmo-filter-value-picker-hierarchy,luzmo-filter-value-picker-numeric{flex:1;min-width:0;max-width:100%}:host{--filter-value-picker-control-min-width:0}`,Be=`:host{gap:var(--luzmo-filter-value-picker-datetime-gap,var(--filter-value-picker-datetime-gap));flex-flow:row;width:100%;min-width:0;max-width:100%;display:flex}luzmo-date-time-picker{--luzmo-date-time-picker-min-width:var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));flex:auto;min-width:0;max-width:100%}luzmo-number-field{flex:0 1 var(--luzmo-filter-value-picker-datetime-quantity-width,var(--filter-value-picker-datetime-quantity-width));min-width:0;max-width:100%}luzmo-picker{flex:1 1 var(--luzmo-filter-value-picker-datetime-control-min-width,var(--filter-value-picker-datetime-control-min-width));min-width:0;max-width:100%}:host{--filter-value-picker-datetime-gap:var(--luzmo-spacing-3);--filter-value-picker-datetime-control-min-width:5rem;--filter-value-picker-datetime-quantity-width:4.5rem}:host([size=s]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-2)}:host([size=m]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-value-picker-datetime-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1))}:host([size=xl]){--filter-value-picker-datetime-gap:var(--luzmo-spacing-4)}`,q=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.contentLanguage=`en`}static get styles(){return[(0,c.unsafeCSS)(Be)]}willUpdate(e){super.willUpdate(e),e.get(`filter`)&&([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(this.filter?.expression)?this.filter.parameters[1]={quantity:this.filter?.parameters?.[1]?.quantity??1,unit:this.filter?.parameters?.[1]?.unit??1}:[`last_completed`,`next_full`,`to_date`].includes(this.filter?.expression)?this.filter.parameters[1]={unit:this.filter?.parameters?.[1]?.unit??1}:this.filter.parameters[1]=typeof this.filter.parameters[1]==`string`?this.filter.parameters[1]:new Date().toISOString())}_sendChangeEvent(){this.filter.parameters=[{...this.filter?.parameters?.[0]},this._value],this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setDate(e){this._value=e.detail.value,this._value!==this.filter?.parameters?.[1]&&this._sendChangeEvent()}setUnit(e){let t=o.n.find(t=>t.key===e?.target?.value)?.level;this.filter?.parameters?.[1]?.unit!==t&&(this._value={unit:t??1,quantity:this.filter?.parameters?.[1]?.quantity??1},this._sendChangeEvent())}setQuantity(e){let t=e?.target?.value;this.filter?.parameters?.[1]?.quantity!==t&&(this._value={quantity:t,unit:this.filter?.parameters?.[1]?.unit??1},this._sendChangeEvent())}renderDatePicker(){let e=`second`;return this.filter?.parameters?.[0]?.lowestLevel>4&&(e=this.filter?.parameters?.[0]?.lowestLevel===5?`day`:this.filter?.parameters?.[0]?.lowestLevel===6?`hour`:this.filter?.parameters?.[0]?.lowestLevel===7?`minute`:`second`),c.html`<luzmo-date-time-picker
|
|
142
|
+
aria-label=${(0,u.msg)(`Filter date`,{desc:`Aria label for filter date picker`})}
|
|
143
|
+
.size=${this.size}
|
|
144
|
+
.precision=${e}
|
|
145
|
+
.timeZone=${this.timeZone}
|
|
146
|
+
@change=${this.setDate}
|
|
147
|
+
.value=${this.filter?.parameters?.[1]}
|
|
148
|
+
></luzmo-date-time-picker>`}renderQuantityField(){return c.html`<luzmo-number-field
|
|
149
|
+
label=${(0,u.msg)(`Quantity`,{desc:`Label for quantity number field`})}
|
|
150
|
+
.size=${this.size}
|
|
151
|
+
.value=${this.filter?.parameters?.[1]?.quantity}
|
|
152
|
+
@input=${this.setQuantity}
|
|
153
|
+
@change=${this.setQuantity}
|
|
154
|
+
></luzmo-number-field>`}renderUnitPicker(){let e=o.n.map(e=>c.html`<luzmo-menu-item .value=${e.key}>
|
|
155
|
+
${e.i18n()}
|
|
156
|
+
</luzmo-menu-item>`),t=o.n.find(e=>e.level===this.filter?.parameters?.[1]?.unit)?.key??o.n?.[0]?.key;return c.html`<luzmo-picker
|
|
157
|
+
.label=${(0,u.msg)(`Time unit`,{desc:`Aria label for time unit picker`})}
|
|
158
|
+
.size=${this.size}
|
|
159
|
+
.value=${t}
|
|
160
|
+
@change=${this.setUnit}
|
|
161
|
+
variant="highlight"
|
|
162
|
+
>${e}</luzmo-picker
|
|
163
|
+
>`}render(){let e=this.filter?.expression;return[`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(e)?c.html`${this.renderQuantityField()}${this.renderUnitPicker()}`:[`last_completed`,`next_full`].includes(e)?this.renderUnitPicker():this.renderDatePicker()}};e.n([(0,l.property)({type:String,attribute:`content-language`,reflect:!0})],q.prototype,`contentLanguage`,void 0),e.n([(0,l.property)({type:String,attribute:`time-zone`,reflect:!0})],q.prototype,`timeZone`,void 0),e.n([(0,l.property)({type:Object,reflect:!1})],q.prototype,`filter`,void 0),q=e.n([(0,u.localized)()],q),customElements.get(`luzmo-filter-value-picker-datetime`)||customElements.define(`luzmo-filter-value-picker-datetime`,q);var Ve=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-select,luzmo-text-field{min-width:var(--luzmo-filter-value-picker-hierarchy-control-min-width,var(--filter-value-picker-hierarchy-control-min-width));flex:auto;max-width:100%}.missing-value{color:var(--luzmo-filter-value-picker-hierarchy-missing-value-color,#767676)}:host{--filter-value-picker-hierarchy-control-min-width:0}`,He=5e3,J=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.contentLanguage=`en`,this._hierarchyValues=[],this._retrieving=!1,this._search=``,this._error=null,this._pending=!1,this._allValuesRetrieved=!1,this._hierarchyRequestGeneration=0,this._runningQueries=[]}static get styles(){return[(0,c.unsafeCSS)(Ve)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),t.t.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`),n=t?.expression,r=t?.parameters?.[0],i=this.filter?.parameters?.[0],a=(r?.columnId||r?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||r?.datasetId!==i?.datasetId;this.filter?.parameters?.[1]!==this._lastResolvedOutput&&(this._lastResolutionKey=void 0),a&&(this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1),a&&([`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter?.expression)||![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(n))&&(this._hierarchyValues=[],this._allValuesRetrieved=!1),[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(this.filter.expression)&&this._hierarchyValues.length===0&&this._restoreCachedFirstPage()}}updated(e){if(super.updated(e),!e.has(`filter`)||!this.filter)return;let t=e.get(`filter`)?.expression,n=[`? = ?`,`? != ?`].includes(this.filter.expression)&&t!==void 0&&![`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(t);n&&this._hierarchyValues.length>0?this._resolveSingleSelectValue():n&&!this._retrieving&&queueMicrotask(()=>{[`? = ?`,`? != ?`].includes(this.filter?.expression)&&this._hierarchyValues.length===0&&!this._retrieving&&this._fetchHierarchyValues(0,!0)})}_buildHierarchyQuery(e=0,t=this._search){let n=this.filter?.parameters?.[0];if(!n?.datasetId||!n.columnId&&!n.formulaId)return null;let r={column_id:n.columnId,formula_id:n.formulaId,dataset_id:n.datasetId},i={dimensions:[r],where:[],order:[{...r,order:`asc`}],limit:{by:He,offset:e}};return t&&i.where.push({expression:`? like ?`,parameters:[r,t]}),i}_getValues(e){return e&&Array.isArray(e.data)?e.data.map(e=>e[0]):[]}_applyHierarchyResult(e,t,n){let r=this._getValues(e);n||(this._allValuesRetrieved=r.length<He),this._hierarchyValues=t>0?[...this._hierarchyValues,...r]:r}_restoreCachedFirstPage(){let e=this._buildHierarchyQuery(0,``);if(!e)return!1;let n=t.t.getCachedData(e);return n?(this._applyHierarchyResult(n,0,``),this._retrieving=!1,this._error=null,!0):!1}_getMemberLabel(e){let t=i.t(e?.name,this.contentLanguage,{allowEmpty:!0});return typeof t==`string`?t:``}_findExactMember(e){return this._hierarchyValues.find(t=>String(t?.id)===e||this._getMemberLabel(t)===e)}_resolveSingleSelectValue(){if(![`? = ?`,`? != ?`].includes(this.filter?.expression)||this._hierarchyValues.length===0)return;let e=this.filter?.parameters?.[1];if(typeof e!=`string`&&typeof e!=`number`)return;let t=String(e),n=this._findExactMember(t),r=t.toLocaleLowerCase(this.contentLanguage),i=n??this._hierarchyValues.find(e=>String(e?.id).toLocaleLowerCase(this.contentLanguage).includes(r)||this._getMemberLabel(e).toLocaleLowerCase(this.contentLanguage).includes(r)),a=(n??i??this._hierarchyValues[0])?.id;if(typeof a!=`string`&&typeof a!=`number`)return;let o=this.filter.parameters[0],s=[o.datasetId,o.columnId??o.formulaId,this.filter.expression,String(e),String(a)].join(`|`);s!==this._lastResolutionKey&&(this._lastResolutionKey=s,this._lastResolvedOutput=a,this._value=a,this.filter={...this.filter,parameters:[{...this.filter.parameters[0]},a]},this._sendChangeEvent())}async _fetchHierarchyValues(e=0,n=!1){let r=this._search;if(!r&&this._allValuesRetrieved){this._retrieving=!1;return}if(e===0&&!r&&(this._restoreCachedFirstPage()||this._hierarchyValues.length>0)){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let i=this.filter.parameters[0],a=i.columnId,o=i.formulaId,s=i.datasetId;if(!a&&!o){this._retrieving=!1,this._error=`Missing column id or formula id`;return}else if(!s){this._retrieving=!1,this._error=`Missing dataset id`;return}let c=this._buildHierarchyQuery(e,r);if(!c)return;let l=this._hierarchyRequestGeneration;this._pending=n,this._retrieving=!0,this._error=null;let u=new AbortController,d=new Promise((e,n)=>{t.t.fetchData(c).then(e).catch(n),u.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),n({status:`aborted`})})}),f={promise:d,abortController:u};this._runningQueries.push(f);try{let t=await d;if(l!==this._hierarchyRequestGeneration)return;this._applyHierarchyResult(t,e,r),n&&!r&&this._resolveSingleSelectValue()}catch(e){if(l!==this._hierarchyRequestGeneration||e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._hierarchyValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==d),l===this._hierarchyRequestGeneration&&(this._pending=!1,this._retrieving=!1)}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setHierarchy(e){let t;t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:[`? = ?`,`? != ?`].includes(this.filter?.expression)?e?.detail?.value?.[0]:e?.target?.value,this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},this._value]},this._sendChangeEvent())}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._hierarchyValues.length-1&&this._fetchHierarchyValues(this._hierarchyValues.length)}renderTextField(){return c.html`<luzmo-text-field
|
|
164
|
+
label=${(0,u.msg)(`Filter value`,{desc:`Label for filter value text field`})}
|
|
165
|
+
.size=${this.size}
|
|
166
|
+
@change=${this.setHierarchy}
|
|
167
|
+
@input=${this.setHierarchy}
|
|
168
|
+
.value=${this.filter?.parameters?.[1]??``}
|
|
169
|
+
></luzmo-text-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchHierarchyValues()},500))}resetSearchString(){this._search=``,this._hierarchyRequestGeneration++,this._pending=!1,this._retrieving=!1,this._restoreCachedFirstPage()}onOpened(){this._fetchHierarchyValues()}_getSelectedOptionValue(){let e=this.filter?.parameters?.[1];return typeof e!=`string`&&typeof e!=`number`?e:this._findExactMember(String(e))?.id??e}renderHierarchyPicker(){if(this._error)return c.html`<div class="error" role="alert">Error: ${this._error}</div>`;let e=(this._search?this._hierarchyValues.filter(e=>i.t(e.name,this.contentLanguage,{allowEmpty:!0})?.toLowerCase().includes(this._search.toLowerCase())||e.toString().toLowerCase().includes(this._search.toLowerCase())):this._hierarchyValues).map(e=>{let t=i.t(e?.name,this.contentLanguage)??`N/A`;return typeof t!=`string`&&(t=`N/A`),{value:e?.id,label:t}}),t=this.filter?.expression,n=[`? = ?`,`? != ?`].includes(t),r=(0,u.msg)(`Selected {count} items`),a=(0,u.msg)(`Search`),o=(0,u.msg)(`No data`),s=(0,u.msg)(`No results`),l=(0,u.msg)(`Select...`);return c.html`<luzmo-select
|
|
170
|
+
.size=${this.size}
|
|
171
|
+
.label=${l}
|
|
172
|
+
.retrieving=${this._retrieving}
|
|
173
|
+
.pending=${this._pending}
|
|
174
|
+
.selects=${n?`single`:`multiple`}
|
|
175
|
+
.variant=${n?`highlight`:`checkboxes`}
|
|
176
|
+
emphasized
|
|
177
|
+
no-wrap
|
|
178
|
+
?invalid=${!!this._error}
|
|
179
|
+
.multipleLabelTemplate=${r}
|
|
180
|
+
.searchLabel=${a}
|
|
181
|
+
.noDataLabel=${o}
|
|
182
|
+
.noResultsLabel=${s}
|
|
183
|
+
@change=${this.setHierarchy}
|
|
184
|
+
@luzmo-search=${this.setSearchString}
|
|
185
|
+
@luzmo-opened=${this.onOpened}
|
|
186
|
+
@luzmo-closed=${this.resetSearchString}
|
|
187
|
+
@luzmo-scrolled=${this.onScrolled}
|
|
188
|
+
.options=${e}
|
|
189
|
+
.value=${n?[this._getSelectedOptionValue()]:this.filter?.parameters?.[1]}
|
|
190
|
+
>
|
|
191
|
+
</luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`,`? = ?`,`? != ?`].includes(e)?this.renderHierarchyPicker():this.renderTextField()}};e.n([(0,l.property)({type:String,attribute:`api-url`,reflect:!0})],J.prototype,`apiUrl`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-key`,reflect:!0})],J.prototype,`authKey`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-token`,reflect:!0})],J.prototype,`authToken`,void 0),e.n([(0,l.property)({type:Number,attribute:`cache-time`,reflect:!0})],J.prototype,`cacheTime`,void 0),e.n([(0,l.property)({type:String,attribute:`content-language`,reflect:!0})],J.prototype,`contentLanguage`,void 0),e.n([(0,l.property)({type:Object,reflect:!1})],J.prototype,`filter`,void 0),e.n([(0,l.state)()],J.prototype,`_hierarchyValues`,void 0),e.n([(0,l.state)()],J.prototype,`_retrieving`,void 0),e.n([(0,l.state)()],J.prototype,`_search`,void 0),e.n([(0,l.state)()],J.prototype,`_error`,void 0),e.n([(0,l.state)()],J.prototype,`_pending`,void 0),J=e.n([(0,u.localized)()],J),customElements.get(`luzmo-filter-value-picker-hierarchy`)||customElements.define(`luzmo-filter-value-picker-hierarchy`,J);var Ue=`:host{flex-direction:row;flex-shrink:1;min-width:0;display:flex}luzmo-number-field,luzmo-select{min-width:var(--luzmo-filter-value-picker-numeric-control-min-width,var(--filter-value-picker-numeric-control-min-width));flex:auto;max-width:100%}.missing-value{opacity:.4}:host{--filter-value-picker-numeric-control-min-width:0}`,We=5e3,Y=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.contentLanguage=`en`,this._numericValues=[],this._retrieving=!0,this._search=``,this._error=null,this._allValuesRetrieved=!1,this._runningQueries=[]}static get styles(){return[(0,c.unsafeCSS)(Ue)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),this.authKey&&this.authToken&&(e.authKey=this.authKey,e.authToken=this.authToken),t.t.configure(e)}willUpdate(e){if(super.willUpdate(e),e.has(`filter`)&&this.filter){let t=e.get(`filter`)?.expression,n=this.filter?.expression;((e.get(`filter`)?.parameters?.[0]?.columnId||e.get(`filter`)?.parameters?.[0]?.formulaId)!==(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)||![`? in ?`,`? not in ?`].includes(t))&&[`? in ?`,`? not in ?`].includes(n)&&(this._numericValues=[],this._allValuesRetrieved=!1,this._retrieving=!0)}}async _fetchNumericValues(e=0){if(this._allValuesRetrieved){this._retrieving=!1;return}if(!this.filter?.parameters?.[0]){this._retrieving=!1,this._error=`Missing column parameters`;return}let n=this.filter.parameters[0],r=n.columnId,i=n.formulaId,a=n.datasetId;if(!r&&!i){this._retrieving=!1,this._error=`Missing column id or formula id`;return}else if(!a){this._retrieving=!1,this._error=`Missing dataset id`;return}this._retrieving=!0,this._error=null;let o={expression:`? like ?`,parameters:[{dataset_id:a,expression:`CAST({${a}:${r??i}},hierarchy)`},this._search]},s={dimensions:[{column_id:r,formula_id:i,dataset_id:a}],where:[],order:[{column_id:r,formula_id:i,dataset_id:a,order:`asc`}],limit:{by:We,offset:e}};this._search&&!this._allValuesRetrieved&&s.where.push(o);let c=new AbortController,l=new Promise((e,n)=>{t.t.fetchData(s).then(e).catch(n),c.signal.addEventListener(`abort`,()=>{console.warn(`Request aborted`),n({status:`aborted`})})}),u={promise:l,abortController:c};this._runningQueries.push(u);try{let t=await l,n=t&&Array.isArray(t.data)?t.data.map(e=>e[0]):[];this._search||(this._allValuesRetrieved=n.length<We),this._numericValues=e>0?[...this._numericValues,...n]:n}catch(e){if(e?.status===`aborted`)return;this._error=e instanceof Error?e.message:`Unknown error`,this._numericValues=[]}finally{this._runningQueries=this._runningQueries.filter(e=>e.promise!==l),this._retrieving=!1}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:this._value}}))}setValue(e){let t=[`? in ?`,`? not in ?`].includes(this.filter?.expression)?e?.detail?.value:e?.target?.value;this._value!==t&&(this._value=t,this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._sendChangeEvent())}selectValue(e){let t=(e.detail?.value??``).map(e=>Number.parseFloat(e));this.filter={...this.filter,parameters:[{...this.filter?.parameters?.[0]},t]},this._value=t,this._sendChangeEvent()}onScrolled(e){!this._retrieving&&!this._allValuesRetrieved&&e?.detail?.last===this._numericValues.length-1&&this._fetchNumericValues(this._numericValues.length)}renderNumberField(){return c.html`<luzmo-number-field
|
|
192
|
+
label="Numeric filter value"
|
|
193
|
+
grows
|
|
194
|
+
.size=${this.size}
|
|
195
|
+
@change=${this.setValue}
|
|
196
|
+
@input=${this.setValue}
|
|
197
|
+
.value=${this.filter?.parameters?.[1]}
|
|
198
|
+
></luzmo-number-field>`}setSearchString(e){this._search=e?.detail?.string??``,this._allValuesRetrieved||(this._searchQueryTimeout&&(this._runningQueries.forEach(e=>{e?.abortController&&e.abortController.abort()}),this._runningQueries=[],clearTimeout(this._searchQueryTimeout)),this._searchQueryTimeout=setTimeout(()=>{this._fetchNumericValues()},500))}resetSearchString(){this._search=``}onOpened(){this._fetchNumericValues()}renderValuePicker(){if(this._error)return c.html`<div class="error" role="alert">${this._error}</div>`;let e=this._numericValues.filter(e=>e.toString().toLowerCase().includes(this._search.toLowerCase())).map(e=>({value:e,label:e})),t=(0,u.msg)(`Selected {count} items`),n=(0,u.msg)(`Search`),r=(0,u.msg)(`No data`),i=(0,u.msg)(`No results`),a=(0,u.msg)(`Select...`);return c.html`<luzmo-select
|
|
199
|
+
.size=${this.size}
|
|
200
|
+
.label=${a}
|
|
201
|
+
.retrieving=${this._retrieving}
|
|
202
|
+
selects="multiple"
|
|
203
|
+
variant="checkboxes"
|
|
204
|
+
emphasized
|
|
205
|
+
no-wrap
|
|
206
|
+
?invalid=${!!this._error}
|
|
207
|
+
.multipleLabelTemplate=${t}
|
|
208
|
+
.searchLabel=${n}
|
|
209
|
+
.noDataLabel=${r}
|
|
210
|
+
.noResultsLabel=${i}
|
|
211
|
+
@change=${this.selectValue}
|
|
212
|
+
@luzmo-search=${this.setSearchString}
|
|
213
|
+
@luzmo-opened=${this.onOpened}
|
|
214
|
+
@luzmo-closed=${this.resetSearchString}
|
|
215
|
+
@luzmo-scrolled=${this.onScrolled}
|
|
216
|
+
.options=${e}
|
|
217
|
+
.value=${this.filter?.parameters?.[1]}
|
|
218
|
+
>
|
|
219
|
+
</luzmo-select>`}render(){let e=this.filter?.expression;return[`? in ?`,`? not in ?`].includes(e)?this.renderValuePicker():this.renderNumberField()}};e.n([(0,l.property)({type:String,attribute:`api-url`,reflect:!0})],Y.prototype,`apiUrl`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-key`,reflect:!0})],Y.prototype,`authKey`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-token`,reflect:!0})],Y.prototype,`authToken`,void 0),e.n([(0,l.property)({type:Number,attribute:`cache-time`,reflect:!0})],Y.prototype,`cacheTime`,void 0),e.n([(0,l.property)({type:String,attribute:`content-language`,reflect:!0})],Y.prototype,`contentLanguage`,void 0),e.n([(0,l.property)({type:Object,reflect:!1})],Y.prototype,`filter`,void 0),e.n([(0,l.state)()],Y.prototype,`_numericValues`,void 0),e.n([(0,l.state)()],Y.prototype,`_retrieving`,void 0),e.n([(0,l.state)()],Y.prototype,`_search`,void 0),e.n([(0,l.state)()],Y.prototype,`_error`,void 0),Y=e.n([(0,u.localized)()],Y),customElements.get(`luzmo-filter-value-picker-numeric`)||customElements.define(`luzmo-filter-value-picker-numeric`,Y);var X=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.contentLanguage=`en`,this._expressionsWithoutValuePicker=new Set([`? is null`,`? is not null`,`to_date`])}static get styles(){return[(0,c.unsafeCSS)(ze)]}_sendChangeEvent(e){this.dispatchEvent(new CustomEvent(`luzmo-filter-value-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{value:e}}))}setFilterValue(e){e.stopPropagation(),this._sendChangeEvent(e?.detail?.value)}renderNumericValuePicker(){return c.html`<luzmo-filter-value-picker-numeric
|
|
220
|
+
.apiUrl=${this.apiUrl}
|
|
221
|
+
.authKey=${this.authKey}
|
|
222
|
+
.authToken=${this.authToken}
|
|
223
|
+
.cacheTime=${this.cacheTime}
|
|
224
|
+
.filter=${this.filter}
|
|
225
|
+
.size=${this.size}
|
|
226
|
+
.language=${this.language}
|
|
227
|
+
.contentLanguage=${this.contentLanguage}
|
|
228
|
+
@luzmo-filter-value-changed=${this.setFilterValue}
|
|
229
|
+
></luzmo-filter-value-picker-numeric>`}renderHierarchyValuePicker(){return c.html`<luzmo-filter-value-picker-hierarchy
|
|
230
|
+
.apiUrl=${this.apiUrl}
|
|
231
|
+
.authKey=${this.authKey}
|
|
232
|
+
.authToken=${this.authToken}
|
|
233
|
+
.cacheTime=${this.cacheTime}
|
|
234
|
+
.filter=${this.filter}
|
|
235
|
+
.size=${this.size}
|
|
236
|
+
.language=${this.language}
|
|
237
|
+
.contentLanguage=${this.contentLanguage}
|
|
238
|
+
@luzmo-filter-value-changed=${this.setFilterValue}
|
|
239
|
+
></luzmo-filter-value-picker-hierarchy>`}renderDateTimeValuePicker(){return c.html`<luzmo-filter-value-picker-datetime
|
|
240
|
+
.apiUrl=${this.apiUrl}
|
|
241
|
+
.authKey=${this.authKey}
|
|
242
|
+
.authToken=${this.authToken}
|
|
243
|
+
.cacheTime=${this.cacheTime}
|
|
244
|
+
.filter=${this.filter}
|
|
245
|
+
.timeZone=${this.timeZone}
|
|
246
|
+
.language=${this.language}
|
|
247
|
+
.contentLanguage=${this.contentLanguage}
|
|
248
|
+
.size=${this.size}
|
|
249
|
+
@luzmo-filter-value-changed=${this.setFilterValue}
|
|
250
|
+
></luzmo-filter-value-picker-datetime>`}renderDisabledTextField(){let e=this.filter?.parameters?.[1]??``;return c.html`<luzmo-text-field
|
|
251
|
+
label=${(0,u.msg)(`Filter value`,{desc:`Label for filter value text field`})}
|
|
252
|
+
.size=${this.size}
|
|
253
|
+
.value=${e}
|
|
254
|
+
.disabled=${!0}
|
|
255
|
+
></luzmo-text-field>`}render(){let e=this.valueType??``,t=this.filter?.expression;return!t||this._expressionsWithoutValuePicker.has(t)?c.html`
|
|
256
|
+
|
|
257
|
+
`:[`numeric`,`hierarchy`,`datetime`].includes(e)?e===`numeric`?this.renderNumericValuePicker():e===`datetime`?this.renderDateTimeValuePicker():this.renderHierarchyValuePicker():typeof this.filter?.parameters?.[1]==`string`?this.renderDisabledTextField():c.html`
|
|
258
|
+
|
|
259
|
+
`}};e.n([(0,l.property)({type:String,attribute:`api-url`,reflect:!0})],X.prototype,`apiUrl`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-key`,reflect:!0})],X.prototype,`authKey`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-token`,reflect:!0})],X.prototype,`authToken`,void 0),e.n([(0,l.property)({type:Number,attribute:`cache-time`,reflect:!0})],X.prototype,`cacheTime`,void 0),e.n([(0,l.property)({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),e.n([(0,l.property)({type:String,attribute:`time-zone`,reflect:!0})],X.prototype,`timeZone`,void 0),e.n([(0,l.property)({type:String,attribute:`value-type`,reflect:!0})],X.prototype,`valueType`,void 0),e.n([(0,l.property)({type:Object,reflect:!1})],X.prototype,`filter`,void 0),customElements.get(`luzmo-filter-value-picker`)||customElements.define(`luzmo-filter-value-picker`,X);var Ge=`:host{box-sizing:border-box;flex-direction:row;min-width:0;max-width:100%;display:flex}[role=group]{box-sizing:border-box;align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-flow:wrap;width:100%;min-width:0;max-width:100%;display:flex}luzmo-data-fields-select{flex:0 1 var(--luzmo-filter-item-field-width,var(--filter-item-field-width));min-width:min(100%, var(--luzmo-filter-item-field-min-width,var(--filter-item-field-min-width)));max-width:100%}luzmo-filter-expression-picker{flex:0 0 var(--luzmo-filter-item-expression-width,var(--filter-item-expression-width));max-width:100%}.value-controls{align-items:center;gap:var(--luzmo-filter-item-gap,var(--filter-item-gap));flex-wrap:nowrap;flex:var(--luzmo-filter-item-value-grow,var(--filter-item-value-grow)) 1 var(--luzmo-filter-item-value-width,var(--filter-item-value-width));min-width:min(100%, var(--luzmo-filter-item-value-min-width,var(--filter-item-value-min-width)));max-width:100%;display:flex}luzmo-filter-value-picker{flex:auto;min-width:0;max-width:100%}luzmo-filter-parameter-picker{flex:0 auto;min-width:0;max-width:100%}:host{--filter-item-gap:var(--luzmo-spacing-3);--filter-item-field-width:auto;--filter-item-expression-width:auto;--filter-item-value-width:auto;--filter-item-value-grow:0;--filter-item-field-min-width:4.5rem;--filter-item-value-min-width:4.5rem}:host([size=s]){--filter-item-gap:var(--luzmo-spacing-2)}:host([size=m]){--filter-item-gap:var(--luzmo-spacing-3)}:host([size=l]){--filter-item-gap:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1))}:host([size=xl]){--filter-item-gap:var(--luzmo-spacing-4)}`,Z=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filter={},this.allowParameters=!1,this.parameters=[],this._loading=!1,this._datasetsDataFields=[]}static get styles(){return[(0,c.unsafeCSS)(Ge)]}connectedCallback(){super.connectedCallback();let e={};this.apiUrl&&(e.apiUrl=this.apiUrl),this.cacheTime&&(e.staleTime=this.cacheTime,e.gcTime=this.cacheTime*2),e.authKey=this.authKey||``,e.authToken=this.authToken||``,t.t.configure(e)}_clearTypeState(){this._type=void 0,this._subType=void 0,this._isFormula=void 0}async _fetchDatasetDataFields(){if(!this.datasetIds||this.datasetIds.length===0){this._error=`Missing dataset ids to fetch columns & formulas`,this._datasetsDataFields=[],this._loading=!1;return}let{valid:e,invalid:r}=n.c(this.datasetIds);if(r.length>0&&console.warn(`[LuzmoFilterItem] Invalid dataset IDs provided (not valid UUIDs): ${r.join(`, `)}. These will be skipped.`),e.length===0){this._error=`Invalid dataset IDs provided. Dataset IDs must be valid UUIDs.`,this._datasetsDataFields=[],this._loading=!1;return}this._loading=!0,this._error=null;try{let n=await t.t.fetchDatasetsWithColumnsAndFormulas(e);for(let e of n)for(let t of[...e.columns,...e.formulas])t.datasetId=e.id;this._datasetsDataFields=n}catch(e){console.error(`Error fetching dataset columns & formulas:`,e),this._error=e instanceof Error?e.message:`Unknown error`,this._datasetsDataFields=[]}finally{this._loading=!1}}willUpdate(e){super.willUpdate(e);let n=e.has(`filter`),r=e.has(`datasetIds`),i=e.has(`authKey`),a=e.has(`authToken`),o=e.has(`_datasetsDataFields`),s=e.has(`parameters`);if(n||r||o&&(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId)&&this.filter?.parameters?.[0]?.datasetId)if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)this._clearTypeState();else{let e=this._datasetsDataFields.find(e=>e.id===this.filter.parameters?.[0]?.datasetId);if(e){let t=!1;for(let n of[...e.columns||[],...e?.formulas||[]])if(n.id===this.filter.parameters?.[0]?.columnId||n.id===this.filter.parameters?.[0]?.formulaId){this._type=n.type,this._subType=n.subtype,this._isFormula=n.id===this.filter.parameters?.[0]?.formulaId,t=!0;break}t||this._clearTypeState()}else this._clearTypeState()}if(i||a){let e={authKey:this.authKey||``,authToken:this.authToken||``};t.t.configure(e)}(r||i||a)&&this._fetchDatasetDataFields();let c=this.filter?.parameters?.[1],l=e.get(`filter`),u=!!l&&l.expression!==this.filter?.expression;if(this.allowParameters&&this._type&&(s||e.has(`_type`)||u)&&U(c)){let t=this.parameters.find(e=>e.parameter===c.parameter),n=V(this._type,this.filter?.expression),r=s||e.has(`_type`);if(u&&!n.includes(c.type)||r&&(!t||!n.includes(t.type))){let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}else if(r&&t&&JSON.stringify(t)!==JSON.stringify(c)){let e=structuredClone(this.filter);e.parameters[1]=structuredClone(t),this.filter=e,this._sendChangeEvent()}}}_sendChangeEvent(){this.dispatchEvent(new CustomEvent(`luzmo-filter-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:{filter:this.filter}}))}setFilterDataField(e){if(this._cannotReferenceColumn())return;let t=e.detail?.dataFields?.[0],n=this._type,r=this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId,i=!!this.filter?.parameters?.[0]?.formulaId,a=t?.columnId||t?.formulaId,o=U(this.filter?.parameters?.[1]);this._type=t?.type,this._subType=t?.subtype,this._isFormula=!!t?.formulaId;let s=R(this._type,this._subType,this._isFormula);this.filter=structuredClone(this.filter??{}),s?.includes(this.filter?.expression)||(this.filter.expression=s?.[0]?.expression),this.filter.parameters=this.filter?.parameters??[],this.filter.parameters[0]={datasetId:t?.datasetId},this._isFormula?this.filter.parameters[0].formulaId=t?.formulaId:this.filter.parameters[0].columnId=t?.columnId;let c=this.filter.properties??{};if(this._isFormula?i&&c.type!==void 0||(this.filter.properties={...c,type:`having`}):(c.type===void 0||i&&c.type===`having`)&&(this.filter.properties={...c,type:`where`}),t?.lowestLevel,n!==this._type)this._type===`hierarchy`?(this.filter.expression=`? like ?`,this.filter.parameters[1]=``):this._type===`numeric`?(this.filter.expression=`? > ?`,this.filter.parameters[1]=0):this._type===`datetime`?(this.filter.expression=`? < ?`,this.filter.parameters[1]=new Date().toISOString()):(this.filter.expression=`? is not null`,this.filter.parameters=[this.filter.parameters[0]]);else if(o&&r!==a){let e=G(this._type,this.filter.expression);this.filter.parameters=e===void 0?[this.filter.parameters[0]]:[this.filter.parameters[0],e]}else r!==a&&this._type===`hierarchy`&&(this.filter.parameters[1]=[`? in ?`,`? not in ?`].includes(this.filter.expression)?[]:``);this._sendChangeEvent()}setFilterExpression(e){if(this._cannotReferenceColumn())return;let t=structuredClone(this.filter??{}),n=t.expression;if(t.expression=e.detail?.expression,n!==t.expression){if(U(t.parameters?.[1])){let e=t.parameters[1];if(!V(this._type,t.expression).some(t=>t===e.type)){let e=G(this._type,t.expression);t.parameters=e===void 0?[t.parameters[0]]:[t.parameters[0],e]}}else if([`? is null`,`? is not null`].includes(t.expression))t.parameters=[t.parameters[0]];else if(this._type===`datetime`)if([`YTD`,`QTD`,`MTD`,`WTD`].includes(t.expression)){let n=e?.detail?.unit;n&&(t.parameters[1]={unit:typeof n==`number`?n:1})}else if([`last_completed`,`next_full`,`to_date`].includes(t.expression)){let e=t?.parameters?.[1]?.unit;t.parameters[1]={unit:typeof e==`number`?e:1}}else if([`last_now`,`last_available`,`next_now`,`more_than_ago`,`or_more_ago`].includes(t.expression)){let e=t?.parameters?.[1]?.unit,n=t?.parameters?.[1]?.quantity;t.parameters[1]={unit:typeof e==`number`?e:1,quantity:typeof n==`number`?n:1}}else t.parameters[1]=new Date().toISOString();else if(this._type===`hierarchy`)if([`? in ?`,`? not in ?`].includes(t.expression))[`? = ?`,`? != ?`].includes(n)?t.parameters[1]=t.parameters[1]?[t.parameters[1]]:[]:t.parameters[1]=[];else if([`? = ?`,`? != ?`].includes(t.expression))if([`? in ?`,`? not in ?`].includes(n))t.parameters[1]=Array.isArray(t.parameters[1])&&t.parameters[1][0]!=null?t.parameters[1][0]:``;else{let e=t.parameters[1];t.parameters[1]=typeof e==`string`||typeof e==`number`?e:``}else t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?``:t.parameters[1]??``;else this._type===`numeric`&&([`? in ?`,`? not in ?`].includes(t.expression)&&[`? in ?`,`? not in ?`].includes(n)?t.parameters[1]=t.parameters[1]??[]:[`? in ?`,`? not in ?`].includes(t.expression)?t.parameters[1]=[]:t.parameters[1]=[`? in ?`,`? not in ?`].includes(n)?0:t.parameters[1]??0);this.filter=t,this._sendChangeEvent()}}setFilterValue(e){this._cannotReferenceColumn()||(this.filter.parameters[1]=e?.detail?.value,this._sendChangeEvent())}handleFilterParameterSelected(e){let t=e.detail?.parameter;if(!t)return;let n=structuredClone(this.filter??{});n.parameters=n.parameters??[],n.parameters[1]=structuredClone(t),this.filter=n,this._sendChangeEvent()}handleFilterParameterRemoved(){if(!U(this.filter?.parameters?.[1]))return;let e=structuredClone(this.filter),t=G(this._type,e.expression);e.parameters=t===void 0?[e.parameters[0]]:[e.parameters[0],t],this.filter=e,this._sendChangeEvent()}_cannotReferenceColumn(){if(!(this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId))return!1;if(!this.datasetIds||this.datasetIds.length===0||this._datasetsDataFields.length===0)return!0;let e=this.filter?.parameters?.[0]?.datasetId,t=this._datasetsDataFields.find(t=>t.id===e);return!t||![...t.columns||[],...t.formulas||[]].find(e=>e.id===this.filter?.parameters?.[0]?.columnId||e.id===this.filter?.parameters?.[0]?.formulaId)}renderDataFieldPicker(){let e=this._cannotReferenceColumn(),t=e?(0,u.msg)(`Unknown`):void 0,n=e||this._loading?``:this.filter?.parameters?.[0]?.columnId||this.filter?.parameters?.[0]?.formulaId;return c.html`<luzmo-data-fields-select
|
|
260
|
+
.language=${this.language}
|
|
261
|
+
.contentLanguage=${this.contentLanguage}
|
|
262
|
+
.size=${this.size}
|
|
263
|
+
.value=${n?[n]:[]}
|
|
264
|
+
selects="single"
|
|
265
|
+
levels="off"
|
|
266
|
+
.datasetsDataFields=${this._datasetsDataFields}
|
|
267
|
+
placeholder=${(0,ee.ifDefined)(t)}
|
|
268
|
+
.invalid=${!!this._error||e}
|
|
269
|
+
?disabled=${e}
|
|
270
|
+
.retrieving=${this._loading}
|
|
271
|
+
.pending=${this._loading}
|
|
272
|
+
@luzmo-data-fields-selected=${this.setFilterDataField}
|
|
273
|
+
></luzmo-data-fields-select>`}renderExpressionPicker(){let e=this._cannotReferenceColumn(),t=this.filter?.parameters?.[0],n=!t?.datasetId||!t?.columnId&&!t?.formulaId||e;return c.html`<luzmo-filter-expression-picker
|
|
274
|
+
.language=${this.language}
|
|
275
|
+
.size=${this.size}
|
|
276
|
+
.type=${this._type}
|
|
277
|
+
.subtype=${this._subType}
|
|
278
|
+
.filter=${this.filter}
|
|
279
|
+
?isFormula=${this._isFormula}
|
|
280
|
+
?disabled=${n}
|
|
281
|
+
@luzmo-expression-selected=${this.setFilterExpression}
|
|
282
|
+
></luzmo-filter-expression-picker>`}renderValuePicker(){let e=this._cannotReferenceColumn(),t=this.filter?.parameters?.[0],n=!t?.datasetId||!t?.columnId&&!t?.formulaId||e;return c.html`<luzmo-filter-value-picker
|
|
283
|
+
.apiUrl=${this.apiUrl}
|
|
284
|
+
.authKey=${this.authKey}
|
|
285
|
+
.authToken=${this.authToken}
|
|
286
|
+
.cacheTime=${this.cacheTime}
|
|
287
|
+
.language=${this.language}
|
|
288
|
+
.contentLanguage=${this.contentLanguage}
|
|
289
|
+
.timeZone=${this.timeZone}
|
|
290
|
+
.size=${this.size}
|
|
291
|
+
.filter=${this.filter}
|
|
292
|
+
.valueType=${this._type}
|
|
293
|
+
?disabled=${n}
|
|
294
|
+
@luzmo-filter-value-changed=${this.setFilterValue}
|
|
295
|
+
></luzmo-filter-value-picker>`}renderParameterPicker(){if(!this.allowParameters)return null;let e=V(this._type,this.filter?.expression);if(e.length===0)return null;let t=U(this.filter?.parameters?.[1])?this.filter.parameters[1]:void 0;return c.html`<luzmo-filter-parameter-picker
|
|
296
|
+
.language=${this.language}
|
|
297
|
+
.size=${this.size}
|
|
298
|
+
.parameters=${this.parameters}
|
|
299
|
+
.allowedTypes=${e}
|
|
300
|
+
.selectedParameter=${t}
|
|
301
|
+
.currentValue=${t?t.value:this.filter?.parameters?.[1]}
|
|
302
|
+
?disabled=${this._cannotReferenceColumn()}
|
|
303
|
+
@luzmo-parameter-selected=${this.handleFilterParameterSelected}
|
|
304
|
+
@luzmo-parameter-removed=${this.handleFilterParameterRemoved}
|
|
305
|
+
></luzmo-filter-parameter-picker>`}render(){let e=U(this.filter?.parameters?.[1]);return c.html`<div role="group" aria-label=${(0,u.msg)(`Filter condition`,{desc:`Accessible label for filter item group`})}>
|
|
306
|
+
${this.renderDataFieldPicker()} ${this.renderExpressionPicker()}
|
|
307
|
+
<div class="value-controls">
|
|
308
|
+
${e?null:this.renderValuePicker()} ${this.renderParameterPicker()}
|
|
309
|
+
</div>
|
|
310
|
+
</div>`}};e.n([(0,l.property)({type:String,attribute:`api-url`,reflect:!0})],Z.prototype,`apiUrl`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-key`,reflect:!0})],Z.prototype,`authKey`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-token`,reflect:!0})],Z.prototype,`authToken`,void 0),e.n([(0,l.property)({type:Number,attribute:`cache-time`,reflect:!0})],Z.prototype,`cacheTime`,void 0),e.n([(0,l.property)({type:String,reflect:!0})],Z.prototype,`contentLanguage`,void 0),e.n([(0,l.property)({type:String,attribute:`time-zone`,reflect:!0})],Z.prototype,`timeZone`,void 0),e.n([(0,l.property)({type:Array,attribute:`dataset-ids`,reflect:!0})],Z.prototype,`datasetIds`,void 0),e.n([(0,l.property)({type:Object,reflect:!1})],Z.prototype,`filter`,void 0),e.n([(0,l.property)({type:Boolean,attribute:`allow-parameters`,reflect:!0})],Z.prototype,`allowParameters`,void 0),e.n([(0,l.property)({attribute:!1})],Z.prototype,`parameters`,void 0),e.n([(0,l.state)()],Z.prototype,`_type`,void 0),e.n([(0,l.state)()],Z.prototype,`_subType`,void 0),e.n([(0,l.state)()],Z.prototype,`_isFormula`,void 0),e.n([(0,l.state)()],Z.prototype,`_error`,void 0),e.n([(0,l.state)()],Z.prototype,`_loading`,void 0),e.n([(0,l.state)()],Z.prototype,`_datasetsDataFields`,void 0),Z=e.n([(0,u.localized)()],Z),customElements.get(`luzmo-filter-item`)||customElements.define(`luzmo-filter-item`,Z);var Ke=`:host{font-family:var(--luzmo-filters-font-family,var(--luzmo-font-family));color:var(--luzmo-filters-font-color,var(--luzmo-font-color));max-width:100%;display:block;container-type:inline-size}.filter-group-container{max-width:100%;padding:calc(var(--luzmo-indicator-gap) + 2 * var(--luzmo-indicator-width));overflow-x:hidden}.filter-group{flex-direction:row;min-width:0;max-width:100%;display:flex}.filter-group.nested{margin-top:var(--luzmo-filters-nested-group-margin-top,var(--filters-nested-group-margin-top));margin-bottom:var(--luzmo-filters-nested-group-margin-bottom,var(--filters-nested-group-margin-bottom))}.group-content{flex-direction:column;flex:1;min-width:0;display:flex}.filters-list{gap:var(--luzmo-filters-filters-list-gap,var(--filters-filters-list-gap));flex-direction:column;min-width:0;max-width:100%;display:flex}.filter-item-wrapper{align-items:flex-start;min-width:0;max-width:100%;display:flex;position:relative}.filter-item-content{align-items:flex-start;gap:var(--luzmo-filters-filter-line-gap,var(--filters-filter-line-gap));flex-wrap:nowrap;flex:1;min-width:0;display:flex}.filter-item-content luzmo-filter-item{flex:1;min-width:0}.filter-item-content .delete-filter-button{flex-shrink:0;align-self:flex-end;margin-inline-start:auto}.condition-wrapper{flex:0 0 var(--luzmo-filters-condition-warpper-width,var(--filters-condition-warpper-width));justify-content:center;align-items:center;display:flex;position:relative}.condition-wrapper:before{content:"";left:50%;top:var(--luzmo-filters-vertical-line-top,var(--filters-vertical-line-top));bottom:var(--luzmo-filters-vertical-line-bottom,var(--filters-vertical-line-bottom));width:var(--luzmo-filters-vertical-line-width,var(--filters-vertical-line-width));background:var(--luzmo-filters-vertical-line-color,var(--luzmo-border-color));position:absolute}.condition-badge{min-width:auto;padding-inline:var(--luzmo-filters-condition-padding-horizontal,var(--filters-condition-padding-horizontal));text-transform:uppercase;background:var(--luzmo-filters-condition-badge-background,var(--luzmo-primary));color:var(--luzmo-filters-condition-badge-color,var(--luzmo-primary-inverse-color));border-radius:var(--luzmo-filters-condition-badge-border-radius,var(--luzmo-border-radius));box-shadow:0 0 0 var(--luzmo-filters-condition-badge-halo,var(--filters-condition-badge-halo)) var(--luzmo-filters-condition-badge-background,var(--luzmo-background-color));font-weight:700}.condition-badge:hover{background:var(--luzmo-filters-condition-badge-background-hover,var(--luzmo-primary-hover))}.group-actions{margin-top:var(--luzmo-filters-group-actions-margin-top,var(--filters-group-actions-margin-top));gap:var(--luzmo-filters-group-actions-gap,var(--filters-group-actions-gap));flex-wrap:wrap;display:flex}.delete-group-button{margin-left:auto}.add-root-group-container{margin-top:var(--luzmo-filters-add-root-group-container-margin-top,var(--filters-add-root-group-container-margin-top));padding-left:0}.add-subgroup-button,.add-filter-button{--luzmo-action-button-text-to-visual:var(--luzmo-filters-group-actions-text-to-visual,var(--filters-group-actions-text-to-visual));--luzmo-action-button-content-color-default:var(--luzmo-filters-group-actions-color,var(--luzmo-primary-hover));--luzmo-action-button-content-color-hover:var(--luzmo-filters-group-actions-color-hover,var(--luzmo-primary-hover));--luzmo-action-button-content-color-down:var(--luzmo-filters-group-actions-color-down,var(--luzmo-primary-down));--luzmo-action-button-content-color-focus:var(--luzmo-filters-group-actions-color-focus,var(--luzmo-primary-focus))}.add-group-button{--luzmo-button-padding-label-to-icon:var(--luzmo-filters-add-group-button-text-to-visual,var(--filters-add-group-button-text-to-visual))}.dataset-ids-empty-message{color:var(--luzmo-filters-error-message-color,var(--luzmo-disabled-color));font-size:var(--luzmo-filters-error-message-font-size,var(--filters-font-size))}@container (width<=480px){.condition-badge{--luzmo-action-button-font-size:.6875rem;--luzmo-action-button-height:1.2rem;--luzmo-button-line-height:1.2rem;font-size:.6875rem;line-height:1.2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}:host([dir=rtl]) .condition-badge{transform:translate(-50%,-50%)rotate(90deg)}}:host{--filters-condition-warpper-width:56px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-3);--filters-filters-list-gap:var(--luzmo-spacing-3);--filters-nested-group-margin-top:var(--luzmo-spacing-3);--filters-nested-group-margin-bottom:var(--luzmo-spacing-3);--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-vertical-line-width:1px;--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-3);--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-4);--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size)}:host([size=s]){--filters-condition-warpper-width:48px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-2);--filters-vertical-line-bottom:var(--luzmo-spacing-2);--filters-group-actions-text-to-visual:var(--luzmo-spacing-1);--filters-add-group-button-text-to-visual:var(--luzmo-spacing-2);--filters-group-actions-gap:var(--luzmo-spacing-2);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-3);--filters-filter-line-gap:var(--luzmo-spacing-2);--filters-group-actions-margin-top:var(--luzmo-spacing-2);--filters-error-message-font-size:var(--luzmo-font-size-s)}:host([size=l]){--filters-condition-warpper-width:64px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:var(--luzmo-spacing-4);--filters-nested-group-margin-top:var(--luzmo-spacing-4);--filters-nested-group-margin-bottom:var(--luzmo-spacing-4);--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:var(--luzmo-spacing-2);--filters-add-group-button-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-group-actions-gap:var(--luzmo-spacing-3);--filters-add-root-group-container-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-filter-line-gap:var(--luzmo-spacing-3);--filters-group-actions-margin-top:var(--luzmo-spacing-3);--filters-error-message-font-size:var(--luzmo-font-size-l)}:host([size=xl]){--filters-condition-warpper-width:72px;--filters-condition-padding-horizontal:var(--luzmo-spacing-3);--filters-condition-badge-halo:var(--luzmo-spacing-4);--filters-filters-list-gap:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-top:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-nested-group-margin-bottom:calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--filters-vertical-line-top:var(--luzmo-spacing-3);--filters-vertical-line-bottom:var(--luzmo-spacing-3);--filters-group-actions-text-to-visual:calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--filters-add-group-button-text-to-visual:var(--luzmo-spacing-4);--filters-group-actions-gap:var(--luzmo-spacing-4);--filters-add-root-group-container-margin-top:var(--luzmo-spacing-5);--filters-filter-line-gap:var(--luzmo-spacing-4);--filters-group-actions-margin-top:var(--luzmo-spacing-4);--filters-error-message-font-size:var(--luzmo-font-size-xl)}@container (width<=480px){.filter-group-container{--filters-condition-warpper-width:32px;--filters-condition-padding-horizontal:var(--luzmo-spacing-2);--filters-condition-badge-halo:var(--luzmo-spacing-2);--filters-filters-list-gap:var(--luzmo-spacing-5)}}`;function qe(e){if(e instanceof p)return e;throw e}var Je={and:()=>(0,u.msg)(`AND`,{desc:`Logical AND condition for combining filters`}),or:()=>(0,u.msg)(`OR`,{desc:`Logical OR condition for combining filters`})};function Q(e){return e===`and`?`or`:`and`}var $=class extends e.t((0,f.SizedMixin)(f.LuzmoElement,{validSizes:Object.values(f.ElementSizes)})){constructor(...e){super(...e),this.apiUrl=`https://api.luzmo.com`,this.contentLanguage=`en`,this.filters=[],this.format=`canonical`,this.allowParameters=!1,this.parameters=[],this.debounce=300,this._internalFilterGroup=null,this._hasSyntheticRoot=!1,this._debounceTimeout=null}static get styles(){return[(0,c.unsafeCSS)(Ke)]}get _oneSizeSmaller(){return{xxs:`xxs`,xs:`xs`,s:`xs`,m:`s`,l:`m`,xl:`l`,xxl:`xl`}[this.size]||`s`}get _isDatasetIdsEmpty(){return!this.datasetIds||this.datasetIds.length===0}disconnectedCallback(){super.disconnectedCallback(),this._debounceTimeout&&=(clearTimeout(this._debounceTimeout),null)}willUpdate(e){if(super.willUpdate(e),e.has(`filters`))try{let e=I(this.filters);e.length===0?(this._internalFilterGroup=null,this._hasSyntheticRoot=!1):e.length===1?(this._internalFilterGroup=structuredClone(e[0]),this._hasSyntheticRoot=!1):(this._internalFilterGroup={condition:`and`,filters:structuredClone(e)},this._hasSyntheticRoot=!0)}catch(t){console.warn(`[${this.localName}] Keeping the current filters, the new value cannot be normalized:`,qe(t)),this.filters=e.get(`filters`)??[]}}_generateEmptyGroup(){return{id:a.t(),condition:`and`,filters:[]}}_generateEmptyFilter(){return{expression:void 0,parameters:[],properties:{id:a.t()}}}_rootGroupsForExport(){if(!this._internalFilterGroup)return[];let e=this._internalFilterGroup.filters.length>0&&this._internalFilterGroup.filters.every(e=>this._isGroup(e));return this._hasSyntheticRoot&&e?structuredClone(this._internalFilterGroup.filters):[structuredClone(this._internalFilterGroup)]}_getFiltersForExport(){let e=this._rootGroupsForExport(),t=this.format===`clean`?`clean`:`canonical`;if(e.length===0)return{filters:[],format:t};if(t===`clean`)try{return{filters:e.flatMap(e=>P(e,{format:`clean`})),format:`clean`}}catch(e){console.warn(`[${this.localName}] Cannot emit clean filters, falling back to canonical output:`,qe(e))}return{filters:e.flatMap(e=>P(e)),format:`canonical`}}_sendChangeEvent(){this._debounceTimeout&&clearTimeout(this._debounceTimeout);let e=()=>{this.dispatchEvent(new CustomEvent(`luzmo-filters-changed`,{bubbles:!0,composed:!0,cancelable:!0,detail:this._getFiltersForExport()}))};this.debounce>0?this._debounceTimeout=setTimeout(e,this.debounce):e()}_isGroup(e){return`condition`in e&&`filters`in e}_handleParameterCreated(e){let t=e.detail?.parameter;!t||this.parameters.some(({parameter:e})=>e===t.parameter)||(this.parameters=[...this.parameters,t])}_toggleCondition(e){e.condition=Q(e.condition),e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1),this.requestUpdate(),this._sendChangeEvent()}_addFilter(e){if(this._isDatasetIdsEmpty)return;let t=e;t||=(this._internalFilterGroup||=this._generateEmptyGroup(),this._internalFilterGroup),t.filters.push(this._generateEmptyFilter()),this.requestUpdate(),this._sendChangeEvent()}_addSubGroup(e){if(this._isDatasetIdsEmpty)return;let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this.requestUpdate(),this._sendChangeEvent()}_removeFilter(e,t){if(this._internalFilterGroup){if(e.filters.splice(t,1),e!==this._internalFilterGroup&&e.filters.length===0){let t=this._findParentGroup(this._internalFilterGroup,e);if(t){let n=t.filters.indexOf(e);n!==-1&&t.filters.splice(n,1)}}this._collapseGroupsAfterDelete(),this.requestUpdate(),this._sendChangeEvent()}}_updateFilter(e,t,n){n.stopPropagation(),this._isGroup(e.filters[t])||(e.filters[t]=n.detail.filter,this._sendChangeEvent())}_addGroup(){if(this._isDatasetIdsEmpty)return;this._internalFilterGroup||=this._generateEmptyGroup();let e=this._generateEmptyGroup();e.condition=Q(this._internalFilterGroup.condition),e.filters.push(this._internalFilterGroup);let t=this._generateEmptyGroup();t.condition=Q(e.condition),t.filters.push(this._generateEmptyFilter()),e.filters.push(t),this._internalFilterGroup=e,this._hasSyntheticRoot=!1,this.requestUpdate(),this._sendChangeEvent()}_renderFilterItem(e,t,n){return c.html`
|
|
311
|
+
<div class="filter-item-wrapper">
|
|
312
|
+
<div class="filter-item-content">
|
|
313
|
+
<luzmo-filter-item
|
|
314
|
+
.apiUrl=${this.apiUrl}
|
|
315
|
+
.authKey=${this.authKey}
|
|
316
|
+
.authToken=${this.authToken}
|
|
317
|
+
.cacheTime=${this.cacheTime}
|
|
318
|
+
.language=${this.language}
|
|
319
|
+
.contentLanguage=${this.contentLanguage}
|
|
320
|
+
.timeZone=${this.timeZone}
|
|
321
|
+
.datasetIds=${this.datasetIds}
|
|
322
|
+
.filter=${e}
|
|
323
|
+
.allowParameters=${this.allowParameters}
|
|
324
|
+
.parameters=${this.parameters}
|
|
325
|
+
.size=${this.size}
|
|
326
|
+
@luzmo-filter-changed=${this._updateFilter.bind(this,t,n)}
|
|
327
|
+
@luzmo-parameter-created=${this._handleParameterCreated}
|
|
328
|
+
></luzmo-filter-item>
|
|
329
|
+
<luzmo-action-button
|
|
330
|
+
class="delete-filter-button"
|
|
331
|
+
.size=${this.size}
|
|
332
|
+
quiet
|
|
333
|
+
.label=${(0,u.msg)(`Remove filter`,{desc:`Aria label for remove filter button`})}
|
|
334
|
+
@click=${this._removeFilter.bind(this,t,n)}
|
|
335
|
+
>
|
|
336
|
+
<luzmo-icon slot="icon" .icon=${s.luzmoTrashOutline} .size=${this.size}></luzmo-icon>
|
|
337
|
+
</luzmo-action-button>
|
|
338
|
+
</div>
|
|
339
|
+
</div>
|
|
340
|
+
`}_renderGroup(e,t=!1){let n=e.filters.length>0,r=e.filters.length>1,i=Je[e.condition]?.()??e.condition;return c.html`
|
|
341
|
+
<div class="filter-group ${t?`nested`:``}" role="group">
|
|
342
|
+
${t?c.html`
|
|
343
|
+
<div class="condition-wrapper">
|
|
344
|
+
${r?c.html`
|
|
345
|
+
<luzmo-action-button
|
|
346
|
+
class="condition-badge"
|
|
347
|
+
.size=${this._oneSizeSmaller}
|
|
348
|
+
quiet
|
|
349
|
+
aria-pressed=${e.condition===`and`?`true`:`false`}
|
|
350
|
+
.label=${(0,u.msg)(`Toggle filter condition, currently `,{desc:`Aria label prefix for filter condition toggle`})+i}
|
|
351
|
+
@click=${this._toggleCondition.bind(this,e)}
|
|
352
|
+
>
|
|
353
|
+
${i}
|
|
354
|
+
</luzmo-action-button>
|
|
355
|
+
`:``}
|
|
356
|
+
</div>
|
|
357
|
+
`:r?c.html`
|
|
358
|
+
<div class="condition-wrapper">
|
|
359
|
+
<luzmo-action-button
|
|
360
|
+
class="condition-badge"
|
|
361
|
+
.size=${this._oneSizeSmaller}
|
|
362
|
+
quiet
|
|
363
|
+
aria-pressed=${e.condition===`and`?`true`:`false`}
|
|
364
|
+
.label=${(0,u.msg)(`Toggle filter condition, currently `,{desc:`Aria label prefix for filter condition toggle`})+i}
|
|
365
|
+
@click=${this._toggleCondition.bind(this,e)}
|
|
366
|
+
>
|
|
367
|
+
${i}
|
|
368
|
+
</luzmo-action-button>
|
|
369
|
+
</div>
|
|
370
|
+
`:``}
|
|
371
|
+
<div class="group-content">
|
|
372
|
+
${n?c.html`
|
|
373
|
+
<div class="filters-list">
|
|
374
|
+
${(0,d.repeat)(e.filters,(e,t)=>t,(t,n)=>c.html`
|
|
375
|
+
${this._isGroup(t)?this._renderGroup(t,!0):this._renderFilterItem(t,e,n)}
|
|
376
|
+
`)}
|
|
377
|
+
</div>
|
|
378
|
+
`:``}
|
|
379
|
+
|
|
380
|
+
<div class="group-actions">
|
|
381
|
+
<luzmo-action-button
|
|
382
|
+
class="add-filter-button"
|
|
383
|
+
.size=${this.size}
|
|
384
|
+
quiet
|
|
385
|
+
?disabled=${this._isDatasetIdsEmpty}
|
|
386
|
+
@click=${this._addFilter.bind(this,e)}
|
|
387
|
+
>
|
|
388
|
+
<luzmo-icon slot="icon" .icon=${s.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
389
|
+
${(0,u.msg)(`Filter`,{desc:`Add filter button label`})}
|
|
390
|
+
</luzmo-action-button>
|
|
391
|
+
|
|
392
|
+
<luzmo-action-button
|
|
393
|
+
class="add-subgroup-button"
|
|
394
|
+
.size=${this.size}
|
|
395
|
+
quiet
|
|
396
|
+
?disabled=${this._isDatasetIdsEmpty}
|
|
397
|
+
@click=${this._addSubGroup.bind(this,e)}
|
|
398
|
+
>
|
|
399
|
+
<luzmo-icon slot="icon" .icon=${s.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
400
|
+
${(0,u.msg)(`Subgroup`,{desc:`Add subgroup button label`})}
|
|
401
|
+
</luzmo-action-button>
|
|
402
|
+
</div>
|
|
403
|
+
</div>
|
|
404
|
+
</div>
|
|
405
|
+
`}_findParentGroup(e,t){for(let n of e.filters){if(n===t)return e;if(this._isGroup(n)){let e=this._findParentGroup(n,t);if(e)return e}}return null}_collapseIfNeeded(e){if(e.filters.length===1&&this._isGroup(e.filters[0])){let t=e.filters[0];e.condition=t.condition,e.filters=t.filters,e.id=t.id,e.clause=t.clause,e.origin=t.origin,e.datasetId=t.datasetId,e.vizId=t.vizId,e.itemId=t.itemId,e.isDrilldown=t.isDrilldown,e.type=t.type,e===this._internalFilterGroup&&(this._hasSyntheticRoot=!1)}}_collapseGroupsAfterDelete(){if(!this._internalFilterGroup)return;let e=t=>{for(let n of t.filters)this._isGroup(n)&&e(n);this._collapseIfNeeded(t)};e(this._internalFilterGroup)}render(){if(this._isDatasetIdsEmpty)return c.html`
|
|
406
|
+
<div class="filter-group-container">
|
|
407
|
+
<div class="dataset-ids-empty-message" role="status">
|
|
408
|
+
${(0,u.msg)(`Cannot retrieve dataset data fields`,{desc:`Error message when datasetIds is empty`})}
|
|
409
|
+
</div>
|
|
410
|
+
</div>
|
|
411
|
+
`;if(!this._internalFilterGroup||this._internalFilterGroup.filters.length===0)return c.html`
|
|
412
|
+
<div class="filter-group-container">
|
|
413
|
+
<luzmo-button
|
|
414
|
+
class="add-filter-button"
|
|
415
|
+
.size=${this.size}
|
|
416
|
+
treatment="outline"
|
|
417
|
+
?disabled=${this._isDatasetIdsEmpty}
|
|
418
|
+
@click=${()=>this._addFilter()}
|
|
419
|
+
>
|
|
420
|
+
<luzmo-icon slot="icon" .icon=${s.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
421
|
+
${(0,u.msg)(`Add filter`,{desc:`Add filter button label`})}
|
|
422
|
+
</luzmo-button>
|
|
423
|
+
</div>
|
|
424
|
+
`;let e=this._internalFilterGroup.filters.length>1;return c.html`
|
|
425
|
+
<div class="filter-group-container">
|
|
426
|
+
${this._renderGroup(this._internalFilterGroup)}
|
|
427
|
+
|
|
428
|
+
${e?c.html`
|
|
429
|
+
<div class="add-root-group-container">
|
|
430
|
+
<luzmo-button
|
|
431
|
+
class="add-group-button"
|
|
432
|
+
.size=${this.size}
|
|
433
|
+
treatment="outline"
|
|
434
|
+
?disabled=${this._isDatasetIdsEmpty}
|
|
435
|
+
@click=${this._addGroup}
|
|
436
|
+
>
|
|
437
|
+
<luzmo-icon slot="icon" .icon=${s.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
|
|
438
|
+
${(0,u.msg)(`Group`,{desc:`Add group button label`})}
|
|
439
|
+
</luzmo-button>
|
|
440
|
+
</div>
|
|
441
|
+
`:``}
|
|
442
|
+
</div>
|
|
443
|
+
`}};e.n([(0,l.property)({type:String,attribute:`api-url`,reflect:!0})],$.prototype,`apiUrl`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),e.n([(0,l.property)({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),e.n([(0,l.property)({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),e.n([(0,l.property)({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),e.n([(0,l.property)({type:String,attribute:`time-zone`,reflect:!0})],$.prototype,`timeZone`,void 0),e.n([(0,l.property)({type:Array,attribute:`dataset-ids`,reflect:!0})],$.prototype,`datasetIds`,void 0),e.n([(0,l.property)({type:Array,reflect:!1})],$.prototype,`filters`,void 0),e.n([(0,l.property)({type:String,reflect:!0})],$.prototype,`format`,void 0),e.n([(0,l.property)({type:Boolean,attribute:`allow-parameters`,reflect:!0})],$.prototype,`allowParameters`,void 0),e.n([(0,l.property)({attribute:!1})],$.prototype,`parameters`,void 0),e.n([(0,l.property)({type:Number,reflect:!0})],$.prototype,`debounce`,void 0),e.n([(0,l.state)()],$.prototype,`_internalFilterGroup`,void 0),$=e.n([(0,u.localized)()],$),customElements.get(`luzmo-filters`)||customElements.define(`luzmo-filters`,$),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return te}});
|
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18
18
|
* SOFTWARE.
|
|
19
19
|
* */
|
|
20
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../formula-
|
|
20
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../formula-BFvxm8kj.cjs");Object.defineProperty(exports,"LuzmoFormula",{enumerable:!0,get:function(){return e.t}});
|