@luzmo/analytics-components-kit 1.0.8-beta.1 → 1.0.8-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -1
- package/components/ai-chat/index.cjs +1 -1
- package/components/ai-chat/index.js +2 -2
- package/components/{ai-chat-Bo0ELL9Z.cjs → ai-chat-D1Rzwdxy.cjs} +1 -1
- package/components/{ai-chat-hOxsY5sO.js → ai-chat-Dy_utMXO.js} +1 -1
- package/components/ai-interaction-textarea/index.cjs +1 -1
- package/components/ai-interaction-textarea/index.js +1 -1
- package/components/{ai-interaction-textarea-DvILxmFe.cjs → ai-interaction-textarea-CJO50_1F.cjs} +1 -1
- package/components/{ai-interaction-textarea-r77TFOk6.js → ai-interaction-textarea-DMT8RNUP.js} +2 -2
- package/components/{area-chart-positioning.config-BqKl3pFu.cjs → area-chart-positioning.config-BstzDLRL.cjs} +1 -1
- package/components/{area-chart-positioning.config-Br2P8CiM.js → area-chart-positioning.config-DeMlkQZO.js} +1 -1
- package/components/{bar-chart-positioning.config-BIIRV0eK.js → bar-chart-positioning.config-Cw4xXpaU.js} +1 -1
- package/components/{bar-chart-positioning.config-CuZ6-d9P.cjs → bar-chart-positioning.config-DDKGGZhU.cjs} +1 -1
- package/components/{base-store-DmDe0dTU.js → base-store-BhGpnbqi.js} +0 -8
- package/components/{base-store-DHC2m2Os.cjs → base-store-D5cDq6d4.cjs} +1 -1
- package/components/{box-plot-positioning.config-AHLRC1d-.js → box-plot-positioning.config-BQf8CX15.js} +1 -1
- package/components/{box-plot-positioning.config-DAYgLURB.cjs → box-plot-positioning.config-Cni8SYCB.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-0rqhisQ0.cjs → bubble-chart-positioning.config-1Q2GxFJ4.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-55OuqSo_.js → bubble-chart-positioning.config-BYeXJRKW.js} +1 -1
- package/components/{bullet-chart-positioning.config-CIkbLbi3.js → bullet-chart-positioning.config-D-fuuO8D.js} +1 -1
- package/components/{bullet-chart-positioning.config-COKnJxPm.cjs → bullet-chart-positioning.config-NSHvsWAf.cjs} +1 -1
- package/components/{choropleth-map-positioning.config-C9QGy6XL.js → choropleth-map-positioning.config-Bk2lcbUF.js} +1 -1
- package/components/{choropleth-map-positioning.config-0EBrFMj-.cjs → choropleth-map-positioning.config-DZCuGwit.cjs} +1 -1
- package/components/{circle-pack-chart-positioning.config-BtQ9KsU9.cjs → circle-pack-chart-positioning.config-CuESD4oH.cjs} +1 -1
- package/components/{circle-pack-chart-positioning.config-vl4eZHhs.js → circle-pack-chart-positioning.config-pvlFSoeh.js} +1 -1
- package/components/{circular-gauge-positioning.config-B-65zgBL.js → circular-gauge-positioning.config-BI5_9VzK.js} +1 -1
- package/components/{circular-gauge-positioning.config-BjDwC0zc.cjs → circular-gauge-positioning.config-DIYxTFVO.cjs} +1 -1
- package/components/{column-chart-positioning.config-CDISLkz9.js → column-chart-positioning.config-CoekgrWc.js} +1 -1
- package/components/{column-chart-positioning.config-hIAFqQkL.cjs → column-chart-positioning.config-F5liDplz.cjs} +1 -1
- package/components/{combination-chart-positioning.config-CFo18WDh.cjs → combination-chart-positioning.config-BIqhiqPc.cjs} +1 -1
- package/components/{combination-chart-positioning.config-C0immu_Z.js → combination-chart-positioning.config-gfmXofUL.js} +1 -1
- package/components/{conditional-number-positioning.config-Bw0gHZ2o.cjs → conditional-number-positioning.config-7xN8yNaC.cjs} +1 -1
- package/components/{conditional-number-positioning.config-BfOZxdI3.js → conditional-number-positioning.config-DoA_qMvA.js} +1 -1
- package/components/{data-broker-Bdv5V8Yp.js → data-broker-B0uUO5er.js} +4 -0
- package/components/{data-broker-DWEXs6-2.cjs → data-broker-CyMYR6w1.cjs} +1 -1
- package/components/data-field-panel/index.cjs +1 -1
- package/components/data-field-panel/index.js +1 -1
- package/components/{data-field-panel-bka3sr4V.cjs → data-field-panel-B9aYsBfe.cjs} +1 -1
- package/components/{data-field-panel-Y8MKxsTL.js → data-field-panel-COHppDw6.js} +2 -2
- package/components/data-fields-select/index.cjs +1 -1
- package/components/data-fields-select/index.js +1 -1
- package/components/data-fields-select-BMDWXAMz.cjs +41 -0
- package/components/{data-fields-select-2P9sGs_9.js → data-fields-select-CvdABHum.js} +1 -1
- package/components/dataset-selector-list/index.cjs +1 -1
- package/components/dataset-selector-list/index.js +1 -1
- package/components/{dataset-selector-list-DhiiMGU8.cjs → dataset-selector-list-CekhYtbU.cjs} +1 -1
- package/components/{dataset-selector-list-qeYvQkeD.js → dataset-selector-list-yU9o-gBK.js} +1 -1
- package/components/dataset-selector-row/index.cjs +1 -1
- package/components/dataset-selector-row/index.js +1 -1
- package/components/{dataset-selector-row-Cau2IKg2.cjs → dataset-selector-row-Cte3skmf.cjs} +1 -1
- package/components/{dataset-selector-row-C8_Hnlp5.js → dataset-selector-row-eb2fUxMB.js} +1 -1
- package/components/display-settings/index.cjs +1 -1
- package/components/display-settings/index.js +1 -1
- package/components/{display-settings-C088VTeJ.cjs → display-settings-B_sY5MXH.cjs} +1 -1
- package/components/{display-settings-BShiJjYL.js → display-settings-DpPSk_da.js} +1 -1
- package/components/{donut-chart-positioning.config-BPY9_d1a.js → donut-chart-positioning.config-B-CWvQDP.js} +1 -1
- package/components/{donut-chart-positioning.config-D1CzQ5Xn.cjs → donut-chart-positioning.config-DsHR-HET.cjs} +1 -1
- package/components/{evolution-number-positioning.config-DLO4M9Cs.cjs → evolution-number-positioning.config-DWJlecZ8.cjs} +1 -1
- package/components/{evolution-number-positioning.config-Cylb9kiq.js → evolution-number-positioning.config-DogBtixy.js} +1 -1
- package/components/filter-expression-picker/index.cjs +1 -1
- package/components/filter-expression-picker/index.js +1 -1
- package/components/{filter-expression-picker-CGgLtygy.cjs → filter-expression-picker-Dtd04YHa.cjs} +1 -1
- package/components/{filter-expression-picker-DC_fSNw3.js → filter-expression-picker-vZcmpdhp.js} +1 -1
- package/components/filter-item/filter-item.d.ts +4 -0
- package/components/filter-item/index.cjs +1 -1
- package/components/filter-item/index.js +1 -1
- package/components/{filter-item-xi4ViBw6.js → filter-item-DhWm1nZ2.js} +26 -11
- package/components/filter-item-QGXrunyl.cjs +71 -0
- package/components/filter-value-picker/index.cjs +1 -1
- package/components/filter-value-picker/index.js +1 -1
- package/components/{filter-value-picker-CaMy7sgw.js → filter-value-picker-DL-XI9zN.js} +3 -3
- package/components/{filter-value-picker-BhZ1btu2.cjs → filter-value-picker-DUPgUphE.cjs} +1 -1
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +2 -1
- package/components/filter-value-picker-datetime/index.cjs +1 -1
- package/components/filter-value-picker-datetime/index.js +1 -1
- package/components/{filter-value-picker-datetime-DeXo9m9J.cjs → filter-value-picker-datetime-BYosmOVo.cjs} +1 -1
- package/components/{filter-value-picker-datetime-swmPuya2.js → filter-value-picker-datetime-DrtBsmhk.js} +1 -1
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +16 -0
- package/components/filter-value-picker-hierarchy/index.cjs +1 -1
- package/components/filter-value-picker-hierarchy/index.js +1 -1
- package/components/filter-value-picker-hierarchy-Co7tEAF0.cjs +48 -0
- package/components/{filter-value-picker-hierarchy-CUrCfFBg.js → filter-value-picker-hierarchy-D9HPNjXi.js} +119 -52
- package/components/filter-value-picker-numeric/index.cjs +1 -1
- package/components/filter-value-picker-numeric/index.js +1 -1
- package/components/{filter-value-picker-numeric-LHFsFwHY.cjs → filter-value-picker-numeric-BCaSriJT.cjs} +1 -1
- package/components/{filter-value-picker-numeric-_7THOfQ3.js → filter-value-picker-numeric-CLRBOcom.js} +2 -2
- package/components/filters/index.cjs +1 -1
- package/components/filters/index.js +1 -1
- package/components/filters-DPh6G5_6.cjs +153 -0
- package/components/{filters-CGlwSB1c.js → filters-hIID3Ol5.js} +172 -169
- package/components/formula/index.cjs +1 -1
- package/components/formula/index.js +1 -1
- package/components/{formula-Cs6dyuWv.js → formula-D6fZk242.js} +2 -2
- package/components/{formula-fK-POHy0.cjs → formula-DJa0m0vt.cjs} +1 -1
- package/components/{formula-codemirror-DQjUbRXS.js → formula-codemirror-CS38irmY.js} +2 -2
- package/components/{formula-codemirror-DWNgYsVG.cjs → formula-codemirror-ClMjdWte.cjs} +1 -1
- package/components/{formula-display-store-B7NE3yk2.js → formula-display-store-BVCcrqMB.js} +2 -2
- package/components/{formula-display-store-CIaihdJt.cjs → formula-display-store-riWDbPmO.cjs} +1 -1
- package/components/formula-editor/index.cjs +1 -1
- package/components/formula-editor/index.js +3 -3
- package/components/{formula-editor-RrAmSugR.js → formula-editor-C63ifj9i.js} +4 -4
- package/components/{formula-editor-DHau0kyj.cjs → formula-editor-KuJjGn6h.cjs} +1 -1
- package/components/formula-field/index.cjs +1 -1
- package/components/formula-field/index.js +1 -1
- package/components/{formula-field-YNbqmroG.cjs → formula-field-BIseRR26.cjs} +1 -1
- package/components/{formula-field-BU-tU8RC.js → formula-field-CZu-WBKI.js} +1 -1
- package/components/{formula-input-base-DbJu89ug.cjs → formula-input-base-B1D56Klw.cjs} +1 -1
- package/components/{formula-input-base-BL7QCVYc.js → formula-input-base-DhhV4mbQ.js} +1 -1
- package/components/{funnel-chart-positioning.config-si2pX2gx.js → funnel-chart-positioning.config-D7871iXX.js} +1 -1
- package/components/{funnel-chart-positioning.config-BBNWT_VE.cjs → funnel-chart-positioning.config-DswPJ8VG.cjs} +1 -1
- package/components/{groupings-Xmt8wNT9.js → groupings-BwzDflId.js} +1 -1
- package/components/{groupings-4QHaRJAm.cjs → groupings-Dt2yC9fH.cjs} +1 -1
- package/components/{heat-map-positioning.config-DI5FunDJ.cjs → heat-map-positioning.config-C9xyxr1p.cjs} +1 -1
- package/components/{heat-map-positioning.config-DOlrArXK.js → heat-map-positioning.config-sZTsAUnf.js} +1 -1
- package/components/{heat-table-positioning.config-iu4AP8qY.cjs → heat-table-positioning.config-B5XgRMIn.cjs} +1 -1
- package/components/{heat-table-positioning.config-COaenQ4o.js → heat-table-positioning.config-DSsD8apM.js} +1 -1
- package/components/{hexbin-map-positioning.config-BhuH9uzL.js → hexbin-map-positioning.config-Dc9wAdAv.js} +1 -1
- package/components/{marker-map-positioning.config-Bt-iQQTT.cjs → hexbin-map-positioning.config-Dq2TuFz1.cjs} +1 -1
- package/components/index.cjs +1 -1
- package/components/index.js +38 -38
- package/components/interactive-viz-item/index.cjs +1 -1
- package/components/interactive-viz-item/index.js +1 -1
- package/components/{interactive-viz-item-Ckksv6BC.cjs → interactive-viz-item-Bn9IhEvD.cjs} +1 -1
- package/components/{interactive-viz-item-diknEJmH.js → interactive-viz-item-CXHq9Csp.js} +3 -3
- package/components/item-grid/index.cjs +1 -1
- package/components/item-grid/index.js +1 -1
- package/components/{item-grid-Dv_KLkHv.cjs → item-grid-B8tT6ztQ.cjs} +2 -2
- package/components/{item-grid-BxeW2lFX.js → item-grid-D7b0blK6.js} +47 -47
- package/components/item-option/index.cjs +1 -1
- package/components/item-option/index.js +1 -1
- package/components/{item-option-n8o2amMX.js → item-option-Dc4GNRMW.js} +120 -126
- package/components/item-option-dwknAAj9.cjs +269 -0
- package/components/item-option-panel/index.cjs +1 -1
- package/components/item-option-panel/index.js +1 -1
- package/components/{item-option-panel-h1z2MCbr.js → item-option-panel-DIU-3auc.js} +1 -1
- package/components/{item-option-panel-m9BDbDRw.cjs → item-option-panel-Dv6v7RzM.cjs} +1 -1
- package/components/item-slot-drop/index.cjs +1 -1
- package/components/item-slot-drop/index.js +1 -1
- package/components/{item-slot-drop-iXidsCW1.js → item-slot-drop-BL7DOudd.js} +12 -12
- package/components/{item-slot-drop-CViqm_N2.cjs → item-slot-drop-Ds06u_vn.cjs} +1 -1
- 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-BjOPdyYH.cjs → item-slot-drop-panel-D_EFyM9J.cjs} +1 -1
- package/components/{item-slot-drop-panel-DwNCcxm1.js → item-slot-drop-panel-DkHylw7i.js} +37 -37
- package/components/item-slot-picker/index.cjs +1 -1
- package/components/item-slot-picker/index.js +1 -1
- package/components/{item-slot-picker-D8e1NtDd.cjs → item-slot-picker-BbpPIoIq.cjs} +3 -3
- package/components/{item-slot-picker-DpnpGTvR.js → item-slot-picker-CywUgvNX.js} +15 -15
- 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-l53YLi4e.js → item-slot-picker-panel-Bi8xZaYc.js} +2 -2
- package/components/{item-slot-picker-panel-DyP6Uls5.cjs → item-slot-picker-panel-DQLwQXdI.cjs} +1 -1
- package/components/{line-chart-positioning.config-BAt_nsVA.cjs → line-chart-positioning.config-CCsZMpp-.cjs} +1 -1
- package/components/{line-chart-positioning.config-A4TQKtrY.js → line-chart-positioning.config-q_XJiQBO.js} +1 -1
- package/components/{load-data-fields-for-datasets-BNnr8x3m.js → load-data-fields-for-datasets-B3XcFFfg.js} +1 -1
- package/components/{load-data-fields-for-datasets-CW4Voiex.cjs → load-data-fields-for-datasets-rL24A68g.cjs} +1 -1
- package/components/{hexbin-map-positioning.config-CZGNbr60.cjs → marker-map-positioning.config-B4GDDPUn.cjs} +1 -1
- package/components/{marker-map-positioning.config-B-EQ3Kdq.js → marker-map-positioning.config-qEo6YbOG.js} +1 -1
- package/components/{ohlc-chart-positioning.config-Shmm9MJf.js → ohlc-chart-positioning.config-CU7qaa8y.js} +1 -1
- package/components/{ohlc-chart-positioning.config-COj7yt6H.cjs → ohlc-chart-positioning.config-TquTA1gZ.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-ClvpDIFu.cjs → parallel-coordinates-plot-positioning.config-C8_F3uzs.cjs} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-C05rBaKD.js → parallel-coordinates-plot-positioning.config-DuQWnPKv.js} +1 -1
- package/components/{pivot-table-positioning.config-BGlPvMyz.js → pivot-table-positioning.config-B6ra1dbJ.js} +1 -1
- package/components/{pivot-table-positioning.config-CDJ5gAfT.cjs → pivot-table-positioning.config-DhtDGn-Z.cjs} +1 -1
- package/components/{pyramid-chart-positioning.config-DvhVY2uQ.cjs → pyramid-chart-positioning.config-5bWhJBP_.cjs} +1 -1
- package/components/{pyramid-chart-positioning.config-BcqgH441.js → pyramid-chart-positioning.config-C_KASxlG.js} +1 -1
- package/components/{radar-chart-positioning.config-COMI8Da1.cjs → radar-chart-positioning.config-D2NVgsg1.cjs} +1 -1
- package/components/{radar-chart-positioning.config-C9tXOa0G.js → radar-chart-positioning.config-l6ioKbxT.js} +1 -1
- package/components/{route-map-positioning.config-Bi8-Dmc4.cjs → route-map-positioning.config-5Xju6VM-.cjs} +1 -1
- package/components/{route-map-positioning.config-BUIlsZig.js → route-map-positioning.config-HDuhd3TI.js} +1 -1
- package/components/{sankey-diagram-positioning.config-DUAsNKP9.js → sankey-diagram-positioning.config-BKeksOQ2.js} +1 -1
- package/components/{sankey-diagram-positioning.config-DgZpfj7d.cjs → sankey-diagram-positioning.config-BXseVUED.cjs} +1 -1
- package/components/{scatter-plot-positioning.config-8c9ToDBN.cjs → scatter-plot-positioning.config-Ci_UFZZ7.cjs} +1 -1
- package/components/{scatter-plot-positioning.config-D6dyNojk.js → scatter-plot-positioning.config-MFGPELRh.js} +1 -1
- package/components/set-nested-value-B-4IelRl.cjs +20 -0
- package/components/set-nested-value-V1TdquO3.js +33 -0
- package/components/{slicer-filter-positioning.config-CqPOeeeg.cjs → slicer-filter-positioning.config-C2w10p-X.cjs} +1 -1
- package/components/{slicer-filter-positioning.config-BnxE_Ac2.js → slicer-filter-positioning.config-CKyzt_nF.js} +1 -1
- package/components/slot-menu/index.cjs +1 -1
- package/components/slot-menu/index.js +1 -1
- package/components/slot-menu-7Lsnn5mp.cjs +71 -0
- package/components/{slot-menu-BsaFfMfl.js → slot-menu-JcmVjv2g.js} +15 -12
- package/components/{speedometer-chart-positioning.config-B6ydcNl1.js → speedometer-chart-positioning.config-BEWibjyH.js} +1 -1
- package/components/{speedometer-chart-positioning.config-CWVs9wdL.cjs → speedometer-chart-positioning.config-Df5CIOwp.cjs} +1 -1
- package/components/{spike-map-positioning.config-CzTPhLvN.cjs → spike-map-positioning.config-C6aRn7nn.cjs} +1 -1
- package/components/{spike-map-positioning.config-BUDKv3D-.js → spike-map-positioning.config-CdT1dVMG.js} +1 -1
- package/components/{strip-plot-positioning.config-d8qB2u-P.js → strip-plot-positioning.config-B8vN0A44.js} +1 -1
- package/components/{strip-plot-positioning.config-C6-0AgIF.cjs → strip-plot-positioning.config-DXJci5zk.cjs} +1 -1
- package/components/{sunburst-chart-positioning.config-DcYT58kl.js → sunburst-chart-positioning.config-D-qWT3sC.js} +1 -1
- package/components/{sunburst-chart-positioning.config-D_APT9mf.cjs → sunburst-chart-positioning.config-XfxGkqp6.cjs} +1 -1
- package/components/{symbol-map-positioning.config-CWkkURYU.cjs → symbol-map-positioning.config-BB8-Feba.cjs} +1 -1
- package/components/{symbol-map-positioning.config-D12TczYa.js → symbol-map-positioning.config-CAC8XCec.js} +1 -1
- package/components/{treemap-chart-positioning.config-BmxLpNn2.js → treemap-chart-positioning.config-CJKe5rf1.js} +1 -1
- package/components/{treemap-chart-positioning.config-BS-BO3sD.cjs → treemap-chart-positioning.config-Daf9Kk3k.cjs} +1 -1
- package/components/utils/store.cjs +1 -1
- package/components/utils/store.js +59 -58
- package/components/{utils-DUeh8VMp.js → utils-BMmRy1Nn.js} +1 -1
- package/components/{utils-pKA3Rwn3.cjs → utils-D9CBsoMV.cjs} +1 -1
- package/components/utils.cjs +1 -1
- package/components/utils.js +2 -2
- package/components/{venn-diagram-positioning.config-B-4Uoe_o.js → venn-diagram-positioning.config-8pfbiReM.js} +1 -1
- package/components/{venn-diagram-positioning.config-D4Zhdh2X.cjs → venn-diagram-positioning.config-DqxSgLGR.cjs} +1 -1
- package/components/{wordcloud-chart-positioning.config-DTEauH2w.cjs → wordcloud-chart-positioning.config-Cb7lzr9N.cjs} +1 -1
- package/components/{wordcloud-chart-positioning.config-Cr9lzAHP.js → wordcloud-chart-positioning.config-DUazjx5M.js} +1 -1
- package/custom-elements.json +21 -1
- package/package.json +2 -2
- package/react/package.json +2 -2
- package/utils/data-broker/index.d.ts +20 -14
- package/utils/set-nested-value.d.ts +6 -0
- package/utils/store/base-store.d.ts +0 -4
- package/angular/README.md +0 -40
- package/angular/components/ai-chat-empty-state.ts +0 -98
- package/angular/components/ai-chat.ts +0 -412
- package/angular/components/ai-interaction-textarea.ts +0 -263
- 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 -140
- package/angular/components/dataset-selector-row.ts +0 -157
- 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 -137
- package/angular/esm/components/ai-chat.js +0 -423
- package/angular/esm/components/ai-interaction-textarea.d.ts +0 -99
- package/angular/esm/components/ai-interaction-textarea.js +0 -281
- 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 -53
- package/angular/esm/components/dataset-selector-list.js +0 -147
- package/angular/esm/components/dataset-selector-row.d.ts +0 -58
- package/angular/esm/components/dataset-selector-row.js +0 -161
- 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 -257
- 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/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/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/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 -162
- 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/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/data-fields-select-CAyr7ju6.cjs +0 -41
- package/components/filter-item-DMerwomA.cjs +0 -71
- package/components/filter-value-picker-hierarchy-DxluZMYy.cjs +0 -47
- package/components/filters-qljuVmv3.cjs +0 -153
- package/components/item-option-B8J9IqkK.cjs +0 -269
- package/components/slot-menu-11KQJc_U.cjs +0 -71
- /package/{angular/utils/ai-prompt/tests/attachments.test.d.ts → utils/tests/set-nested-value.test.d.ts} +0 -0
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18
18
|
* SOFTWARE.
|
|
19
19
|
* */
|
|
20
|
-
const e=require("./decorate-DCJt-2rt.cjs"),t=require("./localized-mixin-BbOPy_BO.cjs"),n=require("./color-Bl8h58rV.cjs"),r=require("./themes-kvrISOTz.cjs"),i=require("./v4-Dyp-SQ1c.cjs"),a=require("./item-list.cjs");let o=require("@luzmo/icons");require("@luzmo/lucero/icon");let s=require("lit"),c=require("lit/decorators.js"),l=require("@lit/localize");require("@luzmo/lucero/action-button"),require("@luzmo/lucero/tooltip");let u=require("lit/directives/repeat.js");require("@luzmo/embed"),require("@luzmo/lucero/action-group");let d=require("@luzmo/lucero/utils"),f=require("lit/directives/guard.js");var p=`.grid-stack{position:relative}.grid-stack-rtl{direction:ltr}.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;width:auto;margin:0;position:absolute;z-index:0!important}.grid-stack>.grid-stack-item{width:var(--gs-column-width);height:var(--gs-cell-height);padding:0;position:absolute;top:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{width:auto;margin:0;position:absolute;overflow:hidden auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{-ms-touch-action:none;touch-action:none;font-size:.1px;display:block;position:absolute}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\\"http://www.w3.org/2000/svg\\" fill=\\"none\\" stroke=\\"%23666\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"2\\" viewBox=\\"0 0 20 20\\"><path d=\\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\\"/></svg>");background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{opacity:.8;box-shadow:1px 4px 6px #0003}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left,right,top,height,width}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}`,m=(e,t)=>{e.forEach(e=>{let n=e.querySelector(`luzmo-embed-viz-item`);n&&(n.options={...n.options,locale:t})})},h=({action:e,actionType:t,active:n,items:r,element:i,itemId:a,item:o,deletedId:s,originalElement:c,updatedItems:l})=>({action:e,actionType:t,active:n,items:r,element:i,item:{...o,id:a,filters:o?.filters??[]},...s&&{deletedId:s},...c&&{originalElement:c},...l&&{updatedItems:l}}),g=({target:e,action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{detail:h({action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u}),bubbles:!0,composed:!0,cancelable:!0}))},_=({target:e,itemStates:t,updatedItemStates:n,changedItemStates:r})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-states-changed`,{detail:{itemStates:t,updatedItemStates:n,changedItemStates:r},bubbles:!0,composed:!0}))},v=({target:e,eventName:t,detail:n})=>{e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))},y=e=>e instanceof Element?e:void 0,b=e=>y(e)?.closest(`.grid-stack-item`),x=({event:e,gridItem:t})=>!y(e.relatedTarget)?.closest(`.grid-item-actions-popover`)&&!t.hasAttribute(`active`),ee=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>{let r=b(e.target);return r?(t&&t!==r&&(t.removeAttribute(`focused`),n(t)),r.setAttribute(`focused`,`true`),r):t},S=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>t?y(e.relatedTarget)?.closest(`luzmo-item-grid-item-actions-menu`)?{focusedItemElement:t,shouldFocusGrid:!1}:(t.removeAttribute(`focused`),n(t),{focusedItemElement:void 0,shouldFocusGrid:!0}):{focusedItemElement:void 0,shouldFocusGrid:!1},C=({item:e,activeItemElement:t,gridElement:n,removeItemActionsMenuPopover:r})=>{if(e.removeAttribute(`active`),r(e),t===e){n.removeAttribute(`has-active-item`);return}return t},w=({event:e,gridElement:t,items:n,state:r,cleanupActiveItem:i,dispatchItemActionEvent:a,createItemActionsMenuPopover:o})=>{e.stopPropagation();let s=e.detail,c=e.target?.closest(`.grid-stack-item`);if(!c)return r;let l=c.getAttribute(`gs-id`),u=n.find(e=>e.id===l);return s.type===`toggle`&&s.action===r.activeItemActionToggle&&c===r.activeItemElement?(r.activeItemElement=void 0,r.activeItemActionToggle=void 0,t.removeAttribute(`has-active-item`),c.removeAttribute(`active`),i(c),l&&a(s.action,s.type,!1,c,l,u),r):(t.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==c&&i(e)}),s.type===`toggle`?(r.activeItemElement=c,r.activeItemActionToggle=s.action,t.setAttribute(`has-active-item`,`true`),c.setAttribute(`active`,`true`),o(c,[s.action])):r.activeItemElement&&r.activeItemElement!==c&&(r.activeItemElement=void 0,r.activeItemActionToggle=void 0),l&&a(s.action,s.type,s.active,c,l,u),r)},te=({event:e,gridElement:t,hostElement:n,items:r,activeItemActionToggle:i,cleanupActiveItem:a,dispatchItemActionEvent:o})=>{let s=e.composedPath();if(!s.includes(t)&&!s.includes(n))return{activeItemActionToggle:i};let c=t.querySelector(`.grid-stack-item[active]`);if(!c||s.includes(c))return{activeItemActionToggle:i};let l=c.querySelector(`.grid-item-actions-popover`);if(l&&s.includes(l))return{activeItemActionToggle:i};let u=c.getAttribute(`gs-id`),d=r.find(e=>e.id===u);return a(c),i&&u&&o(i,`toggle`,!1,c,u,d),{activeItemActionToggle:void 0}},ne=({gridElement:e,items:t,gridItemData:n,itemId:r,action:i,options:a,state:o,cleanupActiveItem:s,dispatchItemActionEvent:c,createItemActionsMenuPopover:l})=>{if(!n?.element)return{result:void 0,state:o};let u=n.element,d=n.item,f=i===o.activeItemActionToggle&&u===o.activeItemElement,p=a?.active??!f;if(a?.active!==void 0&&p===f)return{result:f,state:o};if(!p)return o.activeItemElement=void 0,o.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),u.removeAttribute(`active`),s(u),c(i,`toggle`,!1,u,r,d),{result:!1,state:o};if(o.activeItemElement&&o.activeItemElement!==u){let e=o.activeItemElement.getAttribute(`gs-id`),n=t.find(t=>t.id===e),r=o.activeItemActionToggle,i=o.activeItemElement;s(o.activeItemElement),o.activeItemElement=void 0,o.activeItemActionToggle=void 0,r&&e&&n&&c(r,`toggle`,!1,i,e,n)}return o.activeItemElement=u,o.activeItemActionToggle=i,e.setAttribute(`has-active-item`,`true`),u.setAttribute(`active`,`true`),l(u,[i]),c(i,`toggle`,!0,u,r,d),{result:!0,state:o}},re=({gridElement:e,items:t,state:n,cleanupActiveItem:r,dispatchItemActionEvent:i})=>{let a=0;if(n.activeItemElement&&n.activeItemActionToggle){let o=n.activeItemElement.getAttribute(`gs-id`),s=t.find(e=>e.id===o),c=n.activeItemActionToggle,l=n.activeItemElement;r(n.activeItemElement),n.activeItemElement=void 0,n.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),c&&o&&s&&(i(c,`toggle`,!1,l,o,s),a++)}return{deactivatedCount:a,state:n}},ie={sizeX:1,sizeY:1,col:0,row:0},ae=e=>{e.forEach(e=>{if(!e.id)throw Error(`Grid item id is required`)})},oe=e=>{if(!e.id)throw Error(`Grid item id is required`);return e.id},se=(e,t)=>({id:t,x:e?.position?.col??0,y:e?.position?.row??0,w:e?.position?.sizeX??1,h:e?.position?.sizeY??1}),ce=(e,t)=>({...structuredClone(e),id:t,position:{...ie,...structuredClone(e.position)},canFilter:e.canFilter??`all`}),le=(e,t)=>{if(t){for(let n of e)if(n.getAttribute(`luzmo-item-grid-item-id`)===t)return n}},ue=(e,t)=>e.map(e=>{let n={item:e,element:t.querySelector(`[gs-id="${e.id}"]`)},r=n.element?.querySelector(`luzmo-embed-viz-item`);return r&&(n.luzmoElement=r),n}),de=({item:e,engine:t,existingItems:n,autoPosition:r,excludeNodeId:i})=>{let a=e.position,o=i?t.nodes.filter(e=>e.id!==i):t.nodes,s=new t.constructor({column:t.column,float:t.float,nodes:o.map(e=>({...e}))}),c={x:a.col,y:a.row,w:a.sizeX,h:a.sizeY,id:e.id,autoPosition:r};s.addNode(c);let l={...e,position:{col:c.x??a.col,row:c.y??a.row,sizeX:c.w??a.sizeX,sizeY:c.h??a.sizeY}};return{resolvedItem:l,updatedItems:[...n.map(e=>{let t=s.nodes.find(t=>t.id===e.id);return t&&t.x!=null&&t.y!=null&&t.w!=null&&t.h!=null?{...e,position:{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}:e}),l]}},fe=({itemId:e,patch:t,engine:n,existingItems:r})=>{let i=r.find(t=>t.id===e);if(!i?.position)return r;let{resolvedItem:a,updatedItems:o}=de({item:{...i,position:{...i.position,...t}},engine:n,existingItems:r.filter(t=>t.id!==e),autoPosition:!1,excludeNodeId:e});return r.map(t=>t.id===e?a:o.find(e=>e.id===t.id)??t)},pe=e=>ce(e,e.id),me=Math.min,T=Math.max,he=Math.round,ge=Math.floor,E=e=>({x:e,y:e}),_e={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ve(e,t){return typeof e==`function`?e(t):e}function D(e){return e.split(`-`)[0]}function ye(e){return e.split(`-`)[1]}function be(e){return e===`x`?`y`:`x`}function xe(e){return e===`y`?`height`:`width`}function O(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Se(e){return be(O(e))}function Ce(e,t,n){n===void 0&&(n=!1);let r=ye(e),i=Se(e),a=xe(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Me(o)),[o,Me(o)]}function we(e){let t=Me(e);return[Te(e),t,Te(t)]}function Te(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Ee=[`left`,`right`],De=[`right`,`left`],Oe=[`top`,`bottom`],ke=[`bottom`,`top`];function Ae(e,t,n){switch(e){case`top`:case`bottom`:return n?t?De:Ee:t?Ee:De;case`left`:case`right`:return t?Oe:ke;default:return[]}}function je(e,t,n,r){let i=ye(e),a=Ae(D(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Te)))),a}function Me(e){let t=D(e);return _e[t]+e.slice(t.length)}function Ne(e){return{top:0,right:0,bottom:0,left:0,...e}}function Pe(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Ne(e)}function Fe(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Ie(e,t,n){let{reference:r,floating:i}=e,a=O(t),o=Se(t),s=xe(o),c=D(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(ye(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Le(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=ve(t,e),p=Pe(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Fe(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Fe(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Re=50,ze=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Le},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Ie(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Re&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Ie(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Be=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=ve(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=D(r),_=O(o),v=D(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Me(o)]:we(o)),x=p!==`none`;!d&&x&&b.push(...je(o,m,p,y));let ee=[o,...b],S=await s.detectOverflow(t,h),C=[],w=i.flip?.overflows||[];if(l&&C.push(S[g]),u){let e=Ce(r,a,y);C.push(S[e[0]],S[e[1]])}if(w=[...w,{placement:r,overflows:C}],!C.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=ee[e];if(t&&(!(u===`alignment`&&_!==O(t))||w.every(e=>O(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:w},reset:{placement:t}};let n=w.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=w.filter(e=>{if(x){let t=O(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},Ve=new Set([`left`,`top`]);async function He(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=D(n),s=ye(n),c=O(n)===`y`,l=Ve.has(o)?-1:1,u=a&&c?-1:1,d=ve(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ue=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await He(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}};function We(){return typeof window<`u`}function k(e){return Ge(e)?(e.nodeName||``).toLowerCase():`#document`}function A(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function j(e){return((Ge(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ge(e){return We()?e instanceof Node||e instanceof A(e).Node:!1}function M(e){return We()?e instanceof Element||e instanceof A(e).Element:!1}function N(e){return We()?e instanceof HTMLElement||e instanceof A(e).HTMLElement:!1}function Ke(e){return!We()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof A(e).ShadowRoot}function P(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=L(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function qe(e){return/^(table|td|th)$/.test(k(e))}function Je(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Ye=/transform|translate|scale|rotate|perspective|filter/,Xe=/paint|layout|strict|content/,F=e=>!!e&&e!==`none`,Ze;function Qe(e){let t=M(e)?L(e):e;return F(t.transform)||F(t.translate)||F(t.scale)||F(t.rotate)||F(t.perspective)||!et()&&(F(t.backdropFilter)||F(t.filter))||Ye.test(t.willChange||``)||Xe.test(t.contain||``)}function $e(e){let t=R(e);for(;N(t)&&!I(t);){if(Qe(t))return t;if(Je(t))return null;t=R(t)}return null}function et(){return Ze??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ze}function I(e){return/^(html|body|#document)$/.test(k(e))}function L(e){return A(e).getComputedStyle(e)}function tt(e){return M(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function R(e){if(k(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Ke(e)&&e.host||j(e);return Ke(t)?t.host:t}function nt(e){let t=R(e);return I(t)?e.ownerDocument?e.ownerDocument.body:e.body:N(t)&&P(t)?t:nt(t)}function z(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=nt(e),i=r===e.ownerDocument?.body,a=A(r);if(i){let e=rt(a);return t.concat(a,a.visualViewport||[],P(r)?r:[],e&&n?z(e):[])}else return t.concat(r,z(r,[],n))}function rt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function it(e){let t=L(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=N(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=he(n)!==a||he(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function at(e){return M(e)?e:e.contextElement}function B(e){let t=at(e);if(!N(t))return E(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=it(t),o=(a?he(n.width):n.width)/r,s=(a?he(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var ot=E(0);function st(e){let t=A(e);return!et()||!t.visualViewport?ot:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ct(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==A(e)?!1:t}function V(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=at(e),o=E(1);t&&(r?M(r)&&(o=B(r)):o=B(e));let s=ct(a,n,r)?st(a):E(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=A(a),t=r&&M(r)?A(r):r,n=e,i=rt(n);for(;i&&r&&t!==n;){let e=B(i),t=i.getBoundingClientRect(),r=L(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=A(i),i=rt(n)}}return Fe({width:u,height:d,x:c,y:l})}function H(e,t){let n=tt(e).scrollLeft;return t?t.left+n:V(j(e)).left+n}function lt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-H(e,n),y:n.top+t.scrollTop}}function ut(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=j(r),s=t?Je(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=E(1),u=E(0),d=N(r);if((d||!d&&!a)&&((k(r)!==`body`||P(o))&&(c=tt(r)),d)){let e=V(r);l=B(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?lt(o,c):E(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function dt(e){return Array.from(e.getClientRects())}function ft(e){let t=j(e),n=tt(e),r=e.ownerDocument.body,i=T(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=T(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+H(e),s=-n.scrollTop;return L(r).direction===`rtl`&&(o+=T(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var pt=25;function mt(e,t){let n=A(e),r=j(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=et();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=H(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=pt&&(a-=o)}else l<=pt&&(a+=l);return{width:a,height:o,x:s,y:c}}function ht(e,t){let n=V(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=N(e)?B(e):E(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function gt(e,t,n){let r;if(t===`viewport`)r=mt(e,n);else if(t===`document`)r=ft(j(e));else if(M(t))r=ht(t,n);else{let n=st(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Fe(r)}function _t(e,t){let n=R(e);return n===t||!M(n)||I(n)?!1:L(n).position===`fixed`||_t(n,t)}function vt(e,t){let n=t.get(e);if(n)return n;let r=z(e,[],!1).filter(e=>M(e)&&k(e)!==`body`),i=null,a=L(e).position===`fixed`,o=a?R(e):e;for(;M(o)&&!I(o);){let t=L(o),n=Qe(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||P(o)&&!n&&_t(e,o))?r=r.filter(e=>e!==o):i=t,o=R(o)}return t.set(e,r),r}function yt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Je(t)?[]:vt(t,this._c):[].concat(n),r],o=gt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=gt(t,a[e],i);s=T(n.top,s),c=me(n.right,c),l=me(n.bottom,l),u=T(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function bt(e){let{width:t,height:n}=it(e);return{width:t,height:n}}function xt(e,t,n){let r=N(t),i=j(t),a=n===`fixed`,o=V(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=E(0);function l(){c.x=H(i)}if(r||!r&&!a)if((k(t)!==`body`||P(i))&&(s=tt(t)),r){let e=V(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?lt(i,s):E(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function St(e){return L(e).position===`static`}function Ct(e,t){if(!N(e)||L(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return j(e)===n&&(n=n.ownerDocument.body),n}function wt(e,t){let n=A(e);if(Je(e))return n;if(!N(e)){let t=R(e);for(;t&&!I(t);){if(M(t)&&!St(t))return t;t=R(t)}return n}let r=Ct(e,t);for(;r&&qe(r)&&St(r);)r=Ct(r,t);return r&&I(r)&&St(r)&&!Qe(r)?n:r||$e(e)||n}var Tt=async function(e){let t=this.getOffsetParent||wt,n=this.getDimensions,r=await n(e.floating);return{reference:xt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Et(e){return L(e).direction===`rtl`}var Dt={convertOffsetParentRelativeRectToViewportRelativeRect:ut,getDocumentElement:j,getClippingRect:yt,getOffsetParent:wt,getElementRects:Tt,getClientRects:dt,getDimensions:bt,getScale:B,isElement:M,isRTL:Et};function Ot(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function kt(e,t){let n=null,r,i=j(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=ge(d),h=ge(i.clientWidth-(u+f)),g=ge(i.clientHeight-(d+p)),_=ge(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:T(0,me(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Ot(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function At(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=at(e),u=i||a?[...l?z(l):[],...t?z(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?kt(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?V(e):null;c&&g();function g(){let t=V(e);h&&!Ot(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var jt=Ue,Mt=Be,Nt=(e,t,n)=>{let r=new Map,i={platform:Dt,...n},a={...i.platform,_c:r};return ze(e,t,{...i,platform:a})},Pt=new WeakMap,Ft=(e,t)=>{It(e),Pt.set(e,t)},It=e=>{let t=Pt.get(e);t&&(t(),Pt.delete(e))},Lt=({element:e,activeActions:t,getGridItemById:n,placementItemActionsMenu:r,renderOverlayContent:i,removeItemActionsMenuPopover:a,itemActionsDocumentPopover:o=!0})=>{let c=e.querySelector(`.grid-item-actions-popover`),l=e.querySelector(`.grid-stack-item-content`),u=n(e.getAttribute(`gs-id`)??``);if(t&&t.length>0&&c&&(a(e),c=null),!c){let n=document.createDocumentFragment();(0,s.render)(i(u?.item,t),n),c=n.querySelector(`.grid-item-actions-popover`),e.append(c)}let d=o?`absolute`:`fixed`,f=At(l,c,async()=>{let{x:e,y:t}=await Nt(l,c,{placement:u?.item?.placementActionsMenu??r??`right-start`,strategy:d,middleware:[jt(0),Mt({crossAxis:!1})]});c.style.left=`${e}px`,c.style.top=`${t}px`,o||(c.style.position=`fixed`,c.style.right=`auto`,c.style.bottom=`auto`,c.style.margin=`0`)});Ft(c,f),o&&c.isConnected&&!c.matches(`:popover-open`)&&c.showPopover()},Rt=e=>{let t=e.querySelector(`.grid-item-actions-popover`);t&&(It(t),t.hasAttribute(`popover`)&&t.matches(`:popover-open`)&&t.hidePopover(),t.remove())},zt=e=>e===`ArrowLeft`||e===`ArrowRight`||e===`ArrowUp`||e===`ArrowDown`,Bt=({key:e,node:t,maxColumns:n,shiftKey:r,ctrlKey:i,metaKey:a})=>{let o={ArrowLeft:{move:{x:t.x-1},resize:{x:t.x-1,w:t.w+1},shrink:{w:t.w-1},canMove:t.x>0,canResize:t.x>0,canShrink:t.w>1},ArrowRight:{move:{x:t.x+1},resize:{w:t.w+1},shrink:{x:t.x+1,w:t.w-1},canMove:t.x<n-t.w,canResize:t.x+t.w<n,canShrink:t.w>1},ArrowUp:{move:{y:t.y-1},resize:{y:t.y-1,h:t.h+1},shrink:{h:t.h-1},canMove:t.y>0,canResize:t.y>0,canShrink:t.h>1},ArrowDown:{move:{y:t.y+1},resize:{h:t.h+1},shrink:{y:t.y+1,h:t.h-1},canMove:!0,canResize:!0,canShrink:t.h>1}}[e];if(r&&o.canResize)return o.resize;if((i||a)&&o.canShrink)return o.shrink;if(o.canMove)return o.move},Vt=({event:e,viewMode:t,focusedItemElement:n,activeItemElement:r,gridElement:i,grid:a,columns:o,onDeleteRequest:s,removeItemActionsMenuPopover:c,createItemActionsMenuPopover:l})=>{if(t)return{focusedItemElement:n,activeItemElement:r};let u=n,d=r;if(e.key===`Delete`&&n){let e=n.nextElementSibling??n.previousElementSibling;s(n),u=e??void 0,u?requestAnimationFrame(()=>u?.focus()):i.focus(),r===n&&(d=void 0)}else if(e.key===`Escape`&&n)n.removeAttribute(`focused`),c(n),u=void 0,i.focus();else if(e.key===`Enter`&&n)e.preventDefault(),e.stopPropagation(),r&&(r.removeAttribute(`active`),i.removeAttribute(`has-active-item`),c(r),d=void 0),i.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==n&&c(e)}),l(n),requestAnimationFrame(()=>{let e=n.querySelector(`luzmo-item-grid-item-actions-menu`);e&&e.focus()});else if(n&&a&&zt(e.key)){e.preventDefault(),e.stopPropagation();let t=n.gridstackNode;if(!t)return{focusedItemElement:u,activeItemElement:d};let r=Bt({key:e.key,node:t,maxColumns:o,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey});r&&a.update(n,r)}return{focusedItemElement:u,activeItemElement:d}},U={lock:{icon:o.luzmoLockOutline,label:`Lock`,tooltip:`Lock`,action:`lock`,type:`toggle`},edit:{icon:o.luzmoPencil,label:`Edit`,tooltip:`Edit`,action:`edit`,type:`toggle`},"edit-data":{icon:o.luzmoTable,label:`Edit data`,tooltip:`Data`,action:`edit-data`,type:`toggle`},"item-options":{icon:o.luzmoCog,label:`Item options`,tooltip:`Options`,action:`item-options`,type:`toggle`},filters:{icon:o.luzmoFilterOutline,label:`Filters`,tooltip:`Filters`,action:`filters`,type:`toggle`},clone:{icon:o.luzmoClone,label:`Clone`,tooltip:`Clone`,action:`clone`,type:`button`},delete:{icon:o.luzmoTrashOutline,label:`Delete`,tooltip:`Delete`,action:`delete`,type:`button`}},Ht=e=>{if(e)return structuredClone(e).map(e=>{if(e.type===`group`)return e.actions=e.actions??[],e.actions=e.actions.map(e=>{if(typeof e==`string`&&Object.hasOwn(U,e))return{...U[e]};if(typeof e==`object`)return e.icon=e.icon??o.luzmoCircle,e.label=e.label??e.action,e.tooltip=e.tooltip??e.label??e.action,e.type=[`toggle`,`button`].includes(e.type??``)?e.type:`button`,e}).filter(Boolean),e}).filter(Boolean)},Ut=()=>[{type:`group`,actions:[{...U[`edit-data`]},{...U[`item-options`]},{...U.clone}]},{type:`group`,actions:[{...U.delete}]}],Wt=16,Gt=10,W=(e,t)=>t>=1?`rgba(${e.r},${e.g},${e.b},1)`:t<=0?`rgba(${e.r},${e.g},${e.b},0)`:`rgba(${e.r},${e.g},${e.b},${t})`,Kt=async({theme:e,currentTheme:t})=>e?.type===`custom`?structuredClone(e):e?.id&&r.n.includes(e.id)&&t?.id!==e.id?{...await r.t(e.id),id:e.id}:e?.id&&t?.id!==e.id||!e&&t?t:await r.t(`default`),qt=e=>[(e?.margins?.[0]??Wt)/2,(e?.margins?.[1]??Wt)/2],Jt=e=>Gt-(e?.margins?.[0]??Gt),Yt=e=>{let t=e?.boxShadow;if(!t)return``;let r=new n.t(t.color),i={r:Math.round(r.srgb.r*255),g:Math.round(r.srgb.g*255),b:Math.round(r.srgb.b*255)},a=e?.margins?.[0]??Wt,o=Math.min(a/10,2);return t.size===`none`?`none`:t.size===`S`?`0 ${o*2}px ${o*4}px ${W(i,.16)}, 0 ${o*2}px ${o*4}px ${W(i,.23)}`:t.size===`M`?`0 ${o*8}px ${o*16}px ${W(i,.19)}, 0 ${o*4}px ${o*4}px ${W(i,.23)}`:t.size===`L`?`0 ${o*12}px ${o*24}px ${W(i,.25)}, 0 ${o*8}px ${o*8}px ${W(i,.22)}`:``},Xt=e=>{let t=Yt(e);return new Map([[`--grid-font-family`,e?.font?.fontFamily],[`--grid-background`,e?.background],[`--grid-item-box-shadow`,t],[`--grid-item-background`,e?.itemsBackground],[`--grid-item-border-color`,e?.borders?.[`border-color`]],[`--grid-item-border-style`,e?.borders?.[`border-style`]],[`--grid-item-border-radius`,e?.borders?.[`border-radius`]],[`--grid-item-border-width`,`${e?.borders?.[`border-top-width`]}`],[`--grid-item-border-top-width`,e?.borders?.[`border-top-width`]],[`--grid-item-border-right-width`,e?.borders?.[`border-right-width`]],[`--grid-item-border-bottom-width`,e?.borders?.[`border-bottom-width`]],[`--grid-item-border-left-width`,e?.borders?.[`border-left-width`]]])},Zt=e=>{let t=e?.itemsBackground??e?.background;return t?new n.t(t).luminance<.5:!1},Qt=(e,t)=>{t&&Xt(t).forEach((t,n)=>{t?e.setProperty(n,t):e.removeProperty(n)})},$t=({item:e,defaultItemActionsMenu:t,activeActions:n})=>{let r=Ht(e?.actionsMenu)??Ht(t)??Ut();if(!a.itemTypes.find(t=>t.type===e?.type)?.containsData&&!e?.actionsMenu&&!t&&(r=r.map(e=>({...e,actions:e.actions?.filter(e=>e.action!==`edit-data`)}))),n&&n.length>0){let e=new Set(n);r=r.map(t=>({...t,actions:t.actions?.map(t=>({...t,active:t.action&&e.has(t.action)?!0:t.active}))}))}return r},en=({item:e,activeActions:t,defaultItemActionsMenu:n,placementItemActionsMenu:r,language:i,handleAction:a,itemActionsDocumentPopover:o=!0})=>{let c=$t({item:e,defaultItemActionsMenu:n,activeActions:t});return s.html`
|
|
20
|
+
const e=require("./decorate-DCJt-2rt.cjs"),t=require("./localized-mixin-BbOPy_BO.cjs"),n=require("./v4-Dyp-SQ1c.cjs"),r=require("./color-Bl8h58rV.cjs"),i=require("./themes-kvrISOTz.cjs"),a=require("./item-list.cjs");let o=require("@luzmo/icons");require("@luzmo/lucero/icon");let s=require("lit"),c=require("lit/decorators.js"),l=require("@lit/localize");require("@luzmo/lucero/action-button"),require("@luzmo/lucero/tooltip");let u=require("lit/directives/repeat.js");require("@luzmo/embed"),require("@luzmo/lucero/action-group");let d=require("@luzmo/lucero/utils"),f=require("lit/directives/guard.js");var p=`.grid-stack{position:relative}.grid-stack-rtl{direction:ltr}.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;width:auto;margin:0;position:absolute;z-index:0!important}.grid-stack>.grid-stack-item{width:var(--gs-column-width);height:var(--gs-cell-height);padding:0;position:absolute;top:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{width:auto;margin:0;position:absolute;overflow:hidden auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{-ms-touch-action:none;touch-action:none;font-size:.1px;display:block;position:absolute}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\\"http://www.w3.org/2000/svg\\" fill=\\"none\\" stroke=\\"%23666\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"2\\" viewBox=\\"0 0 20 20\\"><path d=\\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\\"/></svg>");background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{opacity:.8;box-shadow:1px 4px 6px #0003}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left,right,top,height,width}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}`,m=(e,t)=>{e.forEach(e=>{let n=e.querySelector(`luzmo-embed-viz-item`);n&&(n.options={...n.options,locale:t})})},h=({action:e,actionType:t,active:n,items:r,element:i,itemId:a,item:o,deletedId:s,originalElement:c,updatedItems:l})=>({action:e,actionType:t,active:n,items:r,element:i,item:{...o,id:a,filters:o?.filters??[]},...s&&{deletedId:s},...c&&{originalElement:c},...l&&{updatedItems:l}}),g=({target:e,action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{detail:h({action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u}),bubbles:!0,composed:!0,cancelable:!0}))},_=({target:e,itemStates:t,updatedItemStates:n,changedItemStates:r})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-states-changed`,{detail:{itemStates:t,updatedItemStates:n,changedItemStates:r},bubbles:!0,composed:!0}))},v=({target:e,eventName:t,detail:n})=>{e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))},y=e=>e instanceof Element?e:void 0,b=e=>y(e)?.closest(`.grid-stack-item`),x=({event:e,gridItem:t})=>!y(e.relatedTarget)?.closest(`.grid-item-actions-popover`)&&!t.hasAttribute(`active`),ee=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>{let r=b(e.target);return r?(t&&t!==r&&(t.removeAttribute(`focused`),n(t)),r.setAttribute(`focused`,`true`),r):t},S=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>t?y(e.relatedTarget)?.closest(`luzmo-item-grid-item-actions-menu`)?{focusedItemElement:t,shouldFocusGrid:!1}:(t.removeAttribute(`focused`),n(t),{focusedItemElement:void 0,shouldFocusGrid:!0}):{focusedItemElement:void 0,shouldFocusGrid:!1},C=({item:e,activeItemElement:t,gridElement:n,removeItemActionsMenuPopover:r})=>{if(e.removeAttribute(`active`),r(e),t===e){n.removeAttribute(`has-active-item`);return}return t},w=({event:e,gridElement:t,items:n,state:r,cleanupActiveItem:i,dispatchItemActionEvent:a,createItemActionsMenuPopover:o})=>{e.stopPropagation();let s=e.detail,c=e.target?.closest(`.grid-stack-item`);if(!c)return r;let l=c.getAttribute(`gs-id`),u=n.find(e=>e.id===l);return s.type===`toggle`&&s.action===r.activeItemActionToggle&&c===r.activeItemElement?(r.activeItemElement=void 0,r.activeItemActionToggle=void 0,t.removeAttribute(`has-active-item`),c.removeAttribute(`active`),i(c),l&&a(s.action,s.type,!1,c,l,u),r):(t.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==c&&i(e)}),s.type===`toggle`?(r.activeItemElement=c,r.activeItemActionToggle=s.action,t.setAttribute(`has-active-item`,`true`),c.setAttribute(`active`,`true`),o(c,[s.action])):r.activeItemElement&&r.activeItemElement!==c&&(r.activeItemElement=void 0,r.activeItemActionToggle=void 0),l&&a(s.action,s.type,s.active,c,l,u),r)},te=({event:e,gridElement:t,hostElement:n,items:r,activeItemActionToggle:i,cleanupActiveItem:a,dispatchItemActionEvent:o})=>{let s=e.composedPath();if(!s.includes(t)&&!s.includes(n))return{activeItemActionToggle:i};let c=t.querySelector(`.grid-stack-item[active]`);if(!c||s.includes(c))return{activeItemActionToggle:i};let l=c.querySelector(`.grid-item-actions-popover`);if(l&&s.includes(l))return{activeItemActionToggle:i};let u=c.getAttribute(`gs-id`),d=r.find(e=>e.id===u);return a(c),i&&u&&o(i,`toggle`,!1,c,u,d),{activeItemActionToggle:void 0}},ne=({gridElement:e,items:t,gridItemData:n,itemId:r,action:i,options:a,state:o,cleanupActiveItem:s,dispatchItemActionEvent:c,createItemActionsMenuPopover:l})=>{if(!n?.element)return{result:void 0,state:o};let u=n.element,d=n.item,f=i===o.activeItemActionToggle&&u===o.activeItemElement,p=a?.active??!f;if(a?.active!==void 0&&p===f)return{result:f,state:o};if(!p)return o.activeItemElement=void 0,o.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),u.removeAttribute(`active`),s(u),c(i,`toggle`,!1,u,r,d),{result:!1,state:o};if(o.activeItemElement&&o.activeItemElement!==u){let e=o.activeItemElement.getAttribute(`gs-id`),n=t.find(t=>t.id===e),r=o.activeItemActionToggle,i=o.activeItemElement;s(o.activeItemElement),o.activeItemElement=void 0,o.activeItemActionToggle=void 0,r&&e&&n&&c(r,`toggle`,!1,i,e,n)}return o.activeItemElement=u,o.activeItemActionToggle=i,e.setAttribute(`has-active-item`,`true`),u.setAttribute(`active`,`true`),l(u,[i]),c(i,`toggle`,!0,u,r,d),{result:!0,state:o}},re=({gridElement:e,items:t,state:n,cleanupActiveItem:r,dispatchItemActionEvent:i})=>{let a=0;if(n.activeItemElement&&n.activeItemActionToggle){let o=n.activeItemElement.getAttribute(`gs-id`),s=t.find(e=>e.id===o),c=n.activeItemActionToggle,l=n.activeItemElement;r(n.activeItemElement),n.activeItemElement=void 0,n.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),c&&o&&s&&(i(c,`toggle`,!1,l,o,s),a++)}return{deactivatedCount:a,state:n}},ie={sizeX:1,sizeY:1,col:0,row:0},ae=e=>{e.forEach(e=>{if(!e.id)throw Error(`Grid item id is required`)})},oe=e=>{if(!e.id)throw Error(`Grid item id is required`);return e.id},se=(e,t)=>({id:t,x:e?.position?.col??0,y:e?.position?.row??0,w:e?.position?.sizeX??1,h:e?.position?.sizeY??1}),ce=(e,t)=>({...structuredClone(e),id:t,position:{...ie,...structuredClone(e.position)},canFilter:e.canFilter??`all`}),le=(e,t)=>{if(t){for(let n of e)if(n.getAttribute(`luzmo-item-grid-item-id`)===t)return n}},ue=(e,t)=>e.map(e=>{let n={item:e,element:t.querySelector(`[gs-id="${e.id}"]`)},r=n.element?.querySelector(`luzmo-embed-viz-item`);return r&&(n.luzmoElement=r),n}),de=({item:e,engine:t,existingItems:n,autoPosition:r,excludeNodeId:i})=>{let a=e.position,o=i?t.nodes.filter(e=>e.id!==i):t.nodes,s=new t.constructor({column:t.column,float:t.float,nodes:o.map(e=>({...e}))}),c={x:a.col,y:a.row,w:a.sizeX,h:a.sizeY,id:e.id,autoPosition:r};s.addNode(c);let l={...e,position:{col:c.x??a.col,row:c.y??a.row,sizeX:c.w??a.sizeX,sizeY:c.h??a.sizeY}};return{resolvedItem:l,updatedItems:[...n.map(e=>{let t=s.nodes.find(t=>t.id===e.id);return t&&t.x!=null&&t.y!=null&&t.w!=null&&t.h!=null?{...e,position:{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}:e}),l]}},fe=({itemId:e,patch:t,engine:n,existingItems:r})=>{let i=r.find(t=>t.id===e);if(!i?.position)return r;let{resolvedItem:a,updatedItems:o}=de({item:{...i,position:{...i.position,...t}},engine:n,existingItems:r.filter(t=>t.id!==e),autoPosition:!1,excludeNodeId:e});return r.map(t=>t.id===e?a:o.find(e=>e.id===t.id)??t)},pe=e=>ce(e,e.id),me=Math.min,T=Math.max,he=Math.round,ge=Math.floor,E=e=>({x:e,y:e}),_e={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ve(e,t){return typeof e==`function`?e(t):e}function D(e){return e.split(`-`)[0]}function ye(e){return e.split(`-`)[1]}function be(e){return e===`x`?`y`:`x`}function xe(e){return e===`y`?`height`:`width`}function O(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Se(e){return be(O(e))}function Ce(e,t,n){n===void 0&&(n=!1);let r=ye(e),i=Se(e),a=xe(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Me(o)),[o,Me(o)]}function we(e){let t=Me(e);return[Te(e),t,Te(t)]}function Te(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Ee=[`left`,`right`],De=[`right`,`left`],Oe=[`top`,`bottom`],ke=[`bottom`,`top`];function Ae(e,t,n){switch(e){case`top`:case`bottom`:return n?t?De:Ee:t?Ee:De;case`left`:case`right`:return t?Oe:ke;default:return[]}}function je(e,t,n,r){let i=ye(e),a=Ae(D(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Te)))),a}function Me(e){let t=D(e);return _e[t]+e.slice(t.length)}function Ne(e){return{top:0,right:0,bottom:0,left:0,...e}}function Pe(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Ne(e)}function Fe(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Ie(e,t,n){let{reference:r,floating:i}=e,a=O(t),o=Se(t),s=xe(o),c=D(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(ye(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Le(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=ve(t,e),p=Pe(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Fe(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Fe(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Re=50,ze=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Le},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Ie(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Re&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Ie(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Be=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=ve(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=D(r),_=O(o),v=D(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Me(o)]:we(o)),x=p!==`none`;!d&&x&&b.push(...je(o,m,p,y));let ee=[o,...b],S=await s.detectOverflow(t,h),C=[],w=i.flip?.overflows||[];if(l&&C.push(S[g]),u){let e=Ce(r,a,y);C.push(S[e[0]],S[e[1]])}if(w=[...w,{placement:r,overflows:C}],!C.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=ee[e];if(t&&(!(u===`alignment`&&_!==O(t))||w.every(e=>O(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:w},reset:{placement:t}};let n=w.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=w.filter(e=>{if(x){let t=O(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},Ve=new Set([`left`,`top`]);async function He(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=D(n),s=ye(n),c=O(n)===`y`,l=Ve.has(o)?-1:1,u=a&&c?-1:1,d=ve(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ue=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await He(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}};function We(){return typeof window<`u`}function k(e){return Ge(e)?(e.nodeName||``).toLowerCase():`#document`}function A(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function j(e){return((Ge(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ge(e){return We()?e instanceof Node||e instanceof A(e).Node:!1}function M(e){return We()?e instanceof Element||e instanceof A(e).Element:!1}function N(e){return We()?e instanceof HTMLElement||e instanceof A(e).HTMLElement:!1}function Ke(e){return!We()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof A(e).ShadowRoot}function P(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=L(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function qe(e){return/^(table|td|th)$/.test(k(e))}function Je(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Ye=/transform|translate|scale|rotate|perspective|filter/,Xe=/paint|layout|strict|content/,F=e=>!!e&&e!==`none`,Ze;function Qe(e){let t=M(e)?L(e):e;return F(t.transform)||F(t.translate)||F(t.scale)||F(t.rotate)||F(t.perspective)||!et()&&(F(t.backdropFilter)||F(t.filter))||Ye.test(t.willChange||``)||Xe.test(t.contain||``)}function $e(e){let t=R(e);for(;N(t)&&!I(t);){if(Qe(t))return t;if(Je(t))return null;t=R(t)}return null}function et(){return Ze??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ze}function I(e){return/^(html|body|#document)$/.test(k(e))}function L(e){return A(e).getComputedStyle(e)}function tt(e){return M(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function R(e){if(k(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Ke(e)&&e.host||j(e);return Ke(t)?t.host:t}function nt(e){let t=R(e);return I(t)?e.ownerDocument?e.ownerDocument.body:e.body:N(t)&&P(t)?t:nt(t)}function z(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=nt(e),i=r===e.ownerDocument?.body,a=A(r);if(i){let e=rt(a);return t.concat(a,a.visualViewport||[],P(r)?r:[],e&&n?z(e):[])}else return t.concat(r,z(r,[],n))}function rt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function it(e){let t=L(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=N(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=he(n)!==a||he(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function at(e){return M(e)?e:e.contextElement}function B(e){let t=at(e);if(!N(t))return E(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=it(t),o=(a?he(n.width):n.width)/r,s=(a?he(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var ot=E(0);function st(e){let t=A(e);return!et()||!t.visualViewport?ot:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ct(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==A(e)?!1:t}function V(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=at(e),o=E(1);t&&(r?M(r)&&(o=B(r)):o=B(e));let s=ct(a,n,r)?st(a):E(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=A(a),t=r&&M(r)?A(r):r,n=e,i=rt(n);for(;i&&r&&t!==n;){let e=B(i),t=i.getBoundingClientRect(),r=L(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=A(i),i=rt(n)}}return Fe({width:u,height:d,x:c,y:l})}function H(e,t){let n=tt(e).scrollLeft;return t?t.left+n:V(j(e)).left+n}function lt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-H(e,n),y:n.top+t.scrollTop}}function ut(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=j(r),s=t?Je(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=E(1),u=E(0),d=N(r);if((d||!d&&!a)&&((k(r)!==`body`||P(o))&&(c=tt(r)),d)){let e=V(r);l=B(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?lt(o,c):E(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function dt(e){return Array.from(e.getClientRects())}function ft(e){let t=j(e),n=tt(e),r=e.ownerDocument.body,i=T(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=T(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+H(e),s=-n.scrollTop;return L(r).direction===`rtl`&&(o+=T(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var pt=25;function mt(e,t){let n=A(e),r=j(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=et();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=H(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=pt&&(a-=o)}else l<=pt&&(a+=l);return{width:a,height:o,x:s,y:c}}function ht(e,t){let n=V(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=N(e)?B(e):E(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function gt(e,t,n){let r;if(t===`viewport`)r=mt(e,n);else if(t===`document`)r=ft(j(e));else if(M(t))r=ht(t,n);else{let n=st(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Fe(r)}function _t(e,t){let n=R(e);return n===t||!M(n)||I(n)?!1:L(n).position===`fixed`||_t(n,t)}function vt(e,t){let n=t.get(e);if(n)return n;let r=z(e,[],!1).filter(e=>M(e)&&k(e)!==`body`),i=null,a=L(e).position===`fixed`,o=a?R(e):e;for(;M(o)&&!I(o);){let t=L(o),n=Qe(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||P(o)&&!n&&_t(e,o))?r=r.filter(e=>e!==o):i=t,o=R(o)}return t.set(e,r),r}function yt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Je(t)?[]:vt(t,this._c):[].concat(n),r],o=gt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=gt(t,a[e],i);s=T(n.top,s),c=me(n.right,c),l=me(n.bottom,l),u=T(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function bt(e){let{width:t,height:n}=it(e);return{width:t,height:n}}function xt(e,t,n){let r=N(t),i=j(t),a=n===`fixed`,o=V(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=E(0);function l(){c.x=H(i)}if(r||!r&&!a)if((k(t)!==`body`||P(i))&&(s=tt(t)),r){let e=V(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?lt(i,s):E(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function St(e){return L(e).position===`static`}function Ct(e,t){if(!N(e)||L(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return j(e)===n&&(n=n.ownerDocument.body),n}function wt(e,t){let n=A(e);if(Je(e))return n;if(!N(e)){let t=R(e);for(;t&&!I(t);){if(M(t)&&!St(t))return t;t=R(t)}return n}let r=Ct(e,t);for(;r&&qe(r)&&St(r);)r=Ct(r,t);return r&&I(r)&&St(r)&&!Qe(r)?n:r||$e(e)||n}var Tt=async function(e){let t=this.getOffsetParent||wt,n=this.getDimensions,r=await n(e.floating);return{reference:xt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Et(e){return L(e).direction===`rtl`}var Dt={convertOffsetParentRelativeRectToViewportRelativeRect:ut,getDocumentElement:j,getClippingRect:yt,getOffsetParent:wt,getElementRects:Tt,getClientRects:dt,getDimensions:bt,getScale:B,isElement:M,isRTL:Et};function Ot(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function kt(e,t){let n=null,r,i=j(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=ge(d),h=ge(i.clientWidth-(u+f)),g=ge(i.clientHeight-(d+p)),_=ge(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:T(0,me(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Ot(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function At(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=at(e),u=i||a?[...l?z(l):[],...t?z(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?kt(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?V(e):null;c&&g();function g(){let t=V(e);h&&!Ot(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var jt=Ue,Mt=Be,Nt=(e,t,n)=>{let r=new Map,i={platform:Dt,...n},a={...i.platform,_c:r};return ze(e,t,{...i,platform:a})},Pt=new WeakMap,Ft=(e,t)=>{It(e),Pt.set(e,t)},It=e=>{let t=Pt.get(e);t&&(t(),Pt.delete(e))},Lt=({element:e,activeActions:t,getGridItemById:n,placementItemActionsMenu:r,renderOverlayContent:i,removeItemActionsMenuPopover:a,itemActionsDocumentPopover:o=!0})=>{let c=e.querySelector(`.grid-item-actions-popover`),l=e.querySelector(`.grid-stack-item-content`),u=n(e.getAttribute(`gs-id`)??``);if(t&&t.length>0&&c&&(a(e),c=null),!c){let n=document.createDocumentFragment();(0,s.render)(i(u?.item,t),n),c=n.querySelector(`.grid-item-actions-popover`),e.append(c)}let d=o?`absolute`:`fixed`,f=At(l,c,async()=>{let{x:e,y:t}=await Nt(l,c,{placement:u?.item?.placementActionsMenu??r??`right-start`,strategy:d,middleware:[jt(0),Mt({crossAxis:!1})]});c.style.left=`${e}px`,c.style.top=`${t}px`,o||(c.style.position=`fixed`,c.style.right=`auto`,c.style.bottom=`auto`,c.style.margin=`0`)});Ft(c,f),o&&c.isConnected&&!c.matches(`:popover-open`)&&c.showPopover()},Rt=e=>{let t=e.querySelector(`.grid-item-actions-popover`);t&&(It(t),t.hasAttribute(`popover`)&&t.matches(`:popover-open`)&&t.hidePopover(),t.remove())},zt=e=>e===`ArrowLeft`||e===`ArrowRight`||e===`ArrowUp`||e===`ArrowDown`,Bt=({key:e,node:t,maxColumns:n,shiftKey:r,ctrlKey:i,metaKey:a})=>{let o={ArrowLeft:{move:{x:t.x-1},resize:{x:t.x-1,w:t.w+1},shrink:{w:t.w-1},canMove:t.x>0,canResize:t.x>0,canShrink:t.w>1},ArrowRight:{move:{x:t.x+1},resize:{w:t.w+1},shrink:{x:t.x+1,w:t.w-1},canMove:t.x<n-t.w,canResize:t.x+t.w<n,canShrink:t.w>1},ArrowUp:{move:{y:t.y-1},resize:{y:t.y-1,h:t.h+1},shrink:{h:t.h-1},canMove:t.y>0,canResize:t.y>0,canShrink:t.h>1},ArrowDown:{move:{y:t.y+1},resize:{h:t.h+1},shrink:{y:t.y+1,h:t.h-1},canMove:!0,canResize:!0,canShrink:t.h>1}}[e];if(r&&o.canResize)return o.resize;if((i||a)&&o.canShrink)return o.shrink;if(o.canMove)return o.move},Vt=({event:e,viewMode:t,focusedItemElement:n,activeItemElement:r,gridElement:i,grid:a,columns:o,onDeleteRequest:s,removeItemActionsMenuPopover:c,createItemActionsMenuPopover:l})=>{if(t)return{focusedItemElement:n,activeItemElement:r};let u=n,d=r;if(e.key===`Delete`&&n){let e=n.nextElementSibling??n.previousElementSibling;s(n),u=e??void 0,u?requestAnimationFrame(()=>u?.focus()):i.focus(),r===n&&(d=void 0)}else if(e.key===`Escape`&&n)n.removeAttribute(`focused`),c(n),u=void 0,i.focus();else if(e.key===`Enter`&&n)e.preventDefault(),e.stopPropagation(),r&&(r.removeAttribute(`active`),i.removeAttribute(`has-active-item`),c(r),d=void 0),i.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==n&&c(e)}),l(n),requestAnimationFrame(()=>{let e=n.querySelector(`luzmo-item-grid-item-actions-menu`);e&&e.focus()});else if(n&&a&&zt(e.key)){e.preventDefault(),e.stopPropagation();let t=n.gridstackNode;if(!t)return{focusedItemElement:u,activeItemElement:d};let r=Bt({key:e.key,node:t,maxColumns:o,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey});r&&a.update(n,r)}return{focusedItemElement:u,activeItemElement:d}},U={lock:{icon:o.luzmoLockOutline,label:`Lock`,tooltip:`Lock`,action:`lock`,type:`toggle`},edit:{icon:o.luzmoPencil,label:`Edit`,tooltip:`Edit`,action:`edit`,type:`toggle`},"edit-data":{icon:o.luzmoTable,label:`Edit data`,tooltip:`Data`,action:`edit-data`,type:`toggle`},"item-options":{icon:o.luzmoCog,label:`Item options`,tooltip:`Options`,action:`item-options`,type:`toggle`},filters:{icon:o.luzmoFilterOutline,label:`Filters`,tooltip:`Filters`,action:`filters`,type:`toggle`},clone:{icon:o.luzmoClone,label:`Clone`,tooltip:`Clone`,action:`clone`,type:`button`},delete:{icon:o.luzmoTrashOutline,label:`Delete`,tooltip:`Delete`,action:`delete`,type:`button`}},Ht=e=>{if(e)return structuredClone(e).map(e=>{if(e.type===`group`)return e.actions=e.actions??[],e.actions=e.actions.map(e=>{if(typeof e==`string`&&Object.hasOwn(U,e))return{...U[e]};if(typeof e==`object`)return e.icon=e.icon??o.luzmoCircle,e.label=e.label??e.action,e.tooltip=e.tooltip??e.label??e.action,e.type=[`toggle`,`button`].includes(e.type??``)?e.type:`button`,e}).filter(Boolean),e}).filter(Boolean)},Ut=()=>[{type:`group`,actions:[{...U[`edit-data`]},{...U[`item-options`]},{...U.clone}]},{type:`group`,actions:[{...U.delete}]}],Wt=16,Gt=10,W=(e,t)=>t>=1?`rgba(${e.r},${e.g},${e.b},1)`:t<=0?`rgba(${e.r},${e.g},${e.b},0)`:`rgba(${e.r},${e.g},${e.b},${t})`,Kt=async({theme:e,currentTheme:t})=>e?.type===`custom`?structuredClone(e):e?.id&&i.n.includes(e.id)&&t?.id!==e.id?{...await i.t(e.id),id:e.id}:e?.id&&t?.id!==e.id||!e&&t?t:await i.t(`default`),qt=e=>[(e?.margins?.[0]??Wt)/2,(e?.margins?.[1]??Wt)/2],Jt=e=>Gt-(e?.margins?.[0]??Gt),Yt=e=>{let t=e?.boxShadow;if(!t)return``;let n=new r.t(t.color),i={r:Math.round(n.srgb.r*255),g:Math.round(n.srgb.g*255),b:Math.round(n.srgb.b*255)},a=e?.margins?.[0]??Wt,o=Math.min(a/10,2);return t.size===`none`?`none`:t.size===`S`?`0 ${o*2}px ${o*4}px ${W(i,.16)}, 0 ${o*2}px ${o*4}px ${W(i,.23)}`:t.size===`M`?`0 ${o*8}px ${o*16}px ${W(i,.19)}, 0 ${o*4}px ${o*4}px ${W(i,.23)}`:t.size===`L`?`0 ${o*12}px ${o*24}px ${W(i,.25)}, 0 ${o*8}px ${o*8}px ${W(i,.22)}`:``},Xt=e=>{let t=Yt(e);return new Map([[`--grid-font-family`,e?.font?.fontFamily],[`--grid-background`,e?.background],[`--grid-item-box-shadow`,t],[`--grid-item-background`,e?.itemsBackground],[`--grid-item-border-color`,e?.borders?.[`border-color`]],[`--grid-item-border-style`,e?.borders?.[`border-style`]],[`--grid-item-border-radius`,e?.borders?.[`border-radius`]],[`--grid-item-border-width`,`${e?.borders?.[`border-top-width`]}`],[`--grid-item-border-top-width`,e?.borders?.[`border-top-width`]],[`--grid-item-border-right-width`,e?.borders?.[`border-right-width`]],[`--grid-item-border-bottom-width`,e?.borders?.[`border-bottom-width`]],[`--grid-item-border-left-width`,e?.borders?.[`border-left-width`]]])},Zt=e=>{let t=e?.itemsBackground??e?.background;return t?new r.t(t).luminance<.5:!1},Qt=(e,t)=>{t&&Xt(t).forEach((t,n)=>{t?e.setProperty(n,t):e.removeProperty(n)})},$t=({item:e,defaultItemActionsMenu:t,activeActions:n})=>{let r=Ht(e?.actionsMenu)??Ht(t)??Ut();if(!a.itemTypes.find(t=>t.type===e?.type)?.containsData&&!e?.actionsMenu&&!t&&(r=r.map(e=>({...e,actions:e.actions?.filter(e=>e.action!==`edit-data`)}))),n&&n.length>0){let e=new Set(n);r=r.map(t=>({...t,actions:t.actions?.map(t=>({...t,active:t.action&&e.has(t.action)?!0:t.active}))}))}return r},en=({item:e,activeActions:t,defaultItemActionsMenu:n,placementItemActionsMenu:r,language:i,handleAction:a,itemActionsDocumentPopover:o=!0})=>{let c=$t({item:e,defaultItemActionsMenu:n,activeActions:t});return s.html`
|
|
21
21
|
<div class="grid-item-actions-popover" popover=${o?`manual`:s.nothing}>
|
|
22
22
|
<luzmo-item-grid-item-actions-menu
|
|
23
23
|
.actions=${c}
|
|
@@ -110,4 +110,4 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
|
|
|
110
110
|
<div class="grid-item-content">
|
|
111
111
|
<div class="grid-item-type">${e.type}</div>
|
|
112
112
|
</div>
|
|
113
|
-
`,this._internalItemStates={},this._initialItemStatesApplied=!1,this._internalItems=[],this._initialItemsApplied=!1,this._hasWarnedControlledAndInitialItems=!1,this._hasWarnedIgnoredInitialItems=!1,this._suppressItemStatesEvent=!1,this._suppressNextLayoutChangedEvent=!1,this._hasWarnedControlledAndInitialStates=!1,this._internalItemsVersion=0,this._handleMouseout=e=>{if(this.viewMode)return;let t=b(e.target);t&&x({event:e,gridItem:t})&&this._removeItemActionsMenuPopover(t)},this._handleKeyDown=e=>{let t=Vt({event:e,viewMode:this.viewMode,focusedItemElement:this._focusedItemElement,activeItemElement:this._activeItemElement,gridElement:this._gridElement,grid:this._grid,columns:this.columns??48,onDeleteRequest:e=>{let t=e.getAttribute(`gs-id`);if(!t)return;let n=this._effectiveItems,r=n.find(e=>e.id===t);if(!r)return;this._isControlled||this._clearGridItemUiStateForDelete(e);let i=n.filter(e=>e.id!==t);g({target:this,action:`delete`,actionType:`button`,active:!1,items:n,element:e,itemId:t,item:r,updatedItems:i}),this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0})},removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});this._focusedItemElement=t.focusedItemElement,this._activeItemElement=t.activeItemElement},this._handleFocus=e=>{this._focusedItemElement=ee({event:e,focusedItemElement:this._focusedItemElement,removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this)})},this._handleBlur=e=>{let t=S({event:e,focusedItemElement:this._focusedItemElement,removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this)});this._focusedItemElement=t.focusedItemElement,t.shouldFocusGrid&&this._gridElement.focus()},this._handleGridClick=e=>{if(this._isControlled){this._emitControlledClickAwayDeactivation(e);return}let t=te({event:e,gridElement:this._gridElement,hostElement:this,items:this.items,activeItemActionToggle:this._activeItemActionToggle,cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this)});this._activeItemActionToggle=t.activeItemActionToggle},this._handleAction=e=>{let t=e.detail,n=e.target?.closest(`.grid-stack-item`),r=n?.getAttribute(`gs-id`);if([`delete`,`clone`].includes(t.action)){if(e.stopPropagation(),!r)return;let a=this._effectiveItems,o=a.find(e=>e.id===r);if(!o)return;let s=this._gridElement.querySelector(`.grid-stack-item[active]`)??this._activeItemElement;if(!this._isControlled&&s&&s!==n){let e=s.getAttribute(`gs-id`),t=a.find(t=>t.id===e),n=this._activeItemActionToggle,r=s;this._cleanupActiveItem(s),n&&e&&t&&this._dispatchItemActionEvent(n,`toggle`,!1,r,e,t),this._activeItemElement=void 0,this._activeItemActionToggle=void 0,this._internalItemStates={}}if(t.action===`delete`){this._isControlled||this._clearGridItemUiStateForDelete(n);let e=a.filter(e=>e.id!==r);g({target:this,action:`delete`,actionType:t.type,active:t.active,items:a,element:n,itemId:r,item:o,updatedItems:e}),this._isItemsControlled||this._setInternalItems(e,{reconcileStates:!0})}else{let e={...structuredClone(o),id:i.t()},r=this._simulateCloneLayout(e,o),s=r.find(t=>t.id===e.id)??e;g({target:this,action:`clone`,actionType:t.type,active:t.active,items:a,element:n,itemId:e.id,item:s,originalElement:n,updatedItems:r}),this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0})}return}if(this._isControlled){if(e.stopPropagation(),!r)return;let i=this.items.find(e=>e.id===r);if(t.type===`toggle`){let e=this._effectiveItemStates,n=t.active,i=this._computeNextItemStates(r,t.action,n);_({target:this,itemStates:e,updatedItemStates:i,changedItemStates:{[r]:[t.action]}})}else g({target:this,action:t.action,actionType:t.type,active:t.active,items:this.items,element:n,itemId:r,item:i});n&&!n.hasAttribute(`active`)&&this._removeItemActionsMenuPopover(n);return}this._suppressItemStatesEvent=!0;let a=w({event:e,gridElement:this._gridElement,items:this.items,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=a.activeItemElement,this._activeItemActionToggle=a.activeItemActionToggle,t.type===`toggle`&&r){let e=this._effectiveItemStates,i=a.activeItemElement===n&&a.activeItemActionToggle===t.action,o=this._computeNextItemStates(r,t.action,i);this._internalItemStates=o,_({target:this,itemStates:e,updatedItemStates:o,changedItemStates:this._diffItemStates(e,o)})}}}static get styles(){return[(0,s.unsafeCSS)(p),(0,s.unsafeCSS)(On)]}set items(e){let t=this._items,n=structuredClone(e??[]);this._validateItemsHaveIds(n,`items`),this._items=n,this._hasControlledItems=e!==void 0,this._isItemsControlled&&!this._hasControlledItems&&(this._setInternalItems(t,{reconcileStates:!0}),this._initialItemsApplied=!0),this.requestUpdate(`items`,t)}get items(){return this._effectiveItems}set initialItems(e){let t=this._initialItems,n=structuredClone(e??[]);this._validateItemsHaveIds(n,`initialItems`),!(!this._isItemsControlled&&this._initialItemsApplied)&&(this._initialItems=n,this._isItemsControlled||(this._initialItemsApplied=!1),this.requestUpdate(`initialItems`,t))}get initialItems(){return this._initialItems}set itemStates(e){let t=this._itemStates;this._itemStates=e??void 0,this.requestUpdate(`itemStates`,t)}get itemStates(){return this._itemStates}get _isControlled(){return this.itemStates!==void 0}get _isItemsControlled(){return this._hasControlledItems}get _effectiveItems(){return this._isItemsControlled?this._items:this._internalItems}get _effectiveItemStates(){return this._isControlled?this.itemStates:this._internalItemStates}_validateItemsHaveIds(e,t){for(let n=0;n<e.length;n+=1)if(!e[n]?.id)throw Error(`luzmo-item-grid: ${t}[${n}] is missing required id`)}async _loadTheme(e){let t=this._initialized;if(this._fullTheme=await Kt({theme:e,currentTheme:this._fullTheme}),this._initialized&&Qt(this.style,this._fullTheme),!this._initialized&&this._gridElement&&await new Promise(e=>{requestAnimationFrame(()=>{this._initializeGrid(),e()})}),this._grid){let[e,t]=qt(this.theme);this._grid.margin([e,t].join(` `))}t&&this.requestUpdate()}firstUpdated(){document.addEventListener(`click`,this._handleGridClick),this.addEventListener(`keydown`,this._handleKeyDown)}disconnectedCallback(){super.disconnectedCallback(),this._cleanup(),document.removeEventListener(`click`,this._handleGridClick),this.removeEventListener(`keydown`,this._handleKeyDown)}willUpdate(e){if(super.willUpdate(e),e.has(`_initialized`)&&(Qt(this.style,this._fullTheme),this._initialized&&this._grid&&this._fullTheme?.margins)){let[e,t]=qt(this._fullTheme);this._grid.margin([e,t].join(` `))}}updated(e){super.updated(e);let t=e.has(`contentLanguage`),n=e.has(`viewMode`),r=e.has(`items`),i=e.has(`initialItems`),a=r||e.has(`_internalItemsVersion`),o=e.has(`theme`),s=e.has(`itemStates`);this._isItemsControlled&&this.initialItems&&this.initialItems.length>0?this._hasWarnedControlledAndInitialItems||=(console.warn(`luzmo-item-grid: Both items and initialItems are set. The component will be treated as controlled (initialItems is ignored).`),!0):this._hasWarnedControlledAndInitialItems=!1,!this._initialItemsApplied&&!this._isItemsControlled&&this._initialItems.length>0?(this._setInternalItems(this._initialItems,{reconcileStates:!0}),this._initialItemsApplied=!0):i&&!this._isItemsControlled&&this._initialItems.length===0&&!this._initialItemsApplied&&(this._setInternalItems([],{reconcileStates:!0}),this._initialItemsApplied=!0),this.itemStates!==void 0&&this.initialItemStates!==void 0?this._hasWarnedControlledAndInitialStates||=(console.warn(`luzmo-item-grid: Both itemStates and initialItemStates are set. The component will be treated as controlled (initialItemStates is ignored).`),!0):this._hasWarnedControlledAndInitialStates=!1,!this._initialItemStatesApplied&&this.initialItemStates&&!this._isControlled&&(this._internalItemStates=this._sanitizeInitialItemStates(this.initialItemStates),this._initialItemStatesApplied=!0),ae(this._effectiveItems),Tn({initialized:this._initialized,grid:this._grid,hasItemsChanged:a,gridItemElements:this._gridItemElements,items:this._effectiveItems}),r&&this._reconcileStaleItemStates(),t&&m(this._gridItemElements,this.contentLanguage),this._activeItemElement=En({initialized:this._initialized,grid:this._grid,hasViewModeChanged:n,viewMode:this.viewMode,previousViewMode:e.get(`viewMode`),activeItemElement:this._activeItemElement,gridElement:this._gridElement,cleanupActiveItem:this._cleanupActiveItem.bind(this)}),(o||!this._fullTheme&&!this._initialized)&&this._loadTheme(this.theme),(a||s)&&this._initialized&&this._applyItemStates()}_setInternalItems(e,t={}){let n=structuredClone(e);this._validateItemsHaveIds(n,`internalItems`),this._internalItems=n,ae(this._internalItems),this._internalItemsVersion+=1,t.reconcileStates&&this._reconcileStaleItemStates()}_handleMouseover(e){if(this.viewMode)return;let t=b(e.target);t&&this._createItemActionsMenuPopover(t)}_emitControlledClickAwayDeactivation(e){let t=this._effectiveItemStates,n=Object.entries(t).filter(([,e])=>e.length>0);if(!this._gridElement||n.length===0)return;let r=e.composedPath();if(n.some(([e])=>{let t=Array.from(this._gridElement.querySelectorAll(`.grid-stack-item`)).find(t=>t.getAttribute(`gs-id`)===e);if(!t)return!1;if(r.includes(t))return!0;let n=t.querySelector(`.grid-item-actions-popover`);return n?r.includes(n):!1}))return;let i={},a={...t};for(let[e,t]of n){for(let n of t)a=this._computeNextItemStates(e,n,!1,a);i[e]=[...t]}_({target:this,itemStates:t,updatedItemStates:a,changedItemStates:i})}_cleanupActiveItem(e){this._activeItemElement=C({item:e,activeItemElement:this._activeItemElement,gridElement:this._gridElement,removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this)})}_clearGridItemUiStateForDelete(e){e.hasAttribute(`focused`)&&e.removeAttribute(`focused`),e.hasAttribute(`active`)&&e.removeAttribute(`active`),this._removeItemActionsMenuPopover(e),this._focusedItemElement===e&&(this._focusedItemElement=void 0),this._activeItemElement===e&&(this._activeItemElement=void 0,this._activeItemActionToggle=void 0),this._gridElement.querySelector(`.grid-stack-item[active]`)||this._gridElement.removeAttribute(`has-active-item`)}_dispatchItemActionEvent(e,t,n,r,i,a,o,s){if(g({target:this,action:e,actionType:t,active:n,items:this.items,element:r,itemId:i,item:a,deletedId:o,originalElement:s}),t===`toggle`&&!this._suppressItemStatesEvent){let t=this._effectiveItemStates,r=this._computeNextItemStates(i,e,n);this._isControlled||(this._internalItemStates=r),_({target:this,itemStates:t,updatedItemStates:r,changedItemStates:{[i]:[e]}})}}_sanitizeInitialItemStates(e){let t=Object.entries(e).filter(([,e])=>e.length>0),n=t.length,r=t.reduce((e,[,t])=>e+t.length,0);if(n>1||r>1){console.warn(`luzmo-item-grid: initialItemStates contains multiple items or actions. In uncontrolled mode, only one item with one active action is supported at a time. Only the first item and its first action will be applied. Use controlled mode (itemStates) for multiple simultaneous active items.`);let[e,n]=t[0];return{[e]:[n[0]]}}return{...e}}_diffItemStates(e,t){let n={},r=new Set([...Object.keys(e),...Object.keys(t)]);for(let i of r){let r=e[i]??[],a=t[i]??[],o=a.filter(e=>!r.includes(e)),s=r.filter(e=>!a.includes(e)),c=[...o,...s];c.length>0&&(n[i]=c)}return n}_computeNextItemStates(e,t,n,r){if(!this._isControlled)return n?{[e]:[t]}:{};let i={...r??this._effectiveItemStates};if(n){let n=i[e]??[];n.includes(t)||(i[e]=[...n,t])}else{let n=i[e];if(n){let r=n.filter(e=>e!==t);r.length===0?delete i[e]:i[e]=r}}return i}_filterItemStatesToExistingItems(e){let t=new Set(this.items.map(e=>e.id).filter(e=>!!e)),n={};for(let[r,i]of Object.entries(e))!t.has(r)||i.length===0||(n[r]=[...i]);return n}_reconcileStaleItemStates(){let e=this._isControlled?this._effectiveItemStates:this._internalItemStates,t=this._filterItemStatesToExistingItems(e),n={};for(let[r,i]of Object.entries(e))!t[r]&&i.length>0&&(n[r]=[...i]);Object.keys(n).length>0&&_({target:this,itemStates:e,updatedItemStates:t,changedItemStates:n}),this._isControlled||(this._internalItemStates=t)}_simulateCloneLayout(e,t){let n=this._effectiveItems;if(!this._grid)return[...n,e];let r=e.position??this._resolvePositionFromEngine(t.id);if(!r)return[...n,e];e={...e,position:{...r}};let i=t.position??this._resolvePositionFromEngine(t.id);this.clonedItemPositioning===`below-item`&&i&&(e.position={...e.position,col:i.col,row:i.row+i.sizeY});let a=this.clonedItemPositioning!==`below-item`||!i,{updatedItems:o}=de({item:e,engine:this._grid.engine,existingItems:this._enrichItemsWithEnginePositions(n),autoPosition:a});return o}_cleanup(){for(let e of this._gridItemElements)this._cleanupActiveItem(e);this._grid&&=(this._grid.destroy(),void 0),this._initialized=!1}_restoreItemsLayout(e){if(!this._grid||!this._gridElement||e.length===0||!this._isItemsControlled)return;let t=[];for(let n of e){if(!n.id)continue;let e=this._effectiveItems.find(e=>e.id===n.id);if(!e)continue;let r=e.position??this._resolvePositionFromEngine(e.id);if(!r)continue;let i=this._gridElement.querySelector(`.grid-stack-item[gs-id="${e.id}"]`);i&&(n.x!==r.col||n.y!==r.row||n.w!==r.sizeX||n.h!==r.sizeY)&&t.push({element:i,position:r})}if(t.length!==0){this._suppressNextLayoutChangedEvent=!0,this._grid.batchUpdate();for(let e of t)this._grid.update(e.element,{x:e.position.col,y:e.position.row,w:e.position.sizeX,h:e.position.sizeY});this._grid.batchUpdate(!1),setTimeout(()=>{this._suppressNextLayoutChangedEvent&&=!1},0)}}_initializeGrid(){this._initialized||!this._gridElement||(this._grid=xn({gridElement:this._gridElement,gridItemElements:this._gridItemElements,items:this._effectiveItems,columns:this.columns??48,rowHeight:this.rowHeight??16,viewMode:this.viewMode,fullTheme:this._fullTheme,onCreateOrUpdateDimensionsHint:this._createOrUpdateDimensionsHint.bind(this),onRemoveDimensionsHint:this._removeDimensionsHint.bind(this),onChange:e=>{if(this._suppressNextLayoutChangedEvent){this._suppressNextLayoutChangedEvent=!1;return}let t=this._effectiveItems,n=Sn(t,e);this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),v({target:this,eventName:`luzmo-item-grid-layout-changed`,detail:{element:this._gridElement,grid:this._grid,items:t,updatedItems:n}}),this._restoreItemsLayout(e)}}),this._initialized=!0,v({target:this,eventName:`luzmo-item-grid-ready`,detail:{element:this._gridElement,grid:this._grid,items:this._effectiveItems}}),this._applyItemStates())}_applyItemStates(){let e=this._filterItemStatesToExistingItems(this._effectiveItemStates),t=new Set(Object.entries(e).filter(([,e])=>e.length>0).map(([e])=>e)),n=[],r=this._gridElement?.querySelectorAll(`.grid-stack-item[active]`);if(r)for(let e of r){let n=e.getAttribute(`gs-id`);(!n||!t.has(n))&&(e.removeAttribute(`active`),this._removeItemActionsMenuPopover(e))}if(this._activeItemElement=void 0,this._activeItemActionToggle=void 0,t.size===0){this._gridElement?.removeAttribute(`has-active-item`);return}for(let[t,r]of Object.entries(e)){if(r.length===0)continue;let e=this.getGridItemById(t);if(!e?.element)continue;let i=e.element;i.setAttribute(`active`,`true`),this._gridElement?.setAttribute(`has-active-item`,`true`),this._createItemActionsMenuPopover(i,r);for(let e of r)n.push({element:i,action:e})}if(n.length===0){this._gridElement?.removeAttribute(`has-active-item`),this._activeItemElement=void 0,this._activeItemActionToggle=void 0;return}n.length===1?(this._activeItemElement=n[0].element,this._activeItemActionToggle=n[0].action):(this._activeItemElement=void 0,this._activeItemActionToggle=void 0)}_createOrUpdateDimensionsHint(e,t,n){Cn({element:e,numberOfColumns:t,numberOfRows:n,offsetHint:Jt(this.theme)})}_removeDimensionsHint(e){wn(e)}get grid(){return this._grid}get gridItems(){return ue(this.items,this._gridElement)}registerRenderer(e,t){this.renderers={...this.renderers,[e]:t}}_renderOverlayContent(e,t){return en({item:e,activeActions:t,defaultItemActionsMenu:this.defaultItemActionsMenu,placementItemActionsMenu:this.placementItemActionsMenu,language:this.language,handleAction:this._handleAction,itemActionsDocumentPopover:this.itemActionsDocumentPopover})}_createItemActionsMenuPopover(e,t){Lt({element:e,activeActions:t,getGridItemById:this.getGridItemById.bind(this),placementItemActionsMenu:this.placementItemActionsMenu,renderOverlayContent:this._renderOverlayContent.bind(this),removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this),itemActionsDocumentPopover:this.itemActionsDocumentPopover})}_removeItemActionsMenuPopover(e){Rt(e)}getGridItemById(e){return this.gridItems.find(t=>t.item.id===e)}scrollToItem(e){let t=this.getGridItemById(e);if(!t?.element)return;let n=t.element.getBoundingClientRect();(n.bottom>window.innerHeight||n.top<0)&&t.element.scrollIntoView({behavior:`smooth`,block:`center`})}_createMissingItemError(e){return Error(`Grid item with id "${e}" not found`)}_requireGridItem(e){let t=this._effectiveItems.find(t=>t.id===e);if(!t)throw this._createMissingItemError(e);return t}_resolvePositionFromEngine(e){let t=this._grid?.engine.nodes.find(t=>t.id===e);if(!(!t||t.x==null||t.y==null||t.w==null||t.h==null))return{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}_requireGridItemWithPosition(e){let t=this._requireGridItem(e);if(!t.position){let n=this._resolvePositionFromEngine(e);if(!n)throw Error(`Grid item with id "${e}" does not have a position`);return{...t,position:n}}return t}_assertAddItemHasId(e){if(!e.id)throw Error(`addGridItem requires newItem.id`)}addGridItem(e){if(this._assertAddItemHasId(e),this._effectiveItems.some(t=>t.id===e.id))throw Error(`addGridItem rejected: an item with id "${e.id}" already exists`);let t=pe(e),n=this._effectiveItems;if(!this._grid){let r=e.position?.col==null||e.position?.row==null?{...t,position:void 0}:t,i=[...n,r];return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}if(!t.position){let e=[...n,t];return this._isItemsControlled||this._setInternalItems(e,{reconcileStates:!0}),e}let r=e.position?.col==null||e.position?.row==null,{updatedItems:i}=de({item:t,engine:this._grid.engine,existingItems:n,autoPosition:r});return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}_enrichItemsWithEnginePositions(e){return this._grid?e.map(e=>{if(e.position)return e;let t=this._resolvePositionFromEngine(e.id);return t?{...e,position:t}:e}):e}_updateGridItemPosition(e,t){let n=this._effectiveItems,r=this._requireGridItemWithPosition(e);return n.map(n=>{if(n.id!==e)return n;let i=n.position??r.position;return{...n,position:{...i,...t}}})}_dispatchLayoutChangedEvent(e,t){v({target:this,eventName:`luzmo-item-grid-layout-changed`,detail:{element:this._gridElement,grid:this._grid,items:e,updatedItems:t}})}_updateItemField(e,t){let n=this._effectiveItems;this._requireGridItem(e);let r=n.map(n=>n.id===e?{...n,...t}:n);return this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}removeGridItem(e){let t=this._effectiveItems,n=this._requireGridItem(e),r=t.filter(t=>t.id!==e);return g({target:this,action:`delete`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:e,item:n,updatedItems:r}),this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}cloneGridItem(e){let t=this._effectiveItems,n=this._requireGridItem(e),r={...structuredClone(n),id:i.t()},a=this._simulateCloneLayout(r,n),o=a.find(e=>e.id===r.id)??r;return g({target:this,action:`clone`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:r.id,item:o,originalElement:this.getGridItemById(e)?.element,updatedItems:a}),this._isItemsControlled||this._setInternalItems(a,{reconcileStates:!0}),a}updateGridItemPosition(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSize(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSlots(e,t){return this._updateItemField(e,{slots:t})}updateGridItemOptions(e,t){return this._updateItemField(e,{options:t})}updateGridItemFilters(e,t){return this._updateItemField(e,{filters:t})}updateGridItemType(e,t){return this._updateItemField(e,{type:t})}updateGridItem(e,t){let n=this._effectiveItems;this._requireGridItem(e);let{position:r,...i}=t,a;return r&&this._grid?(a=fe({itemId:e,patch:r,engine:this._grid.engine,existingItems:this._enrichItemsWithEnginePositions(n)}),a=a.map(t=>t.id===e?{...t,...i}:t)):a=n.map(t=>t.id===e?{...t,...i,...r&&t.position?{position:{...t.position,...r}}:r?{position:r}:{}}:t),t.position&&this._dispatchLayoutChangedEvent(n,a),this._isItemsControlled||this._setInternalItems(a,{reconcileStates:!0}),a}async triggerItemAction(e,t,n){await this.updateComplete;let r=this.getGridItemById(e);if(!r?.element){console.warn(`Grid item with id "${e}" not found`);return}if(this._isControlled)return this._triggerControlledItemAction(e,t,n);this._suppressItemStatesEvent=!0;let i=ne({gridElement:this._gridElement,items:this.items,gridItemData:r,itemId:e,action:t,options:n,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=i.state.activeItemElement,this._activeItemActionToggle=i.state.activeItemActionToggle,i.result!==void 0){let n=this._effectiveItemStates,r=this._computeNextItemStates(e,t,i.result);this._internalItemStates=r,_({target:this,itemStates:n,updatedItemStates:r,changedItemStates:this._diffItemStates(n,r)})}return i.result}activateItemAction(e,t,n){return this.triggerItemAction(e,t,n)}_triggerControlledItemAction(e,t,n){let r=(this._effectiveItemStates[e]??[]).includes(t),i=n?.active??!r;if(n?.active!==void 0&&i===r)return r;let a=this._effectiveItemStates,o=this._computeNextItemStates(e,t,i);return _({target:this,itemStates:a,updatedItemStates:o,changedItemStates:{[e]:[t]}}),i}deactivateItems(){if(this._isControlled){let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));if(t.length===0)return 0;let n={},r={...e};for(let e of t)r=this._computeNextItemStates(e.itemId,e.action,!1,r),n[e.itemId]=[...n[e.itemId]??[],e.action];return _({target:this,itemStates:e,updatedItemStates:r,changedItemStates:n}),new Set(t.map(e=>e.itemId)).size}let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));this._suppressItemStatesEvent=!0;let n=re({gridElement:this._gridElement,items:this.items,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=n.state.activeItemElement,this._activeItemActionToggle=n.state.activeItemActionToggle,this._isControlled||(this._internalItemStates={}),t.length>0){let n={};for(let e of t)n[e.itemId]=[...n[e.itemId]??[],e.action];_({target:this,itemStates:e,updatedItemStates:{},changedItemStates:n})}return n.deactivatedCount}_renderGrid(){return rn({items:this.items,initialized:this._initialized,viewMode:this.viewMode,contentLanguage:this.contentLanguage,fullTheme:this._fullTheme,appServer:this.appServer,apiHost:this.apiHost,authKey:this.authKey,authToken:this.authToken,columns:this.columns??48,ensureGridItemId:e=>oe(e),handleMouseover:this._handleMouseover.bind(this),handleMouseout:this._handleMouseout,handleFocus:this._handleFocus,handleBlur:this._handleBlur})}render(){return this._renderGrid()}};e.t([(0,c.property)({type:String,attribute:`app-server`,reflect:!0})],$.prototype,`appServer`,void 0),e.t([(0,c.property)({type:String,attribute:`api-host`,reflect:!0})],$.prototype,`apiHost`,void 0),e.t([(0,c.property)({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),e.t([(0,c.property)({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),e.t([(0,c.property)({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),e.t([(0,c.property)({type:String,reflect:!0})],$.prototype,`language`,void 0),e.t([(0,c.property)({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),e.t([(0,c.property)({type:Number,reflect:!0})],$.prototype,`columns`,void 0),e.t([(0,c.property)({type:Number,reflect:!0,attribute:`row-height`})],$.prototype,`rowHeight`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`view-mode`})],$.prototype,`viewMode`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`item-actions-document-popover`})],$.prototype,`itemActionsDocumentPopover`,void 0),e.t([(0,c.property)({type:String,reflect:!0,attribute:`placement-item-actions-menu`})],$.prototype,`placementItemActionsMenu`,void 0),e.t([(0,c.property)({type:Array,reflect:!0,attribute:`default-item-actions-menu`})],$.prototype,`defaultItemActionsMenu`,void 0),e.t([(0,c.property)({type:String,reflect:!0,attribute:`cloned-item-positioning`})],$.prototype,`clonedItemPositioning`,void 0),e.t([(0,c.property)({type:Object,reflect:!0})],$.prototype,`theme`,void 0),e.t([(0,c.property)({type:Array,reflect:!1})],$.prototype,`items`,null),e.t([(0,c.property)({type:Array,reflect:!1,attribute:`initial-items`})],$.prototype,`initialItems`,null),e.t([(0,c.property)({type:Object,reflect:!1})],$.prototype,`renderers`,void 0),e.t([(0,c.property)({type:Object,reflect:!1,attribute:`item-states`})],$.prototype,`itemStates`,null),e.t([(0,c.property)({type:Object,reflect:!1,attribute:`initial-item-states`})],$.prototype,`initialItemStates`,void 0),e.t([(0,c.state)()],$.prototype,`_initialized`,void 0),e.t([(0,c.query)(`.grid-stack`)],$.prototype,`_gridElement`,void 0),e.t([(0,c.queryAll)(`.luzmo-item-grid-item`)],$.prototype,`_gridItemElements`,void 0),e.t([(0,c.state)()],$.prototype,`_internalItemsVersion`,void 0),customElements.get(`luzmo-item-grid`)||customElements.define(`luzmo-item-grid`,$),customElements.get(`luzmo-item-grid-item-actions-menu`)||customElements.define(`luzmo-item-grid-item-actions-menu`,Q),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}});
|
|
113
|
+
`,this._internalItemStates={},this._initialItemStatesApplied=!1,this._internalItems=[],this._initialItemsApplied=!1,this._hasWarnedControlledAndInitialItems=!1,this._hasWarnedIgnoredInitialItems=!1,this._suppressItemStatesEvent=!1,this._suppressNextLayoutChangedEvent=!1,this._hasWarnedControlledAndInitialStates=!1,this._internalItemsVersion=0,this._handleMouseout=e=>{if(this.viewMode)return;let t=b(e.target);t&&x({event:e,gridItem:t})&&this._removeItemActionsMenuPopover(t)},this._handleKeyDown=e=>{let t=Vt({event:e,viewMode:this.viewMode,focusedItemElement:this._focusedItemElement,activeItemElement:this._activeItemElement,gridElement:this._gridElement,grid:this._grid,columns:this.columns??48,onDeleteRequest:e=>{let t=e.getAttribute(`gs-id`);if(!t)return;let n=this._effectiveItems,r=n.find(e=>e.id===t);if(!r)return;this._isControlled||this._clearGridItemUiStateForDelete(e);let i=n.filter(e=>e.id!==t);g({target:this,action:`delete`,actionType:`button`,active:!1,items:n,element:e,itemId:t,item:r,updatedItems:i}),this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0})},removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});this._focusedItemElement=t.focusedItemElement,this._activeItemElement=t.activeItemElement},this._handleFocus=e=>{this._focusedItemElement=ee({event:e,focusedItemElement:this._focusedItemElement,removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this)})},this._handleBlur=e=>{let t=S({event:e,focusedItemElement:this._focusedItemElement,removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this)});this._focusedItemElement=t.focusedItemElement,t.shouldFocusGrid&&this._gridElement.focus()},this._handleGridClick=e=>{if(this._isControlled){this._emitControlledClickAwayDeactivation(e);return}let t=te({event:e,gridElement:this._gridElement,hostElement:this,items:this.items,activeItemActionToggle:this._activeItemActionToggle,cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this)});this._activeItemActionToggle=t.activeItemActionToggle},this._handleAction=e=>{let t=e.detail,r=e.target?.closest(`.grid-stack-item`),i=r?.getAttribute(`gs-id`);if([`delete`,`clone`].includes(t.action)){if(e.stopPropagation(),!i)return;let a=this._effectiveItems,o=a.find(e=>e.id===i);if(!o)return;let s=this._gridElement.querySelector(`.grid-stack-item[active]`)??this._activeItemElement;if(!this._isControlled&&s&&s!==r){let e=s.getAttribute(`gs-id`),t=a.find(t=>t.id===e),n=this._activeItemActionToggle,r=s;this._cleanupActiveItem(s),n&&e&&t&&this._dispatchItemActionEvent(n,`toggle`,!1,r,e,t),this._activeItemElement=void 0,this._activeItemActionToggle=void 0,this._internalItemStates={}}if(t.action===`delete`){this._isControlled||this._clearGridItemUiStateForDelete(r);let e=a.filter(e=>e.id!==i);g({target:this,action:`delete`,actionType:t.type,active:t.active,items:a,element:r,itemId:i,item:o,updatedItems:e}),this._isItemsControlled||this._setInternalItems(e,{reconcileStates:!0})}else{let e={...structuredClone(o),id:n.t()},i=this._simulateCloneLayout(e,o),s=i.find(t=>t.id===e.id)??e;g({target:this,action:`clone`,actionType:t.type,active:t.active,items:a,element:r,itemId:e.id,item:s,originalElement:r,updatedItems:i}),this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0})}return}if(this._isControlled){if(e.stopPropagation(),!i)return;let n=this.items.find(e=>e.id===i);if(t.type===`toggle`){let e=this._effectiveItemStates,n=t.active,r=this._computeNextItemStates(i,t.action,n);_({target:this,itemStates:e,updatedItemStates:r,changedItemStates:{[i]:[t.action]}})}else g({target:this,action:t.action,actionType:t.type,active:t.active,items:this.items,element:r,itemId:i,item:n});r&&!r.hasAttribute(`active`)&&this._removeItemActionsMenuPopover(r);return}this._suppressItemStatesEvent=!0;let a=w({event:e,gridElement:this._gridElement,items:this.items,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=a.activeItemElement,this._activeItemActionToggle=a.activeItemActionToggle,t.type===`toggle`&&i){let e=this._effectiveItemStates,n=a.activeItemElement===r&&a.activeItemActionToggle===t.action,o=this._computeNextItemStates(i,t.action,n);this._internalItemStates=o,_({target:this,itemStates:e,updatedItemStates:o,changedItemStates:this._diffItemStates(e,o)})}}}static get styles(){return[(0,s.unsafeCSS)(p),(0,s.unsafeCSS)(On)]}set items(e){let t=this._items,n=structuredClone(e??[]);this._validateItemsHaveIds(n,`items`),this._items=n,this._hasControlledItems=e!==void 0,this._isItemsControlled&&!this._hasControlledItems&&(this._setInternalItems(t,{reconcileStates:!0}),this._initialItemsApplied=!0),this.requestUpdate(`items`,t)}get items(){return this._effectiveItems}set initialItems(e){let t=this._initialItems,n=structuredClone(e??[]);this._validateItemsHaveIds(n,`initialItems`),!(!this._isItemsControlled&&this._initialItemsApplied)&&(this._initialItems=n,this._isItemsControlled||(this._initialItemsApplied=!1),this.requestUpdate(`initialItems`,t))}get initialItems(){return this._initialItems}set itemStates(e){let t=this._itemStates;this._itemStates=e??void 0,this.requestUpdate(`itemStates`,t)}get itemStates(){return this._itemStates}get _isControlled(){return this.itemStates!==void 0}get _isItemsControlled(){return this._hasControlledItems}get _effectiveItems(){return this._isItemsControlled?this._items:this._internalItems}get _effectiveItemStates(){return this._isControlled?this.itemStates:this._internalItemStates}_validateItemsHaveIds(e,t){for(let n=0;n<e.length;n+=1)if(!e[n]?.id)throw Error(`luzmo-item-grid: ${t}[${n}] is missing required id`)}async _loadTheme(e){let t=this._initialized;if(this._fullTheme=await Kt({theme:e,currentTheme:this._fullTheme}),this._initialized&&Qt(this.style,this._fullTheme),!this._initialized&&this._gridElement&&await new Promise(e=>{requestAnimationFrame(()=>{this._initializeGrid(),e()})}),this._grid){let[e,t]=qt(this.theme);this._grid.margin([e,t].join(` `))}t&&this.requestUpdate()}firstUpdated(){document.addEventListener(`click`,this._handleGridClick),this.addEventListener(`keydown`,this._handleKeyDown)}disconnectedCallback(){super.disconnectedCallback(),this._cleanup(),document.removeEventListener(`click`,this._handleGridClick),this.removeEventListener(`keydown`,this._handleKeyDown)}willUpdate(e){if(super.willUpdate(e),e.has(`_initialized`)&&(Qt(this.style,this._fullTheme),this._initialized&&this._grid&&this._fullTheme?.margins)){let[e,t]=qt(this._fullTheme);this._grid.margin([e,t].join(` `))}}updated(e){super.updated(e);let t=e.has(`contentLanguage`),n=e.has(`viewMode`),r=e.has(`items`),i=e.has(`initialItems`),a=r||e.has(`_internalItemsVersion`),o=e.has(`theme`),s=e.has(`itemStates`);this._isItemsControlled&&this.initialItems&&this.initialItems.length>0?this._hasWarnedControlledAndInitialItems||=(console.warn(`luzmo-item-grid: Both items and initialItems are set. The component will be treated as controlled (initialItems is ignored).`),!0):this._hasWarnedControlledAndInitialItems=!1,!this._initialItemsApplied&&!this._isItemsControlled&&this._initialItems.length>0?(this._setInternalItems(this._initialItems,{reconcileStates:!0}),this._initialItemsApplied=!0):i&&!this._isItemsControlled&&this._initialItems.length===0&&!this._initialItemsApplied&&(this._setInternalItems([],{reconcileStates:!0}),this._initialItemsApplied=!0),this.itemStates!==void 0&&this.initialItemStates!==void 0?this._hasWarnedControlledAndInitialStates||=(console.warn(`luzmo-item-grid: Both itemStates and initialItemStates are set. The component will be treated as controlled (initialItemStates is ignored).`),!0):this._hasWarnedControlledAndInitialStates=!1,!this._initialItemStatesApplied&&this.initialItemStates&&!this._isControlled&&(this._internalItemStates=this._sanitizeInitialItemStates(this.initialItemStates),this._initialItemStatesApplied=!0),ae(this._effectiveItems),Tn({initialized:this._initialized,grid:this._grid,hasItemsChanged:a,gridItemElements:this._gridItemElements,items:this._effectiveItems}),r&&this._reconcileStaleItemStates(),t&&m(this._gridItemElements,this.contentLanguage),this._activeItemElement=En({initialized:this._initialized,grid:this._grid,hasViewModeChanged:n,viewMode:this.viewMode,previousViewMode:e.get(`viewMode`),activeItemElement:this._activeItemElement,gridElement:this._gridElement,cleanupActiveItem:this._cleanupActiveItem.bind(this)}),(o||!this._fullTheme&&!this._initialized)&&this._loadTheme(this.theme),(a||s)&&this._initialized&&this._applyItemStates()}_setInternalItems(e,t={}){let n=structuredClone(e);this._validateItemsHaveIds(n,`internalItems`),this._internalItems=n,ae(this._internalItems),this._internalItemsVersion+=1,t.reconcileStates&&this._reconcileStaleItemStates()}_handleMouseover(e){if(this.viewMode)return;let t=b(e.target);t&&this._createItemActionsMenuPopover(t)}_emitControlledClickAwayDeactivation(e){let t=this._effectiveItemStates,n=Object.entries(t).filter(([,e])=>e.length>0);if(!this._gridElement||n.length===0)return;let r=e.composedPath();if(n.some(([e])=>{let t=Array.from(this._gridElement.querySelectorAll(`.grid-stack-item`)).find(t=>t.getAttribute(`gs-id`)===e);if(!t)return!1;if(r.includes(t))return!0;let n=t.querySelector(`.grid-item-actions-popover`);return n?r.includes(n):!1}))return;let i={},a={...t};for(let[e,t]of n){for(let n of t)a=this._computeNextItemStates(e,n,!1,a);i[e]=[...t]}_({target:this,itemStates:t,updatedItemStates:a,changedItemStates:i})}_cleanupActiveItem(e){this._activeItemElement=C({item:e,activeItemElement:this._activeItemElement,gridElement:this._gridElement,removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this)})}_clearGridItemUiStateForDelete(e){e.hasAttribute(`focused`)&&e.removeAttribute(`focused`),e.hasAttribute(`active`)&&e.removeAttribute(`active`),this._removeItemActionsMenuPopover(e),this._focusedItemElement===e&&(this._focusedItemElement=void 0),this._activeItemElement===e&&(this._activeItemElement=void 0,this._activeItemActionToggle=void 0),this._gridElement.querySelector(`.grid-stack-item[active]`)||this._gridElement.removeAttribute(`has-active-item`)}_dispatchItemActionEvent(e,t,n,r,i,a,o,s){if(g({target:this,action:e,actionType:t,active:n,items:this.items,element:r,itemId:i,item:a,deletedId:o,originalElement:s}),t===`toggle`&&!this._suppressItemStatesEvent){let t=this._effectiveItemStates,r=this._computeNextItemStates(i,e,n);this._isControlled||(this._internalItemStates=r),_({target:this,itemStates:t,updatedItemStates:r,changedItemStates:{[i]:[e]}})}}_sanitizeInitialItemStates(e){let t=Object.entries(e).filter(([,e])=>e.length>0),n=t.length,r=t.reduce((e,[,t])=>e+t.length,0);if(n>1||r>1){console.warn(`luzmo-item-grid: initialItemStates contains multiple items or actions. In uncontrolled mode, only one item with one active action is supported at a time. Only the first item and its first action will be applied. Use controlled mode (itemStates) for multiple simultaneous active items.`);let[e,n]=t[0];return{[e]:[n[0]]}}return{...e}}_diffItemStates(e,t){let n={},r=new Set([...Object.keys(e),...Object.keys(t)]);for(let i of r){let r=e[i]??[],a=t[i]??[],o=a.filter(e=>!r.includes(e)),s=r.filter(e=>!a.includes(e)),c=[...o,...s];c.length>0&&(n[i]=c)}return n}_computeNextItemStates(e,t,n,r){if(!this._isControlled)return n?{[e]:[t]}:{};let i={...r??this._effectiveItemStates};if(n){let n=i[e]??[];n.includes(t)||(i[e]=[...n,t])}else{let n=i[e];if(n){let r=n.filter(e=>e!==t);r.length===0?delete i[e]:i[e]=r}}return i}_filterItemStatesToExistingItems(e){let t=new Set(this.items.map(e=>e.id).filter(e=>!!e)),n={};for(let[r,i]of Object.entries(e))!t.has(r)||i.length===0||(n[r]=[...i]);return n}_reconcileStaleItemStates(){let e=this._isControlled?this._effectiveItemStates:this._internalItemStates,t=this._filterItemStatesToExistingItems(e),n={};for(let[r,i]of Object.entries(e))!t[r]&&i.length>0&&(n[r]=[...i]);Object.keys(n).length>0&&_({target:this,itemStates:e,updatedItemStates:t,changedItemStates:n}),this._isControlled||(this._internalItemStates=t)}_simulateCloneLayout(e,t){let n=this._effectiveItems;if(!this._grid)return[...n,e];let r=e.position??this._resolvePositionFromEngine(t.id);if(!r)return[...n,e];e={...e,position:{...r}};let i=t.position??this._resolvePositionFromEngine(t.id);this.clonedItemPositioning===`below-item`&&i&&(e.position={...e.position,col:i.col,row:i.row+i.sizeY});let a=this.clonedItemPositioning!==`below-item`||!i,{updatedItems:o}=de({item:e,engine:this._grid.engine,existingItems:this._enrichItemsWithEnginePositions(n),autoPosition:a});return o}_cleanup(){for(let e of this._gridItemElements)this._cleanupActiveItem(e);this._grid&&=(this._grid.destroy(),void 0),this._initialized=!1}_restoreItemsLayout(e){if(!this._grid||!this._gridElement||e.length===0||!this._isItemsControlled)return;let t=[];for(let n of e){if(!n.id)continue;let e=this._effectiveItems.find(e=>e.id===n.id);if(!e)continue;let r=e.position??this._resolvePositionFromEngine(e.id);if(!r)continue;let i=this._gridElement.querySelector(`.grid-stack-item[gs-id="${e.id}"]`);i&&(n.x!==r.col||n.y!==r.row||n.w!==r.sizeX||n.h!==r.sizeY)&&t.push({element:i,position:r})}if(t.length!==0){this._suppressNextLayoutChangedEvent=!0,this._grid.batchUpdate();for(let e of t)this._grid.update(e.element,{x:e.position.col,y:e.position.row,w:e.position.sizeX,h:e.position.sizeY});this._grid.batchUpdate(!1),setTimeout(()=>{this._suppressNextLayoutChangedEvent&&=!1},0)}}_initializeGrid(){this._initialized||!this._gridElement||(this._grid=xn({gridElement:this._gridElement,gridItemElements:this._gridItemElements,items:this._effectiveItems,columns:this.columns??48,rowHeight:this.rowHeight??16,viewMode:this.viewMode,fullTheme:this._fullTheme,onCreateOrUpdateDimensionsHint:this._createOrUpdateDimensionsHint.bind(this),onRemoveDimensionsHint:this._removeDimensionsHint.bind(this),onChange:e=>{if(this._suppressNextLayoutChangedEvent){this._suppressNextLayoutChangedEvent=!1;return}let t=this._effectiveItems,n=Sn(t,e);this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),v({target:this,eventName:`luzmo-item-grid-layout-changed`,detail:{element:this._gridElement,grid:this._grid,items:t,updatedItems:n}}),this._restoreItemsLayout(e)}}),this._initialized=!0,v({target:this,eventName:`luzmo-item-grid-ready`,detail:{element:this._gridElement,grid:this._grid,items:this._effectiveItems}}),this._applyItemStates())}_applyItemStates(){let e=this._filterItemStatesToExistingItems(this._effectiveItemStates),t=new Set(Object.entries(e).filter(([,e])=>e.length>0).map(([e])=>e)),n=[],r=this._gridElement?.querySelectorAll(`.grid-stack-item[active]`);if(r)for(let e of r){let n=e.getAttribute(`gs-id`);(!n||!t.has(n))&&(e.removeAttribute(`active`),this._removeItemActionsMenuPopover(e))}if(this._activeItemElement=void 0,this._activeItemActionToggle=void 0,t.size===0){this._gridElement?.removeAttribute(`has-active-item`);return}for(let[t,r]of Object.entries(e)){if(r.length===0)continue;let e=this.getGridItemById(t);if(!e?.element)continue;let i=e.element;i.setAttribute(`active`,`true`),this._gridElement?.setAttribute(`has-active-item`,`true`),this._createItemActionsMenuPopover(i,r);for(let e of r)n.push({element:i,action:e})}if(n.length===0){this._gridElement?.removeAttribute(`has-active-item`),this._activeItemElement=void 0,this._activeItemActionToggle=void 0;return}n.length===1?(this._activeItemElement=n[0].element,this._activeItemActionToggle=n[0].action):(this._activeItemElement=void 0,this._activeItemActionToggle=void 0)}_createOrUpdateDimensionsHint(e,t,n){Cn({element:e,numberOfColumns:t,numberOfRows:n,offsetHint:Jt(this.theme)})}_removeDimensionsHint(e){wn(e)}get grid(){return this._grid}get gridItems(){return ue(this.items,this._gridElement)}registerRenderer(e,t){this.renderers={...this.renderers,[e]:t}}_renderOverlayContent(e,t){return en({item:e,activeActions:t,defaultItemActionsMenu:this.defaultItemActionsMenu,placementItemActionsMenu:this.placementItemActionsMenu,language:this.language,handleAction:this._handleAction,itemActionsDocumentPopover:this.itemActionsDocumentPopover})}_createItemActionsMenuPopover(e,t){Lt({element:e,activeActions:t,getGridItemById:this.getGridItemById.bind(this),placementItemActionsMenu:this.placementItemActionsMenu,renderOverlayContent:this._renderOverlayContent.bind(this),removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this),itemActionsDocumentPopover:this.itemActionsDocumentPopover})}_removeItemActionsMenuPopover(e){Rt(e)}getGridItemById(e){return this.gridItems.find(t=>t.item.id===e)}scrollToItem(e){let t=this.getGridItemById(e);if(!t?.element)return;let n=t.element.getBoundingClientRect();(n.bottom>window.innerHeight||n.top<0)&&t.element.scrollIntoView({behavior:`smooth`,block:`center`})}_createMissingItemError(e){return Error(`Grid item with id "${e}" not found`)}_requireGridItem(e){let t=this._effectiveItems.find(t=>t.id===e);if(!t)throw this._createMissingItemError(e);return t}_resolvePositionFromEngine(e){let t=this._grid?.engine.nodes.find(t=>t.id===e);if(!(!t||t.x==null||t.y==null||t.w==null||t.h==null))return{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}_requireGridItemWithPosition(e){let t=this._requireGridItem(e);if(!t.position){let n=this._resolvePositionFromEngine(e);if(!n)throw Error(`Grid item with id "${e}" does not have a position`);return{...t,position:n}}return t}_assertAddItemHasId(e){if(!e.id)throw Error(`addGridItem requires newItem.id`)}addGridItem(e){if(this._assertAddItemHasId(e),this._effectiveItems.some(t=>t.id===e.id))throw Error(`addGridItem rejected: an item with id "${e.id}" already exists`);let t=pe(e),n=this._effectiveItems;if(!this._grid){let r=e.position?.col==null||e.position?.row==null?{...t,position:void 0}:t,i=[...n,r];return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}if(!t.position){let e=[...n,t];return this._isItemsControlled||this._setInternalItems(e,{reconcileStates:!0}),e}let r=e.position?.col==null||e.position?.row==null,{updatedItems:i}=de({item:t,engine:this._grid.engine,existingItems:n,autoPosition:r});return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}_enrichItemsWithEnginePositions(e){return this._grid?e.map(e=>{if(e.position)return e;let t=this._resolvePositionFromEngine(e.id);return t?{...e,position:t}:e}):e}_updateGridItemPosition(e,t){let n=this._effectiveItems,r=this._requireGridItemWithPosition(e);return n.map(n=>{if(n.id!==e)return n;let i=n.position??r.position;return{...n,position:{...i,...t}}})}_dispatchLayoutChangedEvent(e,t){v({target:this,eventName:`luzmo-item-grid-layout-changed`,detail:{element:this._gridElement,grid:this._grid,items:e,updatedItems:t}})}_updateItemField(e,t){let n=this._effectiveItems;this._requireGridItem(e);let r=n.map(n=>n.id===e?{...n,...t}:n);return this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}removeGridItem(e){let t=this._effectiveItems,n=this._requireGridItem(e),r=t.filter(t=>t.id!==e);return g({target:this,action:`delete`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:e,item:n,updatedItems:r}),this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}cloneGridItem(e){let t=this._effectiveItems,r=this._requireGridItem(e),i={...structuredClone(r),id:n.t()},a=this._simulateCloneLayout(i,r),o=a.find(e=>e.id===i.id)??i;return g({target:this,action:`clone`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:i.id,item:o,originalElement:this.getGridItemById(e)?.element,updatedItems:a}),this._isItemsControlled||this._setInternalItems(a,{reconcileStates:!0}),a}updateGridItemPosition(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSize(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSlots(e,t){return this._updateItemField(e,{slots:t})}updateGridItemOptions(e,t){return this._updateItemField(e,{options:t})}updateGridItemFilters(e,t){return this._updateItemField(e,{filters:t})}updateGridItemType(e,t){return this._updateItemField(e,{type:t})}updateGridItem(e,t){let n=this._effectiveItems;this._requireGridItem(e);let{position:r,...i}=t,a;return r&&this._grid?(a=fe({itemId:e,patch:r,engine:this._grid.engine,existingItems:this._enrichItemsWithEnginePositions(n)}),a=a.map(t=>t.id===e?{...t,...i}:t)):a=n.map(t=>t.id===e?{...t,...i,...r&&t.position?{position:{...t.position,...r}}:r?{position:r}:{}}:t),t.position&&this._dispatchLayoutChangedEvent(n,a),this._isItemsControlled||this._setInternalItems(a,{reconcileStates:!0}),a}async triggerItemAction(e,t,n){await this.updateComplete;let r=this.getGridItemById(e);if(!r?.element){console.warn(`Grid item with id "${e}" not found`);return}if(this._isControlled)return this._triggerControlledItemAction(e,t,n);this._suppressItemStatesEvent=!0;let i=ne({gridElement:this._gridElement,items:this.items,gridItemData:r,itemId:e,action:t,options:n,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=i.state.activeItemElement,this._activeItemActionToggle=i.state.activeItemActionToggle,i.result!==void 0){let n=this._effectiveItemStates,r=this._computeNextItemStates(e,t,i.result);this._internalItemStates=r,_({target:this,itemStates:n,updatedItemStates:r,changedItemStates:this._diffItemStates(n,r)})}return i.result}activateItemAction(e,t,n){return this.triggerItemAction(e,t,n)}_triggerControlledItemAction(e,t,n){let r=(this._effectiveItemStates[e]??[]).includes(t),i=n?.active??!r;if(n?.active!==void 0&&i===r)return r;let a=this._effectiveItemStates,o=this._computeNextItemStates(e,t,i);return _({target:this,itemStates:a,updatedItemStates:o,changedItemStates:{[e]:[t]}}),i}deactivateItems(){if(this._isControlled){let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));if(t.length===0)return 0;let n={},r={...e};for(let e of t)r=this._computeNextItemStates(e.itemId,e.action,!1,r),n[e.itemId]=[...n[e.itemId]??[],e.action];return _({target:this,itemStates:e,updatedItemStates:r,changedItemStates:n}),new Set(t.map(e=>e.itemId)).size}let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));this._suppressItemStatesEvent=!0;let n=re({gridElement:this._gridElement,items:this.items,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=n.state.activeItemElement,this._activeItemActionToggle=n.state.activeItemActionToggle,this._isControlled||(this._internalItemStates={}),t.length>0){let n={};for(let e of t)n[e.itemId]=[...n[e.itemId]??[],e.action];_({target:this,itemStates:e,updatedItemStates:{},changedItemStates:n})}return n.deactivatedCount}_renderGrid(){return rn({items:this.items,initialized:this._initialized,viewMode:this.viewMode,contentLanguage:this.contentLanguage,fullTheme:this._fullTheme,appServer:this.appServer,apiHost:this.apiHost,authKey:this.authKey,authToken:this.authToken,columns:this.columns??48,ensureGridItemId:e=>oe(e),handleMouseover:this._handleMouseover.bind(this),handleMouseout:this._handleMouseout,handleFocus:this._handleFocus,handleBlur:this._handleBlur})}render(){return this._renderGrid()}};e.t([(0,c.property)({type:String,attribute:`app-server`,reflect:!0})],$.prototype,`appServer`,void 0),e.t([(0,c.property)({type:String,attribute:`api-host`,reflect:!0})],$.prototype,`apiHost`,void 0),e.t([(0,c.property)({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),e.t([(0,c.property)({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),e.t([(0,c.property)({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),e.t([(0,c.property)({type:String,reflect:!0})],$.prototype,`language`,void 0),e.t([(0,c.property)({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),e.t([(0,c.property)({type:Number,reflect:!0})],$.prototype,`columns`,void 0),e.t([(0,c.property)({type:Number,reflect:!0,attribute:`row-height`})],$.prototype,`rowHeight`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`view-mode`})],$.prototype,`viewMode`,void 0),e.t([(0,c.property)({type:Boolean,reflect:!0,attribute:`item-actions-document-popover`})],$.prototype,`itemActionsDocumentPopover`,void 0),e.t([(0,c.property)({type:String,reflect:!0,attribute:`placement-item-actions-menu`})],$.prototype,`placementItemActionsMenu`,void 0),e.t([(0,c.property)({type:Array,reflect:!0,attribute:`default-item-actions-menu`})],$.prototype,`defaultItemActionsMenu`,void 0),e.t([(0,c.property)({type:String,reflect:!0,attribute:`cloned-item-positioning`})],$.prototype,`clonedItemPositioning`,void 0),e.t([(0,c.property)({type:Object,reflect:!0})],$.prototype,`theme`,void 0),e.t([(0,c.property)({type:Array,reflect:!1})],$.prototype,`items`,null),e.t([(0,c.property)({type:Array,reflect:!1,attribute:`initial-items`})],$.prototype,`initialItems`,null),e.t([(0,c.property)({type:Object,reflect:!1})],$.prototype,`renderers`,void 0),e.t([(0,c.property)({type:Object,reflect:!1,attribute:`item-states`})],$.prototype,`itemStates`,null),e.t([(0,c.property)({type:Object,reflect:!1,attribute:`initial-item-states`})],$.prototype,`initialItemStates`,void 0),e.t([(0,c.state)()],$.prototype,`_initialized`,void 0),e.t([(0,c.query)(`.grid-stack`)],$.prototype,`_gridElement`,void 0),e.t([(0,c.queryAll)(`.luzmo-item-grid-item`)],$.prototype,`_gridItemElements`,void 0),e.t([(0,c.state)()],$.prototype,`_internalItemsVersion`,void 0),customElements.get(`luzmo-item-grid`)||customElements.define(`luzmo-item-grid`,$),customElements.get(`luzmo-item-grid-item-actions-menu`)||customElements.define(`luzmo-item-grid-item-actions-menu`,Q),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}});
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
* */
|
|
20
20
|
import { t as e } from "./decorate-DyMgX_Uh.js";
|
|
21
21
|
import { t } from "./localized-mixin-D1ss6vE4.js";
|
|
22
|
-
import { t as n } from "./
|
|
23
|
-
import {
|
|
24
|
-
import { t as a } from "./
|
|
22
|
+
import { t as n } from "./v4-DIjJgmR0.js";
|
|
23
|
+
import { t as r } from "./color-BWnYpOu7.js";
|
|
24
|
+
import { n as i, t as a } from "./themes-CQZd578_.js";
|
|
25
25
|
import { itemTypes as o } from "./item-list.js";
|
|
26
26
|
import { luzmoArrows as s, luzmoCircle as c, luzmoClone as l, luzmoCog as u, luzmoFilterOutline as d, luzmoLockOutline as f, luzmoPencil as p, luzmoTable as m, luzmoTrashOutline as h } from "@luzmo/icons";
|
|
27
27
|
import "@luzmo/lucero/icon";
|
|
@@ -1141,16 +1141,16 @@ var qt = rt, Jt = et, Yt = (e, t, n) => {
|
|
|
1141
1141
|
}, {
|
|
1142
1142
|
type: "group",
|
|
1143
1143
|
actions: [{ ...U.delete }]
|
|
1144
|
-
}], sn = 16, cn = 10, W = (e, t) => t >= 1 ? `rgba(${e.r},${e.g},${e.b},1)` : t <= 0 ? `rgba(${e.r},${e.g},${e.b},0)` : `rgba(${e.r},${e.g},${e.b},${t})`, ln = async ({ theme: e, currentTheme: t }) => e?.type === "custom" ? structuredClone(e) : e?.id &&
|
|
1145
|
-
...await
|
|
1144
|
+
}], sn = 16, cn = 10, W = (e, t) => t >= 1 ? `rgba(${e.r},${e.g},${e.b},1)` : t <= 0 ? `rgba(${e.r},${e.g},${e.b},0)` : `rgba(${e.r},${e.g},${e.b},${t})`, ln = async ({ theme: e, currentTheme: t }) => e?.type === "custom" ? structuredClone(e) : e?.id && i.includes(e.id) && t?.id !== e.id ? {
|
|
1145
|
+
...await a(e.id),
|
|
1146
1146
|
id: e.id
|
|
1147
|
-
} : e?.id && t?.id !== e.id || !e && t ? t : await
|
|
1147
|
+
} : e?.id && t?.id !== e.id || !e && t ? t : await a("default"), un = (e) => [(e?.margins?.[0] ?? sn) / 2, (e?.margins?.[1] ?? sn) / 2], dn = (e) => cn - (e?.margins?.[0] ?? cn), fn = (e) => {
|
|
1148
1148
|
let t = e?.boxShadow;
|
|
1149
1149
|
if (!t) return "";
|
|
1150
|
-
let
|
|
1151
|
-
r: Math.round(
|
|
1152
|
-
g: Math.round(
|
|
1153
|
-
b: Math.round(
|
|
1150
|
+
let n = new r(t.color), i = {
|
|
1151
|
+
r: Math.round(n.srgb.r * 255),
|
|
1152
|
+
g: Math.round(n.srgb.g * 255),
|
|
1153
|
+
b: Math.round(n.srgb.b * 255)
|
|
1154
1154
|
}, a = e?.margins?.[0] ?? sn, o = Math.min(a / 10, 2);
|
|
1155
1155
|
return t.size === "none" ? "none" : t.size === "S" ? `0 ${o * 2}px ${o * 4}px ${W(i, .16)}, 0 ${o * 2}px ${o * 4}px ${W(i, .23)}` : t.size === "M" ? `0 ${o * 8}px ${o * 16}px ${W(i, .19)}, 0 ${o * 4}px ${o * 4}px ${W(i, .23)}` : t.size === "L" ? `0 ${o * 12}px ${o * 24}px ${W(i, .25)}, 0 ${o * 8}px ${o * 8}px ${W(i, .22)}` : "";
|
|
1156
1156
|
}, pn = (e) => {
|
|
@@ -1171,7 +1171,7 @@ var qt = rt, Jt = et, Yt = (e, t, n) => {
|
|
|
1171
1171
|
]);
|
|
1172
1172
|
}, mn = (e) => {
|
|
1173
1173
|
let t = e?.itemsBackground ?? e?.background;
|
|
1174
|
-
return t ? new
|
|
1174
|
+
return t ? new r(t).luminance < .5 : !1;
|
|
1175
1175
|
}, hn = (e, t) => {
|
|
1176
1176
|
t && pn(t).forEach((t, n) => {
|
|
1177
1177
|
t ? e.setProperty(n, t) : e.removeProperty(n);
|
|
@@ -3722,60 +3722,60 @@ var Wn = ":host{width:100%;display:block}.grid-stack{width:100%;min-height:var(-
|
|
|
3722
3722
|
});
|
|
3723
3723
|
this._activeItemActionToggle = t.activeItemActionToggle;
|
|
3724
3724
|
}, this._handleAction = (e) => {
|
|
3725
|
-
let t = e.detail,
|
|
3725
|
+
let t = e.detail, r = e.target?.closest(".grid-stack-item"), i = r?.getAttribute("gs-id");
|
|
3726
3726
|
if (["delete", "clone"].includes(t.action)) {
|
|
3727
|
-
if (e.stopPropagation(), !
|
|
3728
|
-
let
|
|
3727
|
+
if (e.stopPropagation(), !i) return;
|
|
3728
|
+
let a = this._effectiveItems, o = a.find((e) => e.id === i);
|
|
3729
3729
|
if (!o) return;
|
|
3730
3730
|
let s = this._gridElement.querySelector(".grid-stack-item[active]") ?? this._activeItemElement;
|
|
3731
|
-
if (!this._isControlled && s && s !==
|
|
3732
|
-
let e = s.getAttribute("gs-id"), t =
|
|
3731
|
+
if (!this._isControlled && s && s !== r) {
|
|
3732
|
+
let e = s.getAttribute("gs-id"), t = a.find((t) => t.id === e), n = this._activeItemActionToggle, r = s;
|
|
3733
3733
|
this._cleanupActiveItem(s), n && e && t && this._dispatchItemActionEvent(n, "toggle", !1, r, e, t), this._activeItemElement = void 0, this._activeItemActionToggle = void 0, this._internalItemStates = {};
|
|
3734
3734
|
}
|
|
3735
3735
|
if (t.action === "delete") {
|
|
3736
|
-
this._isControlled || this._clearGridItemUiStateForDelete(
|
|
3737
|
-
let e =
|
|
3736
|
+
this._isControlled || this._clearGridItemUiStateForDelete(r);
|
|
3737
|
+
let e = a.filter((e) => e.id !== i);
|
|
3738
3738
|
T({
|
|
3739
3739
|
target: this,
|
|
3740
3740
|
action: "delete",
|
|
3741
3741
|
actionType: t.type,
|
|
3742
3742
|
active: t.active,
|
|
3743
|
-
items:
|
|
3744
|
-
element:
|
|
3745
|
-
itemId:
|
|
3743
|
+
items: a,
|
|
3744
|
+
element: r,
|
|
3745
|
+
itemId: i,
|
|
3746
3746
|
item: o,
|
|
3747
3747
|
updatedItems: e
|
|
3748
3748
|
}), this._isItemsControlled || this._setInternalItems(e, { reconcileStates: !0 });
|
|
3749
3749
|
} else {
|
|
3750
3750
|
let e = {
|
|
3751
3751
|
...structuredClone(o),
|
|
3752
|
-
id:
|
|
3753
|
-
},
|
|
3752
|
+
id: n()
|
|
3753
|
+
}, i = this._simulateCloneLayout(e, o), s = i.find((t) => t.id === e.id) ?? e;
|
|
3754
3754
|
T({
|
|
3755
3755
|
target: this,
|
|
3756
3756
|
action: "clone",
|
|
3757
3757
|
actionType: t.type,
|
|
3758
3758
|
active: t.active,
|
|
3759
|
-
items:
|
|
3760
|
-
element:
|
|
3759
|
+
items: a,
|
|
3760
|
+
element: r,
|
|
3761
3761
|
itemId: e.id,
|
|
3762
3762
|
item: s,
|
|
3763
|
-
originalElement:
|
|
3764
|
-
updatedItems:
|
|
3765
|
-
}), this._isItemsControlled || this._setInternalItems(
|
|
3763
|
+
originalElement: r,
|
|
3764
|
+
updatedItems: i
|
|
3765
|
+
}), this._isItemsControlled || this._setInternalItems(i, { reconcileStates: !0 });
|
|
3766
3766
|
}
|
|
3767
3767
|
return;
|
|
3768
3768
|
}
|
|
3769
3769
|
if (this._isControlled) {
|
|
3770
|
-
if (e.stopPropagation(), !
|
|
3771
|
-
let
|
|
3770
|
+
if (e.stopPropagation(), !i) return;
|
|
3771
|
+
let n = this.items.find((e) => e.id === i);
|
|
3772
3772
|
if (t.type === "toggle") {
|
|
3773
|
-
let e = this._effectiveItemStates, n = t.active,
|
|
3773
|
+
let e = this._effectiveItemStates, n = t.active, r = this._computeNextItemStates(i, t.action, n);
|
|
3774
3774
|
E({
|
|
3775
3775
|
target: this,
|
|
3776
3776
|
itemStates: e,
|
|
3777
|
-
updatedItemStates:
|
|
3778
|
-
changedItemStates: { [
|
|
3777
|
+
updatedItemStates: r,
|
|
3778
|
+
changedItemStates: { [i]: [t.action] }
|
|
3779
3779
|
});
|
|
3780
3780
|
} else T({
|
|
3781
3781
|
target: this,
|
|
@@ -3783,15 +3783,15 @@ var Wn = ":host{width:100%;display:block}.grid-stack{width:100%;min-height:var(-
|
|
|
3783
3783
|
actionType: t.type,
|
|
3784
3784
|
active: t.active,
|
|
3785
3785
|
items: this.items,
|
|
3786
|
-
element:
|
|
3787
|
-
itemId:
|
|
3788
|
-
item:
|
|
3786
|
+
element: r,
|
|
3787
|
+
itemId: i,
|
|
3788
|
+
item: n
|
|
3789
3789
|
});
|
|
3790
|
-
|
|
3790
|
+
r && !r.hasAttribute("active") && this._removeItemActionsMenuPopover(r);
|
|
3791
3791
|
return;
|
|
3792
3792
|
}
|
|
3793
3793
|
this._suppressItemStatesEvent = !0;
|
|
3794
|
-
let
|
|
3794
|
+
let a = me({
|
|
3795
3795
|
event: e,
|
|
3796
3796
|
gridElement: this._gridElement,
|
|
3797
3797
|
items: this.items,
|
|
@@ -3803,8 +3803,8 @@ var Wn = ":host{width:100%;display:block}.grid-stack{width:100%;min-height:var(-
|
|
|
3803
3803
|
dispatchItemActionEvent: this._dispatchItemActionEvent.bind(this),
|
|
3804
3804
|
createItemActionsMenuPopover: this._createItemActionsMenuPopover.bind(this)
|
|
3805
3805
|
});
|
|
3806
|
-
if (this._suppressItemStatesEvent = !1, this._activeItemElement =
|
|
3807
|
-
let e = this._effectiveItemStates,
|
|
3806
|
+
if (this._suppressItemStatesEvent = !1, this._activeItemElement = a.activeItemElement, this._activeItemActionToggle = a.activeItemActionToggle, t.type === "toggle" && i) {
|
|
3807
|
+
let e = this._effectiveItemStates, n = a.activeItemElement === r && a.activeItemActionToggle === t.action, o = this._computeNextItemStates(i, t.action, n);
|
|
3808
3808
|
this._internalItemStates = o, E({
|
|
3809
3809
|
target: this,
|
|
3810
3810
|
itemStates: e,
|
|
@@ -4306,10 +4306,10 @@ var Wn = ":host{width:100%;display:block}.grid-stack{width:100%;min-height:var(-
|
|
|
4306
4306
|
}), this._isItemsControlled || this._setInternalItems(r, { reconcileStates: !0 }), r;
|
|
4307
4307
|
}
|
|
4308
4308
|
cloneGridItem(e) {
|
|
4309
|
-
let t = this._effectiveItems,
|
|
4310
|
-
...structuredClone(
|
|
4311
|
-
id:
|
|
4312
|
-
},
|
|
4309
|
+
let t = this._effectiveItems, r = this._requireGridItem(e), i = {
|
|
4310
|
+
...structuredClone(r),
|
|
4311
|
+
id: n()
|
|
4312
|
+
}, a = this._simulateCloneLayout(i, r), o = a.find((e) => e.id === i.id) ?? i;
|
|
4313
4313
|
return T({
|
|
4314
4314
|
target: this,
|
|
4315
4315
|
action: "clone",
|
|
@@ -4317,11 +4317,11 @@ var Wn = ":host{width:100%;display:block}.grid-stack{width:100%;min-height:var(-
|
|
|
4317
4317
|
active: !1,
|
|
4318
4318
|
items: t,
|
|
4319
4319
|
element: this.getGridItemById(e)?.element ?? this,
|
|
4320
|
-
itemId:
|
|
4320
|
+
itemId: i.id,
|
|
4321
4321
|
item: o,
|
|
4322
4322
|
originalElement: this.getGridItemById(e)?.element,
|
|
4323
|
-
updatedItems:
|
|
4324
|
-
}), this._isItemsControlled || this._setInternalItems(
|
|
4323
|
+
updatedItems: a
|
|
4324
|
+
}), this._isItemsControlled || this._setInternalItems(a, { reconcileStates: !0 }), a;
|
|
4325
4325
|
}
|
|
4326
4326
|
updateGridItemPosition(e, t) {
|
|
4327
4327
|
let n = this._updateGridItemPosition(e, t);
|
|
@@ -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("../item-option-
|
|
20
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../item-option-dwknAAj9.cjs");exports.LuzmoItemOption=e.t;
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), black 45%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 7%), black 1%);--luzmo-background-color-focus: color-mix( in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5% );--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), black 20%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-shadow-color-rgb: 0, 0, 0;--luzmo-shadow-opacity: 0.1;--luzmo-shadow-color: rgba(var(--luzmo-shadow-color-rgb), var(--luzmo-shadow-opacity));--luzmo-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), black 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-width: thin;--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba(var(--luzmo-border-color-rgb), 0.4);--luzmo-primary: #4434ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), black 20%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-down: color-mix(in oklch, var(--luzmo-secondary), black 20%);--luzmo-secondary-focus: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), black 20%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), black 20%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), black 45%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), black 45%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}", document.head.appendChild(e);
|
|
25
25
|
}
|
|
26
26
|
})();
|
|
27
|
-
import { t as e } from "../item-option-
|
|
27
|
+
import { t as e } from "../item-option-Dc4GNRMW.js";
|
|
28
28
|
export { e as LuzmoItemOption };
|