@luzmo/analytics-components-kit 1.0.4-beta.3 → 1.0.4
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 +11 -5
- package/components/{area-chart-options.config-BjdRY1sr.js → area-chart-options.config-CxJWxcD9.js} +1 -1
- package/components/{area-chart-positioning.config-PZ-MmeDb.cjs → area-chart-positioning.config-CE8lOCfT.cjs} +1 -1
- package/components/{area-chart-positioning.config-hLhrDJ3v.js → area-chart-positioning.config-CQW5h7Eg.js} +1 -1
- package/components/{area-chart-slots.config-BpvvqFy_.js → area-chart-slots.config-C22ZF9l0.js} +1 -1
- package/components/{bar-chart-options.config-DxNHV39Y.js → bar-chart-options.config-BAatAyhW.js} +1 -1
- package/components/{bar-chart-positioning.config-DI8tOMbI.cjs → bar-chart-positioning.config-DFI1wzOQ.cjs} +1 -1
- package/components/{bar-chart-positioning.config-C6wWTn1o.js → bar-chart-positioning.config-DaH_x_VU.js} +1 -1
- package/components/{bar-chart-slots.config-CfIirCOX.js → bar-chart-slots.config-BbgFihbK.js} +1 -1
- package/components/base-CYiGlWug.cjs +20 -0
- package/components/{base-DYkpEuMf.js → base-p2I4mVSW.js} +2 -3
- package/components/{box-plot-options.config-CXey4hvi.js → box-plot-options.config-BuX2wNhp.js} +1 -1
- package/components/{box-plot-positioning.config-D_qhNWth.cjs → box-plot-positioning.config-FOyav5Zq.cjs} +1 -1
- package/components/{box-plot-positioning.config-XG-WcIlA.js → box-plot-positioning.config-K2tQGMig.js} +1 -1
- package/components/{box-plot-slots.config-DclNulnH.js → box-plot-slots.config-OeublT6p.js} +1 -1
- package/components/{bubble-chart-options.config-CeaOv4eF.js → bubble-chart-options.config-C_XQOHgH.js} +1 -1
- package/components/{bubble-chart-positioning.config-CHYBh_Nb.cjs → bubble-chart-positioning.config-B6DXfqa4.cjs} +1 -1
- package/components/{bubble-chart-positioning.config-o_r-GWQG.js → bubble-chart-positioning.config-D2fwO2JM.js} +1 -1
- package/components/{bubble-chart-slots.config-D7vQta7G.js → bubble-chart-slots.config-Bdy20Xqs.js} +1 -1
- package/components/{bullet-chart-options.config-CLn7sV4W.js → bullet-chart-options.config-h5BFyszP.js} +1 -1
- package/components/{bullet-chart-positioning.config-DE5oy4M6.js → bullet-chart-positioning.config-DOAG2wFN.js} +1 -1
- package/components/{bullet-chart-positioning.config-BF8PflF6.cjs → bullet-chart-positioning.config-DZqzqZSQ.cjs} +1 -1
- package/components/{bullet-chart-slots.config-IX7zJWc7.js → bullet-chart-slots.config-Cqj3i1qo.js} +1 -1
- package/components/{choropleth-map-options.config-DzTlJSO3.js → choropleth-map-options.config-YCo77O3q.js} +1 -1
- package/components/{choropleth-map-positioning.config-DT1WWljP.cjs → choropleth-map-positioning.config-C3jO3j8R.cjs} +1 -1
- package/components/{choropleth-map-positioning.config-Cf8bEIns.js → choropleth-map-positioning.config-Jw6fAFM1.js} +1 -1
- package/components/{choropleth-map-slots.config-y0y9rf6i.js → choropleth-map-slots.config-D4vxtdtH.js} +1 -1
- package/components/{circle-pack-chart-options.config-DoLPbnPq.js → circle-pack-chart-options.config-C0cEtjgC.js} +1 -1
- package/components/{circle-pack-chart-positioning.config-Dy-DZ_de.js → circle-pack-chart-positioning.config-Ckb-1sUG.js} +1 -1
- package/components/{circle-pack-chart-positioning.config-DDpnake6.cjs → circle-pack-chart-positioning.config-DJT6ivEy.cjs} +1 -1
- package/components/{circle-pack-chart-slots.config-X9WVAykN.js → circle-pack-chart-slots.config-Dks8K3uQ.js} +1 -1
- package/components/{circular-gauge-options.config-BPUFjqx8.js → circular-gauge-options.config-Cdnk-Sp0.js} +1 -1
- package/components/{circular-gauge-positioning.config-D2t_3T1J.cjs → circular-gauge-positioning.config-B8gL5Br9.cjs} +1 -1
- package/components/{circular-gauge-positioning.config-DljBe7e-.js → circular-gauge-positioning.config-BGlDGhYZ.js} +1 -1
- package/components/{circular-gauge-slots.config-NIEmIAIG.js → circular-gauge-slots.config-Wf4sHmk6.js} +1 -1
- package/components/{column-chart-options.config-DQts3cE4.js → column-chart-options.config-DoZLlIRM.js} +1 -1
- package/components/{column-chart-positioning.config-Bob00Qnq.js → column-chart-positioning.config-BJGWvFLD.js} +1 -1
- package/components/{column-chart-positioning.config-Uvvr5PxW.cjs → column-chart-positioning.config-LzBETWIy.cjs} +1 -1
- package/components/{column-chart-slots.config-CoFarLvo.js → column-chart-slots.config-BhVqSbKw.js} +1 -1
- package/components/{combination-chart-options.config-CjSV6Ic4.js → combination-chart-options.config-D7ZXfn61.js} +1 -1
- package/components/{combination-chart-positioning.config-BzbcDQ2O.cjs → combination-chart-positioning.config-DjmWx90S.cjs} +1 -1
- package/components/{combination-chart-positioning.config-DG2CM16I.js → combination-chart-positioning.config-DtneKdwK.js} +1 -1
- package/components/{combination-chart-slots.config-BGRHSwfr.js → combination-chart-slots.config-CK8YBgUl.js} +1 -1
- package/components/{conditional-number-options.config-CZFqw31c.js → conditional-number-options.config-BwSMI5Ax.js} +1 -1
- package/components/{conditional-number-positioning.config-DpORiYgh.cjs → conditional-number-positioning.config-C8bRdffQ.cjs} +1 -1
- package/components/{conditional-number-positioning.config-CT8PqxDT.js → conditional-number-positioning.config-Ccb2yjJU.js} +1 -1
- package/components/{conditional-number-slots.config-r_C8T2HH.js → conditional-number-slots.config-xSNaYD4u.js} +1 -1
- package/components/data-field/index.cjs +1 -1
- package/components/data-field/index.d.ts +0 -1
- package/components/data-field/index.js +1 -1
- package/components/data-field-iGBGWoGH.cjs +89 -0
- package/components/{data-field-level-zbu4U2m5.js → data-field-ll2oFVG2.js} +141 -47
- package/components/data-field-panel/index.cjs +1 -1
- package/components/data-field-panel/index.d.ts +0 -1
- package/components/data-field-panel/index.js +1 -1
- package/components/data-field-panel-NktuTUUp.cjs +87 -0
- package/components/{data-field-panel-Ob-hNZwz.js → data-field-panel-ntgCpQ_2.js} +4 -5
- package/components/{data-fields-select-CYQy6Ow-.js → data-fields-select-DJFkrrPs.js} +3 -4
- package/components/data-fields-select-DL1nFRg3.cjs +41 -0
- package/components/{date-comparison-filter-options.config-s16IGX_4.js → date-comparison-filter-options.config-DCCm5Adt.js} +1 -1
- package/components/{date-comparison-filter-slots.config-DQBKeCRX.js → date-comparison-filter-slots.config-s7FcuKia.js} +1 -1
- package/components/{date-filter-options.config-ChFEIjN3.js → date-filter-options.config-DBwcMXzp.js} +1 -1
- package/components/{date-filter-slots.config-DREsncpE.js → date-filter-slots.config-pbd3rG9z.js} +1 -1
- package/components/{de-D-xQoqdB.js → de-DqwsqE-U.js} +14 -9
- package/components/de-tUSOg_BJ.cjs +20 -0
- package/components/{display-settings-binning-GKaol6nW.cjs → display-settings-binning-CQKXGp11.cjs} +4 -4
- package/components/{display-settings-binning-MHns2Ns6.js → display-settings-binning-DGxEB9Fa.js} +21 -19
- package/components/display-settings-datetime-25LwuZM_.cjs +217 -0
- package/components/{display-settings-datetime-D5eBAfWQ.js → display-settings-datetime-CLx9sxA7.js} +81 -79
- package/components/display-settings-grand-totals-1tBdxbFY.cjs +44 -0
- package/components/{display-settings-grand-totals-CpulhtNX.js → display-settings-grand-totals-B0Px90rH.js} +20 -18
- package/components/display-settings-numeric-Bbx4qmpA.cjs +190 -0
- package/components/{display-settings-numeric-DnyXOV_x.js → display-settings-numeric-CdEgzO7W.js} +88 -86
- package/components/display-settings-period-over-period-4bJbXWB7.cjs +229 -0
- package/components/{display-settings-period-over-period-Do4qG7yY.js → display-settings-period-over-period-lo3myRfT.js} +91 -90
- package/components/{donut-chart-options.config-WNOpb2n9.js → donut-chart-options.config-Buas8fzJ.js} +1 -1
- package/components/{donut-chart-positioning.config-BLnTmwTZ.cjs → donut-chart-positioning.config-2cYbI6p-.cjs} +1 -1
- package/components/{donut-chart-positioning.config-Bl96um6F.js → donut-chart-positioning.config-Dh3XI5f4.js} +1 -1
- package/components/{donut-chart-slots.config-DEQ3Cw6c.js → donut-chart-slots.config-CZWRHxZe.js} +1 -1
- package/components/{dropdown-filter-options.config-DBNawOPR.js → dropdown-filter-options.config-gv1y1OkC.js} +1 -1
- package/components/{dropdown-filter-slots.config-DcStZGjV.js → dropdown-filter-slots.config-aP5hvp2K.js} +1 -1
- package/components/{en-GB-DzkdeUQh.js → en-GB-D7N1nMuy.js} +1 -1
- package/components/{en-GB-B3xz84vF.cjs → en-GB-DCZl8CPc.cjs} +1 -1
- package/components/{en-CcLhGxIh.js → en-OJGeTneC.js} +1 -1
- package/components/{en-US-CcLhGxIh.js → en-US-OJGeTneC.js} +1 -1
- package/components/{en-US-B34alchz.cjs → en-US-hPjCnvK0.cjs} +1 -1
- package/components/{en-B34alchz.cjs → en-hPjCnvK0.cjs} +1 -1
- package/components/{es-CLnBAiLu.js → es-C-5Yqnck.js} +14 -9
- package/components/es-Czecz2xB.cjs +20 -0
- package/components/{evolution-number-options.config-CrIM2GTn.js → evolution-number-options.config-B1IomzV1.js} +1 -1
- package/components/{evolution-number-positioning.config-DXNPD29G.js → evolution-number-positioning.config-BQQrOKbD.js} +1 -1
- package/components/{evolution-number-positioning.config-DSoC35zp.cjs → evolution-number-positioning.config-BX1lWtDL.cjs} +1 -1
- package/components/{evolution-number-slots.config-Bq_JlxgK.js → evolution-number-slots.config-eOQDWZyb.js} +1 -1
- package/components/filters/index.cjs +1 -1
- package/components/filters/index.js +1 -1
- package/components/filters-Bzx4DYm-.cjs +323 -0
- package/components/filters-DSod7vIq.js +1637 -0
- package/components/formula/index.cjs +1 -1
- package/components/formula/index.js +1 -1
- package/components/formula-DcCDYDt4.cjs +45 -0
- package/components/{formula-CeDEKB7D.js → formula-TyfDRy5X.js} +15 -16
- package/components/{formula-codemirror-MygWCu2u.js → formula-codemirror-B6ktT1Dm.js} +21 -23
- package/components/{formula-codemirror-CFMYytMd.cjs → formula-codemirror-Bewi7Xgc.cjs} +53 -53
- package/components/formula-display-store-DxjO7Q-n.cjs +20 -0
- package/components/{formula-display-store-BYa910x_.js → formula-display-store-ycPV0gru.js} +279 -246
- package/components/formula-editor/index.cjs +1 -1
- package/components/formula-editor/index.d.ts +0 -1
- package/components/formula-editor/index.js +3 -4
- package/components/formula-editor-DQp_XiX5.cjs +247 -0
- package/components/{formula-editor-DeYzzLDr.js → formula-editor-HkD4KWnN.js} +349 -144
- package/components/{fr-DIwbOnwC.js → fr-BvgQLvx5.js} +14 -9
- package/components/fr-CQyhQN6j.cjs +20 -0
- package/components/{funnel-chart-options.config-k0X4rkj-.js → funnel-chart-options.config-DAv3185m.js} +1 -1
- package/components/{funnel-chart-positioning.config-CWSM8nTo.js → funnel-chart-positioning.config-9blBdgB7.js} +1 -1
- package/components/{funnel-chart-positioning.config-BcsV1xp7.cjs → funnel-chart-positioning.config-iHk--8l3.cjs} +1 -1
- package/components/{funnel-chart-slots.config-DKhaZf_r.js → funnel-chart-slots.config-BsNj6Mbb.js} +1 -1
- package/components/{get-css-variable-rHTFFWYM.cjs → get-css-variable-B1BZoBcs.cjs} +1 -1
- package/components/{get-css-variable-Bpma6ZOo.js → get-css-variable-COcan5CX.js} +1 -1
- package/components/{heat-map-options.config-_xxAm6iG.js → heat-map-options.config-Ckw8voNV.js} +1 -1
- package/components/{heat-map-positioning.config-C0dkG5_9.cjs → heat-map-positioning.config-CqkTB8nU.cjs} +1 -1
- package/components/{heat-map-positioning.config-DQJP4mTG.js → heat-map-positioning.config-DgrZWNiT.js} +1 -1
- package/components/{heat-map-slots.config-BDfEGgq5.js → heat-map-slots.config-BFK5TF9k.js} +1 -1
- package/components/{heat-table-options.config-DxRbWqJ8.js → heat-table-options.config-PpOf4o94.js} +1 -1
- package/components/{heat-table-positioning.config-WUHNZPT-.js → heat-table-positioning.config-BqsqkftW.js} +1 -1
- package/components/{heat-table-positioning.config-BzSpf7ed.cjs → heat-table-positioning.config-Ca-WBNR-.cjs} +1 -1
- package/components/{heat-table-slots.config-CVh1TEJJ.js → heat-table-slots.config-3q2hG4nF.js} +1 -1
- package/components/{hexbin-map-options.config-CmAmK-jM.js → hexbin-map-options.config-D88DHYrl.js} +1 -1
- package/components/{hexbin-map-positioning.config-CJPhgdt2.js → hexbin-map-positioning.config-gkLfwTS6.js} +1 -1
- package/components/{marker-map-positioning.config-B-HitobG.cjs → hexbin-map-positioning.config-sUIrPJP4.cjs} +1 -1
- package/components/{hexbin-map-slots.config-rxPZ4kwL.js → hexbin-map-slots.config-BfbHCCUe.js} +1 -1
- package/components/{image-options.config-DJ2DEf7g.js → image-options.config-ByIPpr29.js} +1 -1
- package/components/{image-slots.config-bDNDmiWy.js → image-slots.config-B4MFjNWt.js} +1 -1
- package/components/index.cjs +749 -1
- package/components/index.js +5577 -64
- package/components/item-grid/index.cjs +1 -1
- package/components/item-grid/index.js +1 -1
- package/components/{item-grid-CO_cqGqJ.js → item-grid-B59uyBDP.js} +5 -6
- package/components/{item-grid-CRAoMdCq.cjs → item-grid-C6nEE4Uj.cjs} +22 -22
- package/components/item-option/index.cjs +1 -1
- package/components/item-option/index.js +1 -1
- package/components/item-option-C4c-e1QF.cjs +252 -0
- package/components/item-option-action-button-group/index.cjs +1 -1
- package/components/item-option-action-button-group/index.js +1 -1
- package/components/{item-option-action-button-group-VpgTKSIV.js → item-option-action-button-group-BEXRueVH.js} +3 -3
- package/components/item-option-action-button-group-BU1wvtEd.cjs +53 -0
- package/components/item-option-base-DATaPQ-m.cjs +56 -0
- package/components/{item-option-base-VV7gyznL.js → item-option-base-DqDKIqRP.js} +2 -2
- package/components/item-option-color-palette-picker/index.cjs +1 -1
- package/components/item-option-color-palette-picker/index.js +1 -1
- package/components/item-option-color-palette-picker-Cc2nTuxC.cjs +40 -0
- package/components/{item-option-color-palette-picker-CQgG_NPQ.js → item-option-color-palette-picker-dk5Nm1XB.js} +2 -2
- package/components/item-option-color-picker/index.cjs +1 -1
- package/components/item-option-color-picker/index.js +1 -1
- package/components/{item-option-color-picker-DeDwpICb.cjs → item-option-color-picker-Czr_ojzh.cjs} +2 -2
- package/components/{item-option-color-picker-BmQBTQzb.js → item-option-color-picker-oG-wrEZh.js} +2 -2
- package/components/item-option-color-range/index.cjs +1 -1
- package/components/item-option-color-range/index.js +1 -1
- package/components/item-option-color-range-CTnHZ72E.cjs +98 -0
- package/components/{item-option-color-range-D2kHXssY.js → item-option-color-range-RbnPnI3s.js} +3 -3
- package/components/item-option-multi-language-field/index.cjs +1 -1
- package/components/item-option-multi-language-field/index.js +1 -1
- package/components/{item-option-multi-language-field-Cc9ph205.cjs → item-option-multi-language-field-BpyuIPcO.cjs} +2 -2
- package/components/{item-option-multi-language-field-DbqcqhhN.js → item-option-multi-language-field-BqhBRIFH.js} +2 -2
- package/components/item-option-number-field/index.cjs +1 -1
- package/components/item-option-number-field/index.js +1 -1
- package/components/{item-option-number-field-BbCVJeXZ.js → item-option-number-field-BDPEAzdF.js} +2 -2
- package/components/{item-option-number-field-B6GFKuLN.cjs → item-option-number-field-CV2xpQrk.cjs} +2 -2
- package/components/item-option-panel/index.cjs +1 -1
- package/components/item-option-panel/index.js +1 -1
- package/components/{item-option-panel-6UFGCcnF.cjs → item-option-panel-CMrjUb2s.cjs} +2 -2
- package/components/{item-option-panel-CrNZ0xIF.js → item-option-panel-XhTxaBZp.js} +3 -3
- package/components/item-option-picker/index.cjs +1 -1
- package/components/item-option-picker/index.js +1 -1
- package/components/{item-option-picker-DJKTAG9w.cjs → item-option-picker-CvEfEy99.cjs} +2 -2
- package/components/{item-option-picker-YquXTQNY.js → item-option-picker-D_Od3am8.js} +2 -2
- package/components/item-option-position-picker/index.cjs +1 -1
- package/components/item-option-position-picker/index.js +1 -1
- package/components/{item-option-position-picker-DKvsF-VQ.js → item-option-position-picker-BKw29tj-.js} +2 -2
- package/components/item-option-position-picker-DBs4JlFi.cjs +32 -0
- package/components/item-option-positions-number-field/index.cjs +1 -1
- package/components/item-option-positions-number-field/index.js +1 -1
- package/components/item-option-positions-number-field-DIIEFHd4.cjs +49 -0
- package/components/{item-option-positions-number-field-Bxcbu_IR.js → item-option-positions-number-field-lrJdfydy.js} +2 -2
- package/components/item-option-radio-button-group/index.cjs +1 -1
- package/components/item-option-radio-button-group/index.js +1 -1
- package/components/{item-option-radio-button-group-Cw-xUSUS.js → item-option-radio-button-group-DTyHPaz_.js} +2 -2
- package/components/{item-option-radio-button-group-Bzh4RtSn.cjs → item-option-radio-button-group-DrjpL6YU.cjs} +2 -2
- package/components/item-option-slider/index.cjs +1 -1
- package/components/item-option-slider/index.js +1 -1
- package/components/{item-option-slider-DUqo3Fw0.cjs → item-option-slider-BwKBgW0y.cjs} +2 -2
- package/components/{item-option-slider-BwQnaxvO.js → item-option-slider-CIDoZhZl.js} +2 -2
- package/components/item-option-switch/index.cjs +1 -1
- package/components/item-option-switch/index.js +1 -1
- package/components/{item-option-switch-DBsakQjy.cjs → item-option-switch-CQtvbTfI.cjs} +2 -2
- package/components/{item-option-switch-IixoilYJ.js → item-option-switch-DxC1yjeN.js} +2 -2
- package/components/item-option-text-field/index.cjs +1 -1
- package/components/item-option-text-field/index.js +1 -1
- package/components/{item-option-text-field-CdWylobQ.js → item-option-text-field-CZtJ1yIj.js} +2 -2
- package/components/{item-option-text-field-B4V_sKnM.cjs → item-option-text-field-pLQzcE25.cjs} +2 -2
- package/components/{item-option-Bc6qXONK.js → item-option-zz-Rqh6o.js} +47 -47
- package/components/item-options-configs.js +45 -45
- package/components/item-slot-drop/index.cjs +1 -1
- package/components/item-slot-drop/index.d.ts +0 -2
- package/components/item-slot-drop/index.js +1 -1
- package/components/item-slot-drop/item-slot-drop.d.ts +1 -0
- package/components/{item-slot-drop-BmvMi3dI.js → item-slot-drop-SqYpfTGj.js} +67 -65
- package/components/item-slot-drop-UygcXM5D.cjs +91 -0
- package/components/item-slot-drop-panel/index.cjs +1 -1
- package/components/item-slot-drop-panel/index.js +1 -1
- package/components/item-slot-drop-panel-9T8BWejl.cjs +57 -0
- package/components/{item-slot-drop-panel-D5vaJidp.js → item-slot-drop-panel-DoWCzjqb.js} +40 -41
- package/components/item-slot-picker/index.cjs +1 -1
- package/components/item-slot-picker/index.js +1 -1
- package/components/item-slot-picker/item-slot-picker.d.ts +3 -0
- package/components/{item-slot-picker-BZV33YoP.js → item-slot-picker-CadZEvOA.js} +138 -112
- package/components/item-slot-picker-Rnb_wwCV.cjs +174 -0
- package/components/item-slot-picker-panel/index.cjs +1 -1
- package/components/item-slot-picker-panel/index.js +1 -1
- package/components/item-slot-picker-panel-2VJY6C0b.cjs +81 -0
- package/components/{item-slot-picker-panel-DyhRlAKN.js → item-slot-picker-panel-Bhr6d6Ya.js} +4 -5
- package/components/item-slots-configs.js +45 -45
- package/components/{line-chart-options.config-CfHRdG6O.js → line-chart-options.config-DMjvCs-4.js} +1 -1
- package/components/{line-chart-positioning.config-pSGQm1C1.cjs → line-chart-positioning.config-BIkHxiyg.cjs} +1 -1
- package/components/{line-chart-positioning.config-Cfcgse1N.js → line-chart-positioning.config-CdnYQBah.js} +1 -1
- package/components/{line-chart-slots.config-DKy4D4Yt.js → line-chart-slots.config-CrQEwa4W.js} +1 -1
- package/components/load-data-fields-for-datasets-CU75T9Az.js +86 -0
- package/components/load-data-fields-for-datasets-DkK1JsFd.cjs +20 -0
- package/components/{decorate-CaYbmmmm.js → localized-mixin-CBMYHOPv.js} +26 -2
- package/components/{ai-chat/index.cjs → localized-mixin-DAOiXh71.cjs} +1 -1
- package/components/{marker-map-options.config-C_aGdRQQ.js → marker-map-options.config-C52a3boH.js} +1 -1
- package/components/{marker-map-positioning.config-DTCPGbnG.js → marker-map-positioning.config-BSz4P-W9.js} +1 -1
- package/components/{hexbin-map-positioning.config-Cno9WIc9.cjs → marker-map-positioning.config-t66fioVz.cjs} +1 -1
- package/components/{marker-map-slots.config-BKRRAGwB.js → marker-map-slots.config-eJAxjIaQ.js} +1 -1
- package/components/nl-BwK5iXtO.cjs +20 -0
- package/components/{nl-C_g1Le3t.js → nl-D-Wa6DnD.js} +14 -9
- package/components/{ohlc-chart-options.config-Bd-vLN0I.js → ohlc-chart-options.config-38qB2VKc.js} +1 -1
- package/components/{ohlc-chart-positioning.config-NhpIR1T3.cjs → ohlc-chart-positioning.config-BGueS7CJ.cjs} +1 -1
- package/components/{ohlc-chart-positioning.config-D0kJJkXw.js → ohlc-chart-positioning.config-tQPPutWX.js} +1 -1
- package/components/{ohlc-chart-slots.config-DC8NCD0o.js → ohlc-chart-slots.config-SOs4oD-Q.js} +1 -1
- package/components/{parallel-coordinates-plot-options.config-BUo6XxfP.js → parallel-coordinates-plot-options.config-DfZ80jLX.js} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-Dzd0eaka.js → parallel-coordinates-plot-positioning.config-MkX-qYHX.js} +1 -1
- package/components/{parallel-coordinates-plot-positioning.config-DLF0U4lZ.cjs → parallel-coordinates-plot-positioning.config-NrJ2LNM8.cjs} +1 -1
- package/components/{parallel-coordinates-plot-slots.config-Dy-9mztD.js → parallel-coordinates-plot-slots.config-DgsHiCqT.js} +1 -1
- package/components/{formatter-Cq5dFCyU.js → period-over-period-condition.const-DLA60ptm.js} +235 -44
- package/components/period-over-period-condition.const-DystGY6B.cjs +20 -0
- package/components/{pivot-table-options.config-DrzB4qVX.js → pivot-table-options.config-5udtucDD.js} +1 -1
- package/components/{pivot-table-positioning.config-BvUjUkG3.cjs → pivot-table-positioning.config-DgJ5PPB9.cjs} +1 -1
- package/components/{pivot-table-positioning.config-PKXfqjiN.js → pivot-table-positioning.config-Dr_0v4TM.js} +1 -1
- package/components/{pivot-table-slots.config-OQe8tS40.js → pivot-table-slots.config-CRL6EW5R.js} +1 -1
- package/components/{pragmatic-element-adapter-CKhTZWGj.cjs → pragmatic-element-adapter-U3ppsQDe.cjs} +3 -3
- package/components/{pragmatic-element-adapter-BFUFSRw6.js → pragmatic-element-adapter-e5LbH_lv.js} +50 -50
- package/components/{pyramid-chart-options.config-Dux8839h.js → pyramid-chart-options.config-iP2MzTeb.js} +1 -1
- package/components/{pyramid-chart-positioning.config-48iZhPdi.cjs → pyramid-chart-positioning.config-BGRtXKWh.cjs} +1 -1
- package/components/{pyramid-chart-positioning.config-C8yiD0R3.js → pyramid-chart-positioning.config-DB0BI8vW.js} +1 -1
- package/components/{pyramid-chart-slots.config-DwlZaBAF.js → pyramid-chart-slots.config-DM3lYlDg.js} +1 -1
- package/components/{radar-chart-options.config-ColtKo6Z.js → radar-chart-options.config-aR5sQal-.js} +1 -1
- package/components/{radar-chart-positioning.config-L5Eu5W1I.js → radar-chart-positioning.config-D6UfRMMA.js} +1 -1
- package/components/{radar-chart-positioning.config-CpqhJjoz.cjs → radar-chart-positioning.config-DQiJ-Z1s.cjs} +1 -1
- package/components/{radar-chart-slots.config-BuHg4Zeg.js → radar-chart-slots.config-msW05r4n.js} +1 -1
- package/components/{regular-table-options.config-DopdB4eB.js → regular-table-options.config-kbARlJ1E.js} +1 -1
- package/components/{regular-table-slots.config--SVEN5Cu.js → regular-table-slots.config-DAwLOM5T.js} +1 -1
- package/components/{route-map-options.config-BCuJw5k3.js → route-map-options.config-DCBAfq09.js} +1 -1
- package/components/{route-map-positioning.config-DTwMkeiu.cjs → route-map-positioning.config-Cbic0Cbz.cjs} +1 -1
- package/components/{route-map-positioning.config-DVb_Jiws.js → route-map-positioning.config-D_ZoyhwX.js} +1 -1
- package/components/{route-map-slots.config-CmVIxDkx.js → route-map-slots.config-DNiRtoRC.js} +1 -1
- package/components/{sankey-diagram-options.config-BH3kpjFs.js → sankey-diagram-options.config-CKjVnYnF.js} +1 -1
- package/components/{sankey-diagram-positioning.config-Dk0siSAo.js → sankey-diagram-positioning.config-CQNdImz0.js} +1 -1
- package/components/{sankey-diagram-positioning.config-_kyrBnJ4.cjs → sankey-diagram-positioning.config-CZDPh7CR.cjs} +1 -1
- package/components/{sankey-diagram-slots.config-lbkF8DWJ.js → sankey-diagram-slots.config-CVD2P6RJ.js} +1 -1
- package/components/{scatter-plot-options.config-Dn6ILlJw.js → scatter-plot-options.config--AfAxaGf.js} +1 -1
- package/components/{scatter-plot-positioning.config-DaYstFV8.cjs → scatter-plot-positioning.config-BPEymo3a.cjs} +1 -1
- package/components/{scatter-plot-positioning.config-440yA7x5.js → scatter-plot-positioning.config-BTOiZ8cF.js} +1 -1
- package/components/{scatter-plot-slots.config-DEFWWj0_.js → scatter-plot-slots.config-D57rd66g.js} +1 -1
- package/components/{search-filter-options.config-DWKVxBc5.js → search-filter-options.config-DQwMOiXm.js} +1 -1
- package/components/{search-filter-slots.config-vyPYIXE7.js → search-filter-slots.config-DQybwP4H.js} +1 -1
- package/components/{set-locale-DKCZkJVL.cjs → set-locale-BCnD4yp_.cjs} +1 -1
- package/components/{set-locale-DB1FMgtK.js → set-locale-CamOWu7o.js} +4 -4
- package/components/{slicer-filter-options.config-C6HPrjIw.js → slicer-filter-options.config-DVE33GEz.js} +1 -1
- package/components/{slicer-filter-positioning.config-B6wPo539.js → slicer-filter-positioning.config-CC7uoU2D.js} +1 -1
- package/components/{slicer-filter-positioning.config-DdfTuXdV.cjs → slicer-filter-positioning.config-CQE4ocpD.cjs} +1 -1
- package/components/{slicer-filter-slots.config-BZWCSkX4.js → slicer-filter-slots.config-Bcz9RsdR.js} +1 -1
- package/components/{slider-filter-options.config-CvqHWJIX.js → slider-filter-options.config-BwaAvOvt.js} +1 -1
- package/components/{slider-filter-slots.config-BY9X2rlz.js → slider-filter-slots.config-Bc8Qk7fb.js} +1 -1
- package/components/slot-menu-BL772rj7.js +1048 -0
- package/components/slot-menu-CCbZ-krJ.cjs +215 -0
- package/components/{speedometer-chart-options.config-wX3KzciD.js → speedometer-chart-options.config-D4-8n5pn.js} +1 -1
- package/components/{speedometer-chart-positioning.config-rI2Jxymu.js → speedometer-chart-positioning.config-ChH-uAdS.js} +1 -1
- package/components/{speedometer-chart-positioning.config-BVYrl1_s.cjs → speedometer-chart-positioning.config-DpBVarun.cjs} +1 -1
- package/components/{speedometer-chart-slots.config-0Tv8EtKT.js → speedometer-chart-slots.config-B4zqf0f_.js} +1 -1
- package/components/{spike-map-options.config-DpgsB_L-.js → spike-map-options.config-CM46vw7B.js} +1 -1
- package/components/{spike-map-positioning.config-CiY2ju4c.js → spike-map-positioning.config-BnEQJ-rD.js} +1 -1
- package/components/{spike-map-positioning.config-2XZLrk9D.cjs → spike-map-positioning.config-DrSoa8Ol.cjs} +1 -1
- package/components/{spike-map-slots.config-C6e0NXiD.js → spike-map-slots.config-BeXzuzh0.js} +1 -1
- package/components/{strip-plot-options.config-BzhxzU-s.js → strip-plot-options.config-BlneYJOy.js} +1 -1
- package/components/{strip-plot-positioning.config-CFQPdgei.js → strip-plot-positioning.config-Be5Desz2.js} +1 -1
- package/components/{strip-plot-positioning.config-CkC8JUwR.cjs → strip-plot-positioning.config-DlkZ1i6m.cjs} +1 -1
- package/components/{strip-plot-slots.config-BjwAuVoh.js → strip-plot-slots.config-BGQIQtMK.js} +1 -1
- package/components/{sunburst-chart-options.config-Ba_H54ip.js → sunburst-chart-options.config-8xopRyBB.js} +1 -1
- package/components/{sunburst-chart-positioning.config-DVt84HYB.cjs → sunburst-chart-positioning.config-D4zzci9s.cjs} +1 -1
- package/components/{sunburst-chart-positioning.config-BHJf7n-T.js → sunburst-chart-positioning.config-RUEkAgKJ.js} +1 -1
- package/components/{sunburst-chart-slots.config-h114Cuzh.js → sunburst-chart-slots.config-BhKeTqTo.js} +1 -1
- package/components/{symbol-map-options.config-DeJyZILi.js → symbol-map-options.config-nJAvVQIh.js} +1 -1
- package/components/{symbol-map-positioning.config-DQK1q4GP.cjs → symbol-map-positioning.config-Dmgmyhv7.cjs} +1 -1
- package/components/{symbol-map-positioning.config-tZp8vwwl.js → symbol-map-positioning.config-JzgtULMk.js} +1 -1
- package/components/{symbol-map-slots.config-BmvI5_VE.js → symbol-map-slots.config-D9E-oBE4.js} +1 -1
- package/components/{text-options.config-BXuZMKTG.js → text-options.config-DCF3IVzO.js} +1 -1
- package/components/{text-slots.config-18Chz73A.js → text-slots.config-C60nJ0OX.js} +1 -1
- package/components/{treemap-chart-options.config-Be-LBEGy.js → treemap-chart-options.config-RFQTphEG.js} +1 -1
- package/components/{treemap-chart-positioning.config-CEYAh7Uc.js → treemap-chart-positioning.config-CSt_vVgw.js} +1 -1
- package/components/{treemap-chart-positioning.config-DQfHJ-ZS.cjs → treemap-chart-positioning.config-CqHJxz2j.cjs} +1 -1
- package/components/{treemap-chart-slots.config-e7ORieH-.js → treemap-chart-slots.config-CZRP7PZH.js} +1 -1
- package/components/utils/base.cjs +1 -1
- package/components/utils/base.js +2 -2
- package/components/utils/store.js +1 -1
- package/components/utils-DLTDAer5.js +239 -0
- package/components/utils-Ez3j4EOS.cjs +20 -0
- package/components/utils.cjs +1 -1
- package/components/utils.js +6 -9
- package/components/{venn-diagram-options.config-D3bEFsYa.js → venn-diagram-options.config-uCJ5dei5.js} +1 -1
- package/components/{venn-diagram-positioning.config-DQa6-GAn.cjs → venn-diagram-positioning.config-CzhNTma3.cjs} +1 -1
- package/components/{venn-diagram-positioning.config-2rUFGTJh.js → venn-diagram-positioning.config-DsPI8qfG.js} +1 -1
- package/components/{venn-diagram-slots.config-Dm-IC6JS.js → venn-diagram-slots.config-DOljH_uI.js} +1 -1
- package/components/{video-options.config-B5aOwGa4.js → video-options.config-DkLrX1gP.js} +1 -1
- package/components/{video-slots.config-D2MtpAGI.js → video-slots.config-CqMIkttE.js} +1 -1
- package/components/{wordcloud-chart-options.config-DntH4Hvg.js → wordcloud-chart-options.config-C2ZILp7a.js} +1 -1
- package/components/{wordcloud-chart-positioning.config-C3Zulr2Q.js → wordcloud-chart-positioning.config-BUE8e4fN.js} +1 -1
- package/components/{wordcloud-chart-positioning.config-DhoAsQP-.cjs → wordcloud-chart-positioning.config-moNJfL1M.cjs} +1 -1
- package/components/{wordcloud-chart-slots.config-CsFBBXDz.js → wordcloud-chart-slots.config-B8s8B47F.js} +1 -1
- package/custom-elements.json +5896 -15935
- package/index.d.ts +0 -24
- package/package.json +3 -128
- package/react/README.md +6 -31
- package/react/esm/index.d.ts +2 -27
- package/react/esm/index.js +2 -102
- package/react/esm/types.d.ts +0 -15
- package/react/index.ts +2 -102
- package/react/luzmo-stub.d.ts +0 -163
- package/react/types.ts +0 -12
- package/react/utils/slot-content/ad-hoc-slot-content.d.ts +7 -0
- package/react/utils/slot-content/render-calculation-label.d.ts +7 -0
- package/react/utils/slot-state/slot-store.d.ts +2 -2
- package/types/slot.types.d.ts +10 -1
- package/types.d.ts +0 -8
- package/utils/slot-content/ad-hoc-slot-content.d.ts +7 -0
- package/utils/slot-content/render-calculation-label.d.ts +7 -0
- package/utils/slot-state/slot-store.d.ts +2 -2
- package/components/ai-chat/ai-chat-events.d.ts +0 -123
- package/components/ai-chat/ai-chat-request.d.ts +0 -11
- package/components/ai-chat/ai-chat.d.ts +0 -279
- package/components/ai-chat/ai-prompt-types.d.ts +0 -94
- package/components/ai-chat/empty-state/ai-chat-empty-state.d.ts +0 -46
- package/components/ai-chat/empty-state/index.d.ts +0 -8
- package/components/ai-chat/empty-state/types.d.ts +0 -14
- package/components/ai-chat/index.d.ts +0 -20
- package/components/ai-chat/index.js +0 -28
- package/components/ai-chat/session/ai-chat-session-controller.d.ts +0 -51
- package/components/ai-chat/session/ai-chat-session-types.d.ts +0 -88
- package/components/ai-chat/session/ai-chat-session.d.ts +0 -91
- package/components/ai-chat/session/index.d.ts +0 -2
- package/components/ai-chat/stream/chunk-extractors.d.ts +0 -27
- package/components/ai-chat/stream/index.d.ts +0 -52
- package/components/ai-chat/stream/progress.d.ts +0 -3
- package/components/ai-chat/stream/registry.d.ts +0 -6
- package/components/ai-chat/stream/stream-processor.d.ts +0 -2
- package/components/ai-chat/stream/transport.d.ts +0 -26
- package/components/ai-chat/stream/types.d.ts +0 -55
- package/components/ai-chat-CXt4wCe0.js +0 -3715
- package/components/ai-chat-Dnf-C838.cjs +0 -258
- package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +0 -135
- package/components/ai-interaction-textarea/index.cjs +0 -20
- package/components/ai-interaction-textarea/index.d.ts +0 -8
- package/components/ai-interaction-textarea/index.js +0 -28
- package/components/ai-interaction-textarea/types.d.ts +0 -5
- package/components/ai-interaction-textarea-B_-aZ9mc.cjs +0 -68
- package/components/ai-interaction-textarea-DSrZkuh9.js +0 -299
- package/components/base-BCmPH4SF.cjs +0 -20
- package/components/convert-data-field-to-slot-content-BQkSy_8B.cjs +0 -20
- package/components/convert-data-field-to-slot-content-C6IIqU7G.js +0 -53
- package/components/convert-datasets-to-data-fields-B13rl1an.cjs +0 -20
- package/components/convert-datasets-to-data-fields-PmQzeVLG.js +0 -68
- package/components/data-field-CxUItUcs.cjs +0 -54
- package/components/data-field-RzkD37hR.js +0 -121
- package/components/data-field-level/data-field-level.d.ts +0 -40
- package/components/data-field-level/helpers/generate-preview.d.ts +0 -9
- package/components/data-field-level/index.cjs +0 -20
- package/components/data-field-level/index.d.ts +0 -8
- package/components/data-field-level/index.js +0 -28
- package/components/data-field-level-55bJkqFt.cjs +0 -55
- package/components/data-field-panel-C3O77CIF.cjs +0 -87
- package/components/data-fields-select/data-fields-select.d.ts +0 -127
- package/components/data-fields-select/index.cjs +0 -20
- package/components/data-fields-select/index.d.ts +0 -9
- package/components/data-fields-select/index.js +0 -28
- package/components/data-fields-select/types.d.ts +0 -4
- package/components/data-fields-select-D-nSjOep.cjs +0 -41
- package/components/dataset-icon/dataset-icon.d.ts +0 -45
- package/components/dataset-icon/index.cjs +0 -20
- package/components/dataset-icon/index.d.ts +0 -8
- package/components/dataset-icon/index.js +0 -28
- package/components/dataset-icon/types.d.ts +0 -11
- package/components/dataset-icon-BAV0S4sZ.cjs +0 -64
- package/components/dataset-icon-BXEgg_8O.js +0 -125
- package/components/dataset-selector-list/dataset-selector-list.d.ts +0 -102
- package/components/dataset-selector-list/index.cjs +0 -20
- package/components/dataset-selector-list/index.d.ts +0 -8
- package/components/dataset-selector-list/index.js +0 -28
- package/components/dataset-selector-list-BW5v_7_L.cjs +0 -75
- package/components/dataset-selector-list-DwfeaUGu.js +0 -313
- package/components/dataset-selector-row/dataset-selector-row.d.ts +0 -89
- package/components/dataset-selector-row/index.cjs +0 -20
- package/components/dataset-selector-row/index.d.ts +0 -8
- package/components/dataset-selector-row/index.js +0 -28
- package/components/dataset-selector-row-BU7YhT7l.cjs +0 -79
- package/components/dataset-selector-row-CLbx0joD.js +0 -273
- package/components/de-BY1wWZE8.cjs +0 -20
- package/components/decompose-numeric-format-DGJua3rU.cjs +0 -20
- package/components/decompose-numeric-format-DS0j2wa1.js +0 -36
- package/components/decorate-DCJt-2rt.cjs +0 -20
- package/components/display-settings/display-settings.d.ts +0 -98
- package/components/display-settings/index.cjs +0 -20
- package/components/display-settings/index.d.ts +0 -8
- package/components/display-settings/index.js +0 -28
- package/components/display-settings/types.d.ts +0 -9
- package/components/display-settings-COYLimuI.cjs +0 -120
- package/components/display-settings-ajA8j6kr.js +0 -272
- package/components/display-settings-binning/display-settings-binning.d.ts +0 -32
- package/components/display-settings-binning/index.cjs +0 -20
- package/components/display-settings-binning/index.d.ts +0 -8
- package/components/display-settings-binning/index.js +0 -28
- package/components/display-settings-datetime/display-settings-datetime.d.ts +0 -86
- package/components/display-settings-datetime/index.cjs +0 -20
- package/components/display-settings-datetime/index.d.ts +0 -8
- package/components/display-settings-datetime/index.js +0 -28
- package/components/display-settings-datetime-CLRXVpld.cjs +0 -217
- package/components/display-settings-grand-totals/display-settings-grand-totals.d.ts +0 -29
- package/components/display-settings-grand-totals/index.cjs +0 -20
- package/components/display-settings-grand-totals/index.d.ts +0 -8
- package/components/display-settings-grand-totals/index.js +0 -28
- package/components/display-settings-grand-totals-DltI_Z-x.cjs +0 -44
- package/components/display-settings-numeric/display-settings-numeric.d.ts +0 -82
- package/components/display-settings-numeric/helpers/constants.d.ts +0 -19
- package/components/display-settings-numeric/index.cjs +0 -20
- package/components/display-settings-numeric/index.d.ts +0 -8
- package/components/display-settings-numeric/index.js +0 -28
- package/components/display-settings-numeric-CurqaTi5.cjs +0 -190
- package/components/display-settings-period-over-period/display-settings-period-over-period.d.ts +0 -68
- package/components/display-settings-period-over-period/helpers/constants.d.ts +0 -44
- package/components/display-settings-period-over-period/index.cjs +0 -20
- package/components/display-settings-period-over-period/index.d.ts +0 -8
- package/components/display-settings-period-over-period/index.js +0 -28
- package/components/display-settings-period-over-period-DP2grX4n.cjs +0 -229
- package/components/es-BIaD4kOL.cjs +0 -20
- package/components/filter-expression-picker/filter-expression-picker.d.ts +0 -73
- package/components/filter-expression-picker/index.cjs +0 -20
- package/components/filter-expression-picker/index.d.ts +0 -7
- package/components/filter-expression-picker/index.js +0 -28
- package/components/filter-expression-picker-0eNf_L9I.cjs +0 -38
- package/components/filter-expression-picker-D_buTmzJ.js +0 -425
- package/components/filter-item/filter-item.d.ts +0 -84
- package/components/filter-item/index.cjs +0 -20
- package/components/filter-item/index.d.ts +0 -7
- package/components/filter-item/index.js +0 -28
- package/components/filter-item-DGnRmeaB.cjs +0 -58
- package/components/filter-item-VzEHDr04.js +0 -242
- package/components/filter-parameter-picker/filter-parameter-picker.d.ts +0 -25
- package/components/filter-parameter-picker/index.cjs +0 -22
- package/components/filter-parameter-picker/index.d.ts +0 -7
- package/components/filter-parameter-picker/index.js +0 -58
- package/components/filter-value-picker/filter-value-picker.d.ts +0 -65
- package/components/filter-value-picker/index.cjs +0 -20
- package/components/filter-value-picker/index.d.ts +0 -7
- package/components/filter-value-picker/index.js +0 -28
- package/components/filter-value-picker-C1lDTmKM.cjs +0 -60
- package/components/filter-value-picker-CIblY-PW.js +0 -151
- package/components/filter-value-picker-datetime/filter-value-picker-datetime.d.ts +0 -42
- package/components/filter-value-picker-datetime/index.cjs +0 -20
- package/components/filter-value-picker-datetime/index.d.ts +0 -7
- package/components/filter-value-picker-datetime/index.js +0 -28
- package/components/filter-value-picker-datetime-DQpEf_tv.js +0 -139
- package/components/filter-value-picker-datetime-dCo1_pma.cjs +0 -42
- package/components/filter-value-picker-hierarchy/filter-value-picker-hierarchy.d.ts +0 -81
- package/components/filter-value-picker-hierarchy/index.cjs +0 -20
- package/components/filter-value-picker-hierarchy/index.d.ts +0 -7
- package/components/filter-value-picker-hierarchy/index.js +0 -28
- package/components/filter-value-picker-hierarchy-DaZlasgM.cjs +0 -47
- package/components/filter-value-picker-hierarchy-DzHUrpyk.js +0 -232
- package/components/filter-value-picker-numeric/filter-value-picker-numeric.d.ts +0 -82
- package/components/filter-value-picker-numeric/index.cjs +0 -20
- package/components/filter-value-picker-numeric/index.d.ts +0 -7
- package/components/filter-value-picker-numeric/index.js +0 -28
- package/components/filter-value-picker-numeric-BU975w8c.js +0 -219
- package/components/filter-value-picker-numeric-D-dUSGAP.cjs +0 -48
- package/components/filters-BgTnxSKg.js +0 -400
- package/components/filters-Cx1S1-vx.cjs +0 -150
- package/components/formatter-8m-wrIM-.cjs +0 -20
- package/components/formula-D7E8UieE.cjs +0 -45
- package/components/formula-codemirror/formula-codemirror.d.ts +0 -79
- package/components/formula-codemirror/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-aggregation/formula-aggregation.d.ts +0 -125
- package/components/formula-codemirror/pills/formula-aggregation/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-empty-argument-pill/formula-empty-argument-pill.d.ts +0 -28
- package/components/formula-codemirror/pills/formula-empty-argument-pill/index.d.ts +0 -7
- package/components/formula-codemirror/pills/formula-include-exclude-panel.d.ts +0 -38
- package/components/formula-display-store-DjjsQ5mW.cjs +0 -20
- package/components/formula-draggable-field/formula-draggable-field.d.ts +0 -53
- package/components/formula-draggable-field/index.d.ts +0 -8
- package/components/formula-draggable-field/types.d.ts +0 -24
- package/components/formula-editor-4PoZ3BlC.cjs +0 -218
- package/components/formula-field/formula-field.d.ts +0 -20
- package/components/formula-field/index.cjs +0 -20
- package/components/formula-field/index.d.ts +0 -7
- package/components/formula-field/index.js +0 -28
- package/components/formula-field-DXdxspyY.js +0 -40
- package/components/formula-field-DkKXMIMg.cjs +0 -20
- package/components/formula-input-base-Bz_XVZcs.cjs +0 -49
- package/components/formula-input-base-Dok5ujvH.js +0 -236
- package/components/fr-CHG2Tcby.cjs +0 -20
- package/components/get-dataset-name-Dwuh7DWE.cjs +0 -20
- package/components/get-dataset-name-SfDNjsuR.js +0 -27
- package/components/groupings-BNrLlXIB.cjs +0 -20
- package/components/groupings-okwLJKoG.js +0 -52
- package/components/interactive-viz-item/helpers/chart-helpers.d.ts +0 -7
- package/components/interactive-viz-item/index.cjs +0 -20
- package/components/interactive-viz-item/index.d.ts +0 -10
- package/components/interactive-viz-item/index.js +0 -28
- package/components/interactive-viz-item/interactive-viz-item.d.ts +0 -96
- package/components/interactive-viz-item/types.d.ts +0 -117
- package/components/interactive-viz-item-63pap_oz.cjs +0 -247
- package/components/interactive-viz-item-QVji6wbp.js +0 -693
- package/components/item-menu/item-list/item-list.d.ts +0 -37
- package/components/item-option-action-button-group-jPUDKP3M.cjs +0 -53
- package/components/item-option-base/item-option-base.d.ts +0 -23
- package/components/item-option-base-Bk9L8Ie7.cjs +0 -56
- package/components/item-option-color-palette-picker-kch0Ep_5.cjs +0 -40
- package/components/item-option-color-range-Cj6sZ72F.cjs +0 -98
- package/components/item-option-iQM2pOGK.cjs +0 -252
- package/components/item-option-position-picker-Csc4Y6dN.cjs +0 -32
- package/components/item-option-positions-number-field-DBV6Yekk.cjs +0 -49
- package/components/item-slot-drop-D8KI2kny.cjs +0 -91
- package/components/item-slot-drop-panel-Crw-ktDj.cjs +0 -57
- package/components/item-slot-picker-BgQAviso.cjs +0 -158
- package/components/item-slot-picker-panel-C26kZ4zE.cjs +0 -81
- package/components/load-data-fields-for-datasets-BVGaku2J.cjs +0 -20
- package/components/load-data-fields-for-datasets-DeXLqWt4.js +0 -42
- package/components/localized-mixin-BYWQe1fg.js +0 -45
- package/components/localized-mixin-DrK3QZNa.cjs +0 -20
- package/components/nl-PxN5EqzT.cjs +0 -20
- package/components/period-over-period-condition.const-BZ7j5Z5t.js +0 -29
- package/components/period-over-period-condition.const-C1NZ9Bkp.cjs +0 -20
- package/components/slot-menu/index.cjs +0 -20
- package/components/slot-menu/index.d.ts +0 -10
- package/components/slot-menu/index.js +0 -28
- package/components/slot-menu/slot-menu.d.ts +0 -143
- package/components/slot-menu/types.d.ts +0 -24
- package/components/slot-menu-BBnibMJU.cjs +0 -64
- package/components/slot-menu-list/index.cjs +0 -20
- package/components/slot-menu-list/index.d.ts +0 -8
- package/components/slot-menu-list/index.js +0 -28
- package/components/slot-menu-list/slot-menu-list.d.ts +0 -42
- package/components/slot-menu-list-D193fsQX.cjs +0 -38
- package/components/slot-menu-list-gKDiWsHB.js +0 -325
- package/components/slot-menu-w7sla2N0.js +0 -400
- package/components/slots-config-DIBoffEb.js +0 -77
- package/components/slots-config-YdyClHLc.cjs +0 -20
- package/components/utils-CJf8VNzX.cjs +0 -20
- package/components/utils-Ci1YA9yB.js +0 -352
- package/components/viz-item-menu/index.cjs +0 -20
- package/components/viz-item-menu/index.d.ts +0 -8
- package/components/viz-item-menu/index.js +0 -28
- package/components/viz-item-menu/types.d.ts +0 -9
- package/components/viz-item-menu/viz-item-menu.d.ts +0 -75
- package/components/viz-item-menu-B4BJBNEq.js +0 -170
- package/components/viz-item-menu-DD8ndROu.cjs +0 -55
- package/react/components/ai-chat/empty-state/index.ts +0 -1
- package/react/components/ai-chat/empty-state/types.ts +0 -16
- package/react/components/ai-chat/stream/index.ts +0 -1
- package/react/components/ai-chat/stream/types.ts +0 -60
- package/react/components/ai-chat.component.ts +0 -42
- package/react/components/ai-interaction-textarea/index.ts +0 -1
- package/react/components/ai-interaction-textarea/types.ts +0 -6
- package/react/components/ai-interaction-textarea.component.ts +0 -30
- package/react/components/data-field-level.component.ts +0 -30
- package/react/components/data-fields-select/index.ts +0 -1
- package/react/components/data-fields-select/types.ts +0 -5
- package/react/components/data-fields-select.component.ts +0 -27
- package/react/components/dataset-icon/index.ts +0 -1
- package/react/components/dataset-icon/types.ts +0 -8
- package/react/components/dataset-icon.component.ts +0 -22
- package/react/components/dataset-selector-list.component.ts +0 -27
- package/react/components/dataset-selector-row.component.ts +0 -30
- package/react/components/display-settings/index.ts +0 -1
- package/react/components/display-settings/types.ts +0 -12
- package/react/components/display-settings-binning.component.ts +0 -27
- package/react/components/display-settings-datetime.component.ts +0 -27
- package/react/components/display-settings-grand-totals.component.ts +0 -27
- package/react/components/display-settings-numeric.component.ts +0 -27
- package/react/components/display-settings-period-over-period.component.ts +0 -27
- package/react/components/display-settings.component.ts +0 -33
- package/react/components/filter-expression-picker.component.ts +0 -27
- package/react/components/filter-item.component.ts +0 -27
- package/react/components/filter-parameter-picker.component.ts +0 -22
- package/react/components/filter-value-picker-datetime.component.ts +0 -27
- package/react/components/filter-value-picker-hierarchy.component.ts +0 -27
- package/react/components/filter-value-picker-numeric.component.ts +0 -27
- package/react/components/filter-value-picker.component.ts +0 -27
- package/react/components/formula-draggable-field/index.ts +0 -1
- package/react/components/formula-draggable-field/types.ts +0 -26
- package/react/components/formula-field.component.ts +0 -30
- package/react/components/interactive-viz-item/index.ts +0 -1
- package/react/components/interactive-viz-item/types.ts +0 -122
- package/react/components/interactive-viz-item.component.ts +0 -33
- package/react/components/slot-menu/index.ts +0 -1
- package/react/components/slot-menu/types.ts +0 -29
- package/react/components/slot-menu-list.component.ts +0 -27
- package/react/components/slot-menu.component.ts +0 -42
- package/react/components/viz-item-menu/index.ts +0 -1
- package/react/components/viz-item-menu/types.ts +0 -11
- package/react/components/viz-item-menu.component.ts +0 -33
- package/react/esm/components/ai-chat/empty-state/index.d.ts +0 -1
- package/react/esm/components/ai-chat/empty-state/index.js +0 -1
- package/react/esm/components/ai-chat/empty-state/types.d.ts +0 -14
- package/react/esm/components/ai-chat/stream/index.d.ts +0 -1
- package/react/esm/components/ai-chat/stream/index.js +0 -1
- package/react/esm/components/ai-chat/stream/types.d.ts +0 -55
- package/react/esm/components/ai-chat.component.d.ts +0 -22
- package/react/esm/components/ai-chat.component.js +0 -27
- package/react/esm/components/ai-interaction-textarea/index.d.ts +0 -1
- package/react/esm/components/ai-interaction-textarea/index.js +0 -1
- package/react/esm/components/ai-interaction-textarea/types.d.ts +0 -5
- package/react/esm/components/ai-interaction-textarea.component.d.ts +0 -14
- package/react/esm/components/ai-interaction-textarea.component.js +0 -19
- package/react/esm/components/data-field-level.component.d.ts +0 -14
- package/react/esm/components/data-field-level.component.js +0 -19
- package/react/esm/components/data-fields-select/index.d.ts +0 -1
- package/react/esm/components/data-fields-select/index.js +0 -1
- package/react/esm/components/data-fields-select/types.d.ts +0 -4
- package/react/esm/components/data-fields-select.component.d.ts +0 -12
- package/react/esm/components/data-fields-select.component.js +0 -17
- package/react/esm/components/dataset-icon/index.d.ts +0 -1
- package/react/esm/components/dataset-icon/index.js +0 -1
- package/react/esm/components/dataset-icon/types.d.ts +0 -11
- package/react/esm/components/dataset-icon/types.js +0 -1
- package/react/esm/components/dataset-icon.component.d.ts +0 -8
- package/react/esm/components/dataset-icon.component.js +0 -13
- package/react/esm/components/dataset-selector-list.component.d.ts +0 -12
- package/react/esm/components/dataset-selector-list.component.js +0 -17
- package/react/esm/components/dataset-selector-row.component.d.ts +0 -14
- package/react/esm/components/dataset-selector-row.component.js +0 -19
- package/react/esm/components/display-settings/index.d.ts +0 -1
- package/react/esm/components/display-settings/index.js +0 -1
- package/react/esm/components/display-settings/types.d.ts +0 -9
- package/react/esm/components/display-settings/types.js +0 -1
- package/react/esm/components/display-settings-binning.component.d.ts +0 -12
- package/react/esm/components/display-settings-binning.component.js +0 -17
- package/react/esm/components/display-settings-datetime.component.d.ts +0 -12
- package/react/esm/components/display-settings-datetime.component.js +0 -17
- package/react/esm/components/display-settings-grand-totals.component.d.ts +0 -12
- package/react/esm/components/display-settings-grand-totals.component.js +0 -17
- package/react/esm/components/display-settings-numeric.component.d.ts +0 -12
- package/react/esm/components/display-settings-numeric.component.js +0 -17
- package/react/esm/components/display-settings-period-over-period.component.d.ts +0 -12
- package/react/esm/components/display-settings-period-over-period.component.js +0 -17
- package/react/esm/components/display-settings.component.d.ts +0 -16
- package/react/esm/components/display-settings.component.js +0 -21
- package/react/esm/components/filter-expression-picker.component.d.ts +0 -12
- package/react/esm/components/filter-expression-picker.component.js +0 -17
- package/react/esm/components/filter-item.component.d.ts +0 -12
- package/react/esm/components/filter-item.component.js +0 -17
- package/react/esm/components/filter-parameter-picker.component.d.ts +0 -8
- package/react/esm/components/filter-parameter-picker.component.js +0 -13
- package/react/esm/components/filter-value-picker-datetime.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-datetime.component.js +0 -17
- package/react/esm/components/filter-value-picker-hierarchy.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-hierarchy.component.js +0 -17
- package/react/esm/components/filter-value-picker-numeric.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker-numeric.component.js +0 -17
- package/react/esm/components/filter-value-picker.component.d.ts +0 -12
- package/react/esm/components/filter-value-picker.component.js +0 -17
- package/react/esm/components/formula-draggable-field/index.d.ts +0 -1
- package/react/esm/components/formula-draggable-field/index.js +0 -1
- package/react/esm/components/formula-draggable-field/types.d.ts +0 -24
- package/react/esm/components/formula-draggable-field/types.js +0 -1
- package/react/esm/components/formula-field.component.d.ts +0 -14
- package/react/esm/components/formula-field.component.js +0 -19
- package/react/esm/components/interactive-viz-item/index.d.ts +0 -1
- package/react/esm/components/interactive-viz-item/index.js +0 -1
- package/react/esm/components/interactive-viz-item/types.d.ts +0 -117
- package/react/esm/components/interactive-viz-item/types.js +0 -16
- package/react/esm/components/interactive-viz-item.component.d.ts +0 -16
- package/react/esm/components/interactive-viz-item.component.js +0 -21
- package/react/esm/components/slot-menu/index.d.ts +0 -1
- package/react/esm/components/slot-menu/index.js +0 -1
- package/react/esm/components/slot-menu/types.d.ts +0 -24
- package/react/esm/components/slot-menu/types.js +0 -1
- package/react/esm/components/slot-menu-list.component.d.ts +0 -12
- package/react/esm/components/slot-menu-list.component.js +0 -17
- package/react/esm/components/slot-menu.component.d.ts +0 -22
- package/react/esm/components/slot-menu.component.js +0 -27
- package/react/esm/components/viz-item-menu/index.d.ts +0 -1
- package/react/esm/components/viz-item-menu/index.js +0 -1
- package/react/esm/components/viz-item-menu/types.d.ts +0 -9
- package/react/esm/components/viz-item-menu/types.js +0 -1
- package/react/esm/components/viz-item-menu.component.d.ts +0 -16
- package/react/esm/components/viz-item-menu.component.js +0 -21
- package/storybook/inject-global-vars.d.ts +0 -1
- package/storybook/register-components.d.ts +0 -51
- package/types/ai-chat.types.d.ts +0 -63
- package/types/data-field-events.types.d.ts +0 -7
- /package/react/{esm/components/ai-chat/empty-state/types.js → utils/formula/config/tests/build-datasets.test.d.ts} +0 -0
- /package/react/{esm/components/ai-chat/stream/types.js → utils/slot-content/tests/ad-hoc-slot-content.test.d.ts} +0 -0
- /package/{react/esm/components/ai-interaction-textarea/types.js → utils/formula/config/tests/build-datasets.test.d.ts} +0 -0
- /package/{react/esm/components/data-fields-select/types.js → utils/slot-content/tests/ad-hoc-slot-content.test.d.ts} +0 -0
|
@@ -17,8 +17,8 @@
|
|
|
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-DrK3QZNa.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"),s=require("lit"),c=require("lit/decorators.js"),l=require("@lit/localize");require("@luzmo/lucero/icon"),require("@luzmo/lucero/tooltip");let u=require("lit/directives/repeat.js");require("@luzmo/lucero/action-button"),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`)?!1:!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:!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`
|
|
21
|
-
<div class="grid-item-actions-popover" popover=${
|
|
20
|
+
const e=require("./localized-mixin-DAOiXh71.cjs"),t=require("./color-Bl8h58rV.cjs"),n=require("./themes-kvrISOTz.cjs"),r=require("./v4-Dyp-SQ1c.cjs"),i=require("./item-list.cjs");let a=require("@luzmo/icons");require("@luzmo/lucero/icon");let o=require("lit"),s=require("lit/decorators.js"),c=require("@lit/localize");require("@luzmo/lucero/tooltip");let l=require("lit/directives/repeat.js");require("@luzmo/lucero/action-button"),require("@luzmo/embed"),require("@luzmo/lucero/action-group");let u=require("@luzmo/lucero/utils"),d=require("lit/directives/guard.js");var f=`.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}`,p=(e,t)=>{e.forEach(e=>{let n=e.querySelector(`luzmo-embed-viz-item`);n&&(n.options={...n.options,locale:t})})},m=({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}}),h=({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:m({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}))},g=({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}))},_=({target:e,eventName:t,detail:n})=>{e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))},v=e=>e instanceof Element?e:void 0,y=e=>v(e)?.closest(`.grid-stack-item`),b=({event:e,gridItem:t})=>v(e.relatedTarget)?.closest(`.grid-item-actions-popover`)?!1:!t.hasAttribute(`active`),x=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>{let r=y(e.target);return r?(t&&t!==r&&(t.removeAttribute(`focused`),n(t)),r.setAttribute(`focused`,`true`),r):t},ee=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>t?v(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},te=({item:e,activeItemElement:t,gridElement:n,removeItemActionsMenuPopover:r})=>{if(e.removeAttribute(`active`),r(e),t===e){n.removeAttribute(`has-active-item`);return}return t},S=({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)},C=({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,w=Math.max,T=Math.round,he=Math.floor,E=e=>({x:e,y:e}),ge={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function _e(e,t){return typeof e==`function`?e(t):e}function D(e){return e.split(`-`)[0]}function ve(e){return e.split(`-`)[1]}function ye(e){return e===`x`?`y`:`x`}function be(e){return e===`y`?`height`:`width`}function O(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function xe(e){return ye(O(e))}function Se(e,t,n){n===void 0&&(n=!1);let r=ve(e),i=xe(e),a=be(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=je(o)),[o,je(o)]}function Ce(e){let t=je(e);return[we(e),t,we(t)]}function we(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Te=[`left`,`right`],Ee=[`right`,`left`],De=[`top`,`bottom`],Oe=[`bottom`,`top`];function ke(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Ee:Te:t?Te:Ee;case`left`:case`right`:return t?De:Oe;default:return[]}}function Ae(e,t,n,r){let i=ve(e),a=ke(D(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(we)))),a}function je(e){let t=D(e);return ge[t]+e.slice(t.length)}function Me(e){return{top:0,right:0,bottom:0,left:0,...e}}function Ne(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Me(e)}function Pe(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 Fe(e,t,n){let{reference:r,floating:i}=e,a=O(t),o=xe(t),s=be(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(ve(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 Ie(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}=_e(t,e),p=Ne(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Pe(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=Pe(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 Le=50,Re=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ie},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Fe(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<Le&&(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}=Fe(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},ze=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}=_e(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?[je(o)]:Ce(o)),x=p!==`none`;!d&&x&&b.push(...Ae(o,m,p,y));let ee=[o,...b],te=await s.detectOverflow(t,h),S=[],C=i.flip?.overflows||[];if(l&&S.push(te[g]),u){let e=Se(r,a,y);S.push(te[e[0]],te[e[1]])}if(C=[...C,{placement:r,overflows:S}],!S.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=ee[e];if(t&&(!(u===`alignment`&&_!==O(t))||C.every(e=>O(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:C},reset:{placement:t}};let n=C.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=C.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{}}}},Be=new Set([`left`,`top`]);async function Ve(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=ve(n),c=O(n)===`y`,l=Be.has(o)?-1:1,u=a&&c?-1:1,d=_e(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 He=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 Ve(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 Ue(){return typeof window<`u`}function k(e){return We(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((We(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function We(e){return Ue()?e instanceof Node||e instanceof A(e).Node:!1}function M(e){return Ue()?e instanceof Element||e instanceof A(e).Element:!1}function N(e){return Ue()?e instanceof HTMLElement||e instanceof A(e).HTMLElement:!1}function Ge(e){return!Ue()||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 Ke(e){return/^(table|td|th)$/.test(k(e))}function qe(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Je=/transform|translate|scale|rotate|perspective|filter/,Ye=/paint|layout|strict|content/,F=e=>!!e&&e!==`none`,Xe;function Ze(e){let t=M(e)?L(e):e;return F(t.transform)||F(t.translate)||F(t.scale)||F(t.rotate)||F(t.perspective)||!$e()&&(F(t.backdropFilter)||F(t.filter))||Je.test(t.willChange||``)||Ye.test(t.contain||``)}function Qe(e){let t=R(e);for(;N(t)&&!I(t);){if(Ze(t))return t;if(qe(t))return null;t=R(t)}return null}function $e(){return Xe??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Xe}function I(e){return/^(html|body|#document)$/.test(k(e))}function L(e){return A(e).getComputedStyle(e)}function et(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||Ge(e)&&e.host||j(e);return Ge(t)?t.host:t}function tt(e){let t=R(e);return I(t)?e.ownerDocument?e.ownerDocument.body:e.body:N(t)&&P(t)?t:tt(t)}function z(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=tt(e),i=r===e.ownerDocument?.body,a=A(r);if(i){let e=nt(a);return t.concat(a,a.visualViewport||[],P(r)?r:[],e&&n?z(e):[])}else return t.concat(r,z(r,[],n))}function nt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function rt(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=T(n)!==a||T(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function it(e){return M(e)?e:e.contextElement}function B(e){let t=it(e);if(!N(t))return E(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=rt(t),o=(a?T(n.width):n.width)/r,s=(a?T(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var at=E(0);function ot(e){let t=A(e);return!$e()||!t.visualViewport?at:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function st(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=it(e),o=E(1);t&&(r?M(r)&&(o=B(r)):o=B(e));let s=st(a,n,r)?ot(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=nt(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=nt(n)}}return Pe({width:u,height:d,x:c,y:l})}function ct(e,t){let n=et(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-ct(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?qe(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=et(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=et(e),r=e.ownerDocument.body,i=w(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=w(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+ct(e),s=-n.scrollTop;return L(r).direction===`rtl`&&(o+=w(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=$e();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=ct(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=ot(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Pe(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=Ze(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`?qe(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=w(n.top,s),c=me(n.right,c),l=me(n.bottom,l),u=w(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function bt(e){let{width:t,height:n}=rt(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=ct(i)}if(r||!r&&!a)if((k(t)!==`body`||P(i))&&(s=et(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(qe(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&&Ke(r)&&St(r);)r=Ct(r,t);return r&&I(r)&&St(r)&&!Ze(r)?n:r||Qe(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=he(d),h=he(i.clientWidth-(u+f)),g=he(i.clientHeight-(d+p)),_=he(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:w(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=it(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=He,Mt=ze,Nt=(e,t,n)=>{let r=new Map,i={platform:Dt,...n},a={...i.platform,_c:r};return Re(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:s=!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,o.render)(i(u?.item,t),n),c=n.querySelector(`.grid-item-actions-popover`),e.append(c)}let d=s?`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`,s||(c.style.position=`fixed`,c.style.right=`auto`,c.style.bottom=`auto`,c.style.margin=`0`)});Ft(c,f),s&&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}},H={lock:{icon:a.luzmoLockOutline,label:`Lock`,tooltip:`Lock`,action:`lock`,type:`toggle`},edit:{icon:a.luzmoPencil,label:`Edit`,tooltip:`Edit`,action:`edit`,type:`toggle`},"edit-data":{icon:a.luzmoTable,label:`Edit data`,tooltip:`Data`,action:`edit-data`,type:`toggle`},"item-options":{icon:a.luzmoCog,label:`Item options`,tooltip:`Options`,action:`item-options`,type:`toggle`},filters:{icon:a.luzmoFilterOutline,label:`Filters`,tooltip:`Filters`,action:`filters`,type:`toggle`},clone:{icon:a.luzmoClone,label:`Clone`,tooltip:`Clone`,action:`clone`,type:`button`},delete:{icon:a.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(H,e))return{...H[e]};if(typeof e==`object`)return e.icon=e.icon??a.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:[{...H[`edit-data`]},{...H[`item-options`]},{...H.clone}]},{type:`group`,actions:[{...H.delete}]}],Wt=16,Gt=10,U=(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&&n.n.includes(e.id)&&t?.id!==e.id?{...await n.t(e.id),id:e.id}:e?.id&&t?.id!==e.id||!e&&t?t:await n.t(`default`),qt=e=>[(e?.margins?.[0]??Wt)/2,(e?.margins?.[1]??Wt)/2],Jt=e=>Gt-(e?.margins?.[0]??Gt),Yt=e=>{let n=e?.boxShadow;if(!n)return``;let r=new t.t(n.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 n.size===`none`?`none`:n.size===`S`?`0 ${o*2}px ${o*4}px ${U(i,.16)}, 0 ${o*2}px ${o*4}px ${U(i,.23)}`:n.size===`M`?`0 ${o*8}px ${o*16}px ${U(i,.19)}, 0 ${o*4}px ${o*4}px ${U(i,.23)}`:n.size===`L`?`0 ${o*12}px ${o*24}px ${U(i,.25)}, 0 ${o*8}px ${o*8}px ${U(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 n=e?.itemsBackground??e?.background;return n?new t.t(n).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(!i.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:s=!0})=>{let c=$t({item:e,defaultItemActionsMenu:n,activeActions:t});return o.html`
|
|
21
|
+
<div class="grid-item-actions-popover" popover=${s?`manual`:o.nothing}>
|
|
22
22
|
<luzmo-item-grid-item-actions-menu
|
|
23
23
|
.actions=${c}
|
|
24
24
|
placement=${e?.placementActionsMenu??r??`right-start`}
|
|
@@ -27,7 +27,7 @@ const e=require("./decorate-DCJt-2rt.cjs"),t=require("./localized-mixin-DrK3QZNa
|
|
|
27
27
|
>
|
|
28
28
|
</luzmo-item-grid-item-actions-menu>
|
|
29
29
|
</div>
|
|
30
|
-
`},tn=({item:e,index:t,initialized:n,viewMode:r,contentLanguage:i,fullTheme:
|
|
30
|
+
`},tn=({item:e,index:t,initialized:n,viewMode:r,contentLanguage:i,fullTheme:s,appServer:l,apiHost:u,authKey:d,authToken:f,handleMouseover:p,handleMouseout:m,handleFocus:h,handleBlur:g})=>{let _={...e.options,locale:i};_.theme||=s?.id?{id:s.id}:structuredClone(s);let v=!r;return o.html`
|
|
31
31
|
<div
|
|
32
32
|
class="luzmo-item-grid-item has-luzmo-viz-item"
|
|
33
33
|
luzmo-item-grid-item-id=${e.id??``}
|
|
@@ -41,18 +41,18 @@ const e=require("./decorate-DCJt-2rt.cjs"),t=require("./localized-mixin-DrK3QZNa
|
|
|
41
41
|
<div
|
|
42
42
|
class="grid-stack-item-content"
|
|
43
43
|
role="gridcell"
|
|
44
|
-
aria-label=${(0,
|
|
44
|
+
aria-label=${(0,c.msg)(`Grid item`,{desc:`Accessible label prefix for grid items`})+` ${t+1}`}
|
|
45
45
|
>
|
|
46
|
-
${v?
|
|
46
|
+
${v?o.html`
|
|
47
47
|
<div class="grid-item-drag-handle">
|
|
48
|
-
<luzmo-icon .icon=${
|
|
48
|
+
<luzmo-icon .icon=${a.luzmoArrows} size="s"></luzmo-icon>
|
|
49
49
|
</div>
|
|
50
|
-
`:
|
|
50
|
+
`:o.html`
|
|
51
51
|
|
|
52
52
|
`}
|
|
53
|
-
${n?
|
|
53
|
+
${n?o.html`
|
|
54
54
|
<luzmo-embed-viz-item
|
|
55
|
-
.appServer=${
|
|
55
|
+
.appServer=${l}
|
|
56
56
|
.apiHost=${u}
|
|
57
57
|
.authKey=${d}
|
|
58
58
|
.authToken=${f}
|
|
@@ -62,24 +62,24 @@ const e=require("./decorate-DCJt-2rt.cjs"),t=require("./localized-mixin-DrK3QZNa
|
|
|
62
62
|
.filters=${e.filters}
|
|
63
63
|
.language=${i}
|
|
64
64
|
.canFilter=${e.canFilter??`all`}
|
|
65
|
-
></luzmo-embed-viz-item>`:
|
|
65
|
+
></luzmo-embed-viz-item>`:o.html`
|
|
66
66
|
|
|
67
67
|
`}
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
70
|
-
`},nn=({items:e,initialized:t,viewMode:n,contentLanguage:r,fullTheme:i,appServer:a,apiHost:o,authKey:s,authToken:c,renderItem:
|
|
70
|
+
`},nn=({items:e,initialized:t,viewMode:n,contentLanguage:r,fullTheme:i,appServer:a,apiHost:o,authKey:s,authToken:c,renderItem:u})=>(0,l.repeat)(e,e=>e.id,(e,l)=>(0,d.guard)([e,t,n,r,i,a,o,s,c],()=>u(e,l))),rn=({items:e,initialized:t,viewMode:n,contentLanguage:r,fullTheme:i,appServer:a,apiHost:s,authKey:l,authToken:u,columns:d,ensureGridItemId:f,handleMouseover:p,handleMouseout:m,handleFocus:h,handleBlur:g})=>{e.forEach(e=>{f(e)});let _=nn({items:e,initialized:t,viewMode:n,contentLanguage:r,fullTheme:i,appServer:a,apiHost:s,authKey:l,authToken:u,renderItem:(e,o)=>tn({item:e,index:o,initialized:t,viewMode:n,contentLanguage:r,fullTheme:i,appServer:a,apiHost:s,authKey:l,authToken:u,handleMouseover:p,handleMouseout:m,handleFocus:h,handleBlur:g})});return o.html`
|
|
71
71
|
<div
|
|
72
72
|
?dark-background=${t?Zt(i):!1}
|
|
73
73
|
class="grid-stack"
|
|
74
74
|
data-grid-columns=${d}
|
|
75
75
|
role="grid"
|
|
76
|
-
aria-label=${(0,
|
|
76
|
+
aria-label=${(0,c.msg)(`Dashboard grid`,{desc:`Accessible label for the dashboard grid`})}
|
|
77
77
|
>
|
|
78
78
|
${_}
|
|
79
79
|
</div>
|
|
80
|
-
`},G=class e{static getElements(e,t=document){if(typeof e==`string`){let n=`getElementById`in t?t:void 0;if(n&&!isNaN(+e[0])){let t=n.getElementById(e);return t?[t]:[]}let r=t.querySelectorAll(e);if(!r.length&&e[0]!==`.`&&e[0]!==`#`&&(r=t.querySelectorAll(`.`+e),r.length||(r=t.querySelectorAll(`#`+e)),!r.length)){let n=t.querySelector(`[gs-id="${e}"]`);return n?[n]:[]}return Array.from(r)}return[e]}static getElement(e,t=document){if(typeof e==`string`){let n=`getElementById`in t?t:void 0;if(!e.length)return null;if(n&&e[0]===`#`)return n.getElementById(e.substring(1));if(e[0]===`#`||e[0]===`.`||e[0]===`[`)return t.querySelector(e);if(n&&!isNaN(+e[0]))return n.getElementById(e);let r=t.querySelector(e);return n&&!r&&(r=n.getElementById(e)),r||=t.querySelector(`.`+e),r}return e}static lazyLoad(e){return e.lazyLoad||e.grid?.opts?.lazyLoad&&e.lazyLoad!==!1}static createDiv(e,t){let n=document.createElement(`div`);return e.forEach(e=>{e&&n.classList.add(e)}),t?.appendChild(n),n}static shouldSizeToContent(e,t=!1){return e?.grid&&(t?e.sizeToContent===!0||e.grid.opts.sizeToContent===!0&&e.sizeToContent===void 0:!!e.sizeToContent||e.grid.opts.sizeToContent&&e.sizeToContent!==!1)}static isIntercepted(e,t){return!(e.y>=t.y+t.h||e.y+e.h<=t.y||e.x+e.w<=t.x||e.x>=t.x+t.w)}static isTouching(t,n){return e.isIntercepted(t,{x:n.x-.5,y:n.y-.5,w:n.w+1,h:n.h+1})}static areaIntercept(e,t){let n=e.x>t.x?e.x:t.x,r=e.x+e.w<t.x+t.w?e.x+e.w:t.x+t.w;if(r<=n)return 0;let i=e.y>t.y?e.y:t.y,a=e.y+e.h<t.y+t.h?e.y+e.h:t.y+t.h;return a<=i?0:(r-n)*(a-i)}static area(e){return e.w*e.h}static sort(e,t=1){let n=1e4;return e.sort((e,r)=>{let i=t*((e.y??n)-(r.y??n));return i===0?t*((e.x??n)-(r.x??n)):i})}static find(e,t){return t?e.find(e=>e.id===t):void 0}static toBool(e){return typeof e==`boolean`?e:typeof e==`string`?(e=e.toLowerCase(),!(e===``||e===`no`||e===`false`||e===`0`)):!!e}static toNumber(e){return e===null||e.length===0?void 0:Number(e)}static parseHeight(e){let t,n=`px`;if(typeof e==`string`)if(e===`auto`||e===``)t=0;else{let r=e.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!r)throw Error(`Invalid height val = ${e}`);n=r[2]||`px`,t=parseFloat(r[1])}else t=e;return{h:t,unit:n}}static defaults(t,...n){return n.forEach(n=>{for(let r in n){if(!n.hasOwnProperty(r))return;t[r]===null||t[r]===void 0?t[r]=n[r]:typeof n[r]==`object`&&typeof t[r]==`object`&&e.defaults(t[r],n[r])}}),t}static same(e,t){if(typeof e!=`object`)return e==t;if(typeof e!=typeof t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}static copyPos(e,t,n=!1){return t.x!==void 0&&(e.x=t.x),t.y!==void 0&&(e.y=t.y),t.w!==void 0&&(e.w=t.w),t.h!==void 0&&(e.h=t.h),n&&(t.minW&&(e.minW=t.minW),t.minH&&(e.minH=t.minH),t.maxW&&(e.maxW=t.maxW),t.maxH&&(e.maxH=t.maxH)),e}static samePos(e,t){return e&&t&&e.x===t.x&&e.y===t.y&&(e.w||1)===(t.w||1)&&(e.h||1)===(t.h||1)}static sanitizeMinMax(e){e.minW||delete e.minW,e.minH||delete e.minH,e.maxW||delete e.maxW,e.maxH||delete e.maxH}static removeInternalAndSame(t,n){if(!(typeof t!=`object`||typeof n!=`object`)&&!(Array.isArray(t)||Array.isArray(n)))for(let r in t){let i=t[r],a=n[r];r[0]===`_`||i===a?delete t[r]:i&&typeof i==`object`&&a!==void 0&&(e.removeInternalAndSame(i,a),Object.keys(i).length||delete t[r])}}static removeInternalForSave(e,t=!0){for(let t in e)(t[0]===`_`||e[t]===null||e[t]===void 0)&&delete e[t];delete e.grid,t&&delete e.el,e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,e.locked||delete e.locked,(e.w===1||e.w===e.minW)&&delete e.w,(e.h===1||e.h===e.minH)&&delete e.h}static throttle(e,t){let n=!1;return(...r)=>{n||(n=!0,setTimeout(()=>{e(...r),n=!1},t))}}static removePositioningStyles(e){let t=e.style;t.position&&t.removeProperty(`position`),t.left&&t.removeProperty(`left`),t.top&&t.removeProperty(`top`),t.width&&t.removeProperty(`width`),t.height&&t.removeProperty(`height`)}static getScrollElement(t){if(!t)return document.scrollingElement||document.documentElement;let n=getComputedStyle(t).overflowY;return(n===`auto`||n===`scroll`)&&t.scrollHeight>t.clientHeight?t:e.getScrollElement(t.parentElement)}static updateScrollResize(t,n,r){let i=e.getScrollElement(n),a=i.clientHeight,o=i===e.getScrollElement()?0:i.getBoundingClientRect().top,s=t.clientY-o,c=s<r,l=s>a-r;c?i.scrollBy({behavior:`smooth`,top:s-r}):l&&i.scrollBy({behavior:`smooth`,top:r-(a-s)})}static clone(e){return typeof e!=`object`||!e?e:e instanceof Array?[...e]:{...e}}static cloneDeep(t){let n=[`parentGrid`,`el`,`grid`,`subGrid`,`engine`],r=e.clone(t);for(let i in r)r.hasOwnProperty(i)&&typeof r[i]==`object`&&i.substring(0,2)!==`__`&&!n.find(e=>e===i)&&(r[i]=e.cloneDeep(t[i]));return r}static cloneNode(e){let t=e.cloneNode(!0);return t.removeAttribute(`id`),t}static appendTo(t,n){let r;r=typeof n==`string`?e.getElement(n):n,r&&r.appendChild(t)}static addElStyles(e,t){if(t instanceof Object)for(let n in t)t.hasOwnProperty(n)&&(Array.isArray(t[n])?t[n].forEach(t=>{e.style[n]=t}):e.style[n]=t[n])}static initEvent(e,t){let n={type:t.type},r={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:t.target?t.target:e.target};return[`altKey`,`ctrlKey`,`metaKey`,`shiftKey`].forEach(t=>n[t]=e[t]),[`pageX`,`pageY`,`clientX`,`clientY`,`screenX`,`screenY`].forEach(t=>n[t]=e[t]),{...n,...r}}static simulateMouseEvent(e,t,n){let r=e,i=new MouseEvent(t,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,ctrlKey:r.ctrlKey??!1,altKey:r.altKey??!1,shiftKey:r.shiftKey??!1,metaKey:r.metaKey??!1,button:0,relatedTarget:e.target});(n||e.target).dispatchEvent(i)}static getValuesFromTransformedElement(t){let n=document.createElement(`div`);e.addElStyles(n,{opacity:`0`,position:`fixed`,top:`0px`,left:`0px`,width:`1px`,height:`1px`,zIndex:`-999999`}),t.appendChild(n);let r=n.getBoundingClientRect();return t.removeChild(n),n.remove(),{xScale:1/r.width,yScale:1/r.height,xOffset:r.left,yOffset:r.top}}static swap(e,t,n){if(!e)return;let r=e[t];e[t]=e[n],e[n]=r}static canBeRotated(e){return!(!e||e.w===e.h||e.locked||e.noResize||e.grid?.opts.disableResize||e.minW&&e.minW===e.maxW||e.minH&&e.minH===e.maxH)}},an=class e{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(e,t=e,n,r={}){if(this.sortNodes(-1),n||=this.collide(e,t),!n)return!1;if(e._moving&&!r.nested&&!this.float&&this.swap(e,n))return!0;let i=t;!this._loading&&this._useEntireRowArea(e,t)&&(i={x:0,w:this.column,y:t.y,h:t.h},n=this.collide(e,i,r.skip));let a=!1,o={nested:!0,pack:!1},s=0;for(;n||=this.collide(e,i,r.skip);){if(s++>this.nodes.length*2)throw Error(`Infinite collide check`);let i;if(n.locked||this._loading||e._moving&&!e._skipDown&&t.y>e.y&&!this.float&&(!this.collide(n,{...n,y:e.y},e)||!this.collide(n,{...n,y:t.y-n.h},e))){e._skipDown=e._skipDown||t.y>e.y;let s={...t,y:n.y+n.h,...o};i=this._loading&&G.samePos(e,s)?!0:this.moveNode(e,s),(n.locked||this._loading)&&i?G.copyPos(t,e):!n.locked&&i&&r.pack&&(this._packNodes(),t.y=n.y+n.h,G.copyPos(e,t)),a||=i}else i=this.moveNode(n,{...n,y:t.y+t.h,skip:e,...o});if(!i)return a;n=void 0}return a}collide(e,t=e,n){let r=e._id,i=n?._id;return this.nodes.find(e=>e._id!==r&&e._id!==i&&G.isIntercepted(e,t))}collideAll(e,t=e,n){let r=e._id,i=n?._id;return this.nodes.filter(e=>e._id!==r&&e._id!==i&&G.isIntercepted(e,t))}directionCollideCoverage(e,t,n){if(!t.rect||!e._rect)return;let r=e._rect,i={...t.rect};i.y>r.y?(i.h+=i.y-r.y,i.y=r.y):i.h+=r.y-i.y,i.x>r.x?(i.w+=i.x-r.x,i.x=r.x):i.w+=r.x-i.x;let a,o=.5;for(let e of n){if(e.locked||!e._rect)break;let t=e._rect,n=Number.MAX_VALUE,s=Number.MAX_VALUE;r.y<t.y?n=(i.y+i.h-t.y)/t.h:r.y+r.h>t.y+t.h&&(n=(t.y+t.h-i.y)/t.h),r.x<t.x?s=(i.x+i.w-t.x)/t.w:r.x+r.w>t.x+t.w&&(s=(t.x+t.w-i.x)/t.w);let c=Math.min(s,n);c>o&&(o=c,a=e)}return t.collide=a,a}cacheRects(e,t,n,r,i,a){return this.nodes.forEach(o=>o._rect={y:o.y*t+n,x:o.x*e+a,w:o.w*e-a-r,h:o.h*t-n-i}),this}swap(e,t){if(!t||t.locked||!e||e.locked)return!1;function n(){let n=t.x,r=t.y;return t.x=e.x,t.y=e.y,e.h==t.h?e.w==t.w?(e.x=n,e.y=r):(e.x=t.x+t.w,e.y=r):(e.x=n,e.y=t.y+t.h),e._dirty=t._dirty=!0,!0}let r;if(e.w===t.w&&e.h===t.h&&(e.x===t.x||e.y===t.y)&&(r=G.isTouching(e,t)))return n();if(r!==!1){if(e.w===t.w&&e.x===t.x&&(r||=G.isTouching(e,t))){if(t.y<e.y){let n=e;e=t,t=n}return n()}if(r!==!1){if(e.h===t.h&&e.y===t.y&&(r||=G.isTouching(e,t))){if(t.x<e.x){let n=e;e=t,t=n}return n()}return!1}}}isAreaEmpty(e,t,n,r){let i={x:e||0,y:t||0,w:n||1,h:r||1};return!this.collide(i)}compact(e=`compact`,t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();let n=this.batchMode;n||this.batchUpdate();let r=this._inColumnResize;r||(this._inColumnResize=!0);let i=this.nodes;return this.nodes=[],i.forEach((t,n,r)=>{let i;t.locked||(t.autoPosition=!0,e===`list`&&n&&(i=r[n-1])),this.addNode(t,!1,i)}),r||delete this._inColumnResize,n||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(e=1){return this.nodes=G.sort(this.nodes,e),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){let n=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:n,w:e.w,h:e.h})))break;e._dirty=e.y!==n,e.y=n}}),this)}prepareNode(t,n){t._id=t._id??e._idSeq++;let r=t.id;if(r){let e=1;for(;this.nodes.find(e=>e.id===t.id&&e!==t);)t.id=r+`_`+ e++}(t.x===void 0||t.y===void 0||t.x===null||t.y===null)&&(t.autoPosition=!0);let i={x:0,y:0,w:1,h:1};return G.defaults(t,i),t.autoPosition||delete t.autoPosition,t.noResize||delete t.noResize,t.noMove||delete t.noMove,G.sanitizeMinMax(t),typeof t.x==`string`&&(t.x=Number(t.x)),typeof t.y==`string`&&(t.y=Number(t.y)),typeof t.w==`string`&&(t.w=Number(t.w)),typeof t.h==`string`&&(t.h=Number(t.h)),isNaN(t.x)&&(t.x=i.x,t.autoPosition=!0),isNaN(t.y)&&(t.y=i.y,t.autoPosition=!0),isNaN(t.w)&&(t.w=i.w),isNaN(t.h)&&(t.h=i.h),this.nodeBoundFix(t,n),t}nodeBoundFix(e,t){let n=e._orig||G.copyPos({},e);if(e.maxW&&(e.w=Math.min(e.w||1,e.maxW)),e.maxH&&(e.h=Math.min(e.h||1,e.maxH)),e.minW&&(e.w=Math.max(e.w||1,e.minW)),e.minH&&(e.h=Math.max(e.h||1,e.minH)),(e.x||0)+(e.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&e._id!=null&&this.findCacheLayout(e,this.defaultColumn)===-1){let t={...e};t.autoPosition||t.x===void 0?(delete t.x,delete t.y):t.x=Math.min(this.defaultColumn-1,t.x),t.w=Math.min(this.defaultColumn,t.w||1),this.cacheOneLayout(t,this.defaultColumn)}return e.w>this.column?e.w=this.column:e.w<1&&(e.w=1),this.maxRow&&e.h>this.maxRow?e.h=this.maxRow:e.h<1&&(e.h=1),e.x<0&&(e.x=0),e.y<0&&(e.y=0),e.x+e.w>this.column&&(t?e.w=this.column-e.x:e.x=this.column-e.w),this.maxRow&&e.y+e.h>this.maxRow&&(t?e.h=this.maxRow-e.y:e.y=this.maxRow-e.h),G.samePos(e,n)||(e._dirty=!0),this}getDirtyNodes(e){return e?this.nodes.filter(e=>e._dirty&&!G.samePos(e,e._orig)):this.nodes.filter(e=>e._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;let t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode||this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this}saveInitial(){return this.nodes.forEach(e=>{e._orig=G.copyPos({},e),delete e._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(e=>{!e._orig||G.samePos(e,e._orig)||(G.copyPos(e,e._orig),e._dirty=!0)}),this._notify(),this}findEmptyPosition(e,t=this.nodes,n=this.column,r){let i=r?r.y*n+(r.x+r.w):0,a=!1;for(let r=i;!a;++r){let i=r%n,o=Math.floor(r/n);if(i+e.w>n)continue;let s={x:i,y:o,w:e.w,h:e.h};t.find(e=>G.isIntercepted(s,e))||((e.x!==i||e.y!==o)&&(e._dirty=!0),e.x=i,e.y=o,delete e.autoPosition,a=!0)}return a}addNode(e,t=!1,n){let r=this.nodes.find(t=>t._id===e._id);if(r)return r;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let i;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,n)&&(delete e.autoPosition,i=!0),this.nodes.push(e),t&&this.addedNodes.push(e),i||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,n=!1){return this.nodes.find(t=>t._id===e._id)?(n&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(t=>t._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(e=>e._removeDOM=!0);let n=this.nodes;return this.removedNodes=t?n:[],this.nodes=[],this._notify(n)}moveNodeCheck(t,n){if(!this.changedPosConstrain(t,n))return!1;if(n.pack=!0,!this.maxRow)return this.moveNode(t,n);let r,i=new e({column:this.column,float:this.float,nodes:this.nodes.map(e=>e._id===t._id?(r={...e},r):{...e})});if(!r)return!1;let a=i.moveNode(r,n)&&i.getRow()<=Math.max(this.getRow(),this.maxRow);if(!a&&!n.resizing&&n.collide){let e=n.collide.el.gridstackNode;if(this.swap(t,e))return this._notify(),!0}return a?(i.nodes.filter(e=>e._dirty).forEach(e=>{let t=this.nodes.find(t=>t._id===e._id);t&&(G.copyPos(t,e),t._dirty=!0)}),this._notify(),!0):!1}willItFit(t){if(delete t._willFitPos,!this.maxRow)return!0;let n=new e({column:this.column,float:this.float,nodes:this.nodes.map(e=>({...e}))}),r={...t};return this.cleanupNode(r),delete r.el,delete r._id,delete r.content,delete r.grid,n.addNode(r),n.getRow()<=this.maxRow?(t._willFitPos=G.copyPos({},r),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(e,t){if(!e||!t)return!1;let n;t.pack===void 0&&!this.batchMode&&(n=t.pack=!0),typeof t.x!=`number`&&(t.x=e.x),typeof t.y!=`number`&&(t.y=e.y),typeof t.w!=`number`&&(t.w=e.w),typeof t.h!=`number`&&(t.h=e.h);let r=e.w!==t.w||e.h!==t.h,i=G.copyPos({},e,!0);if(G.copyPos(i,t),this.nodeBoundFix(i,r),G.copyPos(t,i),!t.forceCollide&&G.samePos(e,t))return!1;let a=G.copyPos({},e),o=this.collideAll(e,i,t.skip),s=!0;if(o.length){let r=e._moving&&!t.nested,a=r?this.directionCollideCoverage(e,t,o):o[0];if(r&&a&&e.grid?.opts?.subGridDynamic&&!e.grid._isTemp){let n=G.areaIntercept(t.rect,a._rect),r=G.area(t.rect),i=G.area(a._rect);n/(r<i?r:i)>.8&&(a.grid.makeSubGrid(a.el,void 0,e),a=void 0)}a?s=!this._fixCollisions(e,i,a,t):(s=!1,n&&delete t.pack)}return s&&!G.samePos(e,i)&&(e._dirty=!0,G.copyPos(e,i)),t.pack&&this._packNodes()._notify(),!G.samePos(e,a)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let e=this.nodes.find(e=>e._updating);return e&&(delete e._updating,delete e._skipDown),this}save(e=!0,t,n){let r=this._layouts?.length||0,i;r&&(n?n!==this.column&&(i=this._layouts[n]):this.column!==r-1&&(i=this._layouts[r-1]));let a=[];return this.sortNodes(),this.nodes.forEach(n=>{let r=i?.find(e=>e._id===n._id),o={...n,...r||{}};G.removeInternalForSave(o,!e),t&&t(n,o),a.push(o)}),a}layoutsNodesChange(e){return!this._layouts||this._inColumnResize||this._layouts.forEach((t,n)=>{if(!t||n===this.column)return this;if(n<this.column)this._layouts[n]=void 0;else{let r=n/this.column;e.forEach(e=>{if(!e._orig)return;let n=t.find(t=>t._id===e._id);n&&(n.y>=0&&e.y!==e._orig.y&&(n.y+=e.y-e._orig.y,n.y<0&&(n.y=0)),e.x!==e._orig.x&&(n.x=Math.round(e.x*r),n.x<0&&(n.x=0)),e.w!==e._orig.w&&(n.w=Math.round(e.w*r),n.w<1&&(n.w=1)))})}}),this}columnChanged(e,t,n=`moveScale`){if(!this.nodes.length||!t||e===t)return this;let r=n===`compact`||n===`list`;r&&this.sortNodes(1),t<e&&this.cacheLayout(this.nodes,e),this.batchUpdate();let i=[],a=r?this.nodes:G.sort(this.nodes,-1);if(t>e&&this._layouts){let n=this._layouts[t]||[],o=this._layouts.length-1;!n.length&&e!==o&&this._layouts[o]?.length&&(e=o,this._layouts[o].forEach(e=>{let t=a.find(t=>t._id===e._id);t&&(!r&&!e.autoPosition&&(t.x=e.x??t.x,t.y=e.y??t.y),t.w=e.w??t.w,(e.x==null||e.y===void 0)&&(t.autoPosition=!0))})),n.forEach(e=>{let t=a.findIndex(t=>t._id===e._id);if(t!==-1){let n=a[t];if(r){n.w=e.w;return}(e.autoPosition||isNaN(e.x)||isNaN(e.y))&&this.findEmptyPosition(e,i),e.autoPosition||(n.x=e.x??n.x,n.y=e.y??n.y,n.w=e.w??n.w,i.push(n)),a.splice(t,1)}})}if(r)this.compact(n,!1);else{if(a.length)if(typeof n==`function`)n(t,e,i,a);else{let o=r||n===`none`?1:t/e,s=n===`move`||n===`moveScale`,c=n===`scale`||n===`moveScale`;a.forEach(n=>{n.x=t===1?0:s?Math.round(n.x*o):Math.min(n.x,t-1),n.w=t===1||e===1?1:c?Math.round(n.w*o)||1:Math.min(n.w,t),i.push(n)}),a=[]}i=G.sort(i,-1),this._inColumnResize=!0,this.nodes=[],i.forEach(e=>{this.addNode(e,!1),delete e._orig})}return this.nodes.forEach(e=>delete e._orig),this.batchUpdate(!1,!r),delete this._inColumnResize,this}cacheLayout(t,n,r=!1){let i=[];return t.forEach((t,n)=>{t._id===void 0&&(t._id=(t.id?this.nodes.find(e=>e.id===t.id):void 0)?._id??e._idSeq++),i[n]={x:t.x,y:t.y,w:t.w,_id:t._id}}),this._layouts=r?[]:this._layouts||[],this._layouts[n]=i,this}cacheOneLayout(t,n){t._id=t._id??e._idSeq++;let r={x:t.x,y:t.y,w:t.w,_id:t._id};(t.autoPosition||t.x===void 0)&&(delete r.x,delete r.y,t.autoPosition&&(r.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[n]=this._layouts[n]||[];let i=this.findCacheLayout(t,n);return i===-1?this._layouts[n].push(r):this._layouts[n][i]=r,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(t=>t._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){let n=this.findCacheLayout(e,t);n!==-1&&this._layouts[t].splice(n,1)}}cleanupNode(e){for(let t in e)t[0]===`_`&&t!==`_id`&&delete e[t];return this}};an._idSeq=0;var K={alwaysShowResizeHandle:`mobile`,animate:!0,auto:!0,cellHeight:`auto`,cellHeightThrottle:100,cellHeightUnit:`px`,column:12,draggable:{handle:`.grid-stack-item-content`,appendTo:`body`,scroll:!0},handle:`.grid-stack-item-content`,itemClass:`grid-stack-item`,margin:10,marginUnit:`px`,maxRow:0,minRow:0,placeholderClass:`grid-stack-placeholder`,placeholderText:``,removableOptions:{accept:`grid-stack-item`,decline:`grid-stack-non-removable`},resizable:{handles:`se`},rtl:`auto`},q=class{},J=typeof window<`u`&&typeof document<`u`&&(`ontouchstart`in document||`ontouchstart`in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),Y=class{};function on(e,t){e.touches.length>1||(e.cancelable&&e.preventDefault(),G.simulateMouseEvent(e.changedTouches[0],t))}function sn(e,t){e.cancelable&&e.preventDefault(),G.simulateMouseEvent(e,t)}function cn(e){Y.touchHandled||(Y.touchHandled=!0,on(e,`mousedown`))}function ln(e){Y.touchHandled&&on(e,`mousemove`)}function un(e){if(!Y.touchHandled)return;Y.pointerLeaveTimeout&&(window.clearTimeout(Y.pointerLeaveTimeout),delete Y.pointerLeaveTimeout);let t=!!q.dragElement;on(e,`mouseup`),t||on(e,`click`),Y.touchHandled=!1}function dn(e){e.pointerType!==`mouse`&&e.target.releasePointerCapture(e.pointerId)}function fn(e){q.dragElement&&e.pointerType!==`mouse`&&sn(e,`mouseenter`)}function pn(e){q.dragElement&&e.pointerType!==`mouse`&&(Y.pointerLeaveTimeout=window.setTimeout(()=>{delete Y.pointerLeaveTimeout,sn(e,`mouseleave`)},10))}var mn=class e{constructor(e,t,n){this.host=e,this.dir=t,this.option=n,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){if(this.option.element)try{this.el=this.option.element instanceof HTMLElement?this.option.element:this.host.querySelector(this.option.element)}catch(e){this.option.element=void 0,console.error(`Query for resizeable handle failed, falling back`,e)}return this.el||(this.el=document.createElement(`div`),this.host.appendChild(this.el)),this.el.classList.add(`ui-resizable-handle`),this.el.classList.add(`${e.prefix}${this.dir}`),this.el.style.zIndex=`100`,this.el.style.userSelect=`none`,this.el.addEventListener(`mousedown`,this._mouseDown),J&&(this.el.addEventListener(`touchstart`,cn),this.el.addEventListener(`pointerdown`,dn)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener(`mousedown`,this._mouseDown),J&&(this.el.removeEventListener(`touchstart`,cn),this.el.removeEventListener(`pointerdown`,dn)),this.option.element||this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener(`mousemove`,this._mouseMove,{capture:!0,passive:!0}),document.addEventListener(`mouseup`,this._mouseUp,!0),J&&(this.el.addEventListener(`touchmove`,ln),this.el.addEventListener(`touchend`,un)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){let t=this.mouseDownEvent;this.moving?this._triggerEvent(`move`,e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent(`start`,this.mouseDownEvent),this._triggerEvent(`move`,e),document.addEventListener(`keydown`,this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent(`stop`,e),document.removeEventListener(`keydown`,this._keyEvent)),document.removeEventListener(`mousemove`,this._mouseMove,!0),document.removeEventListener(`mouseup`,this._mouseUp,!0),J&&(this.el.removeEventListener(`touchmove`,ln),this.el.removeEventListener(`touchend`,un)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key===`Escape`&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}};mn.prefix=`ui-resizable-`;var hn=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(e,t){this._eventRegister[e]=t}off(e){delete this._eventRegister[e]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(e,t){if(!this.disabled&&this._eventRegister&&this._eventRegister[e])return this._eventRegister[e](t)}},gn=class e extends hn{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{let e=this.el.parentElement.getBoundingClientRect(),t={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,right:this.originalRect.right,top:this.originalRect.top-this.scrolled},n=this.temporalRect||t;return{position:{left:this.option.rtl?(e.right-n.right)*this.rectScale.x:(n.left-e.left)*this.rectScale.x,top:(n.top-e.top)*this.rectScale.y},size:{width:n.width*this.rectScale.x,height:n.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove(`ui-resizable-disabled`),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add(`ui-resizable-disabled`),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){let t=e.handles&&e.handles!==this.option.handles,n=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(t=>this.option[t]=e[t]),t&&(this._removeHandlers(),this._setupHandlers()),n&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add(`ui-resizable-autohide`),this.el.addEventListener(`mouseover`,this._mouseOver),this.el.addEventListener(`mouseout`,this._mouseOut)):(this.el.classList.remove(`ui-resizable-autohide`),this.el.removeEventListener(`mouseover`,this._mouseOver),this.el.removeEventListener(`mouseout`,this._mouseOut),q.overResizeElement===this&&delete q.overResizeElement),this}_mouseOver(e){q.overResizeElement||q.dragElement||(q.overResizeElement=this,this.el.classList.remove(`ui-resizable-autohide`))}_mouseOut(e){q.overResizeElement===this&&(delete q.overResizeElement,this.el.classList.add(`ui-resizable-autohide`))}_setupHandlers(){return this.handlers=this.option.handles.split(`,`).map(e=>e.trim()).map(e=>new mn(this.el,e,{element:this.option.element,start:e=>this._resizeStart(e),stop:e=>this._resizeStop(e),move:t=>this._resizing(t,e)})),this}_resizeStart(e){this.sizeToContent=G.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=G.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=e,this._setupHelper(),this._applyChange();let t=G.initEvent(e,{type:`resizestart`,target:this.el});return this.option.start&&this.option.start(t,this._ui()),this.el.classList.add(`ui-resizable-resizing`),this.triggerEvent(`resizestart`,t),this}_resizing(e,t){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(e,t),this._applyChange();let n=G.initEvent(e,{type:`resize`,target:this.el});return n.resizeDir=t,n.hasMovedX=this.option.rtl?t.includes(`e`):t.includes(`w`),n.hasMovedY=t.includes(`n`),this.option.resize&&this.option.resize(n,this._ui()),this.triggerEvent(`resize`,n),this}_resizeStop(e){let t=G.initEvent(e,{type:`resizestop`,target:this.el});return this._cleanHelper(),this.option.stop&&this.option.stop(t),this.el.classList.remove(`ui-resizable-resizing`),this.triggerEvent(`resizestop`,t),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=e._originStyleProp.map(e=>this.el.style[e]),this.parentOriginStylePosition=this.el.parentElement.style.position;let t=this.el.parentElement,n=G.getValuesFromTransformedElement(t);return this.rectScale={x:n.xScale,y:n.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position=`relative`),this.el.style.position=`absolute`,this.el.style.opacity=`0.8`,this}_cleanHelper(){return e._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){let n=this.startEvent,r={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,right:this.originalRect.right,top:this.originalRect.top-this.scrolled},i=e.clientX-n.clientX,a=this.sizeToContent?0:e.clientY-n.clientY,o,s,c=this.option.rtl;!c&&t.indexOf(`e`)>-1?r.width+=i:c&&t.indexOf(`w`)>-1?r.width-=i:!c&&t.indexOf(`w`)>-1?(r.width-=i,r.left+=i,o=!0):c&&t.indexOf(`e`)>-1&&(r.width+=i,r.right+=i,o=!0),t.indexOf(`s`)>-1?r.height+=a:t.indexOf(`n`)>-1&&(r.height-=a,r.top+=a,s=!0);let l=this._constrainSize(r.width,r.height,o,s);return Math.round(r.width)!==Math.round(l.width)&&(!c&&t.indexOf(`w`)>-1?r.left+=r.width-l.width:c&&t.indexOf(`e`)>-1&&(r.right-=r.width-l.width),r.width=l.width),Math.round(r.height)!==Math.round(l.height)&&(t.indexOf(`n`)>-1&&(r.top+=r.height-l.height),r.height=l.height),r}_constrainSize(e,t,n,r){let i=this.option,a=(n?i.maxWidthMoveLeft:i.maxWidth)||2**53-1,o=i.minWidth/this.rectScale.x||e,s=(r?i.maxHeightMoveUp:i.maxHeight)||2**53-1,c=i.minHeight/this.rectScale.y||t;return{width:Math.min(a,Math.max(o,e)),height:Math.min(s,Math.max(c,t))}}_applyChange(){let e={left:0,right:0,top:0,width:0,height:0};if(this.el.style.position===`absolute`){let{left:t,right:n,top:r}=this.el.parentElement.getBoundingClientRect();e={left:t,right:n,top:r,width:0,height:0}}return this.temporalRect&&Object.entries(this.temporalRect).forEach(([t,n])=>{if(this.option.rtl?t===`left`:t===`right`)return;let r=t===`width`||t===`left`||t===`right`?this.rectScale.x:t===`height`||t===`top`?this.rectScale.y:1,i;i=t===`right`?(e.right-n)*this.rectScale.x+`px`:(n-e[t])*r+`px`,this.el.style[t]=i}),this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}};gn._originStyleProp=[`width`,`height`,`position`,`left`,`right`,`top`,`opacity`,`zIndex`];var _n=`input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle`,vn=class e extends hn{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},this._autoScrollTick=()=>{let e=this.helper,t=this._autoScrollContainer;if(!e||!t){this._stopScrolling();return}let n=this._getClipping(e,t);if(n===0){this._stopScrolling();return}if(!this._autoScrollMaxSpeed){let e=window.innerHeight||document.documentElement.clientHeight;this._autoScrollMaxSpeed=Math.max(e/150,4)}let r=Math.min(Math.abs(n)*.5,this._autoScrollMaxSpeed),i=n>0?r:-r,a=t.scrollTop;if(t.scrollTop+=i,t.scrollTop===a){this._stopScrolling();return}this.dragging&&this.lastDrag&&(this._dragFollow(this.lastDrag),this._callDrag(this.lastDrag)),this._autoScrollAnimId=requestAnimationFrame(this._autoScrollTick)};let n=t?.handle?.substring(1),r=e.gridstackNode;this.dragEls=!n||e.classList.contains(n)?[e]:r?.subGrid?[e.querySelector(t.handle)||e]:this.getAllHandles(),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}getAllHandles(){return Array.from(this.el.querySelectorAll(this.option.handle)).filter(e=>{if(!(e instanceof HTMLElement))return!1;let t=e.closest(`.grid-stack-item`);return t===this.el||!t})}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener(`mousedown`,this._mouseDown),J&&(e.addEventListener(`touchstart`,cn),e.addEventListener(`pointerdown`,dn))}),this.el.classList.remove(`ui-draggable-disabled`))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(e=>{e.removeEventListener(`mousedown`,this._mouseDown),J&&(e.removeEventListener(`touchstart`,cn),e.removeEventListener(`pointerdown`,dn))}),e||this.el.classList.add(`ui-draggable-disabled`))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(Y.touchHandled&&e.isTrusted&&(Y.touchHandled=!1),!q.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(_n)||this.option.cancel&&e.target.closest(this.option.cancel)?!0:(this.mouseDownEvent=e,delete this.dragging,delete q.dragElement,delete q.dropElement,delete this._autoScrollMaxSpeed,delete this._autoScrollContainer,document.addEventListener(`mousemove`,this._mouseMove,{capture:!0,passive:!0}),document.addEventListener(`mouseup`,this._mouseUp,!0),J&&(e.currentTarget.addEventListener(`touchmove`,ln),e.currentTarget.addEventListener(`touchend`,un)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),q.mouseHandled=!0,!0)}_callDrag(e){if(!this.dragging)return;let t=G.initEvent(e,{target:this.el,type:`drag`});this.option.drag&&this.option.drag(t,this.ui()),this.triggerEvent(`drag`,t)}_mouseMove(e){let t=this.mouseDownEvent;if(this.lastDrag=e,this.dragging)if(this._dragFollow(e),q.pauseDrag){let t=Number.isInteger(q.pauseDrag)?q.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(e),t)}else this._callDrag(e);else if(Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>3){this.dragging=!0,q.dragElement=this;let t=this.el.gridstackNode?.grid;t?q.dropElement=t.el.ddElement.ddDroppable:delete q.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=G.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(e,this.el,this.helperContainment),this._setupHelperStyle(e);let n=G.initEvent(e,{target:this.el,type:`dragstart`});this.option.start&&this.option.start(n,this.ui()),this.triggerEvent(`dragstart`,n),document.addEventListener(`keydown`,this._keyEvent)}return!0}_mouseUp(e){if(this._stopScrolling(),document.removeEventListener(`mousemove`,this._mouseMove,!0),document.removeEventListener(`mouseup`,this._mouseUp,!0),J&&e.currentTarget&&(e.currentTarget.removeEventListener(`touchmove`,ln,!0),e.currentTarget.removeEventListener(`touchend`,un,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener(`keydown`,this._keyEvent),q.dropElement?.el===this.el.parentElement&&delete q.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let t=G.initEvent(e,{target:this.el,type:`dragstop`});this.option.stop&&this.option.stop(t),this.triggerEvent(`dragstop`,t),q.dropElement&&q.dropElement.drop(e)}delete this.helper,delete this.mouseDownEvent,delete q.dragElement,delete q.dropElement,delete q.mouseHandled,e.preventDefault()}_keyEvent(e){let t=this.el.gridstackNode,n=t?.grid||q.dropElement?.el?.gridstack;if(e.key===`Escape`)t&&t._origRotate&&(t._orig=t._origRotate,delete t._origRotate),n?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(t&&n&&(e.key===`r`||e.key===`R`)){if(!G.canBeRotated(t))return;t._origRotate=t._origRotate||{...t._orig},delete t._moving,n.setAnimation(!1).rotate(t.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetX}).setAnimation(),t._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,t.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+`px`,this.helper.style.height=this.dragOffset.height+`px`,G.swap(t._orig,`w`,`h`),delete t._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let t=this.el;return typeof this.option.helper==`function`?t=this.option.helper(this.el):this.option.helper===`clone`&&(t=G.cloneNode(this.el)),t.parentElement||G.appendTo(t,this.option.appendTo===`parent`?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=e.originStyleProp.map(e=>this.el.style[e]),t}_setupHelperStyle(e){this.helper.classList.add(`ui-draggable-dragging`),this.el.gridstackNode?.grid?.el.classList.add(`grid-stack-dragging`);let t=this.helper.style;return t.pointerEvents=`none`,t.width=this.dragOffset.width+`px`,t.height=this.dragOffset.height+`px`,t.willChange=`left, right, top`,t.position=`fixed`,this._dragFollow(e),t.transition=`none`,setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove(`ui-draggable-dragging`),this.el.gridstackNode?.grid?.el.classList.remove(`grid-stack-dragging`),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){let t=this.helper,n=this.dragElementOriginStyle.transition||null;t.style.transition=this.dragElementOriginStyle.transition=`none`,e.originStyleProp.forEach(e=>t.style[e]=this.dragElementOriginStyle[e]||null),setTimeout(()=>t.style.transition=n,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){let t=this.helper.style,n=this.dragOffset;this.option.rtl?(t.right=(window.innerWidth-e.clientX+n.offsetX)*this.dragTransform.xScale+`px`,t.left&&=``):(t.left=(e.clientX+n.offsetX)*this.dragTransform.xScale+`px`,t.right&&=``),t.top=(e.clientY+n.offsetTop)*this.dragTransform.yScale+`px`}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!==`fixed`&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position=`relative`)),this}_getDragOffset(e,t,n){let r=0,i=0;n&&(r=this.dragTransform.xOffset,i=this.dragTransform.yOffset);let a=t.getBoundingClientRect(),o=this.option.rtl?a.right:a.left,s=this.option.rtl?e.clientX-a.right+r:-e.clientX+a.left-r;return{x:o,top:a.top,offsetX:s,offsetTop:-e.clientY+a.top-i,width:a.width*this.dragTransform.xScale,height:a.height*this.dragTransform.yScale}}updateScrollPosition(e){this._autoScrollContainer=G.getScrollElement(e),this._getClipping(this.helper,this._autoScrollContainer)===0?this._stopScrolling():this._autoScrollAnimId||=requestAnimationFrame(this._autoScrollTick)}_getClipping(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight;if(n.bottom<r.top||n.top>r.bottom)return 0;let a=n.bottom-Math.min(r.bottom,i),o=n.top-Math.max(r.top,0);return o<0?o:a>0?a:0}_stopScrolling(){this._autoScrollAnimId&&(cancelAnimationFrame(this._autoScrollAnimId),delete this._autoScrollAnimId)}ui(){let e=this.el.parentElement.getBoundingClientRect(),t=this.helper.getBoundingClientRect(),n=this.option.rtl?(e.right-t.right)*this.dragTransform.xScale:(t.left-e.left)*this.dragTransform.xScale;return{position:{top:(t.top-e.top)*this.dragTransform.yScale,left:n}}}};vn.originStyleProp=[`width`,`height`,`transform`,`transform-origin`,`transition`,`pointerEvents`,`position`,`left`,`right`,`top`,`minWidth`,`willChange`];var yn=class extends hn{constructor(e,t={}){super(),this.el=e,this.option=t,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add(`ui-droppable`),this.el.classList.remove(`ui-droppable-disabled`),this.el.addEventListener(`mouseenter`,this._mouseEnter),this.el.addEventListener(`mouseleave`,this._mouseLeave),J&&(this.el.addEventListener(`pointerenter`,fn),this.el.addEventListener(`pointerleave`,pn)))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove(`ui-droppable`),e||this.el.classList.add(`ui-droppable-disabled`),this.el.removeEventListener(`mouseenter`,this._mouseEnter),this.el.removeEventListener(`mouseleave`,this._mouseLeave),J&&(this.el.removeEventListener(`pointerenter`,fn),this.el.removeEventListener(`pointerleave`,pn)))}destroy(){this.disable(!0),this.el.classList.remove(`ui-droppable`),this.el.classList.remove(`ui-droppable-disabled`),super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this._setupAccept(),this}_mouseEnter(e){if(!q.dragElement||Y.touchHandled&&e.isTrusted||!this._canDrop(q.dragElement.el))return;e.preventDefault(),e.stopPropagation(),q.dragElement._stopScrolling(),q.dropElement&&q.dropElement!==this&&q.dropElement._mouseLeave(e,!0),q.dropElement=this;let t=G.initEvent(e,{target:this.el,type:`dropover`});this.option.over&&this.option.over(t,this._ui(q.dragElement)),this.triggerEvent(`dropover`,t),this.el.classList.add(`ui-droppable-over`)}_mouseLeave(e,t=!1){if(!q.dragElement||q.dropElement!==this)return;e.preventDefault(),e.stopPropagation(),t&&q.dragElement._stopScrolling();let n=G.initEvent(e,{target:this.el,type:`dropout`});if(this.option.out&&this.option.out(n,this._ui(q.dragElement)),this.triggerEvent(`dropout`,n),q.dropElement===this&&(delete q.dropElement,!t)){let t,n=this.el.parentElement;for(;!t&&n;)t=n.ddElement?.ddDroppable,n=n.parentElement;t&&t._mouseEnter(e)}}drop(e){e.preventDefault();let t=G.initEvent(e,{target:this.el,type:`drop`});this.option.drop&&this.option.drop(t,this._ui(q.dragElement)),this.triggerEvent(`drop`,t)}_canDrop(e){return e&&(!this.accept||this.accept(e))}_setupAccept(){return this.option.accept&&(typeof this.option.accept==`string`?this.accept=e=>e.classList.contains(this.option.accept)||e.matches(this.option.accept):this.accept=this.option.accept),this}_ui(e){return{draggable:e.el,...e.ui()}}},bn=class e{static init(t){return t.ddElement||=new e(t),t.ddElement}constructor(e){this.el=e}on(e,t){return this.ddDraggable&&[`drag`,`dragstart`,`dragstop`].indexOf(e)>-1?this.ddDraggable.on(e,t):this.ddDroppable&&[`drop`,`dropover`,`dropout`].indexOf(e)>-1?this.ddDroppable.on(e,t):this.ddResizable&&[`resizestart`,`resize`,`resizestop`].indexOf(e)>-1&&this.ddResizable.on(e,t),this}off(e){return this.ddDraggable&&[`drag`,`dragstart`,`dragstop`].indexOf(e)>-1?this.ddDraggable.off(e):this.ddDroppable&&[`drop`,`dropover`,`dropout`].indexOf(e)>-1?this.ddDroppable.off(e):this.ddResizable&&[`resizestart`,`resize`,`resizestop`].indexOf(e)>-1&&this.ddResizable.off(e),this}setupDraggable(e){return this.ddDraggable?this.ddDraggable.updateOption(e):this.ddDraggable=new vn(this.el,e),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(e){return this.ddResizable?this.ddResizable.updateOption(e):this.ddResizable=new gn(this.el,e),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(e){return this.ddDroppable?this.ddDroppable.updateOption(e):this.ddDroppable=new yn(this.el,e),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}},X=new class{resizable(e,t,n,r){return this._getDDElements(e,t).forEach(e=>{if(t===`disable`||t===`enable`)e.ddResizable&&e.ddResizable[t]();else if(t===`destroy`)e.ddResizable&&e.cleanResizable();else if(t===`option`)e.setupResizable({[n]:r});else{let n=e.el.gridstackNode.grid,r=e.el.getAttribute(`gs-resize-handles`)||n.opts.resizable.handles||`e,s,se`;r===`all`&&(r=`n,e,s,w,se,sw,ne,nw`);let i=!n.opts.alwaysShowResizeHandle;e.setupResizable({...n.opts.resizable,handles:r,autoHide:i,start:t.start,stop:t.stop,resize:t.resize,rtl:t.rtl})}}),this}draggable(e,t,n,r){return this._getDDElements(e,t).forEach(e=>{if(t===`disable`||t===`enable`)e.ddDraggable&&e.ddDraggable[t]();else if(t===`destroy`)e.ddDraggable&&e.cleanDraggable();else if(t===`option`)e.setupDraggable({[n]:r});else{let n=e.el.gridstackNode.grid;e.setupDraggable({...n.opts.draggable,start:t.start,stop:t.stop,drag:t.drag,rtl:t.rtl})}}),this}dragIn(e,t){return this._getDDElements(e).forEach(e=>e.setupDraggable(t)),this}droppable(e,t,n,r){return typeof t.accept==`function`&&!t._accept&&(t._accept=t.accept,t.accept=e=>t._accept(e)),this._getDDElements(e,t).forEach(e=>{t===`disable`||t===`enable`?e.ddDroppable&&e.ddDroppable[t]():t===`destroy`?e.ddDroppable&&e.cleanDroppable():t===`option`?e.setupDroppable({[n]:r}):e.setupDroppable(t)}),this}isDroppable(e){return!!(e?.ddElement?.ddDroppable&&!e.ddElement.ddDroppable.disabled)}isDraggable(e){return!!(e?.ddElement?.ddDraggable&&!e.ddElement.ddDraggable.disabled)}isResizable(e){return!!(e?.ddElement?.ddResizable&&!e.ddElement.ddResizable.disabled)}on(e,t,n){return this._getDDElements(e).forEach(e=>e.on(t,e=>{n(e,q.dragElement?q.dragElement.el:e.target,q.dragElement?q.dragElement.helper:null)})),this}off(e,t){return this._getDDElements(e).forEach(e=>e.off(t)),this}_getDDElements(e,t){let n=e.gridstack||t!==`destroy`&&t!==`disable`,r=G.getElements(e);return r.length?r.map(e=>e.ddElement||(n?bn.init(e):null)).filter(e=>e):[]}},Z=class e{static init(t={},n=`.grid-stack`){if(typeof document>`u`)return null;let r=e.getGridElement(n);return r?(r.gridstack||=new e(r,G.cloneDeep(t)),r.gridstack):(console.error(typeof n==`string`?`GridStack.initAll() no grid was found with selector "`+n+`" - element missing or wrong selector ?
|
|
81
|
-
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`:`GridStack.init() no grid element was passed.`),null)}static initAll(t={},n=`.grid-stack`){let r=[];return typeof document>`u`?r:(e.getGridElements(n).forEach(n=>{n.gridstack||=new e(n,
|
|
82
|
-
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`),r)}static addGrid(t,n={}){if(!t)return null;let r=t;if(r.gridstack){let e=r.gridstack;return n&&(e.opts={...e.opts,...n}),n.children!==void 0&&e.load(n.children),e}return(!t.classList.contains(`grid-stack`)||e.addRemoveCB)&&(r=e.addRemoveCB?e.addRemoveCB(t,n,!0,!0):G.createDiv([`grid-stack`,n.class],t)),e.init(n,r)}static registerEngine(t){e.engineClass=t}get placeholder(){if(!this._placeholder){this._placeholder=G.createDiv([this.opts.placeholderClass,K.itemClass,this.opts.itemClass]);let e=G.createDiv([`placeholder-content`],this._placeholder);this.opts.placeholderText&&(e.textContent=this.opts.placeholderText)}return this._placeholder}constructor(t,n={}){this.el=t,this.opts=n,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},t.gridstack=this,this.opts=n||={},t.classList.contains(`grid-stack`)||this.el.classList.add(`grid-stack`),n.row&&(n.minRow=n.maxRow=n.row,delete n.row);let r=G.toNumber(t.getAttribute(`gs-row`));n.column===`auto`&&delete n.column,n.alwaysShowResizeHandle!==void 0&&(n._alwaysShowResizeHandle=n.alwaysShowResizeHandle);let i=n.columnOpts;if(i){let e=i.breakpoints;!i.columnWidth&&!e?.length?delete n.columnOpts:(i.columnMax=i.columnMax||12,e?.length>1&&e.sort((e,t)=>(t.w||0)-(e.w||0)))}let a={...G.cloneDeep(K),column:G.toNumber(t.getAttribute(`gs-column`))||K.column,minRow:r||G.toNumber(t.getAttribute(`gs-min-row`))||K.minRow,maxRow:r||G.toNumber(t.getAttribute(`gs-max-row`))||K.maxRow,staticGrid:G.toBool(t.getAttribute(`gs-static`))||K.staticGrid,sizeToContent:G.toBool(t.getAttribute(`gs-size-to-content`))||void 0,draggable:{handle:(n.handleClass?`.`+n.handleClass:n.handle?n.handle:``)||K.draggable.handle},removableOptions:{accept:n.itemClass||K.removableOptions.accept,decline:K.removableOptions.decline}};t.getAttribute(`gs-animate`)&&(a.animate=G.toBool(t.getAttribute(`gs-animate`))),n=G.defaults(n,a),this._initMargin(),this.checkDynamicColumn(),this._updateColumnVar(n),n.rtl===`auto`&&(n.rtl=t.style.direction===`rtl`),n.rtl&&this.el.classList.add(`grid-stack-rtl`);let o=this.el.closest(`.`+K.itemClass)?.gridstackNode;if(o&&(o.subGrid=this,this.parentGridNode=o,this.el.classList.add(`grid-stack-nested`),o.el.classList.add(`grid-stack-sub-grid`)),this._isAutoCellHeight=n.cellHeight===`auto`,this._isAutoCellHeight||n.cellHeight===`initial`)this.cellHeight(void 0);else{typeof n.cellHeight==`number`&&n.cellHeightUnit&&n.cellHeightUnit!==K.cellHeightUnit&&(n.cellHeight+=n.cellHeightUnit,delete n.cellHeightUnit);let e=n.cellHeight;delete n.cellHeight,this.cellHeight(e)}n.alwaysShowResizeHandle===`mobile`&&(n.alwaysShowResizeHandle=J),this._setStaticClass();let s=n.engineClass||e.engineClass||an;if(this.engine=new s({column:this.getColumn(),float:n.float,maxRow:n.maxRow,onChange:e=>{e.forEach(e=>{let t=e.el;t&&(e._removeDOM?(t&&t.remove(),delete e._removeDOM):this._writePosAttr(t,e))}),this._updateContainerHeight()}}),n.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(e=>this._prepareElement(e)),delete this.engine._loading,this.batchUpdate(!1)),n.children){let e=n.children;delete n.children,e.length&&this.load(e)}this.setAnimation(),n.subGridDynamic&&!q.pauseDrag&&(q.pauseDrag=!0),n.draggable?.pause!==void 0&&(q.pauseDrag=n.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}_updateColumnVar(e=this.opts){this.el.classList.add(`gs-`+e.column),typeof e.column==`number`&&this.el.style.setProperty(`--gs-column-width`,`${100/e.column}%`)}addWidget(t){if(!t)return;if(typeof t==`string`){console.error(`V11: GridStack.addWidget() does not support string anymore. see #2736`);return}if(t.ELEMENT_NODE)return console.error(`V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()`),this.makeWidget(t);let n,r=t;if(r.grid=this,n=r.el?r.el:e.addRemoveCB?e.addRemoveCB(this.el,t,!0,!1):this.createWidgetDivs(r),!n)return;if(r=n.gridstackNode,r&&n.parentElement===this.el&&this.engine.nodes.find(e=>e._id===r._id))return n;let i=this._readAttr(n);return G.defaults(t,i),this.engine.prepareNode(t),this.el.appendChild(n),this.makeWidget(n,t),n}createWidgetDivs(t){let n=G.createDiv([`grid-stack-item`,this.opts.itemClass]),r=G.createDiv([`grid-stack-item-content`],n);return G.lazyLoad(t)?t.visibleObservable||(t.visibleObservable=new IntersectionObserver(([n])=>{n.isIntersecting&&(t.visibleObservable?.disconnect(),delete t.visibleObservable,e.renderCB(r,t),t.grid?.prepareDragDrop(t.el))}),window.setTimeout(()=>t.visibleObservable?.observe(n))):e.renderCB(r,t),n}makeSubGrid(t,n,r,i=!0){let a=t.gridstackNode;if(a||=this.makeWidget(t).gridstackNode,a.subGrid?.el)return a.subGrid;let o,s=this;for(;s&&!o;)o=s.opts?.subGridOpts,s=s.parentGridNode?.grid;n=G.cloneDeep({...this.opts,id:void 0,children:void 0,column:`auto`,columnOpts:void 0,layout:`list`,subGridOpts:void 0,...o||{},...n||a.subGridOpts||{}}),a.subGridOpts=n;let c;n.column===`auto`&&(c=!0,n.column=Math.max(a.w||1,r?.w||1),delete n.columnOpts);let l=a.el.querySelector(`.grid-stack-item-content`),u,d;if(i&&(this._removeDD(a.el),d={...a,x:0,y:0},G.removeInternalForSave(d),delete d.subGridOpts,a.content&&(d.content=a.content,delete a.content),e.addRemoveCB?u=e.addRemoveCB(this.el,d,!0,!1):(u=G.createDiv([`grid-stack-item`]),u.appendChild(l),l=G.createDiv([`grid-stack-item-content`],a.el)),this.prepareDragDrop(a.el)),r){let e=c?n.column:a.w,t=a.h+r.h,i=a.el.style;i.transition=`none`,this.update(a.el,{w:e,h:t}),setTimeout(()=>i.transition=null)}let f=a.subGrid=e.addGrid(l,n);return r?._moving&&(f._isTemp=!0),c&&(f._autoColumn=!0),i&&f.makeWidget(u,d),r&&(r._moving?window.setTimeout(()=>G.simulateMouseEvent(r._event,`mouseenter`,f.el),0):f.makeWidget(a.el,a)),this.resizeToContentCheck(!1,a),f}removeAsSubGrid(e){let t=this.parentGridNode?.grid;t&&(t.batchUpdate(),t.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(e=>{e.x+=this.parentGridNode.x,e.y+=this.parentGridNode.y,t.makeWidget(e.el,e)}),t.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,e&&window.setTimeout(()=>G.simulateMouseEvent(e._event,`mouseenter`,t.el),0))}save(t=!0,n=!1,r=e.saveCB,i){let a=this.engine.save(t,r,i);if(a.forEach(e=>{if(t&&e.el&&!e.subGrid&&!r)e.content=e.el.querySelector(`.grid-stack-item-content`)?.innerHTML,e.content||delete e.content;else if(!t&&!r&&delete e.content,e.subGrid?.el){let i=e.w||e.subGrid.getColumn(),a=e.subGrid.save(t,n,r,i);e.subGridOpts=n?a:{children:a},delete e.subGrid}delete e.el}),n){let e=G.cloneDeep(this.opts);e.marginBottom===e.marginTop&&e.marginRight===e.marginLeft&&e.marginTop===e.marginRight&&(e.margin=e.marginTop,delete e.marginTop,delete e.marginRight,delete e.marginBottom,delete e.marginLeft),e.rtl===(this.el.style.direction===`rtl`)&&(e.rtl=`auto`),this._isAutoCellHeight&&(e.cellHeight=`auto`),this._autoColumn&&(e.column=`auto`);let t=e._alwaysShowResizeHandle;return delete e._alwaysShowResizeHandle,t===void 0?delete e.alwaysShowResizeHandle:e.alwaysShowResizeHandle=t,G.removeInternalAndSame(e,K),e.children=a,e}return a}load(t,n=e.addRemoveCB||!0){t.forEach(e=>{e.w=e.w||e.minW||1,e.h=e.h||e.minH||1}),t=G.sort(t),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let r=0;t.forEach(e=>{r=Math.max(r,(e.x||0)+e.w)}),r>this.engine.defaultColumn&&(this.engine.defaultColumn=r);let i=this.getColumn();r>i&&(this.engine.nodes.length===0&&this.responseLayout?(this.engine.nodes=t,this.engine.columnChanged(r,i,this.responseLayout),t=this.engine.nodes,this.engine.nodes=[],delete this.responseLayout):this.engine.cacheLayout(t,r,!0));let a=e.addRemoveCB;typeof n==`function`&&(e.addRemoveCB=n);let o=[];this.batchUpdate();let s=!this.engine.nodes.length,c=s&&this.opts.animate;c&&this.setAnimation(!1),!s&&n&&[...this.engine.nodes].forEach(n=>{n.id&&(G.find(t,n.id)||(e.addRemoveCB&&e.addRemoveCB(this.el,n,!1,!1),o.push(n),this.removeWidget(n.el,!0,!1)))}),this.engine._loading=!0;let l=[];return this.engine.nodes=this.engine.nodes.filter(e=>G.find(t,e.id)?(l.push(e),!1):!0),t.forEach(e=>{let t=G.find(l,e.id);if(t){if(G.shouldSizeToContent(t)&&(e.h=t.h),this.engine.nodeBoundFix(e),(e.autoPosition||e.x===void 0||e.y===void 0)&&(e.w=e.w||t.w,e.h=e.h||t.h,this.engine.findEmptyPosition(e)),this.engine.nodes.push(t),G.samePos(t,e)&&this.engine.nodes.length>1&&(this.moveNode(t,{...e,forceCollide:!0}),G.copyPos(e,t)),this.update(t.el,e),e.subGridOpts?.children){let n=t.el.querySelector(`.grid-stack`);n&&n.gridstack&&n.gridstack.load(e.subGridOpts.children)}}else n&&this.addWidget(e)}),delete this.engine._loading,this.engine.removedNodes=o,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,a?e.addRemoveCB=a:delete e.addRemoveCB,c&&this.setAnimation(!0,!0),this}batchUpdate(e=!0){return this.engine.batchUpdate(e),e||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(e=!1){if(this.opts.cellHeight&&this.opts.cellHeight!==`auto`&&(!e||!this.opts.cellHeightUnit||this.opts.cellHeightUnit===`px`))return this.opts.cellHeight;if(this.opts.cellHeightUnit===`rem`)return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit===`em`)return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit===`cm`)return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit===`mm`)return this.opts.cellHeight*(96/2.54)/10;let t=this.el.querySelector(`.`+this.opts.itemClass);if(t){let e=G.toNumber(t.getAttribute(`gs-h`))||1;return Math.round(t.offsetHeight/e)}let n=parseInt(this.el.getAttribute(`gs-current-row`));return n?Math.round(this.el.getBoundingClientRect().height/n):this.opts.cellHeight}cellHeight(e){if(e!==void 0&&this._isAutoCellHeight!==(e===`auto`)&&(this._isAutoCellHeight=e===`auto`,this._updateResizeEvent()),(e===`initial`||e===`auto`)&&(e=void 0),e===void 0){let t=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;e=this.cellWidth()+t}let t=G.parseHeight(e);return this.opts.cellHeightUnit===t.unit&&this.opts.cellHeight===t.h?this:(this.opts.cellHeightUnit=t.unit,this.opts.cellHeight=t.h,this.el.style.setProperty(`--gs-cell-height`,`${this.opts.cellHeight}${this.opts.cellHeightUnit}`),this._updateContainerHeight(),this.resizeToContentCheck(),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(e=!1){return e&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){let e=this.opts.columnOpts;if(!e||!e.columnWidth&&!e.breakpoints?.length)return!1;let t=this.getColumn(),n=t,r=this._widthOrContainer(!0);if(e.columnWidth)n=Math.min(Math.round(r/e.columnWidth)||1,e.columnMax);else{n=e.columnMax;let i=0;for(;i<e.breakpoints.length&&r<=e.breakpoints[i].w;)n=e.breakpoints[i++].c||t}if(n!==t){let t=e.breakpoints?.find(e=>e.c===n);return this.column(n,t?.layout||e.layout),!0}return!1}compact(e=`compact`,t=!0){return this.engine.compact(e,t),this._triggerChangeEvent(),this}column(e,t=`moveScale`){if(!e||e<1||this.opts.column===e)return this;let n=this.getColumn();return this.opts.column=e,this.engine?(this.engine.column=e,this.el.classList.remove(`gs-`+n),this._updateColumnVar(),this.engine.columnChanged(n,e,t),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):(this.responseLayout=t,this)}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(e=>e.matches(`.`+this.opts.itemClass)&&!e.matches(`.`+this.opts.placeholderClass))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(e=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),e?this.el.parentNode.removeChild(this.el):(this.removeAll(e),this.el.removeAttribute(`gs-current-row`)),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(e){return this.opts.float!==e&&(this.opts.float=this.engine.float=e,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(e,t=!1){let n=this.el.getBoundingClientRect(),r;r=t?{top:n.top+document.documentElement.scrollTop,left:n.left}:{top:this.el.offsetTop,left:this.el.offsetLeft};let i=e.left-r.left,a=e.top-r.top,o=n.width/this.getColumn(),s=n.height/parseInt(this.el.getAttribute(`gs-current-row`));return{x:Math.floor(i/o),y:Math.floor(a/s)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow||0)}isAreaEmpty(e,t,n,r){return this.engine.isAreaEmpty(e,t,n,r)}makeWidget(t,n){let r=e.getElement(t);if(!r||r.gridstackNode)return r;r.parentElement||this.el.appendChild(r),this._prepareElement(r,!0,n);let i=r.gridstackNode;this._updateContainerHeight(),i.subGridOpts&&this.makeSubGrid(r,i.subGridOpts,void 0,!1);let a;return this.opts.column===1&&!this._ignoreLayoutsNodeChange&&(a=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),a&&delete this._ignoreLayoutsNodeChange,r}on(e,t){return e.indexOf(` `)===-1?(e===`change`||e===`added`||e===`removed`||e===`enable`||e===`disable`?(e===`enable`||e===`disable`?this._gsEventHandler[e]=e=>t(e):this._gsEventHandler[e]=e=>{e.detail&&t(e,e.detail)},this.el.addEventListener(e,this._gsEventHandler[e])):e===`drag`||e===`dragstart`||e===`dragstop`||e===`resizestart`||e===`resize`||e===`resizestop`||e===`dropped`||e===`resizecontent`?this._gsEventHandler[e]=t:console.error(`GridStack.on(`+e+`) event not supported`),this):(e.split(` `).forEach(e=>this.on(e,t)),this)}off(e){return e.indexOf(` `)===-1?((e===`change`||e===`added`||e===`removed`||e===`enable`||e===`disable`)&&this._gsEventHandler[e]&&this.el.removeEventListener(e,this._gsEventHandler[e]),delete this._gsEventHandler[e],this):(e.split(` `).forEach(e=>this.off(e)),this)}offAll(){return Object.keys(this._gsEventHandler).forEach(e=>this.off(e)),this}removeWidget(t,n=!0,r=!0){return t?(e.getElements(t).forEach(t=>{if(t.parentElement&&t.parentElement!==this.el)return;let i=t.gridstackNode;i||=this.engine.nodes.find(e=>t===e.el),i&&(n&&e.addRemoveCB&&e.addRemoveCB(this.el,i,!1,!1),delete t.gridstackNode,this._removeDD(t),this.engine.removeNode(i,n,r),n&&t.parentElement&&t.remove())}),r&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error(`Error: GridStack.removeWidget(undefined) called`),this)}removeAll(t=!0,n=!0){return this.engine.nodes.forEach(n=>{t&&e.addRemoveCB&&e.addRemoveCB(this.el,n,!1,!1),delete n.el.gridstackNode,this.opts.staticGrid||this._removeDD(n.el)}),this.engine.removeAll(t,n),n&&this._triggerRemoveEvent(),this}setAnimation(e=this.opts.animate,t){return t?setTimeout(()=>{this.opts&&this.setAnimation(e)}):e?this.el.classList.add(`grid-stack-animate`):this.el.classList.remove(`grid-stack-animate`),this.opts.animate=e,this}hasAnimationCSS(){return this.el.classList.contains(`grid-stack-animate`)}setStatic(e,t=!0,n=!0){return!!this.opts.staticGrid===e?this:(e?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(r=>{this.prepareDragDrop(r.el),r.subGrid&&n&&r.subGrid.setStatic(e,t,n)}),t&&this._setStaticClass(),this)}updateOptions(e){let t=this.opts;if(e===t)return this;if(e.acceptWidgets!==void 0&&(t.acceptWidgets=e.acceptWidgets,this._setupAcceptWidget()),e.animate!==void 0&&this.setAnimation(e.animate),e.cellHeight&&this.cellHeight(e.cellHeight),e.class!==void 0&&e.class!==t.class&&(t.class&&this.el.classList.remove(t.class),e.class&&this.el.classList.add(e.class)),e.columnOpts){let t=!!this.opts.columnOpts;this.opts.columnOpts=e.columnOpts,t!==!!this.opts.columnOpts&&this._updateResizeEvent(),this.checkDynamicColumn()}else e.columnOpts===null&&this.opts.columnOpts?(delete this.opts.columnOpts,this._updateResizeEvent()):typeof e.column==`number`&&this.column(e.column);return e.margin!==void 0&&this.margin(e.margin),e.staticGrid!==void 0&&this.setStatic(e.staticGrid),e.disableDrag!==void 0&&!e.staticGrid&&this.enableMove(!e.disableDrag),e.disableResize!==void 0&&!e.staticGrid&&this.enableResize(!e.disableResize),e.float!==void 0&&this.float(e.float),e.row===void 0?(e.minRow!==void 0&&(t.minRow=e.minRow,this._updateContainerHeight()),e.maxRow!==void 0&&(t.maxRow=this.engine.maxRow=e.maxRow)):(t.minRow=t.maxRow=t.row=e.row,this._updateContainerHeight()),e.lazyLoad!==void 0&&(t.lazyLoad=e.lazyLoad),e.children?.length&&this.load(e.children),this}update(t,n){return e.getElements(t).forEach(t=>{let r=t?.gridstackNode;if(!r)return;let i={...G.copyPos({},r),...G.cloneDeep(n)};this.engine.nodeBoundFix(i),delete i.autoPosition;let a=[`x`,`y`,`w`,`h`],o;if(a.some(e=>i[e]!==void 0&&i[e]!==r[e])&&(o={},a.forEach(e=>{o[e]=i[e]===void 0?r[e]:i[e],delete i[e]})),!o&&(i.minW||i.minH||i.maxW||i.maxH)&&(o={}),i.content!==void 0){let n=t.querySelector(`.grid-stack-item-content`);n&&n.textContent!==i.content&&(r.content=i.content,e.renderCB(n,i),r.subGrid?.el&&(n.appendChild(r.subGrid.el),r.subGrid._updateContainerHeight())),delete i.content}let s=!1,c=!1;for(let e in i)e[0]!==`_`&&r[e]!==i[e]&&(r[e]=i[e],s=!0,c||=!this.opts.staticGrid&&(e===`noResize`||e===`noMove`||e===`locked`));if(G.sanitizeMinMax(r),o){let e=o.w!==void 0&&o.w!==r.w;this.moveNode(r,o),e&&r.subGrid?r.subGrid.onResize(this.hasAnimationCSS()?r.w:void 0):this.resizeToContentCheck(e,r),delete r._orig}(o||s)&&this._writeAttr(t,r),c&&this.prepareDragDrop(r.el),e.updateCB&&e.updateCB(r)}),this}moveNode(e,t){let n=e._updating;n||this.engine.cleanNodes().beginUpdate(e),this.engine.moveNode(e,t),this._updateContainerHeight(),n||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(t){if(!t||(t.classList.remove(`size-to-content-max`),!t.clientHeight))return;let n=t.gridstackNode;if(!n)return;let r=n.grid;if(!r||t.parentElement!==r.el)return;let i=r.getCellHeight(!0);if(!i)return;let a=n.h?n.h*i:t.clientHeight,o;if(n.resizeToContentParent&&(o=t.querySelector(n.resizeToContentParent)),o||=t.querySelector(e.resizeToContentParent),!o)return;let s=t.clientHeight-o.clientHeight,c=n.h?n.h*i-s:o.clientHeight,l;if(n.subGrid){l=n.subGrid.getRow()*n.subGrid.getCellHeight(!0);let e=n.subGrid.el.getBoundingClientRect(),r=t.getBoundingClientRect();l+=e.top-r.top}else if(n.subGridOpts?.children?.length)return;else{let t=o.firstElementChild;if(!t){console.error(`Error: GridStack.resizeToContent() widget id:${n.id} '${e.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}l=t.getBoundingClientRect().height||c}if(c===l)return;a+=l-c;let u=Math.ceil(a/i),d=Number.isInteger(n.sizeToContent)?n.sizeToContent:0;d&&u>d&&(u=d,t.classList.add(`size-to-content-max`)),n.minH&&u<n.minH?u=n.minH:n.maxH&&u>n.maxH&&(u=n.maxH),u!==n.h&&(r._ignoreLayoutsNodeChange=!0,r.moveNode(n,{h:u}),delete r._ignoreLayoutsNodeChange)}resizeToContentCBCheck(t){e.resizeToContentCB?e.resizeToContentCB(t):this.resizeToContent(t)}rotate(t,n){return e.getElements(t).forEach(e=>{let t=e.gridstackNode;if(!G.canBeRotated(t))return;let r={w:t.h,h:t.w,minH:t.minW,minW:t.minH,maxH:t.maxW,maxW:t.maxH};if(n){let e=n.left>0?Math.floor(n.left/this.cellWidth()):0,i=n.top>0?Math.floor(n.top/this.opts.cellHeight):0;r.x=t.x+e-(t.h-(i+1)),r.y=t.y+i-e}Object.keys(r).forEach(e=>{r[e]===void 0&&delete r[e]});let i=t._orig;this.update(e,r),t._orig=i}),this}margin(e){if(!(typeof e==`string`&&e.split(` `).length>1)){let t=G.parseHeight(e);if(this.opts.marginUnit===t.unit&&this.opts.margin===t.h)return}return this.opts.margin=e,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this}getMargin(){return this.opts.margin}willItFit(e){return this.engine.willItFit(e)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let e=this.engine.getDirtyNodes(!0);return e&&e.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(e),this._triggerEvent(`change`,e)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(e=>{delete e._dirty});let e=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent(`added`,e)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){let e=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent(`removed`,e)}return this}_triggerEvent(e,t){let n=t?new CustomEvent(e,{bubbles:!1,detail:t}):new Event(e),r=this;for(;r.parentGridNode;)r=r.parentGridNode.grid;return r.el.dispatchEvent(n),this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let e=this.parentGridNode,t=this.getRow()+this._extraDragRow,n=this.opts.cellHeight,r=this.opts.cellHeightUnit;if(!n)return this;if(!e&&!this.opts.minRow){let e=G.parseHeight(getComputedStyle(this.el).minHeight);if(e.h>0&&e.unit===r){let r=Math.floor(e.h/n);t<r&&(t=r)}}return this.el.setAttribute(`gs-current-row`,String(t)),this.el.style.removeProperty(`min-height`),this.el.style.removeProperty(`height`),t&&(this.el.style[e?`minHeight`:`height`]=t*n+r),e&&G.shouldSizeToContent(e)&&e.grid.resizeToContentCBCheck(e.el),this}_prepareElement(e,t=!1,n){n||=this._readAttr(e),e.gridstackNode=n,n.el=e,n.grid=this,n=this.engine.addNode(n,t),this._writeAttr(e,n),e.classList.add(K.itemClass,this.opts.itemClass);let r=G.shouldSizeToContent(n);return r?e.classList.add(`size-to-content`):e.classList.remove(`size-to-content`),r&&this.resizeToContentCheck(!1,n),G.lazyLoad(n)||this.prepareDragDrop(n.el),this}_writePosAttr(e,t){if(!t._moving&&!t._resizing||this._placeholder===e){let n=this.opts.rtl?`right`:`left`;e.style.top=t.y?t.y===1?`var(--gs-cell-height)`:`calc(${t.y} * var(--gs-cell-height))`:null,e.style[n]=t.x?t.x===1?`var(--gs-column-width)`:`calc(${t.x} * var(--gs-column-width))`:null,e.style.width=t.w>1?`calc(${t.w} * var(--gs-column-width))`:null,e.style.height=t.h>1?`calc(${t.h} * var(--gs-cell-height))`:null}return e.setAttribute(`gs-x`,String(t.x)),e.setAttribute(`gs-y`,String(t.y)),t.w>1?e.setAttribute(`gs-w`,String(t.w)):e.removeAttribute(`gs-w`),t.h>1?e.setAttribute(`gs-h`,String(t.h)):e.removeAttribute(`gs-h`),this}_writeAttr(e,t){if(!t)return this;this._writePosAttr(e,t);let n={noResize:`gs-no-resize`,noMove:`gs-no-move`,locked:`gs-locked`,id:`gs-id`,sizeToContent:`gs-size-to-content`};for(let r in n)t[r]?e.setAttribute(n[r],String(t[r])):e.removeAttribute(n[r]);return this}_readAttr(e,t=!0){let n={};n.x=G.toNumber(e.getAttribute(`gs-x`)),n.y=G.toNumber(e.getAttribute(`gs-y`)),n.w=G.toNumber(e.getAttribute(`gs-w`)),n.h=G.toNumber(e.getAttribute(`gs-h`)),n.autoPosition=G.toBool(e.getAttribute(`gs-auto-position`)),n.noResize=G.toBool(e.getAttribute(`gs-no-resize`)),n.noMove=G.toBool(e.getAttribute(`gs-no-move`)),n.locked=G.toBool(e.getAttribute(`gs-locked`));let r=e.getAttribute(`gs-size-to-content`);r&&(r===`true`||r===`false`?n.sizeToContent=G.toBool(r):n.sizeToContent=parseInt(r,10)),n.id=e.getAttribute(`gs-id`),n.maxW=G.toNumber(e.getAttribute(`gs-max-w`)),n.minW=G.toNumber(e.getAttribute(`gs-min-w`)),n.maxH=G.toNumber(e.getAttribute(`gs-max-h`)),n.minH=G.toNumber(e.getAttribute(`gs-min-h`)),t&&(n.w===1&&e.removeAttribute(`gs-w`),n.h===1&&e.removeAttribute(`gs-h`),n.maxW&&e.removeAttribute(`gs-max-w`),n.minW&&e.removeAttribute(`gs-min-w`),n.maxH&&e.removeAttribute(`gs-max-h`),n.minH&&e.removeAttribute(`gs-min-h`));for(let e in n){if(!n.hasOwnProperty(e))return;!n[e]&&n[e]!==0&&e!==`sizeToContent`&&delete n[e]}return n}_setStaticClass(){let e=[`grid-stack-static`];return this.opts.staticGrid?(this.el.classList.add(...e),this.el.setAttribute(`gs-static`,`true`)):(this.el.classList.remove(...e),this.el.removeAttribute(`gs-static`)),this}onResize(e=this.el?.clientWidth){if(!e||this.prevWidth===e)return;this.prevWidth=e,this.batchUpdate();let t=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||`list`),t=!0):t=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(e=>{e.subGrid&&e.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(t),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(e=!1,t=void 0){if(this.engine){if(e&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,t),this.animationDelay);if(t)G.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el);else if(this.engine.nodes.some(e=>G.shouldSizeToContent(e))){let e=[...this.engine.nodes];this.batchUpdate(),e.forEach(e=>{G.shouldSizeToContent(e)&&this.resizeToContentCBCheck(e.el)}),this._ignoreLayoutsNodeChange=!0,this.batchUpdate(!1),this._ignoreLayoutsNodeChange=!1}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,t?[t]:this.engine.nodes)}}_updateResizeEvent(e=!1){let t=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(e=>e.sizeToContent));return!e&&t&&!this.resizeObserver?(this._sizeThrottle=G.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(e||!t)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(e=`.grid-stack-item`){return G.getElement(e)}static getElements(e=`.grid-stack-item`){return G.getElements(e)}static getGridElement(t){return e.getElement(t)}static getGridElements(e){return G.getElements(e)}_initMargin(){let e,t=0,n=[];typeof this.opts.margin==`string`&&(n=this.opts.margin.split(` `)),n.length===2?(this.opts.marginTop=this.opts.marginBottom=n[0],this.opts.marginLeft=this.opts.marginRight=n[1]):n.length===4?(this.opts.marginTop=n[0],this.opts.marginRight=n[1],this.opts.marginBottom=n[2],this.opts.marginLeft=n[3]):(e=G.parseHeight(this.opts.margin),this.opts.marginUnit=e.unit,t=this.opts.margin=e.h),[`marginTop`,`marginRight`,`marginBottom`,`marginLeft`].forEach(n=>{this.opts[n]===void 0?this.opts[n]=t:(e=G.parseHeight(this.opts[n]),this.opts[n]=e.h,delete this.opts.margin)}),this.opts.marginUnit=e.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop);let r=this.el.style;return r.setProperty(`--gs-item-margin-top`,`${this.opts.marginTop}${this.opts.marginUnit}`),r.setProperty(`--gs-item-margin-bottom`,`${this.opts.marginBottom}${this.opts.marginUnit}`),r.setProperty(`--gs-item-margin-right`,`${this.opts.marginRight}${this.opts.marginUnit}`),r.setProperty(`--gs-item-margin-left`,`${this.opts.marginLeft}${this.opts.marginUnit}`),this}static getDD(){return X}static setupDragIn(e,t,n,r=document){t?.pause!==void 0&&(q.pauseDrag=t.pause),t={appendTo:`body`,helper:`clone`,...t||{}},(typeof e==`string`?G.getElements(e,r):e).forEach((e,r)=>{X.isDraggable(e)||X.dragIn(e,t),n?.[r]&&(e.gridstackNode=n[r])})}movable(t,n){return this.opts.staticGrid||e.getElements(t).forEach(e=>{let t=e.gridstackNode;t&&(n?delete t.noMove:t.noMove=!0,this.prepareDragDrop(t.el))}),this}resizable(t,n){return this.opts.staticGrid||e.getElements(t).forEach(e=>{let t=e.gridstackNode;t&&(n?delete t.noResize:t.noResize=!0,this.prepareDragDrop(t.el))}),this}disable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!1,e),this.enableResize(!1,e),this._triggerEvent(`disable`),this}enable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!0,e),this.enableResize(!0,e),this._triggerEvent(`enable`),this}enableMove(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&t&&n.subGrid.enableMove(e,t)}),this)}enableResize(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&t&&n.subGrid.enableResize(e,t)}),this)}cancelDrag(){let t=this._placeholder?.gridstackNode;t&&(t._isExternal?(t._isAboutToRemove=!0,this.engine.removeNode(t)):t._isAboutToRemove&&e._itemRemoving(t.el,!1),this.engine.restoreInitial())}_removeDD(e){return X.draggable(e,`destroy`).resizable(e,`destroy`),e.gridstackNode&&delete e.gridstackNode._initDD,delete e.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return X.droppable(this.el,`destroy`),this;let t,n,r=(e,r,i)=>{i||=r;let a=i.gridstackNode;if(!a)return;if(!a.grid?.el){i.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let t=i.getBoundingClientRect();i.style.left=t.x+(this.dragTransform.xScale-1)*(e.clientX-t.x)/this.dragTransform.xScale+`px`,i.style.top=t.y+(this.dragTransform.yScale-1)*(e.clientY-t.y)/this.dragTransform.yScale+`px`,i.style.transformOrigin=`0px 0px`}let{top:o,left:s}=i.getBoundingClientRect(),c=this.el.getBoundingClientRect();s-=c.left,o-=c.top;let l={position:{top:o*this.dragTransform.xScale,left:s*this.dragTransform.yScale}};if(a._temporaryRemoved){if(a.x=Math.max(0,Math.round(s/n)),a.y=Math.max(0,Math.round(o/t)),delete a.autoPosition,this.engine.nodeBoundFix(a),!this.engine.willItFit(a)){if(a.autoPosition=!0,!this.engine.willItFit(a)){X.off(r,`drag`);return}a._willFitPos&&(G.copyPos(a,a._willFitPos),delete a._willFitPos)}this._onStartMoving(i,e,l,a,n,t)}else this._dragOrResize(i,e,l,a,n,t)};return X.droppable(this.el,{accept:e=>{let t=e.gridstackNode||this._readAttr(e,!1);if(t?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let n=!0;if(typeof this.opts.acceptWidgets==`function`)n=this.opts.acceptWidgets(e);else{let t=this.opts.acceptWidgets===!0?`.grid-stack-item`:this.opts.acceptWidgets;n=e.matches(t)}if(n&&t&&this.opts.maxRow){let e={w:t.w,h:t.h,minW:t.minW,minH:t.minH};n=this.engine.willItFit(e)}return n}}).on(this.el,`dropover`,(i,a,o)=>{let s=o?.gridstackNode||a.gridstackNode;if(s?.grid===this&&!s._temporaryRemoved)return!1;if(s?._sidebarOrig&&(s.w=s._sidebarOrig.w,s.h=s._sidebarOrig.h),s?.grid&&s.grid!==this&&!s._temporaryRemoved&&s.grid._leave(a,o),o||=a,n=this.cellWidth(),t=this.getCellHeight(!0),!s){let e=o.getAttribute(`data-gs-widget`)||o.getAttribute(`gridstacknode`);if(e){try{s=JSON.parse(e)}catch{console.error(`Gridstack dropover: Bad JSON format: `,e)}o.removeAttribute(`data-gs-widget`),o.removeAttribute(`gridstacknode`)}s||=this._readAttr(o),s._sidebarOrig={w:s.w,h:s.h}}s.grid||(s.el||(s={...s}),s._isExternal=!0,o.gridstackNode=s);let c=s.w||Math.round(o.offsetWidth/n)||1,l=s.h||Math.round(o.offsetHeight/t)||1;return s.grid&&s.grid!==this?(a._gridstackNodeOrig||=s,a.gridstackNode=s={...s,w:c,h:l,grid:this},delete s.x,delete s.y,this.engine.cleanupNode(s).nodeBoundFix(s),s._initDD=s._isExternal=s._temporaryRemoved=!0):(s.w=c,s.h=l,s._temporaryRemoved=!0),e._itemRemoving(s.el,!1),X.on(a,`drag`,r),r(i,a,o),!1}).on(this.el,`dropout`,(e,t,n)=>{let r=n?.gridstackNode||t.gridstackNode;return r&&(!r.grid||r.grid===this)&&(this._leave(t,n),this._isTemp&&this.removeAsSubGrid(r)),!1}).on(this.el,`drop`,(t,n,r)=>{let i=r?.gridstackNode||n.gridstackNode;if(i?.grid===this&&!i._isExternal)return!1;let a=!!this.placeholder.parentElement,o=n!==r;this.placeholder.remove(),delete this.placeholder.gridstackNode,a&&this.opts.animate&&(this.setAnimation(!1),this.setAnimation(!0,!0));let s=n._gridstackNodeOrig;if(delete n._gridstackNodeOrig,a&&s?.grid&&s.grid!==this){let e=s.grid;e.engine.removeNodeFromLayoutCache(s),e.engine.removedNodes.push(s),e._triggerRemoveEvent()._triggerChangeEvent(),e.parentGridNode&&!e.engine.nodes.length&&e.opts.subGridDynamic&&e.removeAsSubGrid()}if(!i||(a&&(this.engine.cleanupNode(i),i.grid=this),delete i.grid?._isTemp,X.off(n,`drag`),r===n?n.remove():(r.remove(),n=r),this._removeDD(n),!a))return!1;let c=i.subGrid?.el?.gridstack;return G.copyPos(i,this._readAttr(this.placeholder)),G.removePositioningStyles(n),o&&(i.content||i.subGridOpts||e.addRemoveCB)?(delete i.el,n=this.addWidget(i)):(this._prepareElement(n,!0,i),this.el.appendChild(n),this.resizeToContentCheck(!1,i),c&&(c.parentGridNode=i),this._updateContainerHeight()),this.engine.addedNodes.push(i),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped({...t,type:`dropped`},s&&s.grid?s:void 0,i),!1}),this}static _itemRemoving(e,t){if(!e)return;let n=e?e.gridstackNode:void 0;!n?.grid||e.classList.contains(n.grid.opts.removableOptions.decline)||(t?n._isAboutToRemove=!0:delete n._isAboutToRemove,t?e.classList.add(`grid-stack-item-removing`):e.classList.remove(`grid-stack-item-removing`))}_setupRemoveDrop(){if(typeof this.opts.removable!=`string`)return this;let t=document.querySelector(this.opts.removable);return t&&!this.opts.staticGrid&&!X.isDroppable(t)&&X.droppable(t,this.opts.removableOptions).on(t,`dropover`,(t,n)=>e._itemRemoving(n,!0)).on(t,`dropout`,(t,n)=>e._itemRemoving(n,!1)),this}prepareDragDrop(e,t=!1){let n=e?.gridstackNode;if(!n)return;let r=n.noMove||this.opts.disableDrag,i=n.noResize||this.opts.disableResize,a=this.opts.staticGrid||r&&i;if((t||a)&&(n._initDD&&(this._removeDD(e),delete n._initDD),a))return e.classList.add(`ui-draggable-disabled`,`ui-resizable-disabled`),this;if(!n._initDD){let t,r,i=(i,a)=>{this.triggerEvent(i,i.target),t=this.cellWidth(),r=this.getCellHeight(!0),this._onStartMoving(e,i,a,n,t,r)},a=(i,a)=>{this._dragOrResize(e,i,a,n,t,r)},o=t=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete n._moving,delete n._resizing,delete n._event,delete n._lastTried;let r=n.w!==n._orig.w,i=t.target;if(!(!i.gridstackNode||i.gridstackNode.grid!==this)){if(n.el=i,n._isAboutToRemove){let r=e.gridstackNode.grid;r._gsEventHandler[t.type]&&r._gsEventHandler[t.type](t,i),r.engine.nodes.push(n),r.removeWidget(e,!0,!0)}else G.removePositioningStyles(i),n._temporaryRemoved?(this._writePosAttr(i,n),this.engine.addNode(n)):this._writePosAttr(i,n),this.triggerEvent(t,i);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),t.type===`resizestop`&&(Number.isInteger(n.sizeToContent)&&(n.sizeToContent=n.h),this.resizeToContentCheck(r,n))}};X.draggable(e,{start:i,stop:o,drag:a,rtl:this.opts.rtl}).resizable(e,{start:i,stop:o,resize:a,rtl:this.opts.rtl}),n._initDD=!0}return X.draggable(e,r?`disable`:`enable`).resizable(e,i?`disable`:`enable`),this}_onStartMoving(e,t,n,r,i,a){if(this.engine.cleanNodes().beginUpdate(r),this._writePosAttr(this.placeholder,r),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=r,r.grid?.el)this.dragTransform=G.getValuesFromTransformedElement(e);else if(this.placeholder&&this.placeholder.closest(`.grid-stack`)){let e=this.placeholder.closest(`.grid-stack`);this.dragTransform=G.getValuesFromTransformedElement(e)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(r.el=this.placeholder,r._lastUiPosition=n.position,r._prevYPix=n.position.top,r._moving=t.type===`dragstart`,r._resizing=t.type===`resizestart`,delete r._lastTried,t.type===`dropover`&&r._temporaryRemoved&&(this.engine.addNode(r),r._moving=!0),this.engine.cacheRects(i,a,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),t.type===`resizestart`){let t=this.getColumn()-r.x,n=(this.opts.maxRow||2**53-1)-r.y;X.resizable(e,`option`,`minWidth`,i*Math.min(r.minW||1,t)).resizable(e,`option`,`minHeight`,a*Math.min(r.minH||1,n)).resizable(e,`option`,`maxWidth`,i*Math.min(r.maxW||2**53-1,t)).resizable(e,`option`,`maxWidthMoveLeft`,i*Math.min(r.maxW||2**53-1,r.x+r.w)).resizable(e,`option`,`maxHeight`,a*Math.min(r.maxH||2**53-1,n)).resizable(e,`option`,`maxHeightMoveUp`,a*Math.min(r.maxH||2**53-1,r.y+r.h))}}_dragOrResize(e,t,n,r,i,a){let o={...r._orig},s,c=this.opts.marginLeft,l=this.opts.marginRight,u=this.opts.marginTop,d=this.opts.marginBottom,f=Math.round(a*.1),p=Math.round(i*.1);if(c=Math.min(c,p),l=Math.min(l,p),u=Math.min(u,f),d=Math.min(d,f),t.type===`drag`){if(r._temporaryRemoved)return;r._prevYPix=n.position.top,this.opts.draggable.scroll!==!1&&q.dragElement?.updateScrollPosition(this.el);let e=n.position.left+(n.position.left>r._lastUiPosition.left?-l:c),t=n.position.top+(n.position.top>r._lastUiPosition.top?-d:u);o.x=Math.round(e/i),o.y=Math.round(t/a);let s=this._extraDragRow;if(this.engine.collide(r,o)){let e=this.getRow(),t=Math.max(0,o.y+r.h-e);this.opts.maxRow&&e+t>this.opts.maxRow&&(t=Math.max(0,this.opts.maxRow-e)),this._extraDragRow=t}else this._extraDragRow=0;if(this._extraDragRow!==s&&this._updateContainerHeight(),r.x===o.x&&r.y===o.y)return}else if(t.type===`resize`){if(o.x<0||(G.updateScrollResize(t,e,a),o.w=Math.round((n.size.width-c)/i),o.h=Math.round((n.size.height-u)/a),r.w===o.w&&r.h===o.h)||r._lastTried&&r._lastTried.w===o.w&&r._lastTried.h===o.h)return;if(t.hasMovedX){let e=n.position.left+c;o.x=Math.round(e/i)}if(t.hasMovedY){let e=n.position.top+u;o.y=Math.round(e/a)}s=!0}r._event=t,r._lastTried=o;let m={x:n.position.left+c,y:n.position.top+u,w:(n.size?n.size.width:r.w*i)-c-l,h:(n.size?n.size.height:r.h*a)-u-d};if(this.engine.moveNodeCheck(r,{...o,cellWidth:i,cellHeight:a,rect:m,resizing:s})){r._lastUiPosition=n.position,this.engine.cacheRects(i,a,u,l,d,c),delete r._skipDown,s&&r.subGrid&&r.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let e=t.target;r._sidebarOrig||this._writePosAttr(e,r),this.triggerEvent(t,e)}}triggerEvent(e,t){let n=this;for(;n.parentGridNode;)n=n.parentGridNode.grid;n._gsEventHandler[e.type]&&n._gsEventHandler[e.type](e,t)}_leave(t,n){n||=t;let r=n.gridstackNode;if(!r||(n.style.transform=n.style.transformOrigin=null,X.off(t,`drag`),r._temporaryRemoved))return;r._temporaryRemoved=!0,this.engine.removeNode(r),r.el=r._isExternal&&n?n:t;let i=r._sidebarOrig;r._isExternal&&this.engine.cleanupNode(r),r._sidebarOrig=i,this.opts.removable===!0&&e._itemRemoving(t,!0),t._gridstackNodeOrig?(t.gridstackNode=t._gridstackNodeOrig,delete t._gridstackNodeOrig):r._isExternal&&this.engine.restoreInitial()}};Z.renderCB=(e,t)=>{e&&t?.content&&(e.textContent=t.content)},Z.resizeToContentParent=`.grid-stack-item-content`,Z.Utils=G,Z.Engine=an,Z.GDRev=`12.6.0`;var xn=({gridElement:e,gridItemElements:t,items:n,columns:r,rowHeight:i,viewMode:a,fullTheme:o,onCreateOrUpdateDimensionsHint:s,onRemoveDimensionsHint:c,onChange:l})=>{let[u,d]=qt(o),f={column:r,cellHeight:i,marginTop:u,marginLeft:d,marginRight:d,marginBottom:u,animate:!0,auto:!1,float:!1,removable:!1,acceptWidgets:!0,disableDrag:a,disableResize:a,minRow:1,resizable:{handles:[`n`,`ne`,`e`,`se`,`s`,`sw`,`w`,`nw`].join(`, `)},handle:`.grid-item-drag-handle`},p=Z.init(f,e);return p.batchUpdate(),t.forEach(e=>{let t=e.getAttribute(`luzmo-item-grid-item-id`),r=se(n.find(e=>e.id===t),t??void 0);p.makeWidget(e,r)}),p.batchUpdate(!1),p.on(`resizestart`,(e,t)=>{s(t,t.getAttribute(`gs-w`)??``,t.getAttribute(`gs-h`)??``)}),p.on(`resize`,(e,t)=>{s(t,t.getAttribute(`gs-w`)??``,t.getAttribute(`gs-h`)??``)}),p.on(`resizestop`,(e,t)=>{c(t)}),p.on(`change`,(e,t)=>{l(t)}),p},Sn=(e,t)=>{let n=new Map(t.filter(e=>e.id).map(e=>[e.id,e]));return e.map(e=>{let t=e.id?n.get(e.id):void 0;return t?{...e,position:{sizeX:t.w??1,sizeY:t.h??1,row:t.y??0,col:t.x??0}}:e})},Cn=({element:e,numberOfColumns:t,numberOfRows:n,offsetHint:r})=>{let i=e.querySelector(`.dimensions-hint-popover`);if(i){i.style.display=t.length>0&&n.length>0?`block`:`none`,i.textContent=`${t} × ${n}`;return}let a=document.createElement(`div`);a.className=`dimensions-hint-popover`,a.setAttribute(`popover`,`hint`),a.style.display=t.length>0&&n.length>0?`block`:`none`,a.textContent=`${t} × ${n}`,e.append(a),Ft(a,At(e,a,async()=>{let{x:t,y:n}=await Nt(e,a,{placement:`bottom`,middleware:[jt(r),Mt()]});a.style.left=`${t}px`,a.style.top=`${n}px`})),a.matches(`:popover-open`)||a.showPopover()},wn=e=>{let t=e.querySelector(`.dimensions-hint-popover`);t&&(It(t),t.matches(`:popover-open`)&&t.hidePopover(),t.remove())},Tn=({initialized:e,grid:t,hasItemsChanged:n,gridItemElements:r,items:i})=>{!e||!t||!n||(t.setAnimation(!1),t.batchUpdate(),t.removeAll(!1),i.forEach(e=>{let n=le(r,e.id);n&&t.makeWidget(n,se(e,e.id))}),t.batchUpdate(!1),t.setAnimation(!0))},En=({initialized:e,grid:t,hasViewModeChanged:n,viewMode:r,previousViewMode:i,activeItemElement:a,gridElement:o,cleanupActiveItem:s})=>{if(!e||!t||!n||r===i)return a;if(r){if(t.disable(),a){s(a),o.removeAttribute(`has-active-item`);return}return a}return t.enable(),a},Dn=`:host{--luzmo-action-button-content-color-default:var(--luzmo-item-grid-item-action-button-content-color-default,#fff);--luzmo-action-button-content-color-hover:var(--luzmo-item-grid-item-action-button-content-color-hover,#fff);--luzmo-action-button-content-color-down:var(--luzmo-item-grid-item-action-button-content-color-down,#fff);--luzmo-action-button-content-color-focus:var(--luzmo-item-grid-item-action-button-content-color-focus,#fff);--luzmo-action-button-background-color-default:var(--luzmo-item-grid-item-action-button-background-color-default,#333);--luzmo-action-button-background-color-hover:var(--luzmo-item-grid-item-action-button-background-color-hover,#444);--luzmo-action-button-background-color-down:var(--luzmo-item-grid-item-action-button-background-color-down,#555);--luzmo-action-button-background-color-focus:var(--luzmo-item-grid-item-action-button-background-color-focus,#666);--grid-item-actions-flex-direction:column;display:block}.action-buttons{gap:var(--luzmo-item-grid-item-action-group-gap,.5rem);flex-direction:var(--luzmo-item-grid-item-actions-flex-direction,var(--grid-item-actions-flex-direction));outline:none;display:flex}.action-button[selected]{--luzmo-action-button-background-color-default:var(--luzmo-primary);--luzmo-action-button-background-color-hover:var(--luzmo-primary-hover);--luzmo-action-button-background-color-down:var(--luzmo-primary-down);--luzmo-action-button-background-color-focus:var(--luzmo-primary-focus);--luzmo-action-button-content-color-default:var(--luzmo-primary-inverse-color);--luzmo-action-button-content-color-hover:var(--luzmo-primary-inverse-color);--luzmo-action-button-content-color-down:var(--luzmo-primary-inverse-color);--luzmo-action-button-content-color-focus:var(--luzmo-primary-inverse-color)}:host .action-buttons{--luzmo-action-button-content-color-default:var(--luzmo-item-grid-item-action-button-content-color-default,#fff);--luzmo-action-button-content-color-hover:var(--luzmo-item-grid-item-action-button-content-color-hover,#fff);--luzmo-action-button-content-color-down:var(--luzmo-item-grid-item-action-button-content-color-down,#fff);--luzmo-action-button-content-color-focus:var(--luzmo-item-grid-item-action-button-content-color-focus,#fff);--luzmo-action-button-background-color-default:var(--luzmo-item-grid-item-action-button-background-color-default,#333);--luzmo-action-button-background-color-hover:var(--luzmo-item-grid-item-action-button-background-color-hover,#444);--luzmo-action-button-background-color-down:var(--luzmo-item-grid-item-action-button-background-color-down,#555);--luzmo-action-button-background-color-focus:var(--luzmo-item-grid-item-action-button-background-color-focus,#666)}.delete-button{--luzmo-action-button-background-color-hover:var(--luzmo-item-grid-item-delete-button-background-color-hover,var(--luzmo-negative-color));--luzmo-action-button-content-color-hover:var(--luzmo-item-grid-item-delete-button-content-color-hover,#fff);--luzmo-action-button-background-color-focus:var(--luzmo-item-grid-item-delete-button-background-color-focus,var(--luzmo-negative-color-focus));--luzmo-action-button-content-color-focus:var(--luzmo-item-grid-item-delete-button-content-color-focus,#fff);--luzmo-action-button-background-color-down:var(--luzmo-item-grid-item-delete-button-background-color-down,var(--luzmo-negative-color-down));--luzmo-action-button-content-color-down:var(--luzmo-item-grid-item-delete-button-content-color-down,#fff)}:host([placement=top-start]),:host([placement=top]),:host([placement=top-end]),:host([placement=bottom-start]),:host([placement=bottom]),:host([placement=bottom-end]){--grid-item-actions-flex-direction:row}`,Q=class extends t.t(d.LuzmoElement){constructor(...e){super(...e),this.placement=`right-start`,this.actions=Ut()}static get styles(){return[(0,s.unsafeCSS)(Dn)]}get isVertical(){return this.placement.includes(`left`)||this.placement.includes(`right`)}_dispatchAction(e){this.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{bubbles:!0,composed:!0,detail:{action:e.action,type:e.type,active:e.active}}))}_handleActionClick(e,t){e.stopPropagation(),t.type===`toggle`&&(t.active=!t.active,this.actions.forEach(e=>{e.actions?.forEach(e=>{t!==e&&e.active&&(e.active=!1)})})),this._dispatchAction(t),this.requestUpdate()}clearActiveToggles(){this.actions=this.actions.map(e=>({...e,actions:e.actions?.map(e=>(e.type===`toggle`&&(e.active=!1),e))??[]}))}focus(){let e=this.shadowRoot?.querySelectorAll(`luzmo-action-button[toggles]`);e&&e[0]?.focus()}_generateActionButton(e){let t={Data:(0,l.msg)(`Data`,{desc:`Grid item action tooltip`}),Options:(0,l.msg)(`Options`,{desc:`Grid item action tooltip`}),Clone:(0,l.msg)(`Clone`,{desc:`Grid item action tooltip`}),Delete:(0,l.msg)(`Delete`,{desc:`Delete action label`}),Edit:(0,l.msg)(`Edit`,{desc:`Edit action label`}),Lock:(0,l.msg)(`Lock`,{desc:`Grid item action tooltip`}),Filters:(0,l.msg)(`Filters`,{desc:`Grid item action tooltip`})};return s.html`
|
|
80
|
+
`},W=class e{static getElements(e,t=document){if(typeof e==`string`){let n=`getElementById`in t?t:void 0;if(n&&!isNaN(+e[0])){let t=n.getElementById(e);return t?[t]:[]}let r=t.querySelectorAll(e);if(!r.length&&e[0]!==`.`&&e[0]!==`#`&&(r=t.querySelectorAll(`.`+e),r.length||(r=t.querySelectorAll(`#`+e)),!r.length)){let n=t.querySelector(`[gs-id="${e}"]`);return n?[n]:[]}return Array.from(r)}return[e]}static getElement(e,t=document){if(typeof e==`string`){let n=`getElementById`in t?t:void 0;if(!e.length)return null;if(n&&e[0]===`#`)return n.getElementById(e.substring(1));if(e[0]===`#`||e[0]===`.`||e[0]===`[`)return t.querySelector(e);if(n&&!isNaN(+e[0]))return n.getElementById(e);let r=t.querySelector(e);return n&&!r&&(r=n.getElementById(e)),r||=t.querySelector(`.`+e),r}return e}static lazyLoad(e){return e.lazyLoad||e.grid?.opts?.lazyLoad&&e.lazyLoad!==!1}static createDiv(e,t){let n=document.createElement(`div`);return e.forEach(e=>{e&&n.classList.add(e)}),t?.appendChild(n),n}static shouldSizeToContent(e,t=!1){return e?.grid&&(t?e.sizeToContent===!0||e.grid.opts.sizeToContent===!0&&e.sizeToContent===void 0:!!e.sizeToContent||e.grid.opts.sizeToContent&&e.sizeToContent!==!1)}static isIntercepted(e,t){return!(e.y>=t.y+t.h||e.y+e.h<=t.y||e.x+e.w<=t.x||e.x>=t.x+t.w)}static isTouching(t,n){return e.isIntercepted(t,{x:n.x-.5,y:n.y-.5,w:n.w+1,h:n.h+1})}static areaIntercept(e,t){let n=e.x>t.x?e.x:t.x,r=e.x+e.w<t.x+t.w?e.x+e.w:t.x+t.w;if(r<=n)return 0;let i=e.y>t.y?e.y:t.y,a=e.y+e.h<t.y+t.h?e.y+e.h:t.y+t.h;return a<=i?0:(r-n)*(a-i)}static area(e){return e.w*e.h}static sort(e,t=1){let n=1e4;return e.sort((e,r)=>{let i=t*((e.y??n)-(r.y??n));return i===0?t*((e.x??n)-(r.x??n)):i})}static find(e,t){return t?e.find(e=>e.id===t):void 0}static toBool(e){return typeof e==`boolean`?e:typeof e==`string`?(e=e.toLowerCase(),!(e===``||e===`no`||e===`false`||e===`0`)):!!e}static toNumber(e){return e===null||e.length===0?void 0:Number(e)}static parseHeight(e){let t,n=`px`;if(typeof e==`string`)if(e===`auto`||e===``)t=0;else{let r=e.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!r)throw Error(`Invalid height val = ${e}`);n=r[2]||`px`,t=parseFloat(r[1])}else t=e;return{h:t,unit:n}}static defaults(t,...n){return n.forEach(n=>{for(let r in n){if(!n.hasOwnProperty(r))return;t[r]===null||t[r]===void 0?t[r]=n[r]:typeof n[r]==`object`&&typeof t[r]==`object`&&e.defaults(t[r],n[r])}}),t}static same(e,t){if(typeof e!=`object`)return e==t;if(typeof e!=typeof t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}static copyPos(e,t,n=!1){return t.x!==void 0&&(e.x=t.x),t.y!==void 0&&(e.y=t.y),t.w!==void 0&&(e.w=t.w),t.h!==void 0&&(e.h=t.h),n&&(t.minW&&(e.minW=t.minW),t.minH&&(e.minH=t.minH),t.maxW&&(e.maxW=t.maxW),t.maxH&&(e.maxH=t.maxH)),e}static samePos(e,t){return e&&t&&e.x===t.x&&e.y===t.y&&(e.w||1)===(t.w||1)&&(e.h||1)===(t.h||1)}static sanitizeMinMax(e){e.minW||delete e.minW,e.minH||delete e.minH,e.maxW||delete e.maxW,e.maxH||delete e.maxH}static removeInternalAndSame(t,n){if(!(typeof t!=`object`||typeof n!=`object`)&&!(Array.isArray(t)||Array.isArray(n)))for(let r in t){let i=t[r],a=n[r];r[0]===`_`||i===a?delete t[r]:i&&typeof i==`object`&&a!==void 0&&(e.removeInternalAndSame(i,a),Object.keys(i).length||delete t[r])}}static removeInternalForSave(e,t=!0){for(let t in e)(t[0]===`_`||e[t]===null||e[t]===void 0)&&delete e[t];delete e.grid,t&&delete e.el,e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,e.locked||delete e.locked,(e.w===1||e.w===e.minW)&&delete e.w,(e.h===1||e.h===e.minH)&&delete e.h}static throttle(e,t){let n=!1;return(...r)=>{n||(n=!0,setTimeout(()=>{e(...r),n=!1},t))}}static removePositioningStyles(e){let t=e.style;t.position&&t.removeProperty(`position`),t.left&&t.removeProperty(`left`),t.top&&t.removeProperty(`top`),t.width&&t.removeProperty(`width`),t.height&&t.removeProperty(`height`)}static getScrollElement(t){if(!t)return document.scrollingElement||document.documentElement;let n=getComputedStyle(t).overflowY;return(n===`auto`||n===`scroll`)&&t.scrollHeight>t.clientHeight?t:e.getScrollElement(t.parentElement)}static updateScrollResize(t,n,r){let i=e.getScrollElement(n),a=i.clientHeight,o=i===e.getScrollElement()?0:i.getBoundingClientRect().top,s=t.clientY-o,c=s<r,l=s>a-r;c?i.scrollBy({behavior:`smooth`,top:s-r}):l&&i.scrollBy({behavior:`smooth`,top:r-(a-s)})}static clone(e){return typeof e!=`object`||!e?e:e instanceof Array?[...e]:{...e}}static cloneDeep(t){let n=[`parentGrid`,`el`,`grid`,`subGrid`,`engine`],r=e.clone(t);for(let i in r)r.hasOwnProperty(i)&&typeof r[i]==`object`&&i.substring(0,2)!==`__`&&!n.find(e=>e===i)&&(r[i]=e.cloneDeep(t[i]));return r}static cloneNode(e){let t=e.cloneNode(!0);return t.removeAttribute(`id`),t}static appendTo(t,n){let r;r=typeof n==`string`?e.getElement(n):n,r&&r.appendChild(t)}static addElStyles(e,t){if(t instanceof Object)for(let n in t)t.hasOwnProperty(n)&&(Array.isArray(t[n])?t[n].forEach(t=>{e.style[n]=t}):e.style[n]=t[n])}static initEvent(e,t){let n={type:t.type},r={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:t.target?t.target:e.target};return[`altKey`,`ctrlKey`,`metaKey`,`shiftKey`].forEach(t=>n[t]=e[t]),[`pageX`,`pageY`,`clientX`,`clientY`,`screenX`,`screenY`].forEach(t=>n[t]=e[t]),{...n,...r}}static simulateMouseEvent(e,t,n){let r=e,i=new MouseEvent(t,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,ctrlKey:r.ctrlKey??!1,altKey:r.altKey??!1,shiftKey:r.shiftKey??!1,metaKey:r.metaKey??!1,button:0,relatedTarget:e.target});(n||e.target).dispatchEvent(i)}static getValuesFromTransformedElement(t){let n=document.createElement(`div`);e.addElStyles(n,{opacity:`0`,position:`fixed`,top:`0px`,left:`0px`,width:`1px`,height:`1px`,zIndex:`-999999`}),t.appendChild(n);let r=n.getBoundingClientRect();return t.removeChild(n),n.remove(),{xScale:1/r.width,yScale:1/r.height,xOffset:r.left,yOffset:r.top}}static swap(e,t,n){if(!e)return;let r=e[t];e[t]=e[n],e[n]=r}static canBeRotated(e){return!(!e||e.w===e.h||e.locked||e.noResize||e.grid?.opts.disableResize||e.minW&&e.minW===e.maxW||e.minH&&e.minH===e.maxH)}},an=class e{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(e,t=e,n,r={}){if(this.sortNodes(-1),n||=this.collide(e,t),!n)return!1;if(e._moving&&!r.nested&&!this.float&&this.swap(e,n))return!0;let i=t;!this._loading&&this._useEntireRowArea(e,t)&&(i={x:0,w:this.column,y:t.y,h:t.h},n=this.collide(e,i,r.skip));let a=!1,o={nested:!0,pack:!1},s=0;for(;n||=this.collide(e,i,r.skip);){if(s++>this.nodes.length*2)throw Error(`Infinite collide check`);let i;if(n.locked||this._loading||e._moving&&!e._skipDown&&t.y>e.y&&!this.float&&(!this.collide(n,{...n,y:e.y},e)||!this.collide(n,{...n,y:t.y-n.h},e))){e._skipDown=e._skipDown||t.y>e.y;let s={...t,y:n.y+n.h,...o};i=this._loading&&W.samePos(e,s)?!0:this.moveNode(e,s),(n.locked||this._loading)&&i?W.copyPos(t,e):!n.locked&&i&&r.pack&&(this._packNodes(),t.y=n.y+n.h,W.copyPos(e,t)),a||=i}else i=this.moveNode(n,{...n,y:t.y+t.h,skip:e,...o});if(!i)return a;n=void 0}return a}collide(e,t=e,n){let r=e._id,i=n?._id;return this.nodes.find(e=>e._id!==r&&e._id!==i&&W.isIntercepted(e,t))}collideAll(e,t=e,n){let r=e._id,i=n?._id;return this.nodes.filter(e=>e._id!==r&&e._id!==i&&W.isIntercepted(e,t))}directionCollideCoverage(e,t,n){if(!t.rect||!e._rect)return;let r=e._rect,i={...t.rect};i.y>r.y?(i.h+=i.y-r.y,i.y=r.y):i.h+=r.y-i.y,i.x>r.x?(i.w+=i.x-r.x,i.x=r.x):i.w+=r.x-i.x;let a,o=.5;for(let e of n){if(e.locked||!e._rect)break;let t=e._rect,n=Number.MAX_VALUE,s=Number.MAX_VALUE;r.y<t.y?n=(i.y+i.h-t.y)/t.h:r.y+r.h>t.y+t.h&&(n=(t.y+t.h-i.y)/t.h),r.x<t.x?s=(i.x+i.w-t.x)/t.w:r.x+r.w>t.x+t.w&&(s=(t.x+t.w-i.x)/t.w);let c=Math.min(s,n);c>o&&(o=c,a=e)}return t.collide=a,a}cacheRects(e,t,n,r,i,a){return this.nodes.forEach(o=>o._rect={y:o.y*t+n,x:o.x*e+a,w:o.w*e-a-r,h:o.h*t-n-i}),this}swap(e,t){if(!t||t.locked||!e||e.locked)return!1;function n(){let n=t.x,r=t.y;return t.x=e.x,t.y=e.y,e.h==t.h?e.w==t.w?(e.x=n,e.y=r):(e.x=t.x+t.w,e.y=r):(e.x=n,e.y=t.y+t.h),e._dirty=t._dirty=!0,!0}let r;if(e.w===t.w&&e.h===t.h&&(e.x===t.x||e.y===t.y)&&(r=W.isTouching(e,t)))return n();if(r!==!1){if(e.w===t.w&&e.x===t.x&&(r||=W.isTouching(e,t))){if(t.y<e.y){let n=e;e=t,t=n}return n()}if(r!==!1){if(e.h===t.h&&e.y===t.y&&(r||=W.isTouching(e,t))){if(t.x<e.x){let n=e;e=t,t=n}return n()}return!1}}}isAreaEmpty(e,t,n,r){let i={x:e||0,y:t||0,w:n||1,h:r||1};return!this.collide(i)}compact(e=`compact`,t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();let n=this.batchMode;n||this.batchUpdate();let r=this._inColumnResize;r||(this._inColumnResize=!0);let i=this.nodes;return this.nodes=[],i.forEach((t,n,r)=>{let i;t.locked||(t.autoPosition=!0,e===`list`&&n&&(i=r[n-1])),this.addNode(t,!1,i)}),r||delete this._inColumnResize,n||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(e=1){return this.nodes=W.sort(this.nodes,e),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){let n=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:n,w:e.w,h:e.h})))break;e._dirty=e.y!==n,e.y=n}}),this)}prepareNode(t,n){t._id=t._id??e._idSeq++;let r=t.id;if(r){let e=1;for(;this.nodes.find(e=>e.id===t.id&&e!==t);)t.id=r+`_`+ e++}(t.x===void 0||t.y===void 0||t.x===null||t.y===null)&&(t.autoPosition=!0);let i={x:0,y:0,w:1,h:1};return W.defaults(t,i),t.autoPosition||delete t.autoPosition,t.noResize||delete t.noResize,t.noMove||delete t.noMove,W.sanitizeMinMax(t),typeof t.x==`string`&&(t.x=Number(t.x)),typeof t.y==`string`&&(t.y=Number(t.y)),typeof t.w==`string`&&(t.w=Number(t.w)),typeof t.h==`string`&&(t.h=Number(t.h)),isNaN(t.x)&&(t.x=i.x,t.autoPosition=!0),isNaN(t.y)&&(t.y=i.y,t.autoPosition=!0),isNaN(t.w)&&(t.w=i.w),isNaN(t.h)&&(t.h=i.h),this.nodeBoundFix(t,n),t}nodeBoundFix(e,t){let n=e._orig||W.copyPos({},e);if(e.maxW&&(e.w=Math.min(e.w||1,e.maxW)),e.maxH&&(e.h=Math.min(e.h||1,e.maxH)),e.minW&&(e.w=Math.max(e.w||1,e.minW)),e.minH&&(e.h=Math.max(e.h||1,e.minH)),(e.x||0)+(e.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&e._id!=null&&this.findCacheLayout(e,this.defaultColumn)===-1){let t={...e};t.autoPosition||t.x===void 0?(delete t.x,delete t.y):t.x=Math.min(this.defaultColumn-1,t.x),t.w=Math.min(this.defaultColumn,t.w||1),this.cacheOneLayout(t,this.defaultColumn)}return e.w>this.column?e.w=this.column:e.w<1&&(e.w=1),this.maxRow&&e.h>this.maxRow?e.h=this.maxRow:e.h<1&&(e.h=1),e.x<0&&(e.x=0),e.y<0&&(e.y=0),e.x+e.w>this.column&&(t?e.w=this.column-e.x:e.x=this.column-e.w),this.maxRow&&e.y+e.h>this.maxRow&&(t?e.h=this.maxRow-e.y:e.y=this.maxRow-e.h),W.samePos(e,n)||(e._dirty=!0),this}getDirtyNodes(e){return e?this.nodes.filter(e=>e._dirty&&!W.samePos(e,e._orig)):this.nodes.filter(e=>e._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;let t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode||this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this}saveInitial(){return this.nodes.forEach(e=>{e._orig=W.copyPos({},e),delete e._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(e=>{!e._orig||W.samePos(e,e._orig)||(W.copyPos(e,e._orig),e._dirty=!0)}),this._notify(),this}findEmptyPosition(e,t=this.nodes,n=this.column,r){let i=r?r.y*n+(r.x+r.w):0,a=!1;for(let r=i;!a;++r){let i=r%n,o=Math.floor(r/n);if(i+e.w>n)continue;let s={x:i,y:o,w:e.w,h:e.h};t.find(e=>W.isIntercepted(s,e))||((e.x!==i||e.y!==o)&&(e._dirty=!0),e.x=i,e.y=o,delete e.autoPosition,a=!0)}return a}addNode(e,t=!1,n){let r=this.nodes.find(t=>t._id===e._id);if(r)return r;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let i;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,n)&&(delete e.autoPosition,i=!0),this.nodes.push(e),t&&this.addedNodes.push(e),i||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,n=!1){return this.nodes.find(t=>t._id===e._id)?(n&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(t=>t._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(e=>e._removeDOM=!0);let n=this.nodes;return this.removedNodes=t?n:[],this.nodes=[],this._notify(n)}moveNodeCheck(t,n){if(!this.changedPosConstrain(t,n))return!1;if(n.pack=!0,!this.maxRow)return this.moveNode(t,n);let r,i=new e({column:this.column,float:this.float,nodes:this.nodes.map(e=>e._id===t._id?(r={...e},r):{...e})});if(!r)return!1;let a=i.moveNode(r,n)&&i.getRow()<=Math.max(this.getRow(),this.maxRow);if(!a&&!n.resizing&&n.collide){let e=n.collide.el.gridstackNode;if(this.swap(t,e))return this._notify(),!0}return a?(i.nodes.filter(e=>e._dirty).forEach(e=>{let t=this.nodes.find(t=>t._id===e._id);t&&(W.copyPos(t,e),t._dirty=!0)}),this._notify(),!0):!1}willItFit(t){if(delete t._willFitPos,!this.maxRow)return!0;let n=new e({column:this.column,float:this.float,nodes:this.nodes.map(e=>({...e}))}),r={...t};return this.cleanupNode(r),delete r.el,delete r._id,delete r.content,delete r.grid,n.addNode(r),n.getRow()<=this.maxRow?(t._willFitPos=W.copyPos({},r),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(e,t){if(!e||!t)return!1;let n;t.pack===void 0&&!this.batchMode&&(n=t.pack=!0),typeof t.x!=`number`&&(t.x=e.x),typeof t.y!=`number`&&(t.y=e.y),typeof t.w!=`number`&&(t.w=e.w),typeof t.h!=`number`&&(t.h=e.h);let r=e.w!==t.w||e.h!==t.h,i=W.copyPos({},e,!0);if(W.copyPos(i,t),this.nodeBoundFix(i,r),W.copyPos(t,i),!t.forceCollide&&W.samePos(e,t))return!1;let a=W.copyPos({},e),o=this.collideAll(e,i,t.skip),s=!0;if(o.length){let r=e._moving&&!t.nested,a=r?this.directionCollideCoverage(e,t,o):o[0];if(r&&a&&e.grid?.opts?.subGridDynamic&&!e.grid._isTemp){let n=W.areaIntercept(t.rect,a._rect),r=W.area(t.rect),i=W.area(a._rect);n/(r<i?r:i)>.8&&(a.grid.makeSubGrid(a.el,void 0,e),a=void 0)}a?s=!this._fixCollisions(e,i,a,t):(s=!1,n&&delete t.pack)}return s&&!W.samePos(e,i)&&(e._dirty=!0,W.copyPos(e,i)),t.pack&&this._packNodes()._notify(),!W.samePos(e,a)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let e=this.nodes.find(e=>e._updating);return e&&(delete e._updating,delete e._skipDown),this}save(e=!0,t,n){let r=this._layouts?.length||0,i;r&&(n?n!==this.column&&(i=this._layouts[n]):this.column!==r-1&&(i=this._layouts[r-1]));let a=[];return this.sortNodes(),this.nodes.forEach(n=>{let r=i?.find(e=>e._id===n._id),o={...n,...r||{}};W.removeInternalForSave(o,!e),t&&t(n,o),a.push(o)}),a}layoutsNodesChange(e){return!this._layouts||this._inColumnResize||this._layouts.forEach((t,n)=>{if(!t||n===this.column)return this;if(n<this.column)this._layouts[n]=void 0;else{let r=n/this.column;e.forEach(e=>{if(!e._orig)return;let n=t.find(t=>t._id===e._id);n&&(n.y>=0&&e.y!==e._orig.y&&(n.y+=e.y-e._orig.y,n.y<0&&(n.y=0)),e.x!==e._orig.x&&(n.x=Math.round(e.x*r),n.x<0&&(n.x=0)),e.w!==e._orig.w&&(n.w=Math.round(e.w*r),n.w<1&&(n.w=1)))})}}),this}columnChanged(e,t,n=`moveScale`){if(!this.nodes.length||!t||e===t)return this;let r=n===`compact`||n===`list`;r&&this.sortNodes(1),t<e&&this.cacheLayout(this.nodes,e),this.batchUpdate();let i=[],a=r?this.nodes:W.sort(this.nodes,-1);if(t>e&&this._layouts){let n=this._layouts[t]||[],o=this._layouts.length-1;!n.length&&e!==o&&this._layouts[o]?.length&&(e=o,this._layouts[o].forEach(e=>{let t=a.find(t=>t._id===e._id);t&&(!r&&!e.autoPosition&&(t.x=e.x??t.x,t.y=e.y??t.y),t.w=e.w??t.w,(e.x==null||e.y===void 0)&&(t.autoPosition=!0))})),n.forEach(e=>{let t=a.findIndex(t=>t._id===e._id);if(t!==-1){let n=a[t];if(r){n.w=e.w;return}(e.autoPosition||isNaN(e.x)||isNaN(e.y))&&this.findEmptyPosition(e,i),e.autoPosition||(n.x=e.x??n.x,n.y=e.y??n.y,n.w=e.w??n.w,i.push(n)),a.splice(t,1)}})}if(r)this.compact(n,!1);else{if(a.length)if(typeof n==`function`)n(t,e,i,a);else{let o=r||n===`none`?1:t/e,s=n===`move`||n===`moveScale`,c=n===`scale`||n===`moveScale`;a.forEach(n=>{n.x=t===1?0:s?Math.round(n.x*o):Math.min(n.x,t-1),n.w=t===1||e===1?1:c?Math.round(n.w*o)||1:Math.min(n.w,t),i.push(n)}),a=[]}i=W.sort(i,-1),this._inColumnResize=!0,this.nodes=[],i.forEach(e=>{this.addNode(e,!1),delete e._orig})}return this.nodes.forEach(e=>delete e._orig),this.batchUpdate(!1,!r),delete this._inColumnResize,this}cacheLayout(t,n,r=!1){let i=[];return t.forEach((t,n)=>{t._id===void 0&&(t._id=(t.id?this.nodes.find(e=>e.id===t.id):void 0)?._id??e._idSeq++),i[n]={x:t.x,y:t.y,w:t.w,_id:t._id}}),this._layouts=r?[]:this._layouts||[],this._layouts[n]=i,this}cacheOneLayout(t,n){t._id=t._id??e._idSeq++;let r={x:t.x,y:t.y,w:t.w,_id:t._id};(t.autoPosition||t.x===void 0)&&(delete r.x,delete r.y,t.autoPosition&&(r.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[n]=this._layouts[n]||[];let i=this.findCacheLayout(t,n);return i===-1?this._layouts[n].push(r):this._layouts[n][i]=r,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(t=>t._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){let n=this.findCacheLayout(e,t);n!==-1&&this._layouts[t].splice(n,1)}}cleanupNode(e){for(let t in e)t[0]===`_`&&t!==`_id`&&delete e[t];return this}};an._idSeq=0;var G={alwaysShowResizeHandle:`mobile`,animate:!0,auto:!0,cellHeight:`auto`,cellHeightThrottle:100,cellHeightUnit:`px`,column:12,draggable:{handle:`.grid-stack-item-content`,appendTo:`body`,scroll:!0},handle:`.grid-stack-item-content`,itemClass:`grid-stack-item`,margin:10,marginUnit:`px`,maxRow:0,minRow:0,placeholderClass:`grid-stack-placeholder`,placeholderText:``,removableOptions:{accept:`grid-stack-item`,decline:`grid-stack-non-removable`},resizable:{handles:`se`},rtl:`auto`},K=class{},q=typeof window<`u`&&typeof document<`u`&&(`ontouchstart`in document||`ontouchstart`in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),J=class{};function on(e,t){e.touches.length>1||(e.cancelable&&e.preventDefault(),W.simulateMouseEvent(e.changedTouches[0],t))}function sn(e,t){e.cancelable&&e.preventDefault(),W.simulateMouseEvent(e,t)}function cn(e){J.touchHandled||(J.touchHandled=!0,on(e,`mousedown`))}function ln(e){J.touchHandled&&on(e,`mousemove`)}function Y(e){if(!J.touchHandled)return;J.pointerLeaveTimeout&&(window.clearTimeout(J.pointerLeaveTimeout),delete J.pointerLeaveTimeout);let t=!!K.dragElement;on(e,`mouseup`),t||on(e,`click`),J.touchHandled=!1}function un(e){e.pointerType!==`mouse`&&e.target.releasePointerCapture(e.pointerId)}function dn(e){K.dragElement&&e.pointerType!==`mouse`&&sn(e,`mouseenter`)}function fn(e){K.dragElement&&e.pointerType!==`mouse`&&(J.pointerLeaveTimeout=window.setTimeout(()=>{delete J.pointerLeaveTimeout,sn(e,`mouseleave`)},10))}var pn=class e{constructor(e,t,n){this.host=e,this.dir=t,this.option=n,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){if(this.option.element)try{this.el=this.option.element instanceof HTMLElement?this.option.element:this.host.querySelector(this.option.element)}catch(e){this.option.element=void 0,console.error(`Query for resizeable handle failed, falling back`,e)}return this.el||(this.el=document.createElement(`div`),this.host.appendChild(this.el)),this.el.classList.add(`ui-resizable-handle`),this.el.classList.add(`${e.prefix}${this.dir}`),this.el.style.zIndex=`100`,this.el.style.userSelect=`none`,this.el.addEventListener(`mousedown`,this._mouseDown),q&&(this.el.addEventListener(`touchstart`,cn),this.el.addEventListener(`pointerdown`,un)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener(`mousedown`,this._mouseDown),q&&(this.el.removeEventListener(`touchstart`,cn),this.el.removeEventListener(`pointerdown`,un)),this.option.element||this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener(`mousemove`,this._mouseMove,{capture:!0,passive:!0}),document.addEventListener(`mouseup`,this._mouseUp,!0),q&&(this.el.addEventListener(`touchmove`,ln),this.el.addEventListener(`touchend`,Y)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){let t=this.mouseDownEvent;this.moving?this._triggerEvent(`move`,e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent(`start`,this.mouseDownEvent),this._triggerEvent(`move`,e),document.addEventListener(`keydown`,this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent(`stop`,e),document.removeEventListener(`keydown`,this._keyEvent)),document.removeEventListener(`mousemove`,this._mouseMove,!0),document.removeEventListener(`mouseup`,this._mouseUp,!0),q&&(this.el.removeEventListener(`touchmove`,ln),this.el.removeEventListener(`touchend`,Y)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key===`Escape`&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}};pn.prefix=`ui-resizable-`;var mn=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(e,t){this._eventRegister[e]=t}off(e){delete this._eventRegister[e]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(e,t){if(!this.disabled&&this._eventRegister&&this._eventRegister[e])return this._eventRegister[e](t)}},hn=class e extends mn{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{let e=this.el.parentElement.getBoundingClientRect(),t={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,right:this.originalRect.right,top:this.originalRect.top-this.scrolled},n=this.temporalRect||t;return{position:{left:this.option.rtl?(e.right-n.right)*this.rectScale.x:(n.left-e.left)*this.rectScale.x,top:(n.top-e.top)*this.rectScale.y},size:{width:n.width*this.rectScale.x,height:n.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove(`ui-resizable-disabled`),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add(`ui-resizable-disabled`),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){let t=e.handles&&e.handles!==this.option.handles,n=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(t=>this.option[t]=e[t]),t&&(this._removeHandlers(),this._setupHandlers()),n&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add(`ui-resizable-autohide`),this.el.addEventListener(`mouseover`,this._mouseOver),this.el.addEventListener(`mouseout`,this._mouseOut)):(this.el.classList.remove(`ui-resizable-autohide`),this.el.removeEventListener(`mouseover`,this._mouseOver),this.el.removeEventListener(`mouseout`,this._mouseOut),K.overResizeElement===this&&delete K.overResizeElement),this}_mouseOver(e){K.overResizeElement||K.dragElement||(K.overResizeElement=this,this.el.classList.remove(`ui-resizable-autohide`))}_mouseOut(e){K.overResizeElement===this&&(delete K.overResizeElement,this.el.classList.add(`ui-resizable-autohide`))}_setupHandlers(){return this.handlers=this.option.handles.split(`,`).map(e=>e.trim()).map(e=>new pn(this.el,e,{element:this.option.element,start:e=>this._resizeStart(e),stop:e=>this._resizeStop(e),move:t=>this._resizing(t,e)})),this}_resizeStart(e){this.sizeToContent=W.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=W.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=e,this._setupHelper(),this._applyChange();let t=W.initEvent(e,{type:`resizestart`,target:this.el});return this.option.start&&this.option.start(t,this._ui()),this.el.classList.add(`ui-resizable-resizing`),this.triggerEvent(`resizestart`,t),this}_resizing(e,t){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(e,t),this._applyChange();let n=W.initEvent(e,{type:`resize`,target:this.el});return n.resizeDir=t,n.hasMovedX=this.option.rtl?t.includes(`e`):t.includes(`w`),n.hasMovedY=t.includes(`n`),this.option.resize&&this.option.resize(n,this._ui()),this.triggerEvent(`resize`,n),this}_resizeStop(e){let t=W.initEvent(e,{type:`resizestop`,target:this.el});return this._cleanHelper(),this.option.stop&&this.option.stop(t),this.el.classList.remove(`ui-resizable-resizing`),this.triggerEvent(`resizestop`,t),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=e._originStyleProp.map(e=>this.el.style[e]),this.parentOriginStylePosition=this.el.parentElement.style.position;let t=this.el.parentElement,n=W.getValuesFromTransformedElement(t);return this.rectScale={x:n.xScale,y:n.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position=`relative`),this.el.style.position=`absolute`,this.el.style.opacity=`0.8`,this}_cleanHelper(){return e._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){let n=this.startEvent,r={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,right:this.originalRect.right,top:this.originalRect.top-this.scrolled},i=e.clientX-n.clientX,a=this.sizeToContent?0:e.clientY-n.clientY,o,s,c=this.option.rtl;!c&&t.indexOf(`e`)>-1?r.width+=i:c&&t.indexOf(`w`)>-1?r.width-=i:!c&&t.indexOf(`w`)>-1?(r.width-=i,r.left+=i,o=!0):c&&t.indexOf(`e`)>-1&&(r.width+=i,r.right+=i,o=!0),t.indexOf(`s`)>-1?r.height+=a:t.indexOf(`n`)>-1&&(r.height-=a,r.top+=a,s=!0);let l=this._constrainSize(r.width,r.height,o,s);return Math.round(r.width)!==Math.round(l.width)&&(!c&&t.indexOf(`w`)>-1?r.left+=r.width-l.width:c&&t.indexOf(`e`)>-1&&(r.right-=r.width-l.width),r.width=l.width),Math.round(r.height)!==Math.round(l.height)&&(t.indexOf(`n`)>-1&&(r.top+=r.height-l.height),r.height=l.height),r}_constrainSize(e,t,n,r){let i=this.option,a=(n?i.maxWidthMoveLeft:i.maxWidth)||2**53-1,o=i.minWidth/this.rectScale.x||e,s=(r?i.maxHeightMoveUp:i.maxHeight)||2**53-1,c=i.minHeight/this.rectScale.y||t;return{width:Math.min(a,Math.max(o,e)),height:Math.min(s,Math.max(c,t))}}_applyChange(){let e={left:0,right:0,top:0,width:0,height:0};if(this.el.style.position===`absolute`){let{left:t,right:n,top:r}=this.el.parentElement.getBoundingClientRect();e={left:t,right:n,top:r,width:0,height:0}}return this.temporalRect&&Object.entries(this.temporalRect).forEach(([t,n])=>{if(this.option.rtl?t===`left`:t===`right`)return;let r=t===`width`||t===`left`||t===`right`?this.rectScale.x:t===`height`||t===`top`?this.rectScale.y:1,i;i=t===`right`?(e.right-n)*this.rectScale.x+`px`:(n-e[t])*r+`px`,this.el.style[t]=i}),this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}};hn._originStyleProp=[`width`,`height`,`position`,`left`,`right`,`top`,`opacity`,`zIndex`];var gn=`input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle`,_n=class e extends mn{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},this._autoScrollTick=()=>{let e=this.helper,t=this._autoScrollContainer;if(!e||!t){this._stopScrolling();return}let n=this._getClipping(e,t);if(n===0){this._stopScrolling();return}if(!this._autoScrollMaxSpeed){let e=window.innerHeight||document.documentElement.clientHeight;this._autoScrollMaxSpeed=Math.max(e/150,4)}let r=Math.min(Math.abs(n)*.5,this._autoScrollMaxSpeed),i=n>0?r:-r,a=t.scrollTop;if(t.scrollTop+=i,t.scrollTop===a){this._stopScrolling();return}this.dragging&&this.lastDrag&&(this._dragFollow(this.lastDrag),this._callDrag(this.lastDrag)),this._autoScrollAnimId=requestAnimationFrame(this._autoScrollTick)};let n=t?.handle?.substring(1),r=e.gridstackNode;this.dragEls=!n||e.classList.contains(n)?[e]:r?.subGrid?[e.querySelector(t.handle)||e]:this.getAllHandles(),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}getAllHandles(){return Array.from(this.el.querySelectorAll(this.option.handle)).filter(e=>{if(!(e instanceof HTMLElement))return!1;let t=e.closest(`.grid-stack-item`);return t===this.el||!t})}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener(`mousedown`,this._mouseDown),q&&(e.addEventListener(`touchstart`,cn),e.addEventListener(`pointerdown`,un))}),this.el.classList.remove(`ui-draggable-disabled`))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(e=>{e.removeEventListener(`mousedown`,this._mouseDown),q&&(e.removeEventListener(`touchstart`,cn),e.removeEventListener(`pointerdown`,un))}),e||this.el.classList.add(`ui-draggable-disabled`))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(J.touchHandled&&e.isTrusted&&(J.touchHandled=!1),!K.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(gn)||this.option.cancel&&e.target.closest(this.option.cancel)?!0:(this.mouseDownEvent=e,delete this.dragging,delete K.dragElement,delete K.dropElement,delete this._autoScrollMaxSpeed,delete this._autoScrollContainer,document.addEventListener(`mousemove`,this._mouseMove,{capture:!0,passive:!0}),document.addEventListener(`mouseup`,this._mouseUp,!0),q&&(e.currentTarget.addEventListener(`touchmove`,ln),e.currentTarget.addEventListener(`touchend`,Y)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),K.mouseHandled=!0,!0)}_callDrag(e){if(!this.dragging)return;let t=W.initEvent(e,{target:this.el,type:`drag`});this.option.drag&&this.option.drag(t,this.ui()),this.triggerEvent(`drag`,t)}_mouseMove(e){let t=this.mouseDownEvent;if(this.lastDrag=e,this.dragging)if(this._dragFollow(e),K.pauseDrag){let t=Number.isInteger(K.pauseDrag)?K.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(e),t)}else this._callDrag(e);else if(Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>3){this.dragging=!0,K.dragElement=this;let t=this.el.gridstackNode?.grid;t?K.dropElement=t.el.ddElement.ddDroppable:delete K.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=W.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(e,this.el,this.helperContainment),this._setupHelperStyle(e);let n=W.initEvent(e,{target:this.el,type:`dragstart`});this.option.start&&this.option.start(n,this.ui()),this.triggerEvent(`dragstart`,n),document.addEventListener(`keydown`,this._keyEvent)}return!0}_mouseUp(e){if(this._stopScrolling(),document.removeEventListener(`mousemove`,this._mouseMove,!0),document.removeEventListener(`mouseup`,this._mouseUp,!0),q&&e.currentTarget&&(e.currentTarget.removeEventListener(`touchmove`,ln,!0),e.currentTarget.removeEventListener(`touchend`,Y,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener(`keydown`,this._keyEvent),K.dropElement?.el===this.el.parentElement&&delete K.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let t=W.initEvent(e,{target:this.el,type:`dragstop`});this.option.stop&&this.option.stop(t),this.triggerEvent(`dragstop`,t),K.dropElement&&K.dropElement.drop(e)}delete this.helper,delete this.mouseDownEvent,delete K.dragElement,delete K.dropElement,delete K.mouseHandled,e.preventDefault()}_keyEvent(e){let t=this.el.gridstackNode,n=t?.grid||K.dropElement?.el?.gridstack;if(e.key===`Escape`)t&&t._origRotate&&(t._orig=t._origRotate,delete t._origRotate),n?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(t&&n&&(e.key===`r`||e.key===`R`)){if(!W.canBeRotated(t))return;t._origRotate=t._origRotate||{...t._orig},delete t._moving,n.setAnimation(!1).rotate(t.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetX}).setAnimation(),t._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,t.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+`px`,this.helper.style.height=this.dragOffset.height+`px`,W.swap(t._orig,`w`,`h`),delete t._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let t=this.el;return typeof this.option.helper==`function`?t=this.option.helper(this.el):this.option.helper===`clone`&&(t=W.cloneNode(this.el)),t.parentElement||W.appendTo(t,this.option.appendTo===`parent`?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=e.originStyleProp.map(e=>this.el.style[e]),t}_setupHelperStyle(e){this.helper.classList.add(`ui-draggable-dragging`),this.el.gridstackNode?.grid?.el.classList.add(`grid-stack-dragging`);let t=this.helper.style;return t.pointerEvents=`none`,t.width=this.dragOffset.width+`px`,t.height=this.dragOffset.height+`px`,t.willChange=`left, right, top`,t.position=`fixed`,this._dragFollow(e),t.transition=`none`,setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove(`ui-draggable-dragging`),this.el.gridstackNode?.grid?.el.classList.remove(`grid-stack-dragging`),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){let t=this.helper,n=this.dragElementOriginStyle.transition||null;t.style.transition=this.dragElementOriginStyle.transition=`none`,e.originStyleProp.forEach(e=>t.style[e]=this.dragElementOriginStyle[e]||null),setTimeout(()=>t.style.transition=n,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){let t=this.helper.style,n=this.dragOffset;this.option.rtl?(t.right=(window.innerWidth-e.clientX+n.offsetX)*this.dragTransform.xScale+`px`,t.left&&=``):(t.left=(e.clientX+n.offsetX)*this.dragTransform.xScale+`px`,t.right&&=``),t.top=(e.clientY+n.offsetTop)*this.dragTransform.yScale+`px`}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!==`fixed`&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position=`relative`)),this}_getDragOffset(e,t,n){let r=0,i=0;n&&(r=this.dragTransform.xOffset,i=this.dragTransform.yOffset);let a=t.getBoundingClientRect(),o=this.option.rtl?a.right:a.left,s=this.option.rtl?e.clientX-a.right+r:-e.clientX+a.left-r;return{x:o,top:a.top,offsetX:s,offsetTop:-e.clientY+a.top-i,width:a.width*this.dragTransform.xScale,height:a.height*this.dragTransform.yScale}}updateScrollPosition(e){this._autoScrollContainer=W.getScrollElement(e),this._getClipping(this.helper,this._autoScrollContainer)===0?this._stopScrolling():this._autoScrollAnimId||=requestAnimationFrame(this._autoScrollTick)}_getClipping(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight;if(n.bottom<r.top||n.top>r.bottom)return 0;let a=n.bottom-Math.min(r.bottom,i),o=n.top-Math.max(r.top,0);return o<0?o:a>0?a:0}_stopScrolling(){this._autoScrollAnimId&&(cancelAnimationFrame(this._autoScrollAnimId),delete this._autoScrollAnimId)}ui(){let e=this.el.parentElement.getBoundingClientRect(),t=this.helper.getBoundingClientRect(),n=this.option.rtl?(e.right-t.right)*this.dragTransform.xScale:(t.left-e.left)*this.dragTransform.xScale;return{position:{top:(t.top-e.top)*this.dragTransform.yScale,left:n}}}};_n.originStyleProp=[`width`,`height`,`transform`,`transform-origin`,`transition`,`pointerEvents`,`position`,`left`,`right`,`top`,`minWidth`,`willChange`];var vn=class extends mn{constructor(e,t={}){super(),this.el=e,this.option=t,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add(`ui-droppable`),this.el.classList.remove(`ui-droppable-disabled`),this.el.addEventListener(`mouseenter`,this._mouseEnter),this.el.addEventListener(`mouseleave`,this._mouseLeave),q&&(this.el.addEventListener(`pointerenter`,dn),this.el.addEventListener(`pointerleave`,fn)))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove(`ui-droppable`),e||this.el.classList.add(`ui-droppable-disabled`),this.el.removeEventListener(`mouseenter`,this._mouseEnter),this.el.removeEventListener(`mouseleave`,this._mouseLeave),q&&(this.el.removeEventListener(`pointerenter`,dn),this.el.removeEventListener(`pointerleave`,fn)))}destroy(){this.disable(!0),this.el.classList.remove(`ui-droppable`),this.el.classList.remove(`ui-droppable-disabled`),super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this._setupAccept(),this}_mouseEnter(e){if(!K.dragElement||J.touchHandled&&e.isTrusted||!this._canDrop(K.dragElement.el))return;e.preventDefault(),e.stopPropagation(),K.dragElement._stopScrolling(),K.dropElement&&K.dropElement!==this&&K.dropElement._mouseLeave(e,!0),K.dropElement=this;let t=W.initEvent(e,{target:this.el,type:`dropover`});this.option.over&&this.option.over(t,this._ui(K.dragElement)),this.triggerEvent(`dropover`,t),this.el.classList.add(`ui-droppable-over`)}_mouseLeave(e,t=!1){if(!K.dragElement||K.dropElement!==this)return;e.preventDefault(),e.stopPropagation(),t&&K.dragElement._stopScrolling();let n=W.initEvent(e,{target:this.el,type:`dropout`});if(this.option.out&&this.option.out(n,this._ui(K.dragElement)),this.triggerEvent(`dropout`,n),K.dropElement===this&&(delete K.dropElement,!t)){let t,n=this.el.parentElement;for(;!t&&n;)t=n.ddElement?.ddDroppable,n=n.parentElement;t&&t._mouseEnter(e)}}drop(e){e.preventDefault();let t=W.initEvent(e,{target:this.el,type:`drop`});this.option.drop&&this.option.drop(t,this._ui(K.dragElement)),this.triggerEvent(`drop`,t)}_canDrop(e){return e&&(!this.accept||this.accept(e))}_setupAccept(){return this.option.accept&&(typeof this.option.accept==`string`?this.accept=e=>e.classList.contains(this.option.accept)||e.matches(this.option.accept):this.accept=this.option.accept),this}_ui(e){return{draggable:e.el,...e.ui()}}},yn=class e{static init(t){return t.ddElement||=new e(t),t.ddElement}constructor(e){this.el=e}on(e,t){return this.ddDraggable&&[`drag`,`dragstart`,`dragstop`].indexOf(e)>-1?this.ddDraggable.on(e,t):this.ddDroppable&&[`drop`,`dropover`,`dropout`].indexOf(e)>-1?this.ddDroppable.on(e,t):this.ddResizable&&[`resizestart`,`resize`,`resizestop`].indexOf(e)>-1&&this.ddResizable.on(e,t),this}off(e){return this.ddDraggable&&[`drag`,`dragstart`,`dragstop`].indexOf(e)>-1?this.ddDraggable.off(e):this.ddDroppable&&[`drop`,`dropover`,`dropout`].indexOf(e)>-1?this.ddDroppable.off(e):this.ddResizable&&[`resizestart`,`resize`,`resizestop`].indexOf(e)>-1&&this.ddResizable.off(e),this}setupDraggable(e){return this.ddDraggable?this.ddDraggable.updateOption(e):this.ddDraggable=new _n(this.el,e),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(e){return this.ddResizable?this.ddResizable.updateOption(e):this.ddResizable=new hn(this.el,e),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(e){return this.ddDroppable?this.ddDroppable.updateOption(e):this.ddDroppable=new vn(this.el,e),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}},X=new class{resizable(e,t,n,r){return this._getDDElements(e,t).forEach(e=>{if(t===`disable`||t===`enable`)e.ddResizable&&e.ddResizable[t]();else if(t===`destroy`)e.ddResizable&&e.cleanResizable();else if(t===`option`)e.setupResizable({[n]:r});else{let n=e.el.gridstackNode.grid,r=e.el.getAttribute(`gs-resize-handles`)||n.opts.resizable.handles||`e,s,se`;r===`all`&&(r=`n,e,s,w,se,sw,ne,nw`);let i=!n.opts.alwaysShowResizeHandle;e.setupResizable({...n.opts.resizable,handles:r,autoHide:i,start:t.start,stop:t.stop,resize:t.resize,rtl:t.rtl})}}),this}draggable(e,t,n,r){return this._getDDElements(e,t).forEach(e=>{if(t===`disable`||t===`enable`)e.ddDraggable&&e.ddDraggable[t]();else if(t===`destroy`)e.ddDraggable&&e.cleanDraggable();else if(t===`option`)e.setupDraggable({[n]:r});else{let n=e.el.gridstackNode.grid;e.setupDraggable({...n.opts.draggable,start:t.start,stop:t.stop,drag:t.drag,rtl:t.rtl})}}),this}dragIn(e,t){return this._getDDElements(e).forEach(e=>e.setupDraggable(t)),this}droppable(e,t,n,r){return typeof t.accept==`function`&&!t._accept&&(t._accept=t.accept,t.accept=e=>t._accept(e)),this._getDDElements(e,t).forEach(e=>{t===`disable`||t===`enable`?e.ddDroppable&&e.ddDroppable[t]():t===`destroy`?e.ddDroppable&&e.cleanDroppable():t===`option`?e.setupDroppable({[n]:r}):e.setupDroppable(t)}),this}isDroppable(e){return!!(e?.ddElement?.ddDroppable&&!e.ddElement.ddDroppable.disabled)}isDraggable(e){return!!(e?.ddElement?.ddDraggable&&!e.ddElement.ddDraggable.disabled)}isResizable(e){return!!(e?.ddElement?.ddResizable&&!e.ddElement.ddResizable.disabled)}on(e,t,n){return this._getDDElements(e).forEach(e=>e.on(t,e=>{n(e,K.dragElement?K.dragElement.el:e.target,K.dragElement?K.dragElement.helper:null)})),this}off(e,t){return this._getDDElements(e).forEach(e=>e.off(t)),this}_getDDElements(e,t){let n=e.gridstack||t!==`destroy`&&t!==`disable`,r=W.getElements(e);return r.length?r.map(e=>e.ddElement||(n?yn.init(e):null)).filter(e=>e):[]}},Z=class e{static init(t={},n=`.grid-stack`){if(typeof document>`u`)return null;let r=e.getGridElement(n);return r?(r.gridstack||=new e(r,W.cloneDeep(t)),r.gridstack):(console.error(typeof n==`string`?`GridStack.initAll() no grid was found with selector "`+n+`" - element missing or wrong selector ?
|
|
81
|
+
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`:`GridStack.init() no grid element was passed.`),null)}static initAll(t={},n=`.grid-stack`){let r=[];return typeof document>`u`?r:(e.getGridElements(n).forEach(n=>{n.gridstack||=new e(n,W.cloneDeep(t)),r.push(n.gridstack)}),r.length===0&&console.error(`GridStack.initAll() no grid was found with selector "`+n+`" - element missing or wrong selector ?
|
|
82
|
+
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`),r)}static addGrid(t,n={}){if(!t)return null;let r=t;if(r.gridstack){let e=r.gridstack;return n&&(e.opts={...e.opts,...n}),n.children!==void 0&&e.load(n.children),e}return(!t.classList.contains(`grid-stack`)||e.addRemoveCB)&&(r=e.addRemoveCB?e.addRemoveCB(t,n,!0,!0):W.createDiv([`grid-stack`,n.class],t)),e.init(n,r)}static registerEngine(t){e.engineClass=t}get placeholder(){if(!this._placeholder){this._placeholder=W.createDiv([this.opts.placeholderClass,G.itemClass,this.opts.itemClass]);let e=W.createDiv([`placeholder-content`],this._placeholder);this.opts.placeholderText&&(e.textContent=this.opts.placeholderText)}return this._placeholder}constructor(t,n={}){this.el=t,this.opts=n,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},t.gridstack=this,this.opts=n||={},t.classList.contains(`grid-stack`)||this.el.classList.add(`grid-stack`),n.row&&(n.minRow=n.maxRow=n.row,delete n.row);let r=W.toNumber(t.getAttribute(`gs-row`));n.column===`auto`&&delete n.column,n.alwaysShowResizeHandle!==void 0&&(n._alwaysShowResizeHandle=n.alwaysShowResizeHandle);let i=n.columnOpts;if(i){let e=i.breakpoints;!i.columnWidth&&!e?.length?delete n.columnOpts:(i.columnMax=i.columnMax||12,e?.length>1&&e.sort((e,t)=>(t.w||0)-(e.w||0)))}let a={...W.cloneDeep(G),column:W.toNumber(t.getAttribute(`gs-column`))||G.column,minRow:r||W.toNumber(t.getAttribute(`gs-min-row`))||G.minRow,maxRow:r||W.toNumber(t.getAttribute(`gs-max-row`))||G.maxRow,staticGrid:W.toBool(t.getAttribute(`gs-static`))||G.staticGrid,sizeToContent:W.toBool(t.getAttribute(`gs-size-to-content`))||void 0,draggable:{handle:(n.handleClass?`.`+n.handleClass:n.handle?n.handle:``)||G.draggable.handle},removableOptions:{accept:n.itemClass||G.removableOptions.accept,decline:G.removableOptions.decline}};t.getAttribute(`gs-animate`)&&(a.animate=W.toBool(t.getAttribute(`gs-animate`))),n=W.defaults(n,a),this._initMargin(),this.checkDynamicColumn(),this._updateColumnVar(n),n.rtl===`auto`&&(n.rtl=t.style.direction===`rtl`),n.rtl&&this.el.classList.add(`grid-stack-rtl`);let o=this.el.closest(`.`+G.itemClass)?.gridstackNode;if(o&&(o.subGrid=this,this.parentGridNode=o,this.el.classList.add(`grid-stack-nested`),o.el.classList.add(`grid-stack-sub-grid`)),this._isAutoCellHeight=n.cellHeight===`auto`,this._isAutoCellHeight||n.cellHeight===`initial`)this.cellHeight(void 0);else{typeof n.cellHeight==`number`&&n.cellHeightUnit&&n.cellHeightUnit!==G.cellHeightUnit&&(n.cellHeight+=n.cellHeightUnit,delete n.cellHeightUnit);let e=n.cellHeight;delete n.cellHeight,this.cellHeight(e)}n.alwaysShowResizeHandle===`mobile`&&(n.alwaysShowResizeHandle=q),this._setStaticClass();let s=n.engineClass||e.engineClass||an;if(this.engine=new s({column:this.getColumn(),float:n.float,maxRow:n.maxRow,onChange:e=>{e.forEach(e=>{let t=e.el;t&&(e._removeDOM?(t&&t.remove(),delete e._removeDOM):this._writePosAttr(t,e))}),this._updateContainerHeight()}}),n.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(e=>this._prepareElement(e)),delete this.engine._loading,this.batchUpdate(!1)),n.children){let e=n.children;delete n.children,e.length&&this.load(e)}this.setAnimation(),n.subGridDynamic&&!K.pauseDrag&&(K.pauseDrag=!0),n.draggable?.pause!==void 0&&(K.pauseDrag=n.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}_updateColumnVar(e=this.opts){this.el.classList.add(`gs-`+e.column),typeof e.column==`number`&&this.el.style.setProperty(`--gs-column-width`,`${100/e.column}%`)}addWidget(t){if(!t)return;if(typeof t==`string`){console.error(`V11: GridStack.addWidget() does not support string anymore. see #2736`);return}if(t.ELEMENT_NODE)return console.error(`V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()`),this.makeWidget(t);let n,r=t;if(r.grid=this,n=r.el?r.el:e.addRemoveCB?e.addRemoveCB(this.el,t,!0,!1):this.createWidgetDivs(r),!n)return;if(r=n.gridstackNode,r&&n.parentElement===this.el&&this.engine.nodes.find(e=>e._id===r._id))return n;let i=this._readAttr(n);return W.defaults(t,i),this.engine.prepareNode(t),this.el.appendChild(n),this.makeWidget(n,t),n}createWidgetDivs(t){let n=W.createDiv([`grid-stack-item`,this.opts.itemClass]),r=W.createDiv([`grid-stack-item-content`],n);return W.lazyLoad(t)?t.visibleObservable||(t.visibleObservable=new IntersectionObserver(([n])=>{n.isIntersecting&&(t.visibleObservable?.disconnect(),delete t.visibleObservable,e.renderCB(r,t),t.grid?.prepareDragDrop(t.el))}),window.setTimeout(()=>t.visibleObservable?.observe(n))):e.renderCB(r,t),n}makeSubGrid(t,n,r,i=!0){let a=t.gridstackNode;if(a||=this.makeWidget(t).gridstackNode,a.subGrid?.el)return a.subGrid;let o,s=this;for(;s&&!o;)o=s.opts?.subGridOpts,s=s.parentGridNode?.grid;n=W.cloneDeep({...this.opts,id:void 0,children:void 0,column:`auto`,columnOpts:void 0,layout:`list`,subGridOpts:void 0,...o||{},...n||a.subGridOpts||{}}),a.subGridOpts=n;let c;n.column===`auto`&&(c=!0,n.column=Math.max(a.w||1,r?.w||1),delete n.columnOpts);let l=a.el.querySelector(`.grid-stack-item-content`),u,d;if(i&&(this._removeDD(a.el),d={...a,x:0,y:0},W.removeInternalForSave(d),delete d.subGridOpts,a.content&&(d.content=a.content,delete a.content),e.addRemoveCB?u=e.addRemoveCB(this.el,d,!0,!1):(u=W.createDiv([`grid-stack-item`]),u.appendChild(l),l=W.createDiv([`grid-stack-item-content`],a.el)),this.prepareDragDrop(a.el)),r){let e=c?n.column:a.w,t=a.h+r.h,i=a.el.style;i.transition=`none`,this.update(a.el,{w:e,h:t}),setTimeout(()=>i.transition=null)}let f=a.subGrid=e.addGrid(l,n);return r?._moving&&(f._isTemp=!0),c&&(f._autoColumn=!0),i&&f.makeWidget(u,d),r&&(r._moving?window.setTimeout(()=>W.simulateMouseEvent(r._event,`mouseenter`,f.el),0):f.makeWidget(a.el,a)),this.resizeToContentCheck(!1,a),f}removeAsSubGrid(e){let t=this.parentGridNode?.grid;t&&(t.batchUpdate(),t.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(e=>{e.x+=this.parentGridNode.x,e.y+=this.parentGridNode.y,t.makeWidget(e.el,e)}),t.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,e&&window.setTimeout(()=>W.simulateMouseEvent(e._event,`mouseenter`,t.el),0))}save(t=!0,n=!1,r=e.saveCB,i){let a=this.engine.save(t,r,i);if(a.forEach(e=>{if(t&&e.el&&!e.subGrid&&!r)e.content=e.el.querySelector(`.grid-stack-item-content`)?.innerHTML,e.content||delete e.content;else if(!t&&!r&&delete e.content,e.subGrid?.el){let i=e.w||e.subGrid.getColumn(),a=e.subGrid.save(t,n,r,i);e.subGridOpts=n?a:{children:a},delete e.subGrid}delete e.el}),n){let e=W.cloneDeep(this.opts);e.marginBottom===e.marginTop&&e.marginRight===e.marginLeft&&e.marginTop===e.marginRight&&(e.margin=e.marginTop,delete e.marginTop,delete e.marginRight,delete e.marginBottom,delete e.marginLeft),e.rtl===(this.el.style.direction===`rtl`)&&(e.rtl=`auto`),this._isAutoCellHeight&&(e.cellHeight=`auto`),this._autoColumn&&(e.column=`auto`);let t=e._alwaysShowResizeHandle;return delete e._alwaysShowResizeHandle,t===void 0?delete e.alwaysShowResizeHandle:e.alwaysShowResizeHandle=t,W.removeInternalAndSame(e,G),e.children=a,e}return a}load(t,n=e.addRemoveCB||!0){t.forEach(e=>{e.w=e.w||e.minW||1,e.h=e.h||e.minH||1}),t=W.sort(t),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let r=0;t.forEach(e=>{r=Math.max(r,(e.x||0)+e.w)}),r>this.engine.defaultColumn&&(this.engine.defaultColumn=r);let i=this.getColumn();r>i&&(this.engine.nodes.length===0&&this.responseLayout?(this.engine.nodes=t,this.engine.columnChanged(r,i,this.responseLayout),t=this.engine.nodes,this.engine.nodes=[],delete this.responseLayout):this.engine.cacheLayout(t,r,!0));let a=e.addRemoveCB;typeof n==`function`&&(e.addRemoveCB=n);let o=[];this.batchUpdate();let s=!this.engine.nodes.length,c=s&&this.opts.animate;c&&this.setAnimation(!1),!s&&n&&[...this.engine.nodes].forEach(n=>{n.id&&(W.find(t,n.id)||(e.addRemoveCB&&e.addRemoveCB(this.el,n,!1,!1),o.push(n),this.removeWidget(n.el,!0,!1)))}),this.engine._loading=!0;let l=[];return this.engine.nodes=this.engine.nodes.filter(e=>W.find(t,e.id)?(l.push(e),!1):!0),t.forEach(e=>{let t=W.find(l,e.id);if(t){if(W.shouldSizeToContent(t)&&(e.h=t.h),this.engine.nodeBoundFix(e),(e.autoPosition||e.x===void 0||e.y===void 0)&&(e.w=e.w||t.w,e.h=e.h||t.h,this.engine.findEmptyPosition(e)),this.engine.nodes.push(t),W.samePos(t,e)&&this.engine.nodes.length>1&&(this.moveNode(t,{...e,forceCollide:!0}),W.copyPos(e,t)),this.update(t.el,e),e.subGridOpts?.children){let n=t.el.querySelector(`.grid-stack`);n&&n.gridstack&&n.gridstack.load(e.subGridOpts.children)}}else n&&this.addWidget(e)}),delete this.engine._loading,this.engine.removedNodes=o,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,a?e.addRemoveCB=a:delete e.addRemoveCB,c&&this.setAnimation(!0,!0),this}batchUpdate(e=!0){return this.engine.batchUpdate(e),e||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(e=!1){if(this.opts.cellHeight&&this.opts.cellHeight!==`auto`&&(!e||!this.opts.cellHeightUnit||this.opts.cellHeightUnit===`px`))return this.opts.cellHeight;if(this.opts.cellHeightUnit===`rem`)return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit===`em`)return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit===`cm`)return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit===`mm`)return this.opts.cellHeight*(96/2.54)/10;let t=this.el.querySelector(`.`+this.opts.itemClass);if(t){let e=W.toNumber(t.getAttribute(`gs-h`))||1;return Math.round(t.offsetHeight/e)}let n=parseInt(this.el.getAttribute(`gs-current-row`));return n?Math.round(this.el.getBoundingClientRect().height/n):this.opts.cellHeight}cellHeight(e){if(e!==void 0&&this._isAutoCellHeight!==(e===`auto`)&&(this._isAutoCellHeight=e===`auto`,this._updateResizeEvent()),(e===`initial`||e===`auto`)&&(e=void 0),e===void 0){let t=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;e=this.cellWidth()+t}let t=W.parseHeight(e);return this.opts.cellHeightUnit===t.unit&&this.opts.cellHeight===t.h?this:(this.opts.cellHeightUnit=t.unit,this.opts.cellHeight=t.h,this.el.style.setProperty(`--gs-cell-height`,`${this.opts.cellHeight}${this.opts.cellHeightUnit}`),this._updateContainerHeight(),this.resizeToContentCheck(),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(e=!1){return e&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){let e=this.opts.columnOpts;if(!e||!e.columnWidth&&!e.breakpoints?.length)return!1;let t=this.getColumn(),n=t,r=this._widthOrContainer(!0);if(e.columnWidth)n=Math.min(Math.round(r/e.columnWidth)||1,e.columnMax);else{n=e.columnMax;let i=0;for(;i<e.breakpoints.length&&r<=e.breakpoints[i].w;)n=e.breakpoints[i++].c||t}if(n!==t){let t=e.breakpoints?.find(e=>e.c===n);return this.column(n,t?.layout||e.layout),!0}return!1}compact(e=`compact`,t=!0){return this.engine.compact(e,t),this._triggerChangeEvent(),this}column(e,t=`moveScale`){if(!e||e<1||this.opts.column===e)return this;let n=this.getColumn();return this.opts.column=e,this.engine?(this.engine.column=e,this.el.classList.remove(`gs-`+n),this._updateColumnVar(),this.engine.columnChanged(n,e,t),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):(this.responseLayout=t,this)}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(e=>e.matches(`.`+this.opts.itemClass)&&!e.matches(`.`+this.opts.placeholderClass))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(e=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),e?this.el.parentNode.removeChild(this.el):(this.removeAll(e),this.el.removeAttribute(`gs-current-row`)),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(e){return this.opts.float!==e&&(this.opts.float=this.engine.float=e,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(e,t=!1){let n=this.el.getBoundingClientRect(),r;r=t?{top:n.top+document.documentElement.scrollTop,left:n.left}:{top:this.el.offsetTop,left:this.el.offsetLeft};let i=e.left-r.left,a=e.top-r.top,o=n.width/this.getColumn(),s=n.height/parseInt(this.el.getAttribute(`gs-current-row`));return{x:Math.floor(i/o),y:Math.floor(a/s)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow||0)}isAreaEmpty(e,t,n,r){return this.engine.isAreaEmpty(e,t,n,r)}makeWidget(t,n){let r=e.getElement(t);if(!r||r.gridstackNode)return r;r.parentElement||this.el.appendChild(r),this._prepareElement(r,!0,n);let i=r.gridstackNode;this._updateContainerHeight(),i.subGridOpts&&this.makeSubGrid(r,i.subGridOpts,void 0,!1);let a;return this.opts.column===1&&!this._ignoreLayoutsNodeChange&&(a=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),a&&delete this._ignoreLayoutsNodeChange,r}on(e,t){return e.indexOf(` `)===-1?(e===`change`||e===`added`||e===`removed`||e===`enable`||e===`disable`?(e===`enable`||e===`disable`?this._gsEventHandler[e]=e=>t(e):this._gsEventHandler[e]=e=>{e.detail&&t(e,e.detail)},this.el.addEventListener(e,this._gsEventHandler[e])):e===`drag`||e===`dragstart`||e===`dragstop`||e===`resizestart`||e===`resize`||e===`resizestop`||e===`dropped`||e===`resizecontent`?this._gsEventHandler[e]=t:console.error(`GridStack.on(`+e+`) event not supported`),this):(e.split(` `).forEach(e=>this.on(e,t)),this)}off(e){return e.indexOf(` `)===-1?((e===`change`||e===`added`||e===`removed`||e===`enable`||e===`disable`)&&this._gsEventHandler[e]&&this.el.removeEventListener(e,this._gsEventHandler[e]),delete this._gsEventHandler[e],this):(e.split(` `).forEach(e=>this.off(e)),this)}offAll(){return Object.keys(this._gsEventHandler).forEach(e=>this.off(e)),this}removeWidget(t,n=!0,r=!0){return t?(e.getElements(t).forEach(t=>{if(t.parentElement&&t.parentElement!==this.el)return;let i=t.gridstackNode;i||=this.engine.nodes.find(e=>t===e.el),i&&(n&&e.addRemoveCB&&e.addRemoveCB(this.el,i,!1,!1),delete t.gridstackNode,this._removeDD(t),this.engine.removeNode(i,n,r),n&&t.parentElement&&t.remove())}),r&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error(`Error: GridStack.removeWidget(undefined) called`),this)}removeAll(t=!0,n=!0){return this.engine.nodes.forEach(n=>{t&&e.addRemoveCB&&e.addRemoveCB(this.el,n,!1,!1),delete n.el.gridstackNode,this.opts.staticGrid||this._removeDD(n.el)}),this.engine.removeAll(t,n),n&&this._triggerRemoveEvent(),this}setAnimation(e=this.opts.animate,t){return t?setTimeout(()=>{this.opts&&this.setAnimation(e)}):e?this.el.classList.add(`grid-stack-animate`):this.el.classList.remove(`grid-stack-animate`),this.opts.animate=e,this}hasAnimationCSS(){return this.el.classList.contains(`grid-stack-animate`)}setStatic(e,t=!0,n=!0){return!!this.opts.staticGrid===e?this:(e?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(r=>{this.prepareDragDrop(r.el),r.subGrid&&n&&r.subGrid.setStatic(e,t,n)}),t&&this._setStaticClass(),this)}updateOptions(e){let t=this.opts;if(e===t)return this;if(e.acceptWidgets!==void 0&&(t.acceptWidgets=e.acceptWidgets,this._setupAcceptWidget()),e.animate!==void 0&&this.setAnimation(e.animate),e.cellHeight&&this.cellHeight(e.cellHeight),e.class!==void 0&&e.class!==t.class&&(t.class&&this.el.classList.remove(t.class),e.class&&this.el.classList.add(e.class)),e.columnOpts){let t=!!this.opts.columnOpts;this.opts.columnOpts=e.columnOpts,t!==!!this.opts.columnOpts&&this._updateResizeEvent(),this.checkDynamicColumn()}else e.columnOpts===null&&this.opts.columnOpts?(delete this.opts.columnOpts,this._updateResizeEvent()):typeof e.column==`number`&&this.column(e.column);return e.margin!==void 0&&this.margin(e.margin),e.staticGrid!==void 0&&this.setStatic(e.staticGrid),e.disableDrag!==void 0&&!e.staticGrid&&this.enableMove(!e.disableDrag),e.disableResize!==void 0&&!e.staticGrid&&this.enableResize(!e.disableResize),e.float!==void 0&&this.float(e.float),e.row===void 0?(e.minRow!==void 0&&(t.minRow=e.minRow,this._updateContainerHeight()),e.maxRow!==void 0&&(t.maxRow=this.engine.maxRow=e.maxRow)):(t.minRow=t.maxRow=t.row=e.row,this._updateContainerHeight()),e.lazyLoad!==void 0&&(t.lazyLoad=e.lazyLoad),e.children?.length&&this.load(e.children),this}update(t,n){return e.getElements(t).forEach(t=>{let r=t?.gridstackNode;if(!r)return;let i={...W.copyPos({},r),...W.cloneDeep(n)};this.engine.nodeBoundFix(i),delete i.autoPosition;let a=[`x`,`y`,`w`,`h`],o;if(a.some(e=>i[e]!==void 0&&i[e]!==r[e])&&(o={},a.forEach(e=>{o[e]=i[e]===void 0?r[e]:i[e],delete i[e]})),!o&&(i.minW||i.minH||i.maxW||i.maxH)&&(o={}),i.content!==void 0){let n=t.querySelector(`.grid-stack-item-content`);n&&n.textContent!==i.content&&(r.content=i.content,e.renderCB(n,i),r.subGrid?.el&&(n.appendChild(r.subGrid.el),r.subGrid._updateContainerHeight())),delete i.content}let s=!1,c=!1;for(let e in i)e[0]!==`_`&&r[e]!==i[e]&&(r[e]=i[e],s=!0,c||=!this.opts.staticGrid&&(e===`noResize`||e===`noMove`||e===`locked`));if(W.sanitizeMinMax(r),o){let e=o.w!==void 0&&o.w!==r.w;this.moveNode(r,o),e&&r.subGrid?r.subGrid.onResize(this.hasAnimationCSS()?r.w:void 0):this.resizeToContentCheck(e,r),delete r._orig}(o||s)&&this._writeAttr(t,r),c&&this.prepareDragDrop(r.el),e.updateCB&&e.updateCB(r)}),this}moveNode(e,t){let n=e._updating;n||this.engine.cleanNodes().beginUpdate(e),this.engine.moveNode(e,t),this._updateContainerHeight(),n||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(t){if(!t||(t.classList.remove(`size-to-content-max`),!t.clientHeight))return;let n=t.gridstackNode;if(!n)return;let r=n.grid;if(!r||t.parentElement!==r.el)return;let i=r.getCellHeight(!0);if(!i)return;let a=n.h?n.h*i:t.clientHeight,o;if(n.resizeToContentParent&&(o=t.querySelector(n.resizeToContentParent)),o||=t.querySelector(e.resizeToContentParent),!o)return;let s=t.clientHeight-o.clientHeight,c=n.h?n.h*i-s:o.clientHeight,l;if(n.subGrid){l=n.subGrid.getRow()*n.subGrid.getCellHeight(!0);let e=n.subGrid.el.getBoundingClientRect(),r=t.getBoundingClientRect();l+=e.top-r.top}else if(n.subGridOpts?.children?.length)return;else{let t=o.firstElementChild;if(!t){console.error(`Error: GridStack.resizeToContent() widget id:${n.id} '${e.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}l=t.getBoundingClientRect().height||c}if(c===l)return;a+=l-c;let u=Math.ceil(a/i),d=Number.isInteger(n.sizeToContent)?n.sizeToContent:0;d&&u>d&&(u=d,t.classList.add(`size-to-content-max`)),n.minH&&u<n.minH?u=n.minH:n.maxH&&u>n.maxH&&(u=n.maxH),u!==n.h&&(r._ignoreLayoutsNodeChange=!0,r.moveNode(n,{h:u}),delete r._ignoreLayoutsNodeChange)}resizeToContentCBCheck(t){e.resizeToContentCB?e.resizeToContentCB(t):this.resizeToContent(t)}rotate(t,n){return e.getElements(t).forEach(e=>{let t=e.gridstackNode;if(!W.canBeRotated(t))return;let r={w:t.h,h:t.w,minH:t.minW,minW:t.minH,maxH:t.maxW,maxW:t.maxH};if(n){let e=n.left>0?Math.floor(n.left/this.cellWidth()):0,i=n.top>0?Math.floor(n.top/this.opts.cellHeight):0;r.x=t.x+e-(t.h-(i+1)),r.y=t.y+i-e}Object.keys(r).forEach(e=>{r[e]===void 0&&delete r[e]});let i=t._orig;this.update(e,r),t._orig=i}),this}margin(e){if(!(typeof e==`string`&&e.split(` `).length>1)){let t=W.parseHeight(e);if(this.opts.marginUnit===t.unit&&this.opts.margin===t.h)return}return this.opts.margin=e,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this}getMargin(){return this.opts.margin}willItFit(e){return this.engine.willItFit(e)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let e=this.engine.getDirtyNodes(!0);return e&&e.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(e),this._triggerEvent(`change`,e)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(e=>{delete e._dirty});let e=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent(`added`,e)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){let e=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent(`removed`,e)}return this}_triggerEvent(e,t){let n=t?new CustomEvent(e,{bubbles:!1,detail:t}):new Event(e),r=this;for(;r.parentGridNode;)r=r.parentGridNode.grid;return r.el.dispatchEvent(n),this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let e=this.parentGridNode,t=this.getRow()+this._extraDragRow,n=this.opts.cellHeight,r=this.opts.cellHeightUnit;if(!n)return this;if(!e&&!this.opts.minRow){let e=W.parseHeight(getComputedStyle(this.el).minHeight);if(e.h>0&&e.unit===r){let r=Math.floor(e.h/n);t<r&&(t=r)}}return this.el.setAttribute(`gs-current-row`,String(t)),this.el.style.removeProperty(`min-height`),this.el.style.removeProperty(`height`),t&&(this.el.style[e?`minHeight`:`height`]=t*n+r),e&&W.shouldSizeToContent(e)&&e.grid.resizeToContentCBCheck(e.el),this}_prepareElement(e,t=!1,n){n||=this._readAttr(e),e.gridstackNode=n,n.el=e,n.grid=this,n=this.engine.addNode(n,t),this._writeAttr(e,n),e.classList.add(G.itemClass,this.opts.itemClass);let r=W.shouldSizeToContent(n);return r?e.classList.add(`size-to-content`):e.classList.remove(`size-to-content`),r&&this.resizeToContentCheck(!1,n),W.lazyLoad(n)||this.prepareDragDrop(n.el),this}_writePosAttr(e,t){if(!t._moving&&!t._resizing||this._placeholder===e){let n=this.opts.rtl?`right`:`left`;e.style.top=t.y?t.y===1?`var(--gs-cell-height)`:`calc(${t.y} * var(--gs-cell-height))`:null,e.style[n]=t.x?t.x===1?`var(--gs-column-width)`:`calc(${t.x} * var(--gs-column-width))`:null,e.style.width=t.w>1?`calc(${t.w} * var(--gs-column-width))`:null,e.style.height=t.h>1?`calc(${t.h} * var(--gs-cell-height))`:null}return e.setAttribute(`gs-x`,String(t.x)),e.setAttribute(`gs-y`,String(t.y)),t.w>1?e.setAttribute(`gs-w`,String(t.w)):e.removeAttribute(`gs-w`),t.h>1?e.setAttribute(`gs-h`,String(t.h)):e.removeAttribute(`gs-h`),this}_writeAttr(e,t){if(!t)return this;this._writePosAttr(e,t);let n={noResize:`gs-no-resize`,noMove:`gs-no-move`,locked:`gs-locked`,id:`gs-id`,sizeToContent:`gs-size-to-content`};for(let r in n)t[r]?e.setAttribute(n[r],String(t[r])):e.removeAttribute(n[r]);return this}_readAttr(e,t=!0){let n={};n.x=W.toNumber(e.getAttribute(`gs-x`)),n.y=W.toNumber(e.getAttribute(`gs-y`)),n.w=W.toNumber(e.getAttribute(`gs-w`)),n.h=W.toNumber(e.getAttribute(`gs-h`)),n.autoPosition=W.toBool(e.getAttribute(`gs-auto-position`)),n.noResize=W.toBool(e.getAttribute(`gs-no-resize`)),n.noMove=W.toBool(e.getAttribute(`gs-no-move`)),n.locked=W.toBool(e.getAttribute(`gs-locked`));let r=e.getAttribute(`gs-size-to-content`);r&&(r===`true`||r===`false`?n.sizeToContent=W.toBool(r):n.sizeToContent=parseInt(r,10)),n.id=e.getAttribute(`gs-id`),n.maxW=W.toNumber(e.getAttribute(`gs-max-w`)),n.minW=W.toNumber(e.getAttribute(`gs-min-w`)),n.maxH=W.toNumber(e.getAttribute(`gs-max-h`)),n.minH=W.toNumber(e.getAttribute(`gs-min-h`)),t&&(n.w===1&&e.removeAttribute(`gs-w`),n.h===1&&e.removeAttribute(`gs-h`),n.maxW&&e.removeAttribute(`gs-max-w`),n.minW&&e.removeAttribute(`gs-min-w`),n.maxH&&e.removeAttribute(`gs-max-h`),n.minH&&e.removeAttribute(`gs-min-h`));for(let e in n){if(!n.hasOwnProperty(e))return;!n[e]&&n[e]!==0&&e!==`sizeToContent`&&delete n[e]}return n}_setStaticClass(){let e=[`grid-stack-static`];return this.opts.staticGrid?(this.el.classList.add(...e),this.el.setAttribute(`gs-static`,`true`)):(this.el.classList.remove(...e),this.el.removeAttribute(`gs-static`)),this}onResize(e=this.el?.clientWidth){if(!e||this.prevWidth===e)return;this.prevWidth=e,this.batchUpdate();let t=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||`list`),t=!0):t=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(e=>{e.subGrid&&e.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(t),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(e=!1,t=void 0){if(this.engine){if(e&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,t),this.animationDelay);if(t)W.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el);else if(this.engine.nodes.some(e=>W.shouldSizeToContent(e))){let e=[...this.engine.nodes];this.batchUpdate(),e.forEach(e=>{W.shouldSizeToContent(e)&&this.resizeToContentCBCheck(e.el)}),this._ignoreLayoutsNodeChange=!0,this.batchUpdate(!1),this._ignoreLayoutsNodeChange=!1}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,t?[t]:this.engine.nodes)}}_updateResizeEvent(e=!1){let t=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(e=>e.sizeToContent));return!e&&t&&!this.resizeObserver?(this._sizeThrottle=W.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(e||!t)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(e=`.grid-stack-item`){return W.getElement(e)}static getElements(e=`.grid-stack-item`){return W.getElements(e)}static getGridElement(t){return e.getElement(t)}static getGridElements(e){return W.getElements(e)}_initMargin(){let e,t=0,n=[];typeof this.opts.margin==`string`&&(n=this.opts.margin.split(` `)),n.length===2?(this.opts.marginTop=this.opts.marginBottom=n[0],this.opts.marginLeft=this.opts.marginRight=n[1]):n.length===4?(this.opts.marginTop=n[0],this.opts.marginRight=n[1],this.opts.marginBottom=n[2],this.opts.marginLeft=n[3]):(e=W.parseHeight(this.opts.margin),this.opts.marginUnit=e.unit,t=this.opts.margin=e.h),[`marginTop`,`marginRight`,`marginBottom`,`marginLeft`].forEach(n=>{this.opts[n]===void 0?this.opts[n]=t:(e=W.parseHeight(this.opts[n]),this.opts[n]=e.h,delete this.opts.margin)}),this.opts.marginUnit=e.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop);let r=this.el.style;return r.setProperty(`--gs-item-margin-top`,`${this.opts.marginTop}${this.opts.marginUnit}`),r.setProperty(`--gs-item-margin-bottom`,`${this.opts.marginBottom}${this.opts.marginUnit}`),r.setProperty(`--gs-item-margin-right`,`${this.opts.marginRight}${this.opts.marginUnit}`),r.setProperty(`--gs-item-margin-left`,`${this.opts.marginLeft}${this.opts.marginUnit}`),this}static getDD(){return X}static setupDragIn(e,t,n,r=document){t?.pause!==void 0&&(K.pauseDrag=t.pause),t={appendTo:`body`,helper:`clone`,...t||{}},(typeof e==`string`?W.getElements(e,r):e).forEach((e,r)=>{X.isDraggable(e)||X.dragIn(e,t),n?.[r]&&(e.gridstackNode=n[r])})}movable(t,n){return this.opts.staticGrid||e.getElements(t).forEach(e=>{let t=e.gridstackNode;t&&(n?delete t.noMove:t.noMove=!0,this.prepareDragDrop(t.el))}),this}resizable(t,n){return this.opts.staticGrid||e.getElements(t).forEach(e=>{let t=e.gridstackNode;t&&(n?delete t.noResize:t.noResize=!0,this.prepareDragDrop(t.el))}),this}disable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!1,e),this.enableResize(!1,e),this._triggerEvent(`disable`),this}enable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!0,e),this.enableResize(!0,e),this._triggerEvent(`enable`),this}enableMove(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&t&&n.subGrid.enableMove(e,t)}),this)}enableResize(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&t&&n.subGrid.enableResize(e,t)}),this)}cancelDrag(){let t=this._placeholder?.gridstackNode;t&&(t._isExternal?(t._isAboutToRemove=!0,this.engine.removeNode(t)):t._isAboutToRemove&&e._itemRemoving(t.el,!1),this.engine.restoreInitial())}_removeDD(e){return X.draggable(e,`destroy`).resizable(e,`destroy`),e.gridstackNode&&delete e.gridstackNode._initDD,delete e.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return X.droppable(this.el,`destroy`),this;let t,n,r=(e,r,i)=>{i||=r;let a=i.gridstackNode;if(!a)return;if(!a.grid?.el){i.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let t=i.getBoundingClientRect();i.style.left=t.x+(this.dragTransform.xScale-1)*(e.clientX-t.x)/this.dragTransform.xScale+`px`,i.style.top=t.y+(this.dragTransform.yScale-1)*(e.clientY-t.y)/this.dragTransform.yScale+`px`,i.style.transformOrigin=`0px 0px`}let{top:o,left:s}=i.getBoundingClientRect(),c=this.el.getBoundingClientRect();s-=c.left,o-=c.top;let l={position:{top:o*this.dragTransform.xScale,left:s*this.dragTransform.yScale}};if(a._temporaryRemoved){if(a.x=Math.max(0,Math.round(s/n)),a.y=Math.max(0,Math.round(o/t)),delete a.autoPosition,this.engine.nodeBoundFix(a),!this.engine.willItFit(a)){if(a.autoPosition=!0,!this.engine.willItFit(a)){X.off(r,`drag`);return}a._willFitPos&&(W.copyPos(a,a._willFitPos),delete a._willFitPos)}this._onStartMoving(i,e,l,a,n,t)}else this._dragOrResize(i,e,l,a,n,t)};return X.droppable(this.el,{accept:e=>{let t=e.gridstackNode||this._readAttr(e,!1);if(t?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let n=!0;if(typeof this.opts.acceptWidgets==`function`)n=this.opts.acceptWidgets(e);else{let t=this.opts.acceptWidgets===!0?`.grid-stack-item`:this.opts.acceptWidgets;n=e.matches(t)}if(n&&t&&this.opts.maxRow){let e={w:t.w,h:t.h,minW:t.minW,minH:t.minH};n=this.engine.willItFit(e)}return n}}).on(this.el,`dropover`,(i,a,o)=>{let s=o?.gridstackNode||a.gridstackNode;if(s?.grid===this&&!s._temporaryRemoved)return!1;if(s?._sidebarOrig&&(s.w=s._sidebarOrig.w,s.h=s._sidebarOrig.h),s?.grid&&s.grid!==this&&!s._temporaryRemoved&&s.grid._leave(a,o),o||=a,n=this.cellWidth(),t=this.getCellHeight(!0),!s){let e=o.getAttribute(`data-gs-widget`)||o.getAttribute(`gridstacknode`);if(e){try{s=JSON.parse(e)}catch{console.error(`Gridstack dropover: Bad JSON format: `,e)}o.removeAttribute(`data-gs-widget`),o.removeAttribute(`gridstacknode`)}s||=this._readAttr(o),s._sidebarOrig={w:s.w,h:s.h}}s.grid||(s.el||(s={...s}),s._isExternal=!0,o.gridstackNode=s);let c=s.w||Math.round(o.offsetWidth/n)||1,l=s.h||Math.round(o.offsetHeight/t)||1;return s.grid&&s.grid!==this?(a._gridstackNodeOrig||=s,a.gridstackNode=s={...s,w:c,h:l,grid:this},delete s.x,delete s.y,this.engine.cleanupNode(s).nodeBoundFix(s),s._initDD=s._isExternal=s._temporaryRemoved=!0):(s.w=c,s.h=l,s._temporaryRemoved=!0),e._itemRemoving(s.el,!1),X.on(a,`drag`,r),r(i,a,o),!1}).on(this.el,`dropout`,(e,t,n)=>{let r=n?.gridstackNode||t.gridstackNode;return r&&(!r.grid||r.grid===this)&&(this._leave(t,n),this._isTemp&&this.removeAsSubGrid(r)),!1}).on(this.el,`drop`,(t,n,r)=>{let i=r?.gridstackNode||n.gridstackNode;if(i?.grid===this&&!i._isExternal)return!1;let a=!!this.placeholder.parentElement,o=n!==r;this.placeholder.remove(),delete this.placeholder.gridstackNode,a&&this.opts.animate&&(this.setAnimation(!1),this.setAnimation(!0,!0));let s=n._gridstackNodeOrig;if(delete n._gridstackNodeOrig,a&&s?.grid&&s.grid!==this){let e=s.grid;e.engine.removeNodeFromLayoutCache(s),e.engine.removedNodes.push(s),e._triggerRemoveEvent()._triggerChangeEvent(),e.parentGridNode&&!e.engine.nodes.length&&e.opts.subGridDynamic&&e.removeAsSubGrid()}if(!i||(a&&(this.engine.cleanupNode(i),i.grid=this),delete i.grid?._isTemp,X.off(n,`drag`),r===n?n.remove():(r.remove(),n=r),this._removeDD(n),!a))return!1;let c=i.subGrid?.el?.gridstack;return W.copyPos(i,this._readAttr(this.placeholder)),W.removePositioningStyles(n),o&&(i.content||i.subGridOpts||e.addRemoveCB)?(delete i.el,n=this.addWidget(i)):(this._prepareElement(n,!0,i),this.el.appendChild(n),this.resizeToContentCheck(!1,i),c&&(c.parentGridNode=i),this._updateContainerHeight()),this.engine.addedNodes.push(i),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped({...t,type:`dropped`},s&&s.grid?s:void 0,i),!1}),this}static _itemRemoving(e,t){if(!e)return;let n=e?e.gridstackNode:void 0;!n?.grid||e.classList.contains(n.grid.opts.removableOptions.decline)||(t?n._isAboutToRemove=!0:delete n._isAboutToRemove,t?e.classList.add(`grid-stack-item-removing`):e.classList.remove(`grid-stack-item-removing`))}_setupRemoveDrop(){if(typeof this.opts.removable!=`string`)return this;let t=document.querySelector(this.opts.removable);return t&&!this.opts.staticGrid&&!X.isDroppable(t)&&X.droppable(t,this.opts.removableOptions).on(t,`dropover`,(t,n)=>e._itemRemoving(n,!0)).on(t,`dropout`,(t,n)=>e._itemRemoving(n,!1)),this}prepareDragDrop(e,t=!1){let n=e?.gridstackNode;if(!n)return;let r=n.noMove||this.opts.disableDrag,i=n.noResize||this.opts.disableResize,a=this.opts.staticGrid||r&&i;if((t||a)&&(n._initDD&&(this._removeDD(e),delete n._initDD),a))return e.classList.add(`ui-draggable-disabled`,`ui-resizable-disabled`),this;if(!n._initDD){let t,r,i=(i,a)=>{this.triggerEvent(i,i.target),t=this.cellWidth(),r=this.getCellHeight(!0),this._onStartMoving(e,i,a,n,t,r)},a=(i,a)=>{this._dragOrResize(e,i,a,n,t,r)},o=t=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete n._moving,delete n._resizing,delete n._event,delete n._lastTried;let r=n.w!==n._orig.w,i=t.target;if(!(!i.gridstackNode||i.gridstackNode.grid!==this)){if(n.el=i,n._isAboutToRemove){let r=e.gridstackNode.grid;r._gsEventHandler[t.type]&&r._gsEventHandler[t.type](t,i),r.engine.nodes.push(n),r.removeWidget(e,!0,!0)}else W.removePositioningStyles(i),n._temporaryRemoved?(this._writePosAttr(i,n),this.engine.addNode(n)):this._writePosAttr(i,n),this.triggerEvent(t,i);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),t.type===`resizestop`&&(Number.isInteger(n.sizeToContent)&&(n.sizeToContent=n.h),this.resizeToContentCheck(r,n))}};X.draggable(e,{start:i,stop:o,drag:a,rtl:this.opts.rtl}).resizable(e,{start:i,stop:o,resize:a,rtl:this.opts.rtl}),n._initDD=!0}return X.draggable(e,r?`disable`:`enable`).resizable(e,i?`disable`:`enable`),this}_onStartMoving(e,t,n,r,i,a){if(this.engine.cleanNodes().beginUpdate(r),this._writePosAttr(this.placeholder,r),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=r,r.grid?.el)this.dragTransform=W.getValuesFromTransformedElement(e);else if(this.placeholder&&this.placeholder.closest(`.grid-stack`)){let e=this.placeholder.closest(`.grid-stack`);this.dragTransform=W.getValuesFromTransformedElement(e)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(r.el=this.placeholder,r._lastUiPosition=n.position,r._prevYPix=n.position.top,r._moving=t.type===`dragstart`,r._resizing=t.type===`resizestart`,delete r._lastTried,t.type===`dropover`&&r._temporaryRemoved&&(this.engine.addNode(r),r._moving=!0),this.engine.cacheRects(i,a,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),t.type===`resizestart`){let t=this.getColumn()-r.x,n=(this.opts.maxRow||2**53-1)-r.y;X.resizable(e,`option`,`minWidth`,i*Math.min(r.minW||1,t)).resizable(e,`option`,`minHeight`,a*Math.min(r.minH||1,n)).resizable(e,`option`,`maxWidth`,i*Math.min(r.maxW||2**53-1,t)).resizable(e,`option`,`maxWidthMoveLeft`,i*Math.min(r.maxW||2**53-1,r.x+r.w)).resizable(e,`option`,`maxHeight`,a*Math.min(r.maxH||2**53-1,n)).resizable(e,`option`,`maxHeightMoveUp`,a*Math.min(r.maxH||2**53-1,r.y+r.h))}}_dragOrResize(e,t,n,r,i,a){let o={...r._orig},s,c=this.opts.marginLeft,l=this.opts.marginRight,u=this.opts.marginTop,d=this.opts.marginBottom,f=Math.round(a*.1),p=Math.round(i*.1);if(c=Math.min(c,p),l=Math.min(l,p),u=Math.min(u,f),d=Math.min(d,f),t.type===`drag`){if(r._temporaryRemoved)return;r._prevYPix=n.position.top,this.opts.draggable.scroll!==!1&&K.dragElement?.updateScrollPosition(this.el);let e=n.position.left+(n.position.left>r._lastUiPosition.left?-l:c),t=n.position.top+(n.position.top>r._lastUiPosition.top?-d:u);o.x=Math.round(e/i),o.y=Math.round(t/a);let s=this._extraDragRow;if(this.engine.collide(r,o)){let e=this.getRow(),t=Math.max(0,o.y+r.h-e);this.opts.maxRow&&e+t>this.opts.maxRow&&(t=Math.max(0,this.opts.maxRow-e)),this._extraDragRow=t}else this._extraDragRow=0;if(this._extraDragRow!==s&&this._updateContainerHeight(),r.x===o.x&&r.y===o.y)return}else if(t.type===`resize`){if(o.x<0||(W.updateScrollResize(t,e,a),o.w=Math.round((n.size.width-c)/i),o.h=Math.round((n.size.height-u)/a),r.w===o.w&&r.h===o.h)||r._lastTried&&r._lastTried.w===o.w&&r._lastTried.h===o.h)return;if(t.hasMovedX){let e=n.position.left+c;o.x=Math.round(e/i)}if(t.hasMovedY){let e=n.position.top+u;o.y=Math.round(e/a)}s=!0}r._event=t,r._lastTried=o;let m={x:n.position.left+c,y:n.position.top+u,w:(n.size?n.size.width:r.w*i)-c-l,h:(n.size?n.size.height:r.h*a)-u-d};if(this.engine.moveNodeCheck(r,{...o,cellWidth:i,cellHeight:a,rect:m,resizing:s})){r._lastUiPosition=n.position,this.engine.cacheRects(i,a,u,l,d,c),delete r._skipDown,s&&r.subGrid&&r.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let e=t.target;r._sidebarOrig||this._writePosAttr(e,r),this.triggerEvent(t,e)}}triggerEvent(e,t){let n=this;for(;n.parentGridNode;)n=n.parentGridNode.grid;n._gsEventHandler[e.type]&&n._gsEventHandler[e.type](e,t)}_leave(t,n){n||=t;let r=n.gridstackNode;if(!r||(n.style.transform=n.style.transformOrigin=null,X.off(t,`drag`),r._temporaryRemoved))return;r._temporaryRemoved=!0,this.engine.removeNode(r),r.el=r._isExternal&&n?n:t;let i=r._sidebarOrig;r._isExternal&&this.engine.cleanupNode(r),r._sidebarOrig=i,this.opts.removable===!0&&e._itemRemoving(t,!0),t._gridstackNodeOrig?(t.gridstackNode=t._gridstackNodeOrig,delete t._gridstackNodeOrig):r._isExternal&&this.engine.restoreInitial()}};Z.renderCB=(e,t)=>{e&&t?.content&&(e.textContent=t.content)},Z.resizeToContentParent=`.grid-stack-item-content`,Z.Utils=W,Z.Engine=an,Z.GDRev=`12.6.0`;var bn=({gridElement:e,gridItemElements:t,items:n,columns:r,rowHeight:i,viewMode:a,fullTheme:o,onCreateOrUpdateDimensionsHint:s,onRemoveDimensionsHint:c,onChange:l})=>{let[u,d]=qt(o),f={column:r,cellHeight:i,marginTop:u,marginLeft:d,marginRight:d,marginBottom:u,animate:!0,auto:!1,float:!1,removable:!1,acceptWidgets:!0,disableDrag:a,disableResize:a,minRow:1,resizable:{handles:[`n`,`ne`,`e`,`se`,`s`,`sw`,`w`,`nw`].join(`, `)},handle:`.grid-item-drag-handle`},p=Z.init(f,e);return p.batchUpdate(),t.forEach(e=>{let t=e.getAttribute(`luzmo-item-grid-item-id`),r=se(n.find(e=>e.id===t),t??void 0);p.makeWidget(e,r)}),p.batchUpdate(!1),p.on(`resizestart`,(e,t)=>{s(t,t.getAttribute(`gs-w`)??``,t.getAttribute(`gs-h`)??``)}),p.on(`resize`,(e,t)=>{s(t,t.getAttribute(`gs-w`)??``,t.getAttribute(`gs-h`)??``)}),p.on(`resizestop`,(e,t)=>{c(t)}),p.on(`change`,(e,t)=>{l(t)}),p},xn=(e,t)=>{let n=new Map(t.filter(e=>e.id).map(e=>[e.id,e]));return e.map(e=>{let t=e.id?n.get(e.id):void 0;return t?{...e,position:{sizeX:t.w??1,sizeY:t.h??1,row:t.y??0,col:t.x??0}}:e})},Sn=({element:e,numberOfColumns:t,numberOfRows:n,offsetHint:r})=>{let i=e.querySelector(`.dimensions-hint-popover`);if(i){i.style.display=t.length>0&&n.length>0?`block`:`none`,i.textContent=`${t} × ${n}`;return}let a=document.createElement(`div`);a.className=`dimensions-hint-popover`,a.setAttribute(`popover`,`hint`),a.style.display=t.length>0&&n.length>0?`block`:`none`,a.textContent=`${t} × ${n}`,e.append(a),Ft(a,At(e,a,async()=>{let{x:t,y:n}=await Nt(e,a,{placement:`bottom`,middleware:[jt(r),Mt()]});a.style.left=`${t}px`,a.style.top=`${n}px`})),a.matches(`:popover-open`)||a.showPopover()},Cn=e=>{let t=e.querySelector(`.dimensions-hint-popover`);t&&(It(t),t.matches(`:popover-open`)&&t.hidePopover(),t.remove())},wn=({initialized:e,grid:t,hasItemsChanged:n,gridItemElements:r,items:i})=>{!e||!t||!n||(t.setAnimation(!1),t.batchUpdate(),t.removeAll(!1),i.forEach(e=>{let n=le(r,e.id);n&&t.makeWidget(n,se(e,e.id))}),t.batchUpdate(!1),t.setAnimation(!0))},Tn=({initialized:e,grid:t,hasViewModeChanged:n,viewMode:r,previousViewMode:i,activeItemElement:a,gridElement:o,cleanupActiveItem:s})=>{if(!e||!t||!n||r===i)return a;if(r){if(t.disable(),a){s(a),o.removeAttribute(`has-active-item`);return}return a}return t.enable(),a},En=`:host{--luzmo-action-button-content-color-default:var(--luzmo-item-grid-item-action-button-content-color-default,#fff);--luzmo-action-button-content-color-hover:var(--luzmo-item-grid-item-action-button-content-color-hover,#fff);--luzmo-action-button-content-color-down:var(--luzmo-item-grid-item-action-button-content-color-down,#fff);--luzmo-action-button-content-color-focus:var(--luzmo-item-grid-item-action-button-content-color-focus,#fff);--luzmo-action-button-background-color-default:var(--luzmo-item-grid-item-action-button-background-color-default,#333);--luzmo-action-button-background-color-hover:var(--luzmo-item-grid-item-action-button-background-color-hover,#444);--luzmo-action-button-background-color-down:var(--luzmo-item-grid-item-action-button-background-color-down,#555);--luzmo-action-button-background-color-focus:var(--luzmo-item-grid-item-action-button-background-color-focus,#666);--grid-item-actions-flex-direction:column;display:block}.action-buttons{gap:var(--luzmo-item-grid-item-action-group-gap,.5rem);flex-direction:var(--luzmo-item-grid-item-actions-flex-direction,var(--grid-item-actions-flex-direction));outline:none;display:flex}.action-button[selected]{--luzmo-action-button-background-color-default:var(--luzmo-primary);--luzmo-action-button-background-color-hover:var(--luzmo-primary-hover);--luzmo-action-button-background-color-down:var(--luzmo-primary-down);--luzmo-action-button-background-color-focus:var(--luzmo-primary-focus);--luzmo-action-button-content-color-default:var(--luzmo-primary-inverse-color);--luzmo-action-button-content-color-hover:var(--luzmo-primary-inverse-color);--luzmo-action-button-content-color-down:var(--luzmo-primary-inverse-color);--luzmo-action-button-content-color-focus:var(--luzmo-primary-inverse-color)}:host .action-buttons{--luzmo-action-button-content-color-default:var(--luzmo-item-grid-item-action-button-content-color-default,#fff);--luzmo-action-button-content-color-hover:var(--luzmo-item-grid-item-action-button-content-color-hover,#fff);--luzmo-action-button-content-color-down:var(--luzmo-item-grid-item-action-button-content-color-down,#fff);--luzmo-action-button-content-color-focus:var(--luzmo-item-grid-item-action-button-content-color-focus,#fff);--luzmo-action-button-background-color-default:var(--luzmo-item-grid-item-action-button-background-color-default,#333);--luzmo-action-button-background-color-hover:var(--luzmo-item-grid-item-action-button-background-color-hover,#444);--luzmo-action-button-background-color-down:var(--luzmo-item-grid-item-action-button-background-color-down,#555);--luzmo-action-button-background-color-focus:var(--luzmo-item-grid-item-action-button-background-color-focus,#666)}.delete-button{--luzmo-action-button-background-color-hover:var(--luzmo-item-grid-item-delete-button-background-color-hover,var(--luzmo-negative-color));--luzmo-action-button-content-color-hover:var(--luzmo-item-grid-item-delete-button-content-color-hover,#fff);--luzmo-action-button-background-color-focus:var(--luzmo-item-grid-item-delete-button-background-color-focus,var(--luzmo-negative-color-focus));--luzmo-action-button-content-color-focus:var(--luzmo-item-grid-item-delete-button-content-color-focus,#fff);--luzmo-action-button-background-color-down:var(--luzmo-item-grid-item-delete-button-background-color-down,var(--luzmo-negative-color-down));--luzmo-action-button-content-color-down:var(--luzmo-item-grid-item-delete-button-content-color-down,#fff)}:host([placement=top-start]),:host([placement=top]),:host([placement=top-end]),:host([placement=bottom-start]),:host([placement=bottom]),:host([placement=bottom-end]){--grid-item-actions-flex-direction:row}`,Q=class extends e.t(u.LuzmoElement){constructor(...e){super(...e),this.placement=`right-start`,this.actions=Ut()}static get styles(){return[(0,o.unsafeCSS)(En)]}get isVertical(){return this.placement.includes(`left`)||this.placement.includes(`right`)}_dispatchAction(e){this.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{bubbles:!0,composed:!0,detail:{action:e.action,type:e.type,active:e.active}}))}_handleActionClick(e,t){e.stopPropagation(),t.type===`toggle`&&(t.active=!t.active,this.actions.forEach(e=>{e.actions?.forEach(e=>{t!==e&&e.active&&(e.active=!1)})})),this._dispatchAction(t),this.requestUpdate()}clearActiveToggles(){this.actions=this.actions.map(e=>({...e,actions:e.actions?.map(e=>(e.type===`toggle`&&(e.active=!1),e))??[]}))}focus(){let e=this.shadowRoot?.querySelectorAll(`luzmo-action-button[toggles]`);e&&e[0]?.focus()}_generateActionButton(e){let t={Data:(0,c.msg)(`Data`,{desc:`Label for the data section`}),Options:(0,c.msg)(`Options`,{desc:`Label for the options section`}),Clone:(0,c.msg)(`Clone`,{desc:`Grid item action tooltip`}),Delete:(0,c.msg)(`Delete`,{desc:`Delete action label`}),Edit:(0,c.msg)(`Edit`,{desc:`Edit action label`}),Lock:(0,c.msg)(`Lock`,{desc:`Grid item action tooltip`}),Filters:(0,c.msg)(`Filters`,{desc:`Label for the filters section`})};return o.html`
|
|
83
83
|
<luzmo-action-button
|
|
84
84
|
class="${e.action}-button action-button"
|
|
85
85
|
.label=${e.label}
|
|
@@ -88,7 +88,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
|
|
|
88
88
|
@click=${t=>this._handleActionClick(t,e)}
|
|
89
89
|
>
|
|
90
90
|
<luzmo-icon slot="icon" .icon=${e.icon} size="s"></luzmo-icon>
|
|
91
|
-
${e.tooltip?
|
|
91
|
+
${e.tooltip?o.html`
|
|
92
92
|
<luzmo-tooltip
|
|
93
93
|
self-managed
|
|
94
94
|
delayed
|
|
@@ -98,16 +98,16 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
|
|
|
98
98
|
</luzmo-tooltip>
|
|
99
99
|
`:``}
|
|
100
100
|
</luzmo-action-button>
|
|
101
|
-
`}_generateActionGroup(e){let t=e?.actions?.map(e=>this._generateActionButton(e))??[];return t.length>0?
|
|
101
|
+
`}_generateActionGroup(e){let t=e?.actions?.map(e=>this._generateActionButton(e))??[];return t.length>0?o.html`
|
|
102
102
|
<luzmo-action-group ?vertical=${this.isVertical} compact
|
|
103
103
|
>${t}</luzmo-action-group
|
|
104
104
|
>
|
|
105
|
-
`:
|
|
105
|
+
`:o.html`
|
|
106
106
|
|
|
107
|
-
`}render(){let e=this.actions.map(e=>this._generateActionGroup(e));return
|
|
108
|
-
<div class="action-buttons" tabindex="0" role="toolbar" aria-label=${(0,
|
|
109
|
-
`}};e.
|
|
107
|
+
`}render(){let e=this.actions.map(e=>this._generateActionGroup(e));return o.html`
|
|
108
|
+
<div class="action-buttons" tabindex="0" role="toolbar" aria-label=${(0,c.msg)(`Item actions`,{desc:`Item actions toolbar label`})}>${e}</div>
|
|
109
|
+
`}};e.n([(0,s.property)({type:String,reflect:!0})],Q.prototype,`placement`,void 0),e.n([(0,s.property)({type:Array})],Q.prototype,`actions`,void 0),Q=e.n([(0,c.localized)()],Q);var Dn=`:host{width:100%;display:block}.grid-stack{width:100%;min-height:var(--luzmo-item-grid-min-height);background:var(--luzmo-item-grid-background,var(--grid-background,var(--luzmo-background-color)));position:relative}.grid-stack[has-active-item] .grid-stack-item:not([active])>.grid-stack-item-content,.grid-stack[has-active-item] .grid-stack-item:not([active])>.grid-item-actions-popover{opacity:.5}.grid-stack .grid-stack-item[active]>.ui-resizable-handle,.grid-stack .grid-stack-item[active].ui-resizable-autohide>.ui-resizable-handle{display:block}.grid-stack .grid-stack-item.ui-resizable-resizing,.grid-stack .grid-stack-item.ui-resizable-resizing>.grid-stack-item-content{opacity:var(--luzmo-item-grid-item-resizing-opacity,.8)!important}.grid-item-drag-handle{color:var(--luzmo-item-grid-item-drag-handle-color,#000);top:var(--luzmo-item-grid-item-drag-handle-position-top,0);left:var(--luzmo-item-grid-item-drag-handle-position-left,0);right:var(--luzmo-item-grid-item-drag-handle-position-right,auto);bottom:var(--luzmo-item-grid-item-drag-handle-position-bottom,auto);padding:var(--luzmo-item-grid-item-drag-handle-padding,.5rem);z-index:var(--luzmo-item-grid-item-drag-handle-z-index,3);cursor:var(--luzmo-item-grid-item-drag-handle-cursor,move);position:absolute}.grid-stack[dark-background] .grid-item-drag-handle{color:var(--luzmo-item-grid-item-drag-handle-color,#fff)}.grid-stack .grid-stack-item .grid-stack-item-content{border-radius:var(--luzmo-item-grid-item-border-radius,var(--grid-item-border-radius,4px));background:var(--luzmo-item-grid-item-background,var(--grid-item-background,transparent));box-shadow:var(--luzmo-item-grid-item-box-shadow,var(--grid-item-box-shadow,none));border-style:var(--luzmo-item-grid-item-border-style,none);border-color:var(--luzmo-item-grid-item-border-color,transparent);-webkit-backdrop-filter:var(--luzmo-item-grid-item-backdrop-filter,none);backdrop-filter:var(--luzmo-item-grid-item-backdrop-filter,none);overflow:hidden}.grid-stack .grid-stack-item:not(.has-luzmo-viz-item) .grid-stack-item-content{border-style:var(--luzmo-item-grid-item-border-style,var(--grid-item-border-style,none));border-color:var(--luzmo-item-grid-item-border-color,var(--grid-item-border-color,transparent));border-width:var(--luzmo-item-grid-item-border-width,var(--grid-item-border-width,0));border-top-width:var(--luzmo-item-grid-item-border-top-width,var(--grid-item-border-top-width,0));border-right-width:var(--luzmo-item-grid-item-border-right-width,var(--grid-item-border-right-width,0));border-bottom-width:var(--luzmo-item-grid-item-border-bottom-width,var(--grid-item-border-bottom-width,0));border-left-width:var(--luzmo-item-grid-item-border-left-width,var(--grid-item-border-left-width,0))}.grid-stack .grid-stack-placeholder>.placeholder-content{border-radius:var(--grid-item-border-radius,4px)}:host .grid-stack-item[active]>.ui-resizable-handle,:host .grid-stack-item:hover>.ui-resizable-handle{z-index:var(--luzmo-item-grid-resize-handle-z-index,100);background:var(--luzmo-item-grid-resize-handle-background,#fff);border-radius:var(--luzmo-item-grid-resize-handle-border-radius,3px);opacity:var(--luzmo-item-grid-resize-handle-opacity,0);transition:var(--luzmo-item-grid-resize-handle-transition,opacity .2s ease);box-shadow:0 0 6px #0000001a,0 0 2px #000000bf;display:block!important;position:absolute!important}:host .grid-stack[dark-background]>.grid-stack-item[active]>.ui-resizable-handle,:host .grid-stack[dark-background]>.grid-stack-item:hover>.ui-resizable-handle{background:var(--luzmo-item-grid-resize-handle-background,#333);box-shadow:0 0 6px #ffffff1a,0 0 2px #ffffffbf}:host .grid-stack-item[active]>.ui-resizable-handle,:host .grid-stack-item:hover>.ui-resizable-handle{opacity:var(--luzmo-item-grid-resize-handle-opacity-hover,1)}:host .grid-stack-item>.ui-resizable-handle:hover{opacity:var(--luzmo-item-grid-resize-handle-opacity-active,1);background:var(--luzmo-item-grid-resize-handle-background-hover,var(--luzmo-background-color-highlight))}:host .grid-stack-item>.ui-resizable-n,:host .grid-stack-item>.ui-resizable-s{height:var(--luzmo-item-grid-resize-handle-edge-size,8px);width:var(--luzmo-item-grid-resize-handle-side-size,18px);left:calc(50% - var(--luzmo-item-grid-resize-handle-side-size,18px) / 2)}:host .grid-stack-item>.ui-resizable-n{cursor:n-resize;top:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-4px) + var(--gs-item-margin-top,0px))}:host .grid-stack-item>.ui-resizable-s{cursor:s-resize;bottom:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-4px) + var(--gs-item-margin-bottom,0px))}:host .grid-stack-item>.ui-resizable-e,:host .grid-stack-item>.ui-resizable-w{width:var(--luzmo-item-grid-resize-handle-edge-size,8px);height:var(--luzmo-item-grid-resize-handle-side-size,18px);top:calc(50% - var(--luzmo-item-grid-resize-handle-side-size,18px) / 2)}:host .grid-stack-item>.ui-resizable-e{cursor:e-resize;right:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-4px) + var(--gs-item-margin-right,0px))}:host .grid-stack-item>.ui-resizable-w{cursor:w-resize;left:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-4px) + var(--gs-item-margin-left,0px))}:host .grid-stack-item>.ui-resizable-ne,:host .grid-stack-item>.ui-resizable-nw,:host .grid-stack-item>.ui-resizable-se,:host .grid-stack-item>.ui-resizable-sw{width:var(--luzmo-item-grid-resize-handle-corner-size,12px);height:var(--luzmo-item-grid-resize-handle-corner-size,12px);background-image:none;transform:none}:host .grid-stack-item>.ui-resizable-ne{cursor:ne-resize;top:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-6px) + var(--gs-item-margin-top,0px));right:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-6px) + var(--gs-item-margin-right,0px))}:host .grid-stack-item>.ui-resizable-nw{cursor:nw-resize;top:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-6px) + var(--gs-item-margin-top,0px));left:calc(var(--luzmo-item-grid-resize-handle-edge-offset,-6px) + var(--gs-item-margin-left,0px))}:host .grid-stack-item>.ui-resizable-se{cursor:se-resize;right:calc(var(--luzmo-item-grid-resize-handle-corner-offset,-4px) + var(--gs-item-margin-right,0px));bottom:calc(var(--luzmo-item-grid-resize-handle-corner-offset,-4px) + var(--gs-item-margin-bottom,0px))}:host .grid-stack-item>.ui-resizable-sw{cursor:sw-resize;left:calc(var(--luzmo-item-grid-resize-handle-corner-offset,-4px) + var(--gs-item-margin-left,0px));bottom:calc(var(--luzmo-item-grid-resize-handle-corner-offset,-4px) + var(--gs-item-margin-bottom,0px))}:host .grid-stack-item>.ui-resizable-resizing .ui-resizable-handle{background:var(--luzmo-item-grid-resize-handle-background-active,var(--luzmo-background-color-highlight));opacity:1!important}.grid-item-actions-popover{z-index:2;background:0 0;border:none;outline:none;margin:0;padding:0;position:absolute;overflow:visible}.grid-item-actions-popover:not([popover]){z-index:var(--luzmo-item-grid-item-actions-in-tree-z-index,50);position:fixed}luzmo-item-grid-item-actions-menu{padding:var(--luzmo-item-grid-item-actions-padding,var(--grid-item-actions-padding))}.dimensions-hint-popover{font-size:var(--luzmo-item-grid-item-dimensions-hint-font-size,var(--luzmo-font-size-xs,10px));font-family:var(--luzmo-item-grid-item-dimensions-hint-font-family,var(--luzmo-font-family,inherit));border-width:var(--luzmo-item-grid-item-dimensions-hint-border-width,var(--luzmo-border-width));border-style:solid;border-color:var(--luzmo-item-grid-item-dimensions-hint-border-color,var(--luzmo-border-color));border-radius:var(--luzmo-item-grid-item-dimensions-hint-border-radius,var(--luzmo-border-radius));padding:var(--luzmo-item-grid-item-dimensions-hint-padding,var(--luzmo-spacing-1) var(--luzmo-spacing-2));z-index:3;background:var(--luzmo-item-grid-item-dimensions-hint-background,var(--luzmo-background-color));color:var(--luzmo-item-grid-item-dimensions-hint-color,var(--luzmo-font-color));pointer-events:none;outline:none;margin:0;position:absolute;overflow:visible}luzmo-item-grid-item-actions-menu{--grid-item-actions-padding:0 .75rem}luzmo-item-grid-item-actions-menu[placement=top-start],luzmo-item-grid-item-actions-menu[placement=top],luzmo-item-grid-item-actions-menu[placement=top-end],luzmo-item-grid-item-actions-menu[placement=bottom-start],luzmo-item-grid-item-actions-menu[placement=bottom],luzmo-item-grid-item-actions-menu[placement=bottom-end]{--grid-item-actions-padding:.75rem 0}.grid-stack-item:focus-visible{outline:none}.grid-stack-item:focus-visible .grid-stack-item-content:after{content:"";border:var(--luzmo-indicator-width) solid var(--luzmo-indicator-color,var(--luzmo-primary));box-sizing:border-box;border-radius:var(--luzmo-item-grid-item-border-radius,var(--grid-item-border-radius,4px));z-index:2;width:100%;height:100%;position:absolute;top:0;left:0}`,$=class extends u.LuzmoElement{constructor(...e){super(...e),this.appServer=`https://app.luzmo.com/`,this.apiHost=`https://api.luzmo.com`,this.language=`en`,this.contentLanguage=`en`,this.columns=48,this.rowHeight=16,this.viewMode=!1,this.itemActionsDocumentPopover=!0,this.placementItemActionsMenu=`right-start`,this.clonedItemPositioning=`below-item`,this._items=[],this._hasControlledItems=!1,this._initialItems=[],this.renderers={},this._initialized=!1,this.defaultRenderer=e=>o.html`
|
|
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=y(e.target);t&&b({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);h({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=x({event:e,focusedItemElement:this._focusedItemElement,removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this)})},this._handleBlur=e=>{let t=ee({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=C({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`),i=n?.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!==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!==i);h({target:this,action:`delete`,actionType:t.type,active:t.active,items:a,element:n,itemId:i,item:o,updatedItems:e}),this._isItemsControlled||this._setInternalItems(e,{reconcileStates:!0})}else{let e={...structuredClone(o),id:r.t()},i=this._simulateCloneLayout(e,o),s=i.find(t=>t.id===e.id)??e;h({target:this,action:`clone`,actionType:t.type,active:t.active,items:a,element:n,itemId:e.id,item:s,originalElement:n,updatedItems:i}),this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0})}return}if(this._isControlled){if(e.stopPropagation(),!i)return;let r=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);g({target:this,itemStates:e,updatedItemStates:r,changedItemStates:{[i]:[t.action]}})}else h({target:this,action:t.action,actionType:t.type,active:t.active,items:this.items,element:n,itemId:i,item:r});n&&!n.hasAttribute(`active`)&&this._removeItemActionsMenuPopover(n);return}this._suppressItemStatesEvent=!0;let a=S({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,r=a.activeItemElement===n&&a.activeItemActionToggle===t.action,o=this._computeNextItemStates(i,t.action,r);this._internalItemStates=o,g({target:this,itemStates:e,updatedItemStates:o,changedItemStates:this._diffItemStates(e,o)})}}}static get styles(){return[(0,o.unsafeCSS)(f),(0,o.unsafeCSS)(Dn)]}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),wn({initialized:this._initialized,grid:this._grid,hasItemsChanged:a,gridItemElements:this._gridItemElements,items:this._effectiveItems}),r&&this._reconcileStaleItemStates(),t&&p(this._gridItemElements,this.contentLanguage),this._activeItemElement=Tn({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=y(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]}g({target:this,itemStates:t,updatedItemStates:a,changedItemStates:i})}_cleanupActiveItem(e){this._activeItemElement=te({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(h({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),g({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&&g({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=bn({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=xn(t,e);this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),_({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,_({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){Sn({element:e,numberOfColumns:t,numberOfRows:n,offsetHint:Jt(this.theme)})}_removeDimensionsHint(e){Cn(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){_({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 h({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),i={...structuredClone(n),id:r.t()},a=this._simulateCloneLayout(i,n),o=a.find(e=>e.id===i.id)??i;return h({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,g({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 g({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 g({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];g({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.n([(0,s.property)({type:String,attribute:`app-server`,reflect:!0})],$.prototype,`appServer`,void 0),e.n([(0,s.property)({type:String,attribute:`api-host`,reflect:!0})],$.prototype,`apiHost`,void 0),e.n([(0,s.property)({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),e.n([(0,s.property)({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),e.n([(0,s.property)({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),e.n([(0,s.property)({type:String,reflect:!0})],$.prototype,`language`,void 0),e.n([(0,s.property)({type:String,attribute:`content-language`,reflect:!0})],$.prototype,`contentLanguage`,void 0),e.n([(0,s.property)({type:Number,reflect:!0})],$.prototype,`columns`,void 0),e.n([(0,s.property)({type:Number,reflect:!0,attribute:`row-height`})],$.prototype,`rowHeight`,void 0),e.n([(0,s.property)({type:Boolean,reflect:!0,attribute:`view-mode`})],$.prototype,`viewMode`,void 0),e.n([(0,s.property)({type:Boolean,reflect:!0,attribute:`item-actions-document-popover`})],$.prototype,`itemActionsDocumentPopover`,void 0),e.n([(0,s.property)({type:String,reflect:!0,attribute:`placement-item-actions-menu`})],$.prototype,`placementItemActionsMenu`,void 0),e.n([(0,s.property)({type:Array,reflect:!0,attribute:`default-item-actions-menu`})],$.prototype,`defaultItemActionsMenu`,void 0),e.n([(0,s.property)({type:String,reflect:!0,attribute:`cloned-item-positioning`})],$.prototype,`clonedItemPositioning`,void 0),e.n([(0,s.property)({type:Object,reflect:!0})],$.prototype,`theme`,void 0),e.n([(0,s.property)({type:Array,reflect:!1})],$.prototype,`items`,null),e.n([(0,s.property)({type:Array,reflect:!1,attribute:`initial-items`})],$.prototype,`initialItems`,null),e.n([(0,s.property)({type:Object,reflect:!1})],$.prototype,`renderers`,void 0),e.n([(0,s.property)({type:Object,reflect:!1,attribute:`item-states`})],$.prototype,`itemStates`,null),e.n([(0,s.property)({type:Object,reflect:!1,attribute:`initial-item-states`})],$.prototype,`initialItemStates`,void 0),e.n([(0,s.state)()],$.prototype,`_initialized`,void 0),e.n([(0,s.query)(`.grid-stack`)],$.prototype,`_gridElement`,void 0),e.n([(0,s.queryAll)(`.luzmo-item-grid-item`)],$.prototype,`_gridItemElements`,void 0),e.n([(0,s.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 $}});
|