@vc-shell/framework 2.0.0-alpha.8 → 2.0.0-pr221.637b802
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/CHANGELOG.md +549 -532
- package/dist/ai-agent/index.js +13 -0
- package/dist/ai-agent/index.js.map +1 -0
- package/dist/assets/042c75b764bc78a7.svg +1 -0
- package/dist/assets/0ba156439a339f2a.svg +1 -0
- package/dist/assets/0be560bfb22d0e72.woff2 +0 -0
- package/dist/assets/0d67e9e056b4c500.woff +0 -0
- package/dist/assets/0f590f8a94577092.svg +1 -0
- package/dist/assets/0fc5820f8be53a1b.svg +1 -0
- package/dist/assets/105efd028edc1dfe.woff +0 -0
- package/dist/assets/10768e2cc79fc60b.svg +1 -0
- package/dist/assets/11b3d25a56fd9a21.woff2 +0 -0
- package/dist/assets/131b34336aedaf47.woff +0 -0
- package/dist/assets/154365acf3010d96.woff2 +0 -0
- package/dist/assets/157b8721e0600ea8.svg +1 -0
- package/dist/assets/15e91cdd649cde9a.svg +1 -0
- package/dist/assets/19275e398ae57130.woff2 +0 -0
- package/dist/assets/19bb1c668a5db39f.woff2 +0 -0
- package/dist/assets/1a3e84b2457f709a.woff +0 -0
- package/dist/assets/1de63eb118636cce.svg +1 -0
- package/dist/assets/1ea01de36eb5491b.svg +1 -0
- package/dist/assets/2010ada3e82156ed.woff +0 -0
- package/dist/assets/204eaf512fde2023.svg +1 -0
- package/dist/assets/2088983edf42e153.svg +1 -0
- package/dist/assets/208f810a9321a327.svg +1 -0
- package/dist/assets/21220a9d10e6c558.svg +1 -0
- package/dist/assets/220db345a102045d.woff2 +0 -0
- package/dist/assets/225da11d23968333.svg +1 -0
- package/dist/assets/226f862dd81bdc13.woff2 +0 -0
- package/dist/assets/23a2d53395ddb14f.woff +0 -0
- package/dist/assets/259e6ad461a52ad7.svg +1 -0
- package/dist/assets/261e6dec4d53b9ac.woff +0 -0
- package/dist/assets/262f46a0b6d94bb6.svg +1 -0
- package/dist/assets/2857c513073467da.svg +1 -0
- package/dist/assets/2b3be7889467d98f.woff +0 -0
- package/dist/assets/2d4e6190eec72737.svg +1 -0
- package/dist/assets/2eba973185078bc8.woff +0 -0
- package/dist/assets/334d3f6bc766c516.woff +0 -0
- package/dist/assets/34ff7dd0c2285956.svg +1 -0
- package/dist/assets/3d26b7c1ab78bbe2.woff +0 -0
- package/dist/assets/3d892965ab4f1cbb.woff2 +0 -0
- package/dist/assets/3f8c4cc8099e34b6.woff2 +0 -0
- package/dist/assets/3fc09a6113184f16.woff +0 -0
- package/dist/assets/40a0e53b79ce63c6.woff2 +0 -0
- package/dist/assets/41275bcb979cb650.svg +1 -0
- package/dist/assets/434f7982590e462f.woff +0 -0
- package/dist/assets/475937116ee3314a.woff2 +0 -0
- package/dist/assets/477e1881a0394cc5.woff +0 -0
- package/dist/assets/489710fb710e73f0.woff +0 -0
- package/dist/assets/49791943b3872376.woff2 +0 -0
- package/dist/assets/4ae5f23e0ca888e7.woff2 +0 -0
- package/dist/assets/4d7a77b0e5373992.svg +1 -0
- package/dist/assets/4e43c74354534fb3.svg +1 -0
- package/dist/assets/4fe75f5117100705.svg +1 -0
- package/dist/assets/52e261a005074e1b.woff +0 -0
- package/dist/assets/5304c3d05a5f9789.woff2 +0 -0
- package/dist/assets/54cda5482c6c9218.woff +0 -0
- package/dist/assets/550f52072e8ccafe.woff2 +0 -0
- package/dist/assets/572bb1bb4156a9c1.svg +1 -0
- package/dist/assets/6075995d7e74da46.woff2 +0 -0
- package/dist/assets/617c4736236e199e.woff +0 -0
- package/dist/assets/67230f05dc94a265.svg +1 -0
- package/dist/assets/6798e4dd4add9b48.svg +1 -0
- package/dist/assets/686d4077c1e26876.woff2 +0 -0
- package/dist/assets/698ec6c722d4cb05.woff2 +0 -0
- package/dist/assets/6a3e73faf406cf33.svg +1 -0
- package/dist/assets/72de3a63bc0b70dd.svg +1 -0
- package/dist/assets/74c6a6ab81bb6340.woff2 +0 -0
- package/dist/assets/74ed5f8a78e71106.svg +1 -0
- package/dist/assets/7a5aa5abd625137f.ttf +0 -0
- package/dist/assets/7ce0c166fd6a1204.woff +0 -0
- package/dist/assets/7d55399c2a7bc985.svg +1 -0
- package/dist/assets/7d970675c69fca1d.woff +0 -0
- package/dist/assets/7eda727273fd98d3.svg +1 -0
- package/dist/assets/7f6ebfd707b76ca2.woff +0 -0
- package/dist/assets/7fa898d213fcc7bc.woff2 +0 -0
- package/dist/assets/861e6b7192b3b6c7.woff +0 -0
- package/dist/assets/8bbcde81ba21ecb2.woff2 +0 -0
- package/dist/assets/8f6657e5e0b8d3e4.woff +0 -0
- package/dist/assets/910b0d99b9e26568.svg +1 -0
- package/dist/assets/91fe94e424323d61.woff +0 -0
- package/dist/assets/92508f8707159b51.svg +1 -0
- package/dist/assets/9392bf1d591e1abb.svg +1 -0
- package/dist/assets/97e8d4984ba0713a.woff2 +0 -0
- package/dist/assets/9cb83236f6bb7ab1.svg +1 -0
- package/dist/assets/9d37314695c0b68d.woff +0 -0
- package/dist/assets/a03cdcd8da5bb987.woff +0 -0
- package/dist/assets/a18404194e3f9047.svg +1 -0
- package/dist/assets/a2017fe7f0a26510.svg +1 -0
- package/dist/assets/ab6e7190bb1492d5.woff2 +0 -0
- package/dist/assets/abf88f301a0730f4.svg +1 -0
- package/dist/assets/ac1a99b3d05d8232.woff +0 -0
- package/dist/assets/aed17cb6fdad2ada.woff2 +0 -0
- package/dist/assets/b1a596e31ad1185a.svg +1 -0
- package/dist/assets/b27767411c8427be.woff +0 -0
- package/dist/assets/b325adcae33bbe7a.svg +1 -0
- package/dist/assets/b372390551ca2fa1.svg +1 -0
- package/dist/assets/b5bb1e8fc975decd.svg +1 -0
- package/dist/assets/b645a4a2181b9dc1.svg +1 -0
- package/dist/assets/b6499ddce0a4ef7d.svg +1 -0
- package/dist/assets/b7ffde2383bb16ba.woff2 +0 -0
- package/dist/assets/b94421fadd23b0f2.svg +1 -0
- package/dist/assets/bb28fb0f27f1c11b.svg +1 -0
- package/dist/assets/c5195215cb712e9c.woff2 +0 -0
- package/dist/assets/c9191b638a10f67b.woff2 +0 -0
- package/dist/assets/c97328b91ac5cc66.woff +0 -0
- package/dist/assets/ca791c5ca5848a03.svg +1 -0
- package/dist/assets/cb32840ce330103f.woff +0 -0
- package/dist/assets/ccc878931d74181b.woff2 +0 -0
- package/dist/assets/cdc69f8b549c866d.woff2 +0 -0
- package/dist/assets/d084bda16abe8a56.svg +1 -0
- package/dist/assets/d32b129cae2fffd6.svg +1 -0
- package/dist/assets/d35a4c7113315758.woff2 +0 -0
- package/dist/assets/d3f792f54ae4c307.svg +1 -0
- package/dist/assets/d5a5b8630120073d.svg +1 -0
- package/dist/assets/d5eb20bcdcf5616a.woff2 +0 -0
- package/dist/assets/d5f9664ebbfb104b.svg +1 -0
- package/dist/assets/d84247b59449dd88.woff2 +0 -0
- package/dist/assets/da4b7f5883fe7743.woff2 +0 -0
- package/dist/assets/dceaf3b39091e6a4.woff +0 -0
- package/dist/assets/dd05d43ff0df2fc7.svg +1 -0
- package/dist/assets/e2ad5b3428289141.woff +0 -0
- package/dist/assets/e38acaa1757232e0.svg +1 -0
- package/dist/assets/e4a8550f1c7ffe36.svg +1 -0
- package/dist/assets/e5adb5ae3a3698f6.svg +1 -0
- package/dist/assets/e61a1889bac955f4.woff2 +0 -0
- package/dist/assets/e72bb11356af94c7.svg +1 -0
- package/dist/assets/e98196a9f8dcb2f0.svg +1 -0
- package/dist/assets/ebec912a42ad49ff.woff +0 -0
- package/dist/assets/ee6983981ffcbb41.woff2 +0 -0
- package/dist/assets/f09d89268e4c0317.svg +1 -0
- package/dist/assets/f239394367fcf005.woff2 +0 -0
- package/dist/assets/f5722262b6e7214e.woff2 +0 -0
- package/dist/assets/f7fc8bf46089d8b2.svg +1 -0
- package/dist/assets/fc829e3f399b70e0.woff2 +0 -0
- package/dist/assets/fe141d99763f5d2b.woff +0 -0
- package/dist/assets/fed13b0d59903483.svg +1 -0
- package/dist/assets/fed757d2c2344ead.woff2 +0 -0
- package/dist/assets/ffc438f20e79ce73.woff +0 -0
- package/dist/chunks/ExtensionPoint.vue_vue_type_style_index_0_lang-B1R06zHa.js +12 -0
- package/dist/chunks/ExtensionPoint.vue_vue_type_style_index_0_lang-B1R06zHa.js.map +1 -0
- package/dist/chunks/VcAiAgentPanel.vue_vue_type_style_index_0_lang-D0kWIlz3.js +4485 -0
- package/dist/chunks/VcAiAgentPanel.vue_vue_type_style_index_0_lang-D0kWIlz3.js.map +1 -0
- package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-Dh7DDZB9.js +22070 -0
- package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-Dh7DDZB9.js.map +1 -0
- package/dist/chunks/index-BuTo_Lx8.js +72 -0
- package/dist/chunks/index-BuTo_Lx8.js.map +1 -0
- package/dist/chunks/index-CDUdOax4.js +117 -0
- package/dist/chunks/index-CDUdOax4.js.map +1 -0
- package/dist/chunks/vendor-boolbase-DYkUBG-P.js +18 -0
- package/dist/chunks/vendor-boolbase-DYkUBG-P.js.map +1 -0
- package/dist/chunks/vendor-cheerio-DE71XQ9x.js +1053 -0
- package/dist/chunks/vendor-cheerio-DE71XQ9x.js.map +1 -0
- package/dist/chunks/vendor-cheerio-select-D-qK1Cpo.js +191 -0
- package/dist/chunks/vendor-cheerio-select-D-qK1Cpo.js.map +1 -0
- package/dist/chunks/vendor-css-select-DqoO1-RK.js +622 -0
- package/dist/chunks/vendor-css-select-DqoO1-RK.js.map +1 -0
- package/dist/chunks/vendor-css-what-CZZaquJM.js +267 -0
- package/dist/chunks/vendor-css-what-CZZaquJM.js.map +1 -0
- package/dist/chunks/vendor-cypress-signalr-mock-itnm2wpA.js +781 -0
- package/dist/chunks/vendor-cypress-signalr-mock-itnm2wpA.js.map +1 -0
- package/dist/chunks/vendor-d3-array-9cpTrqlO.js +149 -0
- package/dist/chunks/vendor-d3-array-9cpTrqlO.js.map +1 -0
- package/dist/chunks/vendor-d3-axis-D1_DbKLz.js +74 -0
- package/dist/chunks/vendor-d3-axis-D1_DbKLz.js.map +1 -0
- package/dist/chunks/vendor-d3-brush-CcKeJp9e.js +1 -0
- package/dist/chunks/vendor-d3-brush-CcKeJp9e.js.map +1 -0
- package/dist/chunks/vendor-d3-chord-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-color-BOYE6h_9.js +306 -0
- package/dist/chunks/vendor-d3-color-BOYE6h_9.js.map +1 -0
- package/dist/chunks/vendor-d3-dispatch-fx-WMg0D.js +64 -0
- package/dist/chunks/vendor-d3-dispatch-fx-WMg0D.js.map +1 -0
- package/dist/chunks/vendor-d3-drag-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-ease-Cr34gv04.js +8 -0
- package/dist/chunks/vendor-d3-ease-Cr34gv04.js.map +1 -0
- package/dist/chunks/vendor-d3-force-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-format-DaIwZvFc.js +182 -0
- package/dist/chunks/vendor-d3-format-DaIwZvFc.js.map +1 -0
- package/dist/chunks/vendor-d3-geo-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-geo-projection-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-hierarchy-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-interpolate-BYG2gvO4.js +177 -0
- package/dist/chunks/vendor-d3-interpolate-BYG2gvO4.js.map +1 -0
- package/dist/chunks/vendor-d3-interpolate-path-CpGLvKgS.js +299 -0
- package/dist/chunks/vendor-d3-interpolate-path-CpGLvKgS.js.map +1 -0
- package/dist/chunks/vendor-d3-path-DJOTitNW.js +64 -0
- package/dist/chunks/vendor-d3-path-DJOTitNW.js.map +1 -0
- package/dist/chunks/vendor-d3-quadtree-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-sankey-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-scale-CC5rtdt5.js +561 -0
- package/dist/chunks/vendor-d3-scale-CC5rtdt5.js.map +1 -0
- package/dist/chunks/vendor-d3-selection-CNMxsYiL.js +603 -0
- package/dist/chunks/vendor-d3-selection-CNMxsYiL.js.map +1 -0
- package/dist/chunks/vendor-d3-shape-DBhCDMiV.js +925 -0
- package/dist/chunks/vendor-d3-shape-DBhCDMiV.js.map +1 -0
- package/dist/chunks/vendor-d3-time-DAPP210_.js +212 -0
- package/dist/chunks/vendor-d3-time-DAPP210_.js.map +1 -0
- package/dist/chunks/vendor-d3-time-format-hD7iE2WG.js +491 -0
- package/dist/chunks/vendor-d3-time-format-hD7iE2WG.js.map +1 -0
- package/dist/chunks/vendor-d3-timer-C1cUWKPz.js +67 -0
- package/dist/chunks/vendor-d3-timer-C1cUWKPz.js.map +1 -0
- package/dist/chunks/vendor-d3-transition-BbNQT7qF.js +524 -0
- package/dist/chunks/vendor-d3-transition-BbNQT7qF.js.map +1 -0
- package/dist/chunks/vendor-d3-zoom-CcKeJp9e.js +1 -0
- package/dist/chunks/vendor-d3-zoom-CcKeJp9e.js.map +1 -0
- package/dist/chunks/vendor-date-fns-BKO3x1R1.js +3102 -0
- package/dist/chunks/vendor-date-fns-BKO3x1R1.js.map +1 -0
- package/dist/chunks/vendor-dom-serializer-BbVuF1MQ.js +213 -0
- package/dist/chunks/vendor-dom-serializer-BbVuF1MQ.js.map +1 -0
- package/dist/chunks/vendor-domelementtype-B3sFIGaC.js +21 -0
- package/dist/chunks/vendor-domelementtype-B3sFIGaC.js.map +1 -0
- package/dist/chunks/vendor-domhandler-Kufn9M_V.js +311 -0
- package/dist/chunks/vendor-domhandler-Kufn9M_V.js.map +1 -0
- package/dist/chunks/vendor-dompurify-DpIUMBYC.js +560 -0
- package/dist/chunks/vendor-dompurify-DpIUMBYC.js.map +1 -0
- package/dist/chunks/vendor-domutils-DDRq_ial.js +386 -0
- package/dist/chunks/vendor-domutils-DDRq_ial.js.map +1 -0
- package/dist/chunks/vendor-elkjs-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-emotion-cache-eEZT5l-Q.js +274 -0
- package/dist/chunks/vendor-emotion-cache-eEZT5l-Q.js.map +1 -0
- package/dist/chunks/vendor-emotion-hash-DImMRhyK.js +22 -0
- package/dist/chunks/vendor-emotion-hash-DImMRhyK.js.map +1 -0
- package/dist/chunks/vendor-emotion-memoize-BcEUCz8q.js +9 -0
- package/dist/chunks/vendor-emotion-memoize-BcEUCz8q.js.map +1 -0
- package/dist/chunks/vendor-emotion-serialize-BSDW8NwU.js +123 -0
- package/dist/chunks/vendor-emotion-serialize-BSDW8NwU.js.map +1 -0
- package/dist/chunks/vendor-emotion-sheet-CS8ZBl9s.js +44 -0
- package/dist/chunks/vendor-emotion-sheet-CS8ZBl9s.js.map +1 -0
- package/dist/chunks/vendor-emotion-unitless-B7u1PU6w.js +53 -0
- package/dist/chunks/vendor-emotion-unitless-B7u1PU6w.js.map +1 -0
- package/dist/chunks/vendor-emotion-utils-D7refZTM.js +28 -0
- package/dist/chunks/vendor-emotion-utils-D7refZTM.js.map +1 -0
- package/dist/chunks/vendor-emotion-weak-memoize-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-entities-J86Og8IU.js +364 -0
- package/dist/chunks/vendor-entities-J86Og8IU.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-core-BoHdh92a.js +432 -0
- package/dist/chunks/vendor-floating-ui-core-BoHdh92a.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-dom-BvVXFZ4B.js +398 -0
- package/dist/chunks/vendor-floating-ui-dom-BvVXFZ4B.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-utils-CidJRIm2.js +257 -0
- package/dist/chunks/vendor-floating-ui-utils-CidJRIm2.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-vue-sCrhit51.js +121 -0
- package/dist/chunks/vendor-floating-ui-vue-sCrhit51.js.map +1 -0
- package/dist/chunks/vendor-gridstack-Beau2jQ7.js +3460 -0
- package/dist/chunks/vendor-gridstack-Beau2jQ7.js.map +1 -0
- package/dist/chunks/vendor-headlessui-vue-Cn-RMs4E.js +961 -0
- package/dist/chunks/vendor-headlessui-vue-Cn-RMs4E.js.map +1 -0
- package/dist/chunks/vendor-htmlparser2-BxKKzWLL.js +735 -0
- package/dist/chunks/vendor-htmlparser2-BxKKzWLL.js.map +1 -0
- package/dist/chunks/vendor-internmap-Q5729_cS.js +35 -0
- package/dist/chunks/vendor-internmap-Q5729_cS.js.map +1 -0
- package/dist/chunks/vendor-intlify-core-base-Cf8V01l9.js +1141 -0
- package/dist/chunks/vendor-intlify-core-base-Cf8V01l9.js.map +1 -0
- package/dist/chunks/vendor-intlify-message-compiler-h1txdYa8.js +960 -0
- package/dist/chunks/vendor-intlify-message-compiler-h1txdYa8.js.map +1 -0
- package/dist/chunks/vendor-intlify-shared-D4BJYR57.js +144 -0
- package/dist/chunks/vendor-intlify-shared-D4BJYR57.js.map +1 -0
- package/dist/chunks/vendor-iso-639-1-BEjYyfKo.js +784 -0
- package/dist/chunks/vendor-iso-639-1-BEjYyfKo.js.map +1 -0
- package/dist/chunks/vendor-juggle-resize-observer-DiSiNbbT.js +286 -0
- package/dist/chunks/vendor-juggle-resize-observer-DiSiNbbT.js.map +1 -0
- package/dist/chunks/vendor-kdbush-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-leaflet-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-linkify-it-LzoUhj6C.js +199 -0
- package/dist/chunks/vendor-linkify-it-LzoUhj6C.js.map +1 -0
- package/dist/chunks/vendor-linkifyjs-dCH9UYes.js +701 -0
- package/dist/chunks/vendor-linkifyjs-dCH9UYes.js.map +1 -0
- package/dist/chunks/vendor-lodash-es-CfnUOh0o.js +1490 -0
- package/dist/chunks/vendor-lodash-es-CfnUOh0o.js.map +1 -0
- package/dist/chunks/vendor-lodash-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-lucide-vue-next-CwUrzD6N.js +33103 -0
- package/dist/chunks/vendor-lucide-vue-next-CwUrzD6N.js.map +1 -0
- package/dist/chunks/vendor-maplibre-gl-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-markdown-it-Bs9KEWkF.js +2266 -0
- package/dist/chunks/vendor-markdown-it-Bs9KEWkF.js.map +1 -0
- package/dist/chunks/vendor-markdown-it-task-lists-CHKeJZfk.js +69 -0
- package/dist/chunks/vendor-markdown-it-task-lists-CHKeJZfk.js.map +1 -0
- package/dist/chunks/vendor-mdurl-DZFDNdqC.js +192 -0
- package/dist/chunks/vendor-mdurl-DZFDNdqC.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-analytics-js-ufpnHxNR.js +1142 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-analytics-js-ufpnHxNR.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-cfgsync-js-BmGq5cEx.js +247 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-cfgsync-js-BmGq5cEx.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-channel-js-BdtUi1l8.js +1907 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-channel-js-BdtUi1l8.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-core-js-CR3vyuZc.js +8406 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-core-js-CR3vyuZc.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-dependencies-js-DXmYt4tG.js +1441 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-dependencies-js-DXmYt4tG.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-properties-js-CLbNzgkN.js +610 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-properties-js-CLbNzgkN.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-shims-CGX8KXgN.js +44 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-shims-CGX8KXgN.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-web-DzgnK2Mn.js +970 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-web-DzgnK2Mn.js.map +1 -0
- package/dist/chunks/vendor-microsoft-dynamicproto-js-D7567TLZ.js +147 -0
- package/dist/chunks/vendor-microsoft-dynamicproto-js-D7567TLZ.js.map +1 -0
- package/dist/chunks/vendor-microsoft-signalr-Bgpbb4fW.js +1761 -0
- package/dist/chunks/vendor-microsoft-signalr-Bgpbb4fW.js.map +1 -0
- package/dist/chunks/vendor-nevware21-ts-async-BxN_lmkD.js +271 -0
- package/dist/chunks/vendor-nevware21-ts-async-BxN_lmkD.js.map +1 -0
- package/dist/chunks/vendor-nevware21-ts-utils-Dr-hD3q9.js +973 -0
- package/dist/chunks/vendor-nevware21-ts-utils-Dr-hD3q9.js.map +1 -0
- package/dist/chunks/vendor-nth-check-D0N1qpsw.js +45 -0
- package/dist/chunks/vendor-nth-check-D0N1qpsw.js.map +1 -0
- package/dist/chunks/vendor-orderedmap-B3SOk52B.js +103 -0
- package/dist/chunks/vendor-orderedmap-B3SOk52B.js.map +1 -0
- package/dist/chunks/vendor-parse5-htmlparser2-tree-adapter-BUDJ887-.js +143 -0
- package/dist/chunks/vendor-parse5-htmlparser2-tree-adapter-BUDJ887-.js.map +1 -0
- package/dist/chunks/vendor-parse5-zq5Hn0y9.js +5749 -0
- package/dist/chunks/vendor-parse5-zq5Hn0y9.js.map +1 -0
- package/dist/chunks/vendor-prettier-2Sf6a5jB.js +5309 -0
- package/dist/chunks/vendor-prettier-2Sf6a5jB.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-commands-BaRVaTVO.js +385 -0
- package/dist/chunks/vendor-prosemirror-commands-BaRVaTVO.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-dropcursor-PuLxL9JM.js +86 -0
- package/dist/chunks/vendor-prosemirror-dropcursor-PuLxL9JM.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-gapcursor-C7MEx13L.js +203 -0
- package/dist/chunks/vendor-prosemirror-gapcursor-C7MEx13L.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-history-_AfZxoMt.js +248 -0
- package/dist/chunks/vendor-prosemirror-history-_AfZxoMt.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-keymap-tvZqK1zZ.js +62 -0
- package/dist/chunks/vendor-prosemirror-keymap-tvZqK1zZ.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-markdown-rpUTSG_Q.js +663 -0
- package/dist/chunks/vendor-prosemirror-markdown-rpUTSG_Q.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-model-DAA3avbR.js +2730 -0
- package/dist/chunks/vendor-prosemirror-model-DAA3avbR.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-schema-list-qDgvFydE.js +87 -0
- package/dist/chunks/vendor-prosemirror-schema-list-qDgvFydE.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-state-BvFA7AjG.js +821 -0
- package/dist/chunks/vendor-prosemirror-state-BvFA7AjG.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-tables-CbmHRq4G.js +1414 -0
- package/dist/chunks/vendor-prosemirror-tables-CbmHRq4G.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-transform-DVGD47fI.js +1541 -0
- package/dist/chunks/vendor-prosemirror-transform-DVGD47fI.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-view-BW4UqvjQ.js +3802 -0
- package/dist/chunks/vendor-prosemirror-view-BW4UqvjQ.js.map +1 -0
- package/dist/chunks/vendor-punycode-js-CgGegfA_.js +133 -0
- package/dist/chunks/vendor-punycode-js-CgGegfA_.js.map +1 -0
- package/dist/chunks/vendor-rope-sequence-BWC2FSrq.js +100 -0
- package/dist/chunks/vendor-rope-sequence-BWC2FSrq.js.map +1 -0
- package/dist/chunks/vendor-sortablejs-Bsvu-FKn.js +1276 -0
- package/dist/chunks/vendor-sortablejs-Bsvu-FKn.js.map +1 -0
- package/dist/chunks/vendor-striptags-DtlgQudQ.js +120 -0
- package/dist/chunks/vendor-striptags-DtlgQudQ.js.map +1 -0
- package/dist/chunks/vendor-stylis-ClfDrgKE.js +334 -0
- package/dist/chunks/vendor-stylis-ClfDrgKE.js.map +1 -0
- package/dist/chunks/vendor-supercluster-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-swiper-BgqGfw3Y.js +3800 -0
- package/dist/chunks/vendor-swiper-BgqGfw3Y.js.map +1 -0
- package/dist/chunks/vendor-tanstack-virtual-core-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-tanstack-vue-virtual-CD9yLWd7.js +1 -0
- package/dist/chunks/vendor-tanstack-vue-virtual-CD9yLWd7.js.map +1 -0
- package/dist/chunks/vendor-three-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-throttle-debounce-CX0imT7m.js +28 -0
- package/dist/chunks/vendor-throttle-debounce-CX0imT7m.js.map +1 -0
- package/dist/chunks/vendor-tiptap-core-CZbeo7XQ.js +3944 -0
- package/dist/chunks/vendor-tiptap-core-CZbeo7XQ.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-blockquote-B8uwrgnZ.js +60 -0
- package/dist/chunks/vendor-tiptap-extension-blockquote-B8uwrgnZ.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-bold-Ch9pbrZY.js +80 -0
- package/dist/chunks/vendor-tiptap-extension-bold-Ch9pbrZY.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-code-CVh_mZgz.js +52 -0
- package/dist/chunks/vendor-tiptap-extension-code-CVh_mZgz.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-code-block-CfoUSR2N.js +215 -0
- package/dist/chunks/vendor-tiptap-extension-code-block-CfoUSR2N.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-document-C4tn-v0L.js +12 -0
- package/dist/chunks/vendor-tiptap-extension-document-C4tn-v0L.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-hard-break-CbK1eM89.js +59 -0
- package/dist/chunks/vendor-tiptap-extension-hard-break-CbK1eM89.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-heading-BlkYF-RD.js +63 -0
- package/dist/chunks/vendor-tiptap-extension-heading-BlkYF-RD.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-horizontal-rule-DjMOsQCA.js +56 -0
- package/dist/chunks/vendor-tiptap-extension-horizontal-rule-DjMOsQCA.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-image-BpqLcXdw.js +128 -0
- package/dist/chunks/vendor-tiptap-extension-image-BpqLcXdw.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-italic-YDdh6jEW.js +79 -0
- package/dist/chunks/vendor-tiptap-extension-italic-YDdh6jEW.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-link-CETrc0Mo.js +312 -0
- package/dist/chunks/vendor-tiptap-extension-link-CETrc0Mo.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-list-DsiDvJxK.js +753 -0
- package/dist/chunks/vendor-tiptap-extension-list-DsiDvJxK.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-paragraph-Bcss4jc0.js +49 -0
- package/dist/chunks/vendor-tiptap-extension-paragraph-Bcss4jc0.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-placeholder-ClNjQXk_.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-placeholder-ClNjQXk_.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-strike-BZiBed9b.js +64 -0
- package/dist/chunks/vendor-tiptap-extension-strike-BZiBed9b.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-QVjcLO_H.js +409 -0
- package/dist/chunks/vendor-tiptap-extension-table-QVjcLO_H.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-cell-CuXZTKj8.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-cell-CuXZTKj8.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-header-CuXZTKj8.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-header-CuXZTKj8.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-row-CuXZTKj8.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-row-CuXZTKj8.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-text-Wofhchrp.js +13 -0
- package/dist/chunks/vendor-tiptap-extension-text-Wofhchrp.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-text-style-Bc6nvmn0.js +235 -0
- package/dist/chunks/vendor-tiptap-extension-text-style-Bc6nvmn0.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-underline-Bo1pXXDN.js +65 -0
- package/dist/chunks/vendor-tiptap-extension-underline-Bo1pXXDN.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extensions-D7eaegpB.js +299 -0
- package/dist/chunks/vendor-tiptap-extensions-D7eaegpB.js.map +1 -0
- package/dist/chunks/vendor-tiptap-markdown-18K1hcU0.js +826 -0
- package/dist/chunks/vendor-tiptap-markdown-18K1hcU0.js.map +1 -0
- package/dist/chunks/vendor-tiptap-pm-yqZPZQMU.js +1 -0
- package/dist/chunks/vendor-tiptap-pm-yqZPZQMU.js.map +1 -0
- package/dist/chunks/vendor-tiptap-starter-kit-ny-AoaO_.js +28 -0
- package/dist/chunks/vendor-tiptap-starter-kit-ny-AoaO_.js.map +1 -0
- package/dist/chunks/vendor-tiptap-vue-3-BNAw8onj.js +157 -0
- package/dist/chunks/vendor-tiptap-vue-3-BNAw8onj.js.map +1 -0
- package/dist/chunks/vendor-topojson-client-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-truncate-html-ChA1T5zy.js +145 -0
- package/dist/chunks/vendor-truncate-html-ChA1T5zy.js.map +1 -0
- package/dist/chunks/vendor-tslib-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-uc-micro-4lbSaZOs.js +17 -0
- package/dist/chunks/vendor-uc-micro-4lbSaZOs.js.map +1 -0
- package/dist/chunks/vendor-unovis-dagre-layout-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-unovis-graphlibrary-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-unovis-ts-stSsHr9j.js +2382 -0
- package/dist/chunks/vendor-unovis-ts-stSsHr9j.js.map +1 -0
- package/dist/chunks/vendor-unovis-vue-CZWGT3-0.js +446 -0
- package/dist/chunks/vendor-unovis-vue-CZWGT3-0.js.map +1 -0
- package/dist/chunks/vendor-vee-validate-i18n-zT8NxX3R.js +93 -0
- package/dist/chunks/vendor-vee-validate-i18n-zT8NxX3R.js.map +1 -0
- package/dist/chunks/vendor-vee-validate-rules-4oWUZPpG.js +316 -0
- package/dist/chunks/vendor-vee-validate-rules-4oWUZPpG.js.map +1 -0
- package/dist/chunks/vendor-vue-currency-input-CckB4kjx.js +317 -0
- package/dist/chunks/vendor-vue-currency-input-CckB4kjx.js.map +1 -0
- package/dist/chunks/vendor-vue-demi-CD9yLWd7.js +1 -0
- package/dist/chunks/vendor-vue-demi-CD9yLWd7.js.map +1 -0
- package/dist/chunks/vendor-vue-devtools-api-aVYGocXp.js +93 -0
- package/dist/chunks/vendor-vue-devtools-api-aVYGocXp.js.map +1 -0
- package/dist/chunks/vendor-vue-i18n-LO-EJStU.js +1369 -0
- package/dist/chunks/vendor-vue-i18n-LO-EJStU.js.map +1 -0
- package/dist/chunks/vendor-vue3-application-insights-CAgbt8pk.js +69 -0
- package/dist/chunks/vendor-vue3-application-insights-CAgbt8pk.js.map +1 -0
- package/dist/chunks/vendor-vue3-touch-events-DqysuuWh.js +169 -0
- package/dist/chunks/vendor-vue3-touch-events-DqysuuWh.js.map +1 -0
- package/dist/chunks/vendor-vuepic-vue-datepicker-CaZ_qpJp.js +4998 -0
- package/dist/chunks/vendor-vuepic-vue-datepicker-CaZ_qpJp.js.map +1 -0
- package/dist/chunks/vendor-vueuse-components-BW7i7Uhb.js +219 -0
- package/dist/chunks/vendor-vueuse-components-BW7i7Uhb.js.map +1 -0
- package/dist/chunks/vendor-vueuse-core-CEdpDfzx.js +586 -0
- package/dist/chunks/vendor-vueuse-core-CEdpDfzx.js.map +1 -0
- package/dist/chunks/vendor-vueuse-shared-BlCOXw5g.js +149 -0
- package/dist/chunks/vendor-vueuse-shared-BlCOXw5g.js.map +1 -0
- package/dist/chunks/vendor-w3c-keyname-CLxH8j-f.js +92 -0
- package/dist/chunks/vendor-w3c-keyname-CLxH8j-f.js.map +1 -0
- package/dist/chunks/vendor-web-vitals-ByFgAM-8.js +215 -0
- package/dist/chunks/vendor-web-vitals-ByFgAM-8.js.map +1 -0
- package/dist/core/api/platform.d.ts +304 -958
- package/dist/core/api/platform.d.ts.map +1 -1
- package/dist/core/blade-navigation/bladeConfigRegistry.d.ts +21 -0
- package/dist/core/blade-navigation/bladeConfigRegistry.d.ts.map +1 -0
- package/dist/core/blade-navigation/index.d.ts +5 -0
- package/dist/core/blade-navigation/index.d.ts.map +1 -0
- package/dist/core/blade-navigation/singletons.d.ts +21 -0
- package/dist/core/blade-navigation/singletons.d.ts.map +1 -0
- package/dist/core/blade-navigation/types/index.d.ts +252 -0
- package/dist/core/blade-navigation/types/index.d.ts.map +1 -0
- package/dist/core/blade-navigation/useBladeMessaging.d.ts +18 -0
- package/dist/core/blade-navigation/useBladeMessaging.d.ts.map +1 -0
- package/dist/core/blade-navigation/useBladeStack.d.ts +19 -0
- package/dist/core/blade-navigation/useBladeStack.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/bladeRouterGuard.d.ts +32 -0
- package/dist/core/blade-navigation/utils/bladeRouterGuard.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/navigateToMainRoute.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/restoreFromUrl.d.ts +24 -0
- package/dist/core/blade-navigation/utils/restoreFromUrl.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/urlSync.d.ts +54 -0
- package/dist/core/blade-navigation/utils/urlSync.d.ts.map +1 -0
- package/dist/core/composables/bladeContext/index.d.ts +29 -0
- package/dist/core/composables/bladeContext/index.d.ts.map +1 -0
- package/dist/core/composables/index.d.ts +7 -1
- package/dist/core/composables/index.d.ts.map +1 -1
- package/dist/core/composables/useAppBarMobileButtons/index.d.ts.map +1 -1
- package/dist/core/composables/useAppInsights/index.d.ts +2 -1
- package/dist/core/composables/useAppInsights/index.d.ts.map +1 -1
- package/dist/core/composables/useAssets/index.d.ts.map +1 -1
- package/dist/core/composables/useAssetsManager/index.d.ts +24 -0
- package/dist/core/composables/useAssetsManager/index.d.ts.map +1 -0
- package/dist/core/composables/useAsync/index.d.ts.map +1 -1
- package/dist/core/composables/useBlade/index.d.ts +34 -27
- package/dist/core/composables/useBlade/index.d.ts.map +1 -1
- package/dist/core/composables/useBladeForm/index.d.ts +17 -0
- package/dist/core/composables/useBladeForm/index.d.ts.map +1 -0
- package/dist/core/composables/useBladeForm/types.d.ts +40 -0
- package/dist/core/composables/useBladeForm/types.d.ts.map +1 -0
- package/dist/core/composables/useBladeNavigationAdapter/index.d.ts +33 -0
- package/dist/core/composables/useBladeNavigationAdapter/index.d.ts.map +1 -0
- package/dist/core/composables/useBladeRegistry/index.d.ts +1 -1
- package/dist/core/composables/useBladeRegistry/index.d.ts.map +1 -1
- package/dist/core/composables/useBladeWidgets/index.d.ts +49 -0
- package/dist/core/composables/useBladeWidgets/index.d.ts.map +1 -0
- package/dist/core/composables/useBreadcrumbs/index.d.ts +1 -1
- package/dist/core/composables/useBreadcrumbs/index.d.ts.map +1 -1
- package/dist/core/composables/useConnectionStatus/index.d.ts.map +1 -1
- package/dist/core/composables/useDynamicProperties/index.d.ts +3 -69
- package/dist/core/composables/useDynamicProperties/index.d.ts.map +1 -1
- package/dist/core/composables/useDynamicProperties/strategies/boolean.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/boolean.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/color.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/color.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/dictionary.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/dictionary.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/index.d.ts +4 -0
- package/dist/core/composables/useDynamicProperties/strategies/index.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/measure.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/measure.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/regular.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/regular.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/types.d.ts +16 -0
- package/dist/core/composables/useDynamicProperties/strategies/types.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/types.d.ts +70 -0
- package/dist/core/composables/useDynamicProperties/types.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/utils.d.ts +10 -0
- package/dist/core/composables/useDynamicProperties/utils.d.ts.map +1 -0
- package/dist/core/composables/useExternalProvider/index.d.ts +12 -0
- package/dist/core/composables/useExternalProvider/index.d.ts.map +1 -0
- package/dist/core/composables/useFunctions/debounce.d.ts.map +1 -1
- package/dist/core/composables/useMenuExpanded/index.d.ts +9 -0
- package/dist/core/composables/useMenuExpanded/index.d.ts.map +1 -0
- package/dist/core/composables/useModificationTracker/index.d.ts.map +1 -0
- package/dist/core/composables/useNotifications/index.d.ts +3 -8
- package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
- package/dist/core/composables/usePermissions/index.d.ts.map +1 -1
- package/dist/core/composables/usePlatformLocaleSync/index.d.ts +17 -0
- package/dist/core/composables/usePlatformLocaleSync/index.d.ts.map +1 -0
- package/dist/core/composables/usePopup/index.d.ts +12 -0
- package/dist/core/composables/usePopup/index.d.ts.map +1 -0
- package/dist/core/composables/usePopup/keys.d.ts +4 -0
- package/dist/core/composables/usePopup/keys.d.ts.map +1 -0
- package/dist/core/composables/usePopup/preset-registry.d.ts +7 -0
- package/dist/core/composables/usePopup/preset-registry.d.ts.map +1 -0
- package/dist/core/composables/usePopup/singleton.d.ts +6 -0
- package/dist/core/composables/usePopup/singleton.d.ts.map +1 -0
- package/dist/core/composables/usePopup/types.d.ts +22 -0
- package/dist/core/composables/usePopup/types.d.ts.map +1 -0
- package/dist/core/composables/useResponsive/index.d.ts +26 -0
- package/dist/core/composables/useResponsive/index.d.ts.map +1 -0
- package/dist/core/composables/useSidebarState/index.d.ts.map +1 -1
- package/dist/core/composables/useSlowNetworkDetection/index.d.ts +10 -0
- package/dist/core/composables/useSlowNetworkDetection/index.d.ts.map +1 -0
- package/dist/core/composables/useTheme/index.d.ts.map +1 -1
- package/dist/core/composables/useToolbar/index.d.ts.map +1 -1
- package/dist/core/composables/useUser/index.d.ts +1 -0
- package/dist/core/composables/useUser/index.d.ts.map +1 -1
- package/dist/core/composables/useUserManagement/index.d.ts.map +1 -1
- package/dist/core/composables/useWidgets/index.d.ts +4 -0
- package/dist/core/composables/useWidgets/index.d.ts.map +1 -1
- package/dist/core/constants/index.d.ts +0 -1
- package/dist/core/constants/index.d.ts.map +1 -1
- package/dist/core/directives/index.d.ts +2 -0
- package/dist/core/directives/index.d.ts.map +1 -1
- package/dist/core/interceptors/index.d.ts.map +1 -1
- package/dist/core/notifications/composables/index.d.ts +5 -0
- package/dist/core/notifications/composables/index.d.ts.map +1 -0
- package/dist/core/notifications/composables/useBladeNotifications.d.ts +13 -0
- package/dist/core/notifications/composables/useBladeNotifications.d.ts.map +1 -0
- package/dist/core/notifications/composables/useBroadcastFilter.d.ts +7 -0
- package/dist/core/notifications/composables/useBroadcastFilter.d.ts.map +1 -0
- package/dist/core/notifications/composables/useNotificationContext.d.ts +4 -0
- package/dist/core/notifications/composables/useNotificationContext.d.ts.map +1 -0
- package/dist/core/notifications/composables/useNotificationStore.d.ts +11 -0
- package/dist/core/notifications/composables/useNotificationStore.d.ts.map +1 -0
- package/dist/core/notifications/index.d.ts +11 -0
- package/dist/core/notifications/index.d.ts.map +1 -0
- package/dist/core/notifications/notification.d.ts +37 -0
- package/dist/core/notifications/notification.d.ts.map +1 -0
- package/dist/core/notifications/store.d.ts +31 -0
- package/dist/core/notifications/store.d.ts.map +1 -0
- package/dist/core/notifications/toast-controller.d.ts +7 -0
- package/dist/core/notifications/toast-controller.d.ts.map +1 -0
- package/dist/core/notifications/toast-types.d.ts +27 -0
- package/dist/core/notifications/toast-types.d.ts.map +1 -0
- package/dist/core/notifications/types.d.ts +48 -0
- package/dist/core/notifications/types.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/components/VcAiAgentPanel.vue.d.ts +2 -1
- package/dist/core/plugins/ai-agent/components/VcAiAgentPanel.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts +5 -3
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts +2 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue.d.ts +2 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue.d.ts +2 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/composables/index.d.ts +1 -1
- package/dist/core/plugins/ai-agent/composables/index.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts +2 -10
- package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts +2 -3
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/index.d.ts +2 -2
- package/dist/core/plugins/ai-agent/index.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/public.d.ts +12 -0
- package/dist/core/plugins/ai-agent/public.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts +2 -4
- package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/services/context-manager.d.ts +21 -0
- package/dist/core/plugins/ai-agent/services/context-manager.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/services/message-transport.d.ts +29 -0
- package/dist/core/plugins/ai-agent/services/message-transport.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/services/panel-controller.d.ts +16 -0
- package/dist/core/plugins/ai-agent/services/panel-controller.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/types.d.ts +2 -2
- package/dist/core/plugins/ai-agent/types.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/utils/deep-merge-changes.d.ts +16 -0
- package/dist/core/plugins/ai-agent/utils/deep-merge-changes.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/utils/index.d.ts +2 -0
- package/dist/core/plugins/ai-agent/utils/index.d.ts.map +1 -0
- package/dist/core/plugins/extension-points/ExtensionPoint.vue.d.ts +3 -2
- package/dist/core/plugins/extension-points/ExtensionPoint.vue.d.ts.map +1 -1
- package/dist/core/plugins/extension-points/public.d.ts +8 -0
- package/dist/core/plugins/extension-points/public.d.ts.map +1 -0
- package/dist/core/plugins/extension-points/store.d.ts.map +1 -1
- package/dist/core/plugins/modularity/index.d.ts +44 -30
- package/dist/core/plugins/modularity/index.d.ts.map +1 -1
- package/dist/core/plugins/signalR/index.d.ts +2 -6
- package/dist/core/plugins/signalR/index.d.ts.map +1 -1
- package/dist/core/plugins/validation/rules.d.ts.map +1 -1
- package/dist/core/services/_internal/index.d.ts +3 -3
- package/dist/core/services/_internal/index.d.ts.map +1 -1
- package/dist/core/services/app-bar-menu-service.d.ts.map +1 -1
- package/dist/core/services/dashboard-service.d.ts.map +1 -1
- package/dist/core/services/settings-menu-service.d.ts.map +1 -1
- package/dist/core/services/widget-service.d.ts +25 -24
- package/dist/core/services/widget-service.d.ts.map +1 -1
- package/dist/core/types/breadcrumbs.d.ts +8 -0
- package/dist/core/types/breadcrumbs.d.ts.map +1 -0
- package/dist/core/types/index.d.ts +13 -33
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/menu-types.d.ts +4 -4
- package/dist/core/types/menu-types.d.ts.map +1 -1
- package/dist/core/utilities/assets.d.ts +6 -0
- package/dist/core/utilities/assets.d.ts.map +1 -0
- package/dist/core/utilities/colorUtils.d.ts.map +1 -0
- package/dist/core/utilities/date/formatDate.d.ts.map +1 -1
- package/dist/core/utilities/error.d.ts.map +1 -1
- package/dist/core/utilities/formatBadgeCount.d.ts.map +1 -0
- package/dist/core/utilities/index.d.ts +4 -0
- package/dist/core/utilities/index.d.ts.map +1 -1
- package/dist/core/utilities/pendingErrorNotifications.d.ts +2 -2
- package/dist/core/utilities/thumbnail/index.d.ts +42 -0
- package/dist/core/utilities/thumbnail/index.d.ts.map +1 -0
- package/dist/extensions/index.js +8 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/framework.js +4722 -0
- package/dist/framework.js.map +1 -0
- package/dist/index.css +9 -0
- package/dist/index.d.ts +31 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/injection-keys.d.ts +11 -20
- package/dist/injection-keys.d.ts.map +1 -1
- package/dist/locales/de.d.ts +3 -0
- package/dist/locales/de.js +439 -0
- package/dist/locales/en.d.ts +3 -0
- package/dist/locales/en.js +439 -0
- package/dist/locales/en.json +17 -5
- package/dist/locales/types.d.ts +446 -0
- package/dist/modules/assets/components/assets-details/assets-details.vue.d.ts +4 -0
- package/dist/modules/assets/components/assets-details/assets-details.vue.d.ts.map +1 -0
- package/dist/modules/assets/components/assets-details/index.d.ts +3 -0
- package/dist/modules/assets/components/assets-details/index.d.ts.map +1 -0
- package/dist/modules/assets/components/index.d.ts +2 -0
- package/dist/modules/assets/components/index.d.ts.map +1 -0
- package/dist/modules/assets/index.d.ts +6 -0
- package/dist/modules/assets/index.d.ts.map +1 -0
- package/dist/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +4 -0
- package/dist/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -0
- package/dist/modules/assets-manager/components/assets-manager/index.d.ts +3 -0
- package/dist/modules/assets-manager/components/assets-manager/index.d.ts.map +1 -0
- package/dist/modules/assets-manager/components/index.d.ts +2 -0
- package/dist/modules/assets-manager/components/index.d.ts.map +1 -0
- package/dist/modules/assets-manager/index.d.ts +5 -0
- package/dist/modules/assets-manager/index.d.ts.map +1 -0
- package/dist/modules/index.d.ts +3 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/scripts/check-locales.cjs +3185 -0
- package/dist/shell/_internal/_storybook-helpers.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/index.d.ts +3 -0
- package/dist/shell/_internal/blade-navigation/components/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts +9 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/index.d.ts +3 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts +4 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/index.d.ts +2 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts +21 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/index.d.ts +3 -0
- package/dist/shell/_internal/blade-navigation/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/plugin-v2.d.ts +22 -0
- package/dist/shell/_internal/blade-navigation/plugin-v2.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/components/index.d.ts +2 -0
- package/dist/shell/_internal/notifications/components/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/components/notification-container/index.d.ts +120 -0
- package/dist/shell/_internal/notifications/components/notification-container/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/composables/index.d.ts +3 -0
- package/dist/shell/_internal/notifications/composables/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/composables/useContainer/index.d.ts +23 -0
- package/dist/shell/_internal/notifications/composables/useContainer/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/composables/useInstance/index.d.ts +11 -0
- package/dist/shell/_internal/notifications/composables/useInstance/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/register-backend.d.ts +6 -0
- package/dist/shell/_internal/notifications/register-backend.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-base.vue.d.ts +51 -0
- package/dist/shell/_internal/popup/common/vc-popup-base.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-error.vue.d.ts +24 -0
- package/dist/shell/_internal/popup/common/vc-popup-error.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-info.vue.d.ts +24 -0
- package/dist/shell/_internal/popup/common/vc-popup-info.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-warning.vue.d.ts +27 -0
- package/dist/shell/_internal/popup/common/vc-popup-warning.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/components/index.d.ts +2 -0
- package/dist/shell/_internal/popup/components/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/components/vc-popup-container/index.d.ts +3 -0
- package/dist/shell/_internal/popup/components/vc-popup-container/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/components/vc-popup-container/vc-popup-container.vue.d.ts +4 -0
- package/dist/shell/_internal/popup/components/vc-popup-container/vc-popup-container.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/composables/index.d.ts +2 -0
- package/dist/shell/_internal/popup/composables/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/composables/usePopup/index.d.ts +2 -0
- package/dist/shell/_internal/popup/composables/usePopup/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/index.d.ts +12 -0
- package/dist/shell/_internal/popup/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/keys.d.ts +2 -0
- package/dist/shell/_internal/popup/keys.d.ts.map +1 -0
- package/dist/shell/_internal/popup/plugin.d.ts +6 -0
- package/dist/shell/_internal/popup/plugin.d.ts.map +1 -0
- package/dist/shell/_internal/popup/register-presets.d.ts +6 -0
- package/dist/shell/_internal/popup/register-presets.d.ts.map +1 -0
- package/dist/shell/_internal/popup/types/index.d.ts +2 -0
- package/dist/shell/_internal/popup/types/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/utils/index.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts +9 -0
- package/dist/shell/auth/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/components/change-password/index.d.ts +3 -0
- package/dist/shell/auth/ChangePasswordPage/components/change-password/index.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/components/index.d.ts +2 -0
- package/dist/shell/auth/ChangePasswordPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/index.d.ts +2 -0
- package/dist/shell/auth/ChangePasswordPage/index.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue.d.ts +14 -0
- package/dist/shell/auth/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/components/forgot-password/index.d.ts +3 -0
- package/dist/shell/auth/ForgotPasswordPage/components/forgot-password/index.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/components/index.d.ts +2 -0
- package/dist/shell/auth/ForgotPasswordPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/index.d.ts +2 -0
- package/dist/shell/auth/ForgotPasswordPage/index.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/components/index.d.ts +2 -0
- package/dist/shell/auth/InvitePage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/components/invite/Invite.vue.d.ts +14 -0
- package/dist/shell/auth/InvitePage/components/invite/Invite.vue.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/components/invite/index.d.ts +3 -0
- package/dist/shell/auth/InvitePage/components/invite/index.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/index.d.ts +2 -0
- package/dist/shell/auth/InvitePage/index.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/components/index.d.ts +2 -0
- package/dist/shell/auth/LoginPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/components/login/Login.vue.d.ts +11 -0
- package/dist/shell/auth/LoginPage/components/login/Login.vue.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/components/login/index.d.ts +3 -0
- package/dist/shell/auth/LoginPage/components/login/index.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/index.d.ts +2 -0
- package/dist/shell/auth/LoginPage/index.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/components/index.d.ts +2 -0
- package/dist/shell/auth/ResetPasswordPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +14 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/index.d.ts +3 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/index.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/index.d.ts +2 -0
- package/dist/shell/auth/ResetPasswordPage/index.d.ts.map +1 -0
- package/dist/shell/auth/_test-utils/shared-dependency-mocks.d.ts +8 -0
- package/dist/shell/auth/_test-utils/shared-dependency-mocks.d.ts.map +1 -0
- package/dist/shell/auth/_test-utils/shared-mock-factories.d.ts +13 -0
- package/dist/shell/auth/_test-utils/shared-mock-factories.d.ts.map +1 -0
- package/dist/shell/auth/_test-utils/shared-stubs.d.ts +33 -0
- package/dist/shell/auth/_test-utils/shared-stubs.d.ts.map +1 -0
- package/dist/shell/auth/index.d.ts +7 -0
- package/dist/shell/auth/index.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/external-provider.vue.d.ts +16 -0
- package/dist/shell/auth/sign-in/external-provider.vue.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/external-providers.vue.d.ts +8 -0
- package/dist/shell/auth/sign-in/external-providers.vue.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/index.d.ts +2 -0
- package/dist/shell/auth/sign-in/index.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/useExternalProvider.d.ts +3 -0
- package/dist/shell/auth/sign-in/useExternalProvider.d.ts.map +1 -0
- package/dist/shell/auth/utils.d.ts +25 -0
- package/dist/shell/auth/utils.d.ts.map +1 -0
- package/dist/shell/components/app-hub/composables/index.d.ts +2 -0
- package/dist/shell/components/app-hub/composables/index.d.ts.map +1 -0
- package/dist/shell/components/app-hub/composables/useAppHub/index.d.ts +10 -0
- package/dist/shell/components/app-hub/composables/useAppHub/index.d.ts.map +1 -0
- package/dist/shell/components/change-password/change-password.vue.d.ts +12 -0
- package/dist/shell/components/change-password/change-password.vue.d.ts.map +1 -0
- package/dist/shell/components/change-password/index.d.ts +3 -0
- package/dist/shell/components/change-password/index.d.ts.map +1 -0
- package/dist/shell/components/change-password-button/change-password-button.vue.d.ts +4 -0
- package/dist/shell/components/change-password-button/change-password-button.vue.d.ts.map +1 -0
- package/dist/shell/components/change-password-button/index.d.ts.map +1 -0
- package/dist/shell/components/error-interceptor/index.d.ts +14 -0
- package/dist/shell/components/error-interceptor/index.d.ts.map +1 -0
- package/dist/shell/components/error-interceptor/interceptor.d.ts.map +1 -0
- package/dist/shell/components/index.d.ts +13 -0
- package/dist/shell/components/index.d.ts.map +1 -0
- package/dist/shell/components/language-selector/index.d.ts +3 -0
- package/dist/shell/components/language-selector/index.d.ts.map +1 -0
- package/dist/shell/components/language-selector/language-selector.vue.d.ts +4 -0
- package/dist/shell/components/language-selector/language-selector.vue.d.ts.map +1 -0
- package/dist/shell/components/logout-button/index.d.ts.map +1 -0
- package/dist/shell/components/logout-button/logout-button.vue.d.ts +4 -0
- package/dist/shell/components/logout-button/logout-button.vue.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/_internal/notification/index.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/_internal/notification/notification.vue.d.ts +15 -0
- package/dist/shell/components/notification-dropdown/_internal/notification/notification.vue.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/index.d.ts +3 -0
- package/dist/shell/components/notification-dropdown/index.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/notification-dropdown.vue.d.ts +4 -0
- package/dist/shell/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -0
- package/dist/shell/components/notification-template/index.d.ts +3 -0
- package/dist/shell/components/notification-template/index.d.ts.map +1 -0
- package/dist/shell/components/notification-template/notification-template.vue.d.ts +29 -0
- package/dist/shell/components/notification-template/notification-template.vue.d.ts.map +1 -0
- package/dist/shell/components/settings-menu/index.d.ts.map +1 -0
- package/dist/shell/components/settings-menu/settings-menu.vue.d.ts +4 -0
- package/dist/shell/components/settings-menu/settings-menu.vue.d.ts.map +1 -0
- package/dist/shell/components/settings-menu-item/index.d.ts.map +1 -0
- package/dist/shell/components/settings-menu-item/settings-menu-item.vue.d.ts +42 -0
- package/dist/shell/components/settings-menu-item/settings-menu-item.vue.d.ts.map +1 -0
- package/dist/shell/components/sidebar/index.d.ts +47 -0
- package/dist/shell/components/sidebar/index.d.ts.map +1 -0
- package/dist/shell/components/sidebar/sidebar.vue.d.ts +31 -0
- package/dist/shell/components/sidebar/sidebar.vue.d.ts.map +1 -0
- package/dist/shell/components/theme-selector/index.d.ts.map +1 -0
- package/dist/shell/components/theme-selector/theme-selector.vue.d.ts +4 -0
- package/dist/shell/components/theme-selector/theme-selector.vue.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/_internal/user-info.vue.d.ts +10 -0
- package/dist/shell/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts +14 -0
- package/dist/shell/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/index.d.ts +3 -0
- package/dist/shell/components/user-dropdown-button/index.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/user-dropdown-button.vue.d.ts +10 -0
- package/dist/shell/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/ChartContainer.vue.d.ts +17 -0
- package/dist/shell/dashboard/dashboard-charts/ChartContainer.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/ChartLegend.vue.d.ts +8 -0
- package/dist/shell/dashboard/dashboard-charts/ChartLegend.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/ChartTooltip.vue.d.ts +13 -0
- package/dist/shell/dashboard/dashboard-charts/ChartTooltip.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardBarChart.vue.d.ts +39 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardBarChart.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardDonutChart.vue.d.ts +33 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardDonutChart.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardLineChart.vue.d.ts +39 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardLineChart.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/chart-utils.d.ts +29 -0
- package/dist/shell/dashboard/dashboard-charts/chart-utils.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/index.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/types.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-feed-list.vue.d.ts +13 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-feed-list.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-feed-row.vue.d.ts +18 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-feed-row.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-stat-item.vue.d.ts +12 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-stat-item.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-widget-card.vue.d.ts +22 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-widget-card.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/index.d.ts +5 -0
- package/dist/shell/dashboard/dashboard-widget-card/index.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/DraggableDashboard.vue.d.ts +21 -0
- package/dist/shell/dashboard/draggable-dashboard/DraggableDashboard.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/GridstackDashboard.vue.d.ts +22 -0
- package/dist/shell/dashboard/draggable-dashboard/GridstackDashboard.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstack.d.ts +56 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstack.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstackAdapter.d.ts +47 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstackAdapter.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/index.d.ts +13 -0
- package/dist/shell/dashboard/draggable-dashboard/index.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/types.d.ts.map +1 -0
- package/dist/shell/dashboard/index.d.ts +4 -0
- package/dist/shell/dashboard/index.d.ts.map +1 -0
- package/dist/test-helpers.d.ts +103 -14
- package/dist/test-helpers.d.ts.map +1 -1
- package/dist/test-mock-factories.d.ts +48 -0
- package/dist/test-mock-factories.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +5 -4
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-banner/vc-banner.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-banner/vc-banner.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/index.d.ts +1 -1
- package/dist/ui/components/atoms/vc-button/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button-group.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-button/vc-button-group.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +5 -4
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-col/vc-col.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-col/vc-col.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +5 -4
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-hint/vc-hint.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-hint/vc-hint.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/composables/index.d.ts +1 -2
- package/dist/ui/components/atoms/vc-icon/composables/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue.d.ts +2 -1
- package/dist/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/types.d.ts +15 -2
- package/dist/ui/components/atoms/vc-icon/types.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts +3 -1
- package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts +4 -2
- package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +5 -3
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts +2 -1
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +3 -1
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts +2 -1
- package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts +5 -1
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-loading/vc-loading.vue.d.ts +2 -1
- package/dist/ui/components/atoms/vc-loading/vc-loading.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-row/vc-row.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-row/vc-row.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.vue.d.ts +6 -5
- package/dist/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-skeleton/vc-skeleton.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-skeleton/vc-skeleton.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-status-icon/vc-status-icon.vue.d.ts +2 -1
- package/dist/ui/components/atoms/vc-status-icon/vc-status-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts +5 -4
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts +2 -1
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts +3 -1
- package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/index.d.ts +2 -0
- package/dist/ui/components/molecules/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/multilanguage-selector/index.d.ts +2 -0
- package/dist/ui/components/molecules/multilanguage-selector/index.d.ts.map +1 -0
- package/dist/ui/components/molecules/multilanguage-selector/multilanguage-selector.vue.d.ts +44 -0
- package/dist/ui/components/molecules/multilanguage-selector/multilanguage-selector.vue.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue.d.ts +4 -3
- package/dist/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-accordion/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-accordion/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts +4 -3
- package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts +2 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +4 -3
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts +13 -8
- package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.vue.d.ts +13 -8
- package/dist/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-color-input/vc-color-input.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-color-input/vc-color-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-date-picker/vc-date-picker.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-date-picker/vc-date-picker.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-dropdown/_internal/VcDropdownItem.vue.d.ts +2 -1
- package/dist/ui/components/molecules/vc-dropdown/_internal/VcDropdownItem.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-dropdown/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-dropdown/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.vue.d.ts +15 -10
- package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue.d.ts +9 -8
- package/dist/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/extensions/font-size.d.ts +3 -3
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-button.vue.d.ts +2 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-button.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-custom-button.vue.d.ts +2 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-custom-button.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-font-selector.vue.d.ts +2 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-font-selector.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue.d.ts +4 -3
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +6 -5
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts +4 -22
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-form/vc-form.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-form/vc-form.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-image-tile/index.d.ts +3 -0
- package/dist/ui/components/molecules/vc-image-tile/index.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-image-tile/vc-image-tile.vue.d.ts +41 -0
- package/dist/ui/components/molecules/vc-image-tile/vc-image-tile.vue.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +32 -54
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts +2 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-group/vc-input-group.vue.d.ts +7 -6
- package/dist/ui/components/molecules/vc-input-group/vc-input-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-menu/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu-group.vue.d.ts +4 -3
- package/dist/ui/components/molecules/vc-menu/vc-menu-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu-item.vue.d.ts +4 -3
- package/dist/ui/components/molecules/vc-menu/vc-menu-item.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu.vue.d.ts +4 -3
- package/dist/ui/components/molecules/vc-menu/vc-menu.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/_internal/MultivalueDropdown.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-multivalue/_internal/MultivalueDropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/_internal/MultivalueTrigger.vue.d.ts +7 -6
- package/dist/ui/components/molecules/vc-multivalue/_internal/MultivalueTrigger.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/composables/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-multivalue/composables/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +15 -10
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts +13 -8
- package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-radio-group/vc-radio-group.vue.d.ts +13 -8
- package/dist/ui/components/molecules/vc-radio-group/vc-radio-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/_internal/SelectDropdown.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-select/_internal/SelectDropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/_internal/SelectTrigger.vue.d.ts +5 -4
- package/dist/ui/components/molecules/vc-select/_internal/SelectTrigger.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-select/composables/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectDataSource.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectSelection.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectValueMapping.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectVisibility.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +24 -36
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts +8 -7
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-switch/vc-switch.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-switch/vc-switch.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts +3 -2
- package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/index.d.ts +1 -1
- package/dist/ui/components/organisms/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarMobileActions.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarMobileActions.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarOverlay.vue.d.ts +5 -4
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarOverlay.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetContent.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetContent.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetItem.vue.d.ts +3 -2
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetItem.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetsMenu.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetsMenu.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubContent.vue.d.ts +3 -2
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubContent.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubPopover.vue.d.ts +3 -2
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubPopover.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/MenuSidebar.vue.d.ts +4 -3
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/MenuSidebar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/composables/useToggleableContent.d.ts +3 -3
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/composables/useToggleableContent.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/layouts/DesktopLayout.vue.d.ts +10 -5
- package/dist/ui/components/organisms/vc-app/_internal/layouts/DesktopLayout.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.vue.d.ts +10 -5
- package/dist/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.vue.d.ts +3 -1
- package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarCollapseButton.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarCollapseButton.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarContent.vue.d.ts +7 -2
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarContent.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts +7 -6
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composables/useShellNavigation.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composition/menu/index.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/composition/menu/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composition/state/index.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/composition/state/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +8 -4
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-auth-layout/vc-auth-layout.vue.d.ts +3 -2
- package/dist/ui/components/organisms/vc-auth-layout/vc-auth-layout.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeContentSkeleton.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeContentSkeleton.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts +7 -6
- package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeHeaderSkeleton.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeHeaderSkeleton.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeStatusBanners.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeStatusBanners.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeToolbar.vue.d.ts +6 -5
- package/dist/ui/components/organisms/vc-blade/_internal/BladeToolbar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeToolbarSkeleton.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeToolbarSkeleton.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useBladeError.d.ts +2 -2
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useBladeError.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useToolbarRegistration.d.ts +2 -2
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useToolbarRegistration.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.vue.d.ts +3 -2
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarCircleButton.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarCircleButton.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarDesktop.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarDesktop.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarMobile.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarMobile.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainer.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainer.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerDesktop.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerDesktop.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerMobile.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerMobile.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetScope.vue.d.ts +17 -0
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetScope.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/useHeadlessWidgetHelpers.d.ts +9 -0
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/useHeadlessWidgetHelpers.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-blade/utils.d.ts +3 -3
- package/dist/ui/components/organisms/vc-blade/utils.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +6 -33
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-data-table/VcDataTable.vue.d.ts +308 -0
- package/dist/ui/components/organisms/vc-data-table/VcDataTable.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/VcTableAdapter.vue.d.ts +132 -0
- package/dist/ui/components/organisms/vc-data-table/VcTableAdapter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts +31 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +20 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +11 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts +23 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +27 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/base/BaseVcDataTable.d.ts +377 -0
- package/dist/ui/components/organisms/vc-data-table/base/BaseVcDataTable.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/ColumnFilter.vue.d.ts +59 -0
- package/dist/ui/components/organisms/vc-data-table/components/ColumnFilter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/ColumnSwitcherButton.vue.d.ts +14 -0
- package/dist/ui/components/organisms/vc-data-table/components/ColumnSwitcherButton.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableBody.vue.d.ts +161 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableBody.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableCellRenderer.vue.d.ts +54 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableCellRenderer.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableHeader.vue.d.ts +83 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableHeader.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableRow.vue.d.ts +122 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableRow.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/GlobalFiltersButton.vue.d.ts +17 -0
- package/dist/ui/components/organisms/vc-data-table/components/GlobalFiltersButton.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/GlobalFiltersPanel.vue.d.ts +45 -0
- package/dist/ui/components/organisms/vc-data-table/components/GlobalFiltersPanel.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/Table.vue.d.ts +26 -0
- package/dist/ui/components/organisms/vc-data-table/components/Table.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableActions.vue.d.ts +23 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableActions.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableAddRowButton.vue.d.ts +17 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableAddRowButton.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableBody.vue.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableBody.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableCell.vue.d.ts +44 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableCell.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableCheckbox.vue.d.ts +16 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableCheckbox.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableColumnSwitcher.vue.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableColumnSwitcher.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableEmpty.vue.d.ts +28 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableEmpty.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableFooter.vue.d.ts +14 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableFooter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableGroupRow.vue.d.ts +30 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableGroupRow.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableHead.vue.d.ts +76 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableHead.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableHeader.vue.d.ts +14 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableHeader.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableResizeHandle.vue.d.ts +18 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableResizeHandle.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRow.vue.d.ts +77 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRow.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRowActions.vue.d.ts +51 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRowActions.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableSearchHeader.vue.d.ts +69 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableSearchHeader.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableSelectAllBar.vue.d.ts +29 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableSelectAllBar.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/VcColumn.vue.d.ts +362 -0
- package/dist/ui/components/organisms/vc-data-table/components/VcColumn.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/_internal/SlotProxy.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/_internal/TableSkeletonRows.vue.d.ts +18 -0
- package/dist/ui/components/organisms/vc-data-table/components/_internal/TableSkeletonRows.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDate.vue.d.ts +12 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDate.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDateAgo.vue.d.ts +8 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDateAgo.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDefault.vue.d.ts +40 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDefault.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellEditableWrapper.vue.d.ts +29 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellEditableWrapper.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellHtml.vue.d.ts +10 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellHtml.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellImage.vue.d.ts +10 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellImage.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellLink.vue.d.ts +8 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellLink.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellMoney.vue.d.ts +42 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellMoney.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellNumber.vue.d.ts +40 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellNumber.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellStatus.vue.d.ts +8 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellStatus.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellStatusIcon.vue.d.ts +8 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellStatusIcon.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/DynamicCellRenderer.vue.d.ts +48 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/DynamicCellRenderer.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/index.d.ts +12 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/index.d.ts +27 -0
- package/dist/ui/components/organisms/vc-data-table/components/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileCard.vue.d.ts +54 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileCard.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileView.vue.d.ts +66 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileView.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileActionSheet.vue.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileActionSheet.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileCellRenderer.vue.d.ts +51 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileCellRenderer.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/PullToRefresh.vue.d.ts +43 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/PullToRefresh.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/index.d.ts +6 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/index.d.ts +31 -0
- package/dist/ui/components/organisms/vc-data-table/composables/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useCellBase.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useCellRegistry.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnFilter.d.ts +38 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnFilter.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnWidthEngine.d.ts +46 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnWidthEngine.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataProcessing.d.ts +34 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataProcessing.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableOrchestrator.d.ts +279 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableOrchestrator.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableState.d.ts +30 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableState.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useMobileCardLayout.d.ts +48 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useMobileCardLayout.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumns.d.ts +53 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumns.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsReorder.d.ts +30 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsReorder.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts +36 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableContext.d.ts +8 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableContext.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableEditing.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableExpansion.d.ts +44 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableExpansion.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableFilter.d.ts +25 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableFilter.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableInlineEdit.d.ts +69 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableInlineEdit.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableRowGrouping.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableRowReorder.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableRowReorder.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSelectionV2.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSort.d.ts +48 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSort.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSwipe.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useVirtualScroll.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/index.d.ts +13 -0
- package/dist/ui/components/organisms/vc-data-table/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/keys.d.ts +22 -0
- package/dist/ui/components/organisms/vc-data-table/keys.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/types.d.ts +842 -0
- package/dist/ui/components/organisms/vc-data-table/types.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/ColumnCollector.d.ts +67 -0
- package/dist/ui/components/organisms/vc-data-table/utils/ColumnCollector.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/columnHelpers.d.ts +30 -0
- package/dist/ui/components/organisms/vc-data-table/utils/columnHelpers.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/deepClone.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/index.d.ts +10 -0
- package/dist/ui/components/organisms/vc-data-table/utils/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts +20 -15
- package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-filmstrip/vc-gallery-filmstrip.vue.d.ts +42 -0
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-filmstrip/vc-gallery-filmstrip.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +14 -11
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +7 -5
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/index.d.ts +1 -0
- package/dist/ui/components/organisms/vc-gallery/composables/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryFilmstrip.d.ts +16 -0
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryFilmstrip.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryPreview.d.ts +2 -2
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryPreview.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryReorder.d.ts +7 -12
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryReorder.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryUpload.d.ts +2 -2
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryUpload.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +42 -44
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-image-upload/vc-image-upload.vue.d.ts +8 -6
- package/dist/ui/components/organisms/vc-image-upload/vc-image-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +5 -4
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.vue.d.ts +8 -7
- package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.vue.d.ts.map +1 -1
- package/dist/ui/composables/index.d.ts +5 -0
- package/dist/ui/composables/index.d.ts.map +1 -1
- package/dist/ui/composables/useAdaptiveItems.d.ts +9 -8
- package/dist/ui/composables/useAdaptiveItems.d.ts.map +1 -1
- package/dist/ui/composables/useBladeLoading/index.d.ts +6 -0
- package/dist/ui/composables/useBladeLoading/index.d.ts.map +1 -0
- package/dist/ui/composables/useCollapsible.d.ts.map +1 -1
- package/dist/ui/composables/useDataTablePagination.d.ts +30 -0
- package/dist/ui/composables/useDataTablePagination.d.ts.map +1 -0
- package/dist/ui/composables/useDataTableSort.d.ts +24 -0
- package/dist/ui/composables/useDataTableSort.d.ts.map +1 -0
- package/dist/ui/composables/useScrollArrows.d.ts.map +1 -1
- package/dist/ui/composables/useTableSelection.d.ts.map +1 -0
- package/dist/ui/composables/useTableSort.d.ts.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +149 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/types/index.d.ts +1 -7
- package/dist/ui/types/index.d.ts.map +1 -1
- package/dist/ui/utilities/index.d.ts +2 -0
- package/dist/ui/utilities/index.d.ts.map +1 -0
- package/dist/vitest-axe.setup.d.ts.map +1 -1
- package/dist/vitest-mocks.setup.d.ts +2 -0
- package/dist/vitest-mocks.setup.d.ts.map +1 -0
- package/globals-augments.d.ts +36 -0
- package/globals.d.ts +22 -0
- package/package.json +52 -15
- package/shims-vue.d.ts +14 -0
- package/typings/blade-macros.d.ts +25 -0
- package/typings/shims-vue.d.ts +43 -0
- package/dist/core/composables/useGlobalSearch/index.d.ts +0 -5
- package/dist/core/composables/useGlobalSearch/index.d.ts.map +0 -1
- package/dist/core/constants/ui.d.ts +0 -50
- package/dist/core/constants/ui.d.ts.map +0 -1
- package/dist/locales/de.json +0 -426
- package/dist/shared/components/app-switcher/components/index.d.ts +0 -2
- package/dist/shared/components/app-switcher/components/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts +0 -2
- package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts +0 -13
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/composables/index.d.ts +0 -2
- package/dist/shared/components/app-switcher/composables/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts +0 -10
- package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/index.d.ts +0 -14
- package/dist/shared/components/app-switcher/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/index.d.ts +0 -3
- package/dist/shared/components/blade-navigation/components/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts +0 -8
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts +0 -3
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts +0 -3
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/index.d.ts +0 -2
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts +0 -20
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +0 -26
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/index.d.ts +0 -6
- package/dist/shared/components/blade-navigation/composables/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/useBladeMessaging.d.ts +0 -18
- package/dist/shared/components/blade-navigation/composables/useBladeMessaging.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigationAdapter.d.ts +0 -33
- package/dist/shared/components/blade-navigation/composables/useBladeNavigationAdapter.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/useBladeStack.d.ts +0 -19
- package/dist/shared/components/blade-navigation/composables/useBladeStack.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/index.d.ts +0 -5
- package/dist/shared/components/blade-navigation/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/plugin-v2.d.ts +0 -39
- package/dist/shared/components/blade-navigation/plugin-v2.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts +0 -216
- package/dist/shared/components/blade-navigation/types/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/bladeRouterGuard.d.ts +0 -31
- package/dist/shared/components/blade-navigation/utils/bladeRouterGuard.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/navigateToMainRoute.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/restoreFromUrl.d.ts +0 -23
- package/dist/shared/components/blade-navigation/utils/restoreFromUrl.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/urlSync.d.ts +0 -54
- package/dist/shared/components/blade-navigation/utils/urlSync.d.ts.map +0 -1
- package/dist/shared/components/change-password/change-password.vue.d.ts +0 -11
- package/dist/shared/components/change-password/change-password.vue.d.ts.map +0 -1
- package/dist/shared/components/change-password/index.d.ts +0 -8
- package/dist/shared/components/change-password/index.d.ts.map +0 -1
- package/dist/shared/components/change-password-button/change-password-button.vue.d.ts +0 -3
- package/dist/shared/components/change-password-button/change-password-button.vue.d.ts.map +0 -1
- package/dist/shared/components/change-password-button/index.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-base.vue.d.ts +0 -50
- package/dist/shared/components/common/popup/vc-popup-base.vue.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts +0 -23
- package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-info.vue.d.ts +0 -23
- package/dist/shared/components/common/popup/vc-popup-info.vue.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts +0 -26
- package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/ChartContainer.vue.d.ts +0 -16
- package/dist/shared/components/dashboard-charts/ChartContainer.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/ChartLegend.vue.d.ts +0 -7
- package/dist/shared/components/dashboard-charts/ChartLegend.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/ChartTooltip.vue.d.ts +0 -12
- package/dist/shared/components/dashboard-charts/ChartTooltip.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/DashboardBarChart.vue.d.ts +0 -34
- package/dist/shared/components/dashboard-charts/DashboardBarChart.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/DashboardDonutChart.vue.d.ts +0 -28
- package/dist/shared/components/dashboard-charts/DashboardDonutChart.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/DashboardLineChart.vue.d.ts +0 -34
- package/dist/shared/components/dashboard-charts/DashboardLineChart.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/chart-utils.d.ts +0 -29
- package/dist/shared/components/dashboard-charts/chart-utils.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/index.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/types.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-feed-list.vue.d.ts +0 -12
- package/dist/shared/components/dashboard-widget-card/dashboard-feed-list.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-feed-row.vue.d.ts +0 -17
- package/dist/shared/components/dashboard-widget-card/dashboard-feed-row.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-stat-item.vue.d.ts +0 -11
- package/dist/shared/components/dashboard-widget-card/dashboard-stat-item.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts +0 -21
- package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/index.d.ts +0 -5
- package/dist/shared/components/dashboard-widget-card/index.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/DraggableDashboard.vue.d.ts +0 -20
- package/dist/shared/components/draggable-dashboard/DraggableDashboard.vue.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/GridstackDashboard.vue.d.ts +0 -21
- package/dist/shared/components/draggable-dashboard/GridstackDashboard.vue.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/composables/useGridstack.d.ts +0 -56
- package/dist/shared/components/draggable-dashboard/composables/useGridstack.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/composables/useGridstackAdapter.d.ts +0 -47
- package/dist/shared/components/draggable-dashboard/composables/useGridstackAdapter.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/index.d.ts +0 -13
- package/dist/shared/components/draggable-dashboard/index.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/types.d.ts.map +0 -1
- package/dist/shared/components/error-interceptor/index.d.ts +0 -19
- package/dist/shared/components/error-interceptor/index.d.ts.map +0 -1
- package/dist/shared/components/error-interceptor/interceptor.d.ts.map +0 -1
- package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts +0 -52
- package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts.map +0 -1
- package/dist/shared/components/generic-dropdown/index.d.ts +0 -73
- package/dist/shared/components/generic-dropdown/index.d.ts.map +0 -1
- package/dist/shared/components/index.d.ts +0 -26
- package/dist/shared/components/index.d.ts.map +0 -1
- package/dist/shared/components/language-selector/index.d.ts +0 -8
- package/dist/shared/components/language-selector/index.d.ts.map +0 -1
- package/dist/shared/components/language-selector/language-selector.vue.d.ts +0 -3
- package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +0 -1
- package/dist/shared/components/logout-button/index.d.ts.map +0 -1
- package/dist/shared/components/logout-button/logout-button.vue.d.ts +0 -3
- package/dist/shared/components/logout-button/logout-button.vue.d.ts.map +0 -1
- package/dist/shared/components/multilanguage-selector/index.d.ts +0 -2
- package/dist/shared/components/multilanguage-selector/index.d.ts.map +0 -1
- package/dist/shared/components/multilanguage-selector/multilanguage-selector.vue.d.ts +0 -43
- package/dist/shared/components/multilanguage-selector/multilanguage-selector.vue.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/_internal/notification/index.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/_internal/notification/notification.vue.d.ts +0 -16
- package/dist/shared/components/notification-dropdown/_internal/notification/notification.vue.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/index.d.ts +0 -8
- package/dist/shared/components/notification-dropdown/index.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts +0 -3
- package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +0 -1
- package/dist/shared/components/notification-template/index.d.ts +0 -8
- package/dist/shared/components/notification-template/index.d.ts.map +0 -1
- package/dist/shared/components/notification-template/notification-template.vue.d.ts +0 -25
- package/dist/shared/components/notification-template/notification-template.vue.d.ts.map +0 -1
- package/dist/shared/components/notifications/components/index.d.ts +0 -2
- package/dist/shared/components/notifications/components/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/components/notification-container/index.d.ts +0 -120
- package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/composables/index.d.ts +0 -3
- package/dist/shared/components/notifications/composables/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/composables/useContainer/index.d.ts +0 -23
- package/dist/shared/components/notifications/composables/useContainer/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/composables/useInstance/index.d.ts +0 -11
- package/dist/shared/components/notifications/composables/useInstance/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/core/index.d.ts +0 -2
- package/dist/shared/components/notifications/core/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/core/notification.d.ts +0 -18
- package/dist/shared/components/notifications/core/notification.d.ts.map +0 -1
- package/dist/shared/components/notifications/index.d.ts +0 -6
- package/dist/shared/components/notifications/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/types/index.d.ts +0 -27
- package/dist/shared/components/notifications/types/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/components/index.d.ts +0 -2
- package/dist/shared/components/popup-handler/components/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/components/vc-popup-container/index.d.ts +0 -3
- package/dist/shared/components/popup-handler/components/vc-popup-container/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue.d.ts +0 -3
- package/dist/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/composables/index.d.ts +0 -2
- package/dist/shared/components/popup-handler/composables/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts +0 -14
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/index.d.ts +0 -16
- package/dist/shared/components/popup-handler/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/keys.d.ts +0 -4
- package/dist/shared/components/popup-handler/keys.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/plugin.d.ts +0 -7
- package/dist/shared/components/popup-handler/plugin.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/types/index.d.ts +0 -22
- package/dist/shared/components/popup-handler/types/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/utils/index.d.ts.map +0 -1
- package/dist/shared/components/settings-menu/index.d.ts.map +0 -1
- package/dist/shared/components/settings-menu/settings-menu.vue.d.ts +0 -3
- package/dist/shared/components/settings-menu/settings-menu.vue.d.ts.map +0 -1
- package/dist/shared/components/settings-menu-item/index.d.ts.map +0 -1
- package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts +0 -40
- package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts.map +0 -1
- package/dist/shared/components/sidebar/index.d.ts +0 -47
- package/dist/shared/components/sidebar/index.d.ts.map +0 -1
- package/dist/shared/components/sidebar/sidebar.vue.d.ts +0 -30
- package/dist/shared/components/sidebar/sidebar.vue.d.ts.map +0 -1
- package/dist/shared/components/sign-in/external-provider.vue.d.ts +0 -15
- package/dist/shared/components/sign-in/external-provider.vue.d.ts.map +0 -1
- package/dist/shared/components/sign-in/external-providers.vue.d.ts +0 -7
- package/dist/shared/components/sign-in/external-providers.vue.d.ts.map +0 -1
- package/dist/shared/components/sign-in/index.d.ts +0 -2
- package/dist/shared/components/sign-in/index.d.ts.map +0 -1
- package/dist/shared/components/sign-in/useExternalProvider.d.ts +0 -12
- package/dist/shared/components/sign-in/useExternalProvider.d.ts.map +0 -1
- package/dist/shared/components/theme-selector/index.d.ts.map +0 -1
- package/dist/shared/components/theme-selector/theme-selector.vue.d.ts +0 -3
- package/dist/shared/components/theme-selector/theme-selector.vue.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts +0 -9
- package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts +0 -13
- package/dist/shared/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/index.d.ts +0 -8
- package/dist/shared/components/user-dropdown-button/index.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +0 -9
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +0 -1
- package/dist/shared/composables/index.d.ts +0 -6
- package/dist/shared/composables/index.d.ts.map +0 -1
- package/dist/shared/composables/useExternalWidgets.d.ts +0 -10
- package/dist/shared/composables/useExternalWidgets.d.ts.map +0 -1
- package/dist/shared/composables/useMenuExpanded.d.ts +0 -9
- package/dist/shared/composables/useMenuExpanded.d.ts.map +0 -1
- package/dist/shared/composables/useModificationTracker/index.d.ts.map +0 -1
- package/dist/shared/composables/useTableSelection.d.ts.map +0 -1
- package/dist/shared/composables/useTableSort.d.ts.map +0 -1
- package/dist/shared/index.d.ts +0 -13
- package/dist/shared/index.d.ts.map +0 -1
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts +0 -33
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts.map +0 -1
- package/dist/shared/modules/assets/components/assets-details/index.d.ts +0 -3
- package/dist/shared/modules/assets/components/assets-details/index.d.ts.map +0 -1
- package/dist/shared/modules/assets/components/index.d.ts +0 -2
- package/dist/shared/modules/assets/components/index.d.ts.map +0 -1
- package/dist/shared/modules/assets/index.d.ts +0 -13
- package/dist/shared/modules/assets/index.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +0 -41
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/index.d.ts +0 -3
- package/dist/shared/modules/assets-manager/components/assets-manager/index.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/components/index.d.ts +0 -2
- package/dist/shared/modules/assets-manager/components/index.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/index.d.ts +0 -13
- package/dist/shared/modules/assets-manager/index.d.ts.map +0 -1
- package/dist/shared/modules/index.d.ts +0 -3
- package/dist/shared/modules/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts +0 -8
- package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts +0 -3
- package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/components/index.d.ts +0 -2
- package/dist/shared/pages/ChangePasswordPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/index.d.ts +0 -2
- package/dist/shared/pages/ChangePasswordPage/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/plugin.d.ts +0 -6
- package/dist/shared/pages/ChangePasswordPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue.d.ts +0 -13
- package/dist/shared/pages/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/components/forgot-password/index.d.ts +0 -3
- package/dist/shared/pages/ForgotPasswordPage/components/forgot-password/index.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/components/index.d.ts +0 -2
- package/dist/shared/pages/ForgotPasswordPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/index.d.ts +0 -2
- package/dist/shared/pages/ForgotPasswordPage/index.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/plugin.d.ts +0 -6
- package/dist/shared/pages/ForgotPasswordPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/components/index.d.ts +0 -2
- package/dist/shared/pages/InvitePage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +0 -13
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts +0 -3
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/index.d.ts +0 -2
- package/dist/shared/pages/InvitePage/index.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/plugin.d.ts +0 -6
- package/dist/shared/pages/InvitePage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/components/index.d.ts +0 -2
- package/dist/shared/pages/LoginPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/components/login/Login.vue.d.ts +0 -10
- package/dist/shared/pages/LoginPage/components/login/Login.vue.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/components/login/index.d.ts +0 -3
- package/dist/shared/pages/LoginPage/components/login/index.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/index.d.ts +0 -2
- package/dist/shared/pages/LoginPage/index.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/plugin.d.ts +0 -6
- package/dist/shared/pages/LoginPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/components/index.d.ts +0 -2
- package/dist/shared/pages/ResetPasswordPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +0 -13
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts +0 -3
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/index.d.ts +0 -2
- package/dist/shared/pages/ResetPasswordPage/index.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/plugin.d.ts +0 -6
- package/dist/shared/pages/ResetPasswordPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/_storybook-helpers.d.ts.map +0 -1
- package/dist/shared/pages/index.d.ts +0 -6
- package/dist/shared/pages/index.d.ts.map +0 -1
- package/dist/shared/pages/plugin.d.ts +0 -6
- package/dist/shared/pages/plugin.d.ts.map +0 -1
- package/dist/shared/utilities/assets.d.ts +0 -5
- package/dist/shared/utilities/assets.d.ts.map +0 -1
- package/dist/shared/utilities/colorUtils.d.ts.map +0 -1
- package/dist/shared/utilities/formatBadgeCount.d.ts.map +0 -1
- package/dist/shared/utilities/index.d.ts +0 -5
- package/dist/shared/utilities/index.d.ts.map +0 -1
- package/dist/shared/utilities/vueUtils.d.ts +0 -34
- package/dist/shared/utilities/vueUtils.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts +0 -22
- package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts +0 -30
- package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.vue.d.ts +0 -14
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-blade/constants.d.ts +0 -8
- package/dist/ui/components/organisms/vc-blade/constants.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/VcDataTable.vue.d.ts +0 -302
- package/dist/ui/components/organisms/vc-table/VcDataTable.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/VcTableAdapter.vue.d.ts +0 -127
- package/dist/ui/components/organisms/vc-table/VcTableAdapter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts +0 -31
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts +0 -30
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +0 -19
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +0 -10
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts +0 -22
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +0 -26
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/base/BaseVcDataTable.d.ts +0 -377
- package/dist/ui/components/organisms/vc-table/base/BaseVcDataTable.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/ColumnFilter.vue.d.ts +0 -58
- package/dist/ui/components/organisms/vc-table/components/ColumnFilter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/ColumnSwitcherButton.vue.d.ts +0 -13
- package/dist/ui/components/organisms/vc-table/components/ColumnSwitcherButton.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableBody.vue.d.ts +0 -157
- package/dist/ui/components/organisms/vc-table/components/DataTableBody.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableCellRenderer.vue.d.ts +0 -47
- package/dist/ui/components/organisms/vc-table/components/DataTableCellRenderer.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableHeader.vue.d.ts +0 -78
- package/dist/ui/components/organisms/vc-table/components/DataTableHeader.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableRow.vue.d.ts +0 -113
- package/dist/ui/components/organisms/vc-table/components/DataTableRow.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/GlobalFiltersButton.vue.d.ts +0 -16
- package/dist/ui/components/organisms/vc-table/components/GlobalFiltersButton.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/GlobalFiltersPanel.vue.d.ts +0 -44
- package/dist/ui/components/organisms/vc-table/components/GlobalFiltersPanel.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/Table.vue.d.ts +0 -21
- package/dist/ui/components/organisms/vc-table/components/Table.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableActions.vue.d.ts +0 -22
- package/dist/ui/components/organisms/vc-table/components/TableActions.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableAddRowButton.vue.d.ts +0 -16
- package/dist/ui/components/organisms/vc-table/components/TableAddRowButton.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableBody.vue.d.ts +0 -31
- package/dist/ui/components/organisms/vc-table/components/TableBody.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableCell.vue.d.ts +0 -43
- package/dist/ui/components/organisms/vc-table/components/TableCell.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableCheckbox.vue.d.ts +0 -15
- package/dist/ui/components/organisms/vc-table/components/TableCheckbox.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableColumnSwitcher.vue.d.ts +0 -29
- package/dist/ui/components/organisms/vc-table/components/TableColumnSwitcher.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableEmpty.vue.d.ts +0 -27
- package/dist/ui/components/organisms/vc-table/components/TableEmpty.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableFooter.vue.d.ts +0 -13
- package/dist/ui/components/organisms/vc-table/components/TableFooter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableGroupRow.vue.d.ts +0 -29
- package/dist/ui/components/organisms/vc-table/components/TableGroupRow.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableHead.vue.d.ts +0 -75
- package/dist/ui/components/organisms/vc-table/components/TableHead.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableHeader.vue.d.ts +0 -13
- package/dist/ui/components/organisms/vc-table/components/TableHeader.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableResizeHandle.vue.d.ts +0 -17
- package/dist/ui/components/organisms/vc-table/components/TableResizeHandle.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableRow.vue.d.ts +0 -70
- package/dist/ui/components/organisms/vc-table/components/TableRow.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableRowActions.vue.d.ts +0 -42
- package/dist/ui/components/organisms/vc-table/components/TableRowActions.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableSearchHeader.vue.d.ts +0 -68
- package/dist/ui/components/organisms/vc-table/components/TableSearchHeader.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableSelectAllBar.vue.d.ts +0 -28
- package/dist/ui/components/organisms/vc-table/components/TableSelectAllBar.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/VcColumn.vue.d.ts +0 -361
- package/dist/ui/components/organisms/vc-table/components/VcColumn.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/_internal/SlotProxy.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/_internal/TableSkeletonRows.vue.d.ts +0 -17
- package/dist/ui/components/organisms/vc-table/components/_internal/TableSkeletonRows.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellDate.vue.d.ts +0 -11
- package/dist/ui/components/organisms/vc-table/components/cells/CellDate.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellDateAgo.vue.d.ts +0 -7
- package/dist/ui/components/organisms/vc-table/components/cells/CellDateAgo.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellDefault.vue.d.ts +0 -37
- package/dist/ui/components/organisms/vc-table/components/cells/CellDefault.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellEditableWrapper.vue.d.ts +0 -26
- package/dist/ui/components/organisms/vc-table/components/cells/CellEditableWrapper.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellHtml.vue.d.ts +0 -9
- package/dist/ui/components/organisms/vc-table/components/cells/CellHtml.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellImage.vue.d.ts +0 -9
- package/dist/ui/components/organisms/vc-table/components/cells/CellImage.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellLink.vue.d.ts +0 -7
- package/dist/ui/components/organisms/vc-table/components/cells/CellLink.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellMoney.vue.d.ts +0 -39
- package/dist/ui/components/organisms/vc-table/components/cells/CellMoney.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellNumber.vue.d.ts +0 -37
- package/dist/ui/components/organisms/vc-table/components/cells/CellNumber.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellStatus.vue.d.ts +0 -7
- package/dist/ui/components/organisms/vc-table/components/cells/CellStatus.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellStatusIcon.vue.d.ts +0 -7
- package/dist/ui/components/organisms/vc-table/components/cells/CellStatusIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/DynamicCellRenderer.vue.d.ts +0 -45
- package/dist/ui/components/organisms/vc-table/components/cells/DynamicCellRenderer.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/index.d.ts +0 -12
- package/dist/ui/components/organisms/vc-table/components/cells/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/index.d.ts +0 -27
- package/dist/ui/components/organisms/vc-table/components/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileCard.vue.d.ts +0 -44
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileCard.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileView.vue.d.ts +0 -56
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileView.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileActionSheet.vue.d.ts +0 -27
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileActionSheet.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileCellRenderer.vue.d.ts +0 -22
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileCellRenderer.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/PullToRefresh.vue.d.ts +0 -43
- package/dist/ui/components/organisms/vc-table/components/mobile/PullToRefresh.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/index.d.ts +0 -6
- package/dist/ui/components/organisms/vc-table/components/mobile/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/index.d.ts +0 -31
- package/dist/ui/components/organisms/vc-table/composables/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useCellBase.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useCellRegistry.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useColumnFilter.d.ts +0 -38
- package/dist/ui/components/organisms/vc-table/composables/useColumnFilter.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useDataProcessing.d.ts +0 -34
- package/dist/ui/components/organisms/vc-table/composables/useDataProcessing.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useDataTableOrchestrator.d.ts +0 -276
- package/dist/ui/components/organisms/vc-table/composables/useDataTableOrchestrator.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useDataTableState.d.ts +0 -30
- package/dist/ui/components/organisms/vc-table/composables/useDataTableState.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useMobileCardLayout.d.ts +0 -48
- package/dist/ui/components/organisms/vc-table/composables/useMobileCardLayout.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumns.d.ts +0 -40
- package/dist/ui/components/organisms/vc-table/composables/useTableColumns.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsReorder.d.ts +0 -33
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsReorder.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsResize.d.ts +0 -25
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsResize.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableContext.d.ts +0 -8
- package/dist/ui/components/organisms/vc-table/composables/useTableContext.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableEditing.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableExpansion.d.ts +0 -40
- package/dist/ui/components/organisms/vc-table/composables/useTableExpansion.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableFilter.d.ts +0 -25
- package/dist/ui/components/organisms/vc-table/composables/useTableFilter.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableInlineEdit.d.ts +0 -68
- package/dist/ui/components/organisms/vc-table/composables/useTableInlineEdit.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowGrouping.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts +0 -32
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSelectionV2.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSort.d.ts +0 -48
- package/dist/ui/components/organisms/vc-table/composables/useTableSort.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSwipe.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useVirtualScroll.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/index.d.ts +0 -13
- package/dist/ui/components/organisms/vc-table/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/keys.d.ts +0 -22
- package/dist/ui/components/organisms/vc-table/keys.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/types.d.ts +0 -807
- package/dist/ui/components/organisms/vc-table/types.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/utils/ColumnCollector.d.ts +0 -67
- package/dist/ui/components/organisms/vc-table/utils/ColumnCollector.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/utils/deepClone.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/utils/index.d.ts +0 -9
- package/dist/ui/components/organisms/vc-table/utils/index.d.ts.map +0 -1
- package/dist/ui/types/global-components.d.ts +0 -10
- package/dist/ui/types/global-components.d.ts.map +0 -1
- /package/dist/{shared/components → core}/blade-navigation/utils/navigateToMainRoute.d.ts +0 -0
- /package/dist/{shared → core}/composables/useModificationTracker/index.d.ts +0 -0
- /package/dist/{shared → core}/utilities/colorUtils.d.ts +0 -0
- /package/dist/{shared → core}/utilities/formatBadgeCount.d.ts +0 -0
- /package/dist/{shared/pages → shell/_internal}/_storybook-helpers.d.ts +0 -0
- /package/dist/{shared/components/popup-handler → shell/_internal/popup}/utils/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/change-password-button/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/error-interceptor/interceptor.d.ts +0 -0
- /package/dist/{shared → shell}/components/logout-button/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/notification-dropdown/_internal/notification/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/settings-menu/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/settings-menu-item/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/theme-selector/index.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/index.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/types.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/draggable-dashboard/types.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/_internal/SlotProxy.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useCellBase.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useCellRegistry.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableEditing.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableRowGrouping.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableSelectionV2.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableSwipe.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useVirtualScroll.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/utils/deepClone.d.ts +0 -0
- /package/dist/{shared → ui}/composables/useTableSelection.d.ts +0 -0
- /package/dist/{shared → ui}/composables/useTableSort.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor-gridstack-Beau2jQ7.js","sources":["../../../node_modules/gridstack/dist/utils.js","../../../node_modules/gridstack/dist/gridstack-engine.js","../../../node_modules/gridstack/dist/types.js","../../../node_modules/gridstack/dist/dd-manager.js","../../../node_modules/gridstack/dist/dd-touch.js","../../../node_modules/gridstack/dist/dd-resizable-handle.js","../../../node_modules/gridstack/dist/dd-base-impl.js","../../../node_modules/gridstack/dist/dd-resizable.js","../../../node_modules/gridstack/dist/dd-draggable.js","../../../node_modules/gridstack/dist/dd-droppable.js","../../../node_modules/gridstack/dist/dd-element.js","../../../node_modules/gridstack/dist/dd-gridstack.js","../../../node_modules/gridstack/dist/gridstack.js"],"sourcesContent":["/**\n * utils.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\n// /**\n// * Checks for obsolete method names and provides deprecation warnings.\n// * Creates a wrapper function that logs a deprecation warning when called.\n// *\n// * @param self the object context to apply the function to\n// * @param f the new function to call\n// * @param oldName the deprecated method name\n// * @param newName the new method name to use instead\n// * @param rev the version when the deprecation was introduced\n// * @returns a wrapper function that warns about deprecation\n// */\n// eslint-disable-next-line\n// export function obsolete(self, f, oldName: string, newName: string, rev: string): (...args: any[]) => any {\n// const wrapper = (...args) => {\n// console.warn('gridstack.js: Function `' + oldName + '` is deprecated in ' + rev + ' and has been replaced ' +\n// 'with `' + newName + '`. It will be **removed** in a future release');\n// return f.apply(self, args);\n// }\n// wrapper.prototype = f.prototype;\n// return wrapper;\n// }\n// /**\n// * Checks for obsolete grid options and migrates them to new names.\n// * Automatically copies old option values to new option names and shows deprecation warnings.\n// *\n// * @param opts the options object to check and migrate\n// * @param oldName the deprecated option name\n// * @param newName the new option name to use instead\n// * @param rev the version when the deprecation was introduced\n// */\n// export function obsoleteOpts(opts: GridStackOptions, oldName: string, newName: string, rev: string): void {\n// if (opts[oldName] !== undefined) {\n// opts[newName] = opts[oldName];\n// console.warn('gridstack.js: Option `' + oldName + '` is deprecated in ' + rev + ' and has been replaced with `' +\n// newName + '`. It will be **removed** in a future release');\n// }\n// }\n// /**\n// * Checks for obsolete grid options that have been completely removed.\n// * Shows deprecation warnings for options that are no longer supported.\n// *\n// * @param opts the options object to check\n// * @param oldName the removed option name\n// * @param rev the version when the option was removed\n// * @param info additional information about the removal\n// */\n// export function obsoleteOptsDel(opts: GridStackOptions, oldName: string, rev: string, info: string): void {\n// if (opts[oldName] !== undefined) {\n// console.warn('gridstack.js: Option `' + oldName + '` is deprecated in ' + rev + info);\n// }\n// }\n// /**\n// * Checks for obsolete HTML element attributes and migrates them.\n// * Automatically copies old attribute values to new attribute names and shows deprecation warnings.\n// *\n// * @param el the HTML element to check and migrate\n// * @param oldName the deprecated attribute name\n// * @param newName the new attribute name to use instead\n// * @param rev the version when the deprecation was introduced\n// */\n// export function obsoleteAttr(el: HTMLElement, oldName: string, newName: string, rev: string): void {\n// const oldAttr = el.getAttribute(oldName);\n// if (oldAttr !== null) {\n// el.setAttribute(newName, oldAttr);\n// console.warn('gridstack.js: attribute `' + oldName + '`=' + oldAttr + ' is deprecated on this object in ' + rev + ' and has been replaced with `' +\n// newName + '`. It will be **removed** in a future release');\n// }\n// }\n/**\n * Collection of utility methods used throughout GridStack.\n * These are general-purpose helper functions for DOM manipulation,\n * positioning calculations, object operations, and more.\n */\nexport class Utils {\n /**\n * Convert a potential selector into an actual list of HTML elements.\n * Supports CSS selectors, element references, and special ID handling.\n *\n * @param els selector string, HTMLElement, or array of elements\n * @param root optional root element to search within (defaults to document, useful for shadow DOM)\n * @returns array of HTML elements matching the selector\n *\n * @example\n * const elements = Utils.getElements('.grid-item');\n * const byId = Utils.getElements('#myWidget');\n * const fromShadow = Utils.getElements('.item', shadowRoot);\n */\n static getElements(els, root = document) {\n if (typeof els === 'string') {\n const doc = ('getElementById' in root) ? root : undefined;\n // Note: very common for people use to id='1,2,3' which is only legal as HTML5 id, but not CSS selectors\n // so if we start with a number, assume it's an id and just return that one item...\n // see https://github.com/gridstack/gridstack.js/issues/2234#issuecomment-1523796562\n if (doc && !isNaN(+els[0])) { // start with digit\n const el = doc.getElementById(els);\n return el ? [el] : [];\n }\n let list = root.querySelectorAll(els);\n if (!list.length && els[0] !== '.' && els[0] !== '#') {\n // see if mean to be a class\n list = root.querySelectorAll('.' + els);\n // else if mean to be an id\n if (!list.length)\n list = root.querySelectorAll('#' + els);\n // else see if gs-id attribute\n if (!list.length) {\n const el = root.querySelector(`[gs-id=\"${els}\"]`);\n return el ? [el] : [];\n }\n }\n return Array.from(list);\n }\n return [els];\n }\n /**\n * Convert a potential selector into a single HTML element.\n * Similar to getElements() but returns only the first match.\n *\n * @param els selector string or HTMLElement\n * @param root optional root element to search within (defaults to document)\n * @returns the first HTML element matching the selector, or null if not found\n *\n * @example\n * const element = Utils.getElement('#myWidget');\n * const first = Utils.getElement('.grid-item');\n */\n static getElement(els, root = document) {\n if (typeof els === 'string') {\n const doc = ('getElementById' in root) ? root : undefined;\n if (!els.length)\n return null;\n if (doc && els[0] === '#') {\n return doc.getElementById(els.substring(1));\n }\n if (els[0] === '#' || els[0] === '.' || els[0] === '[') {\n return root.querySelector(els);\n }\n // if we start with a digit, assume it's an id (error calling querySelector('#1')) as class are not valid CSS\n if (doc && !isNaN(+els[0])) { // start with digit\n return doc.getElementById(els);\n }\n // finally try string, then id, then class\n let el = root.querySelector(els);\n if (doc && !el) {\n el = doc.getElementById(els);\n }\n if (!el) {\n el = root.querySelector('.' + els);\n }\n return el;\n }\n return els;\n }\n /**\n * Check if a widget should be lazy loaded based on node or grid settings.\n *\n * @param n the grid node to check\n * @returns true if the item should be lazy loaded\n *\n * @example\n * if (Utils.lazyLoad(node)) {\n * // Set up intersection observer for lazy loading\n * }\n */\n static lazyLoad(n) {\n return n.lazyLoad || n.grid?.opts?.lazyLoad && n.lazyLoad !== false;\n }\n /**\n * Create a div element with the specified CSS classes.\n *\n * @param classes array of CSS class names to add\n * @param parent optional parent element to append the div to\n * @returns the created div element\n *\n * @example\n * const div = Utils.createDiv(['grid-item', 'draggable']);\n * const nested = Utils.createDiv(['content'], parentDiv);\n */\n static createDiv(classes, parent) {\n const el = document.createElement('div');\n classes.forEach(c => { if (c)\n el.classList.add(c); });\n parent?.appendChild(el);\n return el;\n }\n /**\n * Check if a widget should resize to fit its content.\n *\n * @param n the grid node to check (can be undefined)\n * @param strict if true, only returns true for explicit sizeToContent:true (not numbers)\n * @returns true if the widget should resize to content\n *\n * @example\n * if (Utils.shouldSizeToContent(node)) {\n * // Trigger content-based resizing\n * }\n */\n static shouldSizeToContent(n, strict = false) {\n return n?.grid && (strict ?\n (n.sizeToContent === true || (n.grid.opts.sizeToContent === true && n.sizeToContent === undefined)) :\n (!!n.sizeToContent || (n.grid.opts.sizeToContent && n.sizeToContent !== false)));\n }\n /**\n * Check if two grid positions overlap/intersect.\n *\n * @param a first position with x, y, w, h properties\n * @param b second position with x, y, w, h properties\n * @returns true if the positions overlap\n *\n * @example\n * const overlaps = Utils.isIntercepted(\n * {x: 0, y: 0, w: 2, h: 1},\n * {x: 1, y: 0, w: 2, h: 1}\n * ); // true - they overlap\n */\n static isIntercepted(a, b) {\n return !(a.y >= b.y + b.h || a.y + a.h <= b.y || a.x + a.w <= b.x || a.x >= b.x + b.w);\n }\n /**\n * Check if two grid positions are touching (edges or corners).\n *\n * @param a first position\n * @param b second position\n * @returns true if the positions are touching\n *\n * @example\n * const touching = Utils.isTouching(\n * {x: 0, y: 0, w: 2, h: 1},\n * {x: 2, y: 0, w: 1, h: 1}\n * ); // true - they share an edge\n */\n static isTouching(a, b) {\n return Utils.isIntercepted(a, { x: b.x - 0.5, y: b.y - 0.5, w: b.w + 1, h: b.h + 1 });\n }\n /**\n * Calculate the overlapping area between two grid positions.\n *\n * @param a first position\n * @param b second position\n * @returns the area of overlap (0 if no overlap)\n *\n * @example\n * const overlap = Utils.areaIntercept(\n * {x: 0, y: 0, w: 3, h: 2},\n * {x: 1, y: 0, w: 3, h: 2}\n * ); // returns 4 (2x2 overlap)\n */\n static areaIntercept(a, b) {\n const x0 = (a.x > b.x) ? a.x : b.x;\n const x1 = (a.x + a.w < b.x + b.w) ? a.x + a.w : b.x + b.w;\n if (x1 <= x0)\n return 0; // no overlap\n const y0 = (a.y > b.y) ? a.y : b.y;\n const y1 = (a.y + a.h < b.y + b.h) ? a.y + a.h : b.y + b.h;\n if (y1 <= y0)\n return 0; // no overlap\n return (x1 - x0) * (y1 - y0);\n }\n /**\n * Calculate the total area of a grid position.\n *\n * @param a position with width and height\n * @returns the total area (width * height)\n *\n * @example\n * const area = Utils.area({x: 0, y: 0, w: 3, h: 2}); // returns 6\n */\n static area(a) {\n return a.w * a.h;\n }\n /**\n * Sort an array of grid nodes by position (y first, then x).\n *\n * @param nodes array of nodes to sort\n * @param dir sort direction: 1 for ascending (top-left first), -1 for descending\n * @returns the sorted array (modifies original)\n *\n * @example\n * const sorted = Utils.sort(nodes); // Sort top-left to bottom-right\n * const reverse = Utils.sort(nodes, -1); // Sort bottom-right to top-left\n */\n static sort(nodes, dir = 1) {\n const und = 10000;\n return nodes.sort((a, b) => {\n const diffY = dir * ((a.y ?? und) - (b.y ?? und));\n if (diffY === 0)\n return dir * ((a.x ?? und) - (b.x ?? und));\n return diffY;\n });\n }\n /**\n * Find a grid node by its ID.\n *\n * @param nodes array of nodes to search\n * @param id the ID to search for\n * @returns the node with matching ID, or undefined if not found\n *\n * @example\n * const node = Utils.find(nodes, 'widget-1');\n * if (node) console.log('Found node at:', node.x, node.y);\n */\n static find(nodes, id) {\n return id ? nodes.find(n => n.id === id) : undefined;\n }\n /**\n * Convert various value types to boolean.\n * Handles strings like 'false', 'no', '0' as false.\n *\n * @param v value to convert\n * @returns boolean representation\n *\n * @example\n * Utils.toBool('true'); // true\n * Utils.toBool('false'); // false\n * Utils.toBool('no'); // false\n * Utils.toBool('1'); // true\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static toBool(v) {\n if (typeof v === 'boolean') {\n return v;\n }\n if (typeof v === 'string') {\n v = v.toLowerCase();\n return !(v === '' || v === 'no' || v === 'false' || v === '0');\n }\n return Boolean(v);\n }\n /**\n * Convert a string value to a number, handling null and empty strings.\n *\n * @param value string or null value to convert\n * @returns number value, or undefined for null/empty strings\n *\n * @example\n * Utils.toNumber('42'); // 42\n * Utils.toNumber(''); // undefined\n * Utils.toNumber(null); // undefined\n */\n static toNumber(value) {\n return (value === null || value.length === 0) ? undefined : Number(value);\n }\n /**\n * Parse a height value with units into numeric value and unit string.\n * Supports px, em, rem, vh, vw, %, cm, mm units.\n *\n * @param val height value as number or string with units\n * @returns object with h (height) and unit properties\n *\n * @example\n * Utils.parseHeight('100px'); // {h: 100, unit: 'px'}\n * Utils.parseHeight('2rem'); // {h: 2, unit: 'rem'}\n * Utils.parseHeight(50); // {h: 50, unit: 'px'}\n */\n static parseHeight(val) {\n let h;\n let unit = 'px';\n if (typeof val === 'string') {\n if (val === 'auto' || val === '')\n h = 0;\n else {\n const match = val.match(/^(-[0-9]+\\.[0-9]+|[0-9]*\\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);\n if (!match) {\n throw new Error(`Invalid height val = ${val}`);\n }\n unit = match[2] || 'px';\n h = parseFloat(match[1]);\n }\n }\n else {\n h = val;\n }\n return { h, unit };\n }\n /**\n * Copy unset fields from source objects to target object (shallow merge with defaults).\n * Similar to Object.assign but only sets undefined/null fields.\n *\n * @param target the object to copy defaults into\n * @param sources one or more source objects to copy defaults from\n * @returns the modified target object\n *\n * @example\n * const config = { width: 100 };\n * Utils.defaults(config, { width: 200, height: 50 });\n * // config is now { width: 100, height: 50 }\n */\n // eslint-disable-next-line\n static defaults(target, ...sources) {\n sources.forEach(source => {\n for (const key in source) {\n if (!source.hasOwnProperty(key))\n return;\n if (target[key] === null || target[key] === undefined) {\n target[key] = source[key];\n }\n else if (typeof source[key] === 'object' && typeof target[key] === 'object') {\n // property is an object, recursively add it's field over... #1373\n Utils.defaults(target[key], source[key]);\n }\n }\n });\n return target;\n }\n /**\n * Compare two objects for equality (shallow comparison).\n * Checks if objects have the same fields and values at one level deep.\n *\n * @param a first object to compare\n * @param b second object to compare\n * @returns true if objects have the same values\n *\n * @example\n * Utils.same({x: 1, y: 2}, {x: 1, y: 2}); // true\n * Utils.same({x: 1}, {x: 1, y: 2}); // false\n */\n static same(a, b) {\n if (typeof a !== 'object')\n return a == b;\n if (typeof a !== typeof b)\n return false;\n // else we have object, check just 1 level deep for being same things...\n if (Object.keys(a).length !== Object.keys(b).length)\n return false;\n for (const key in a) {\n if (a[key] !== b[key])\n return false;\n }\n return true;\n }\n /**\n * Copy position and size properties from one widget to another.\n * Copies x, y, w, h and optionally min/max constraints.\n *\n * @param a target widget to copy to\n * @param b source widget to copy from\n * @param doMinMax if true, also copy min/max width/height constraints\n * @returns the target widget (a)\n *\n * @example\n * Utils.copyPos(widget1, widget2); // Copy position/size\n * Utils.copyPos(widget1, widget2, true); // Also copy constraints\n */\n static copyPos(a, b, doMinMax = false) {\n if (b.x !== undefined)\n a.x = b.x;\n if (b.y !== undefined)\n a.y = b.y;\n if (b.w !== undefined)\n a.w = b.w;\n if (b.h !== undefined)\n a.h = b.h;\n if (doMinMax) {\n if (b.minW)\n a.minW = b.minW;\n if (b.minH)\n a.minH = b.minH;\n if (b.maxW)\n a.maxW = b.maxW;\n if (b.maxH)\n a.maxH = b.maxH;\n }\n return a;\n }\n /** true if a and b has same size & position */\n static samePos(a, b) {\n return a && b && a.x === b.x && a.y === b.y && (a.w || 1) === (b.w || 1) && (a.h || 1) === (b.h || 1);\n }\n /** given a node, makes sure it's min/max are valid */\n static sanitizeMinMax(node) {\n // remove 0, undefine, null\n if (!node.minW) {\n delete node.minW;\n }\n if (!node.minH) {\n delete node.minH;\n }\n if (!node.maxW) {\n delete node.maxW;\n }\n if (!node.maxH) {\n delete node.maxH;\n }\n }\n /** removes field from the first object if same as the second objects (like diffing) and internal '_' for saving */\n static removeInternalAndSame(a, b) {\n if (typeof a !== 'object' || typeof b !== 'object')\n return;\n // skip arrays as we don't know how to hydrate them (unlike object spread operator)\n if (Array.isArray(a) || Array.isArray(b))\n return;\n for (let key in a) {\n const aVal = a[key];\n const bVal = b[key];\n if (key[0] === '_' || aVal === bVal) {\n delete a[key];\n }\n else if (aVal && typeof aVal === 'object' && bVal !== undefined) {\n Utils.removeInternalAndSame(aVal, bVal);\n if (!Object.keys(aVal).length) {\n delete a[key];\n }\n }\n }\n }\n /** removes internal fields '_' and default values for saving */\n static removeInternalForSave(n, removeEl = true) {\n for (let key in n) {\n if (key[0] === '_' || n[key] === null || n[key] === undefined)\n delete n[key];\n }\n delete n.grid;\n if (removeEl)\n delete n.el;\n // delete default values (will be re-created on read)\n if (!n.autoPosition)\n delete n.autoPosition;\n if (!n.noResize)\n delete n.noResize;\n if (!n.noMove)\n delete n.noMove;\n if (!n.locked)\n delete n.locked;\n if (n.w === 1 || n.w === n.minW)\n delete n.w;\n if (n.h === 1 || n.h === n.minH)\n delete n.h;\n }\n /** return the closest parent (or itself) matching the given class */\n // static closestUpByClass(el: HTMLElement, name: string): HTMLElement {\n // while (el) {\n // if (el.classList.contains(name)) return el;\n // el = el.parentElement\n // }\n // return null;\n // }\n /** delay calling the given function for given delay, preventing new calls from happening while waiting */\n static throttle(func, delay) {\n let isWaiting = false;\n return (...args) => {\n if (!isWaiting) {\n isWaiting = true;\n setTimeout(() => { func(...args); isWaiting = false; }, delay);\n }\n };\n }\n static removePositioningStyles(el) {\n const style = el.style;\n if (style.position) {\n style.removeProperty('position');\n }\n if (style.left) {\n style.removeProperty('left');\n }\n if (style.top) {\n style.removeProperty('top');\n }\n if (style.width) {\n style.removeProperty('width');\n }\n if (style.height) {\n style.removeProperty('height');\n }\n }\n /** @internal returns the passed element if vertically scrollable, else the closest parent that will, up to the entire document scrolling element */\n static getScrollElement(el) {\n if (!el)\n return document.scrollingElement || document.documentElement; // IE support\n const overflowY = getComputedStyle(el).overflowY;\n if ((overflowY === 'auto' || overflowY === 'scroll') && el.scrollHeight > el.clientHeight) {\n return el;\n }\n else {\n return Utils.getScrollElement(el.parentElement);\n }\n }\n /**\n * @internal Function used to scroll the page.\n *\n * @param event `MouseEvent` that triggers the resize\n * @param el `HTMLElement` that's being resized\n * @param distance Distance from the V edges to start scrolling\n */\n static updateScrollResize(event, el, distance) {\n const scrollEl = Utils.getScrollElement(el);\n const height = scrollEl.clientHeight;\n // #1727 event.clientY is relative to viewport, so must compare this against position of scrollEl getBoundingClientRect().top\n // #1745 Special situation if scrollEl is document 'html': here browser spec states that\n // clientHeight is height of viewport, but getBoundingClientRect() is rectangle of html element;\n // this discrepancy arises because in reality scrollbar is attached to viewport, not html element itself.\n const offsetTop = (scrollEl === Utils.getScrollElement()) ? 0 : scrollEl.getBoundingClientRect().top;\n const pointerPosY = event.clientY - offsetTop;\n const top = pointerPosY < distance;\n const bottom = pointerPosY > height - distance;\n if (top) {\n // This also can be done with a timeout to keep scrolling while the mouse is\n // in the scrolling zone. (will have smoother behavior)\n scrollEl.scrollBy({ behavior: 'smooth', top: pointerPosY - distance });\n }\n else if (bottom) {\n scrollEl.scrollBy({ behavior: 'smooth', top: distance - (height - pointerPosY) });\n }\n }\n /** single level clone, returning a new object with same top fields. This will share sub objects and arrays */\n static clone(obj) {\n if (obj === null || obj === undefined || typeof (obj) !== 'object') {\n return obj;\n }\n // return Object.assign({}, obj);\n if (obj instanceof Array) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return [...obj];\n }\n return { ...obj };\n }\n /**\n * Recursive clone version that returns a full copy, checking for nested objects and arrays ONLY.\n * Note: this will use as-is any key starting with double __ (and not copy inside) some lib have circular dependencies.\n */\n static cloneDeep(obj) {\n // list of fields we will skip during cloneDeep (nested objects, other internal)\n const skipFields = ['parentGrid', 'el', 'grid', 'subGrid', 'engine'];\n // return JSON.parse(JSON.stringify(obj)); // doesn't work with date format ?\n const ret = Utils.clone(obj);\n for (const key in ret) {\n // NOTE: we don't support function/circular dependencies so skip those properties for now...\n if (ret.hasOwnProperty(key) && typeof (ret[key]) === 'object' && key.substring(0, 2) !== '__' && !skipFields.find(k => k === key)) {\n ret[key] = Utils.cloneDeep(obj[key]);\n }\n }\n return ret;\n }\n /** deep clone the given HTML node, removing teh unique id field */\n static cloneNode(el) {\n const node = el.cloneNode(true);\n node.removeAttribute('id');\n return node;\n }\n static appendTo(el, parent) {\n let parentNode;\n if (typeof parent === 'string') {\n parentNode = Utils.getElement(parent);\n }\n else {\n parentNode = parent;\n }\n if (parentNode) {\n parentNode.appendChild(el);\n }\n }\n // public static setPositionRelative(el: HTMLElement): void {\n // if (!(/^(?:r|a|f)/).test(getComputedStyle(el).position)) {\n // el.style.position = \"relative\";\n // }\n // }\n static addElStyles(el, styles) {\n if (styles instanceof Object) {\n for (const s in styles) {\n if (styles.hasOwnProperty(s)) {\n if (Array.isArray(styles[s])) {\n // support fallback value\n styles[s].forEach(val => {\n el.style[s] = val;\n });\n }\n else {\n el.style[s] = styles[s];\n }\n }\n }\n }\n }\n static initEvent(e, info) {\n const evt = { type: info.type };\n const obj = {\n button: 0,\n which: 0,\n buttons: 1,\n bubbles: true,\n cancelable: true,\n target: info.target ? info.target : e.target\n };\n ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].forEach(p => evt[p] = e[p]); // keys\n ['pageX', 'pageY', 'clientX', 'clientY', 'screenX', 'screenY'].forEach(p => evt[p] = e[p]); // point info\n return { ...evt, ...obj };\n }\n /** copies the MouseEvent (or convert Touch) properties and sends it as another event to the given target */\n static simulateMouseEvent(e, simulatedType, target) {\n const me = e;\n const simulatedEvent = new MouseEvent(simulatedType, {\n bubbles: true,\n composed: true,\n cancelable: true,\n view: window,\n detail: 1,\n screenX: e.screenX,\n screenY: e.screenY,\n clientX: e.clientX,\n clientY: e.clientY,\n ctrlKey: me.ctrlKey ?? false,\n altKey: me.altKey ?? false,\n shiftKey: me.shiftKey ?? false,\n metaKey: me.metaKey ?? false,\n button: 0,\n relatedTarget: e.target\n });\n (target || e.target).dispatchEvent(simulatedEvent);\n }\n /**\n * defines an element that is used to get the offset and scale from grid transforms\n * returns the scale and offsets from said element\n */\n static getValuesFromTransformedElement(parent) {\n const transformReference = document.createElement('div');\n Utils.addElStyles(transformReference, {\n opacity: '0',\n position: 'fixed',\n top: 0 + 'px',\n left: 0 + 'px',\n width: '1px',\n height: '1px',\n zIndex: '-999999',\n });\n parent.appendChild(transformReference);\n const transformValues = transformReference.getBoundingClientRect();\n parent.removeChild(transformReference);\n transformReference.remove();\n return {\n xScale: 1 / transformValues.width,\n yScale: 1 / transformValues.height,\n xOffset: transformValues.left,\n yOffset: transformValues.top,\n };\n }\n /** swap the given object 2 field values */\n static swap(o, a, b) {\n if (!o)\n return;\n const tmp = o[a];\n o[a] = o[b];\n o[b] = tmp;\n }\n /** returns true if event is inside the given element rectangle */\n // Note: Safari Mac has null event.relatedTarget which causes #1684 so check if DragEvent is inside the coordinates instead\n // Utils.el.contains(event.relatedTarget as HTMLElement)\n // public static inside(e: MouseEvent, el: HTMLElement): boolean {\n // // srcElement, toElement, target: all set to placeholder when leaving simple grid, so we can't use that (Chrome)\n // const target: HTMLElement = e.relatedTarget || (e as any).fromElement;\n // if (!target) {\n // const { bottom, left, right, top } = el.getBoundingClientRect();\n // return (e.x < right && e.x > left && e.y < bottom && e.y > top);\n // }\n // return el.contains(target);\n // }\n /** true if the item can be rotated (checking for prop, not space available) */\n static canBeRotated(n) {\n return !(!n || n.w === n.h || n.locked || n.noResize || n.grid?.opts.disableResize || (n.minW && n.minW === n.maxW) || (n.minH && n.minH === n.maxH));\n }\n}\n//# sourceMappingURL=utils.js.map","/**\n * gridstack-engine.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { Utils } from './utils';\n/**\n * Defines the GridStack engine that handles all grid layout calculations and node positioning.\n * This is the core engine that performs grid manipulation without any DOM operations.\n *\n * The engine manages:\n * - Node positioning and collision detection\n * - Layout algorithms (compact, float, etc.)\n * - Grid resizing and column changes\n * - Widget movement and resizing logic\n *\n * NOTE: Values should not be modified directly - use the main GridStack API instead\n * to ensure proper DOM updates and event triggers.\n */\nclass GridStackEngine {\n constructor(opts = {}) {\n this.addedNodes = [];\n this.removedNodes = [];\n this.defaultColumn = 12;\n this.column = opts.column || this.defaultColumn;\n if (this.column > this.defaultColumn)\n this.defaultColumn = this.column;\n this.maxRow = opts.maxRow;\n this._float = opts.float;\n this.nodes = opts.nodes || [];\n this.onChange = opts.onChange;\n }\n /**\n * Enable/disable batch mode for multiple operations to optimize performance.\n * When enabled, layout updates are deferred until batch mode is disabled.\n *\n * @param flag true to enable batch mode, false to disable and apply changes\n * @param doPack if true (default), pack/compact nodes when disabling batch mode\n * @returns the engine instance for chaining\n *\n * @example\n * // Start batch mode for multiple operations\n * engine.batchUpdate(true);\n * engine.addNode(node1);\n * engine.addNode(node2);\n * engine.batchUpdate(false); // Apply all changes at once\n */\n batchUpdate(flag = true, doPack = true) {\n if (!!this.batchMode === flag)\n return this;\n this.batchMode = flag;\n if (flag) {\n this._prevFloat = this._float;\n this._float = true; // let things go anywhere for now... will restore and possibly reposition later\n this.cleanNodes();\n this.saveInitial(); // since begin update (which is called multiple times) won't do this\n }\n else {\n this._float = this._prevFloat;\n delete this._prevFloat;\n if (doPack)\n this._packNodes();\n this._notify();\n }\n return this;\n }\n // use entire row for hitting area (will use bottom reverse sorted first) if we not actively moving DOWN and didn't already skip\n _useEntireRowArea(node, nn) {\n return (!this.float || this.batchMode && !this._prevFloat) && !this._hasLocked && (!node._moving || node._skipDown || nn.y <= node.y);\n }\n /** @internal fix collision on given 'node', going to given new location 'nn', with optional 'collide' node already found.\n * return true if we moved. */\n _fixCollisions(node, nn = node, collide, opt = {}) {\n this.sortNodes(-1); // from last to first, so recursive collision move items in the right order\n collide = collide || this.collide(node, nn); // REAL area collide for swap and skip if none...\n if (!collide)\n return false;\n // swap check: if we're actively moving in gravity mode, see if we collide with an object the same size\n if (node._moving && !opt.nested && !this.float) {\n if (this.swap(node, collide))\n return true;\n }\n // during while() collisions MAKE SURE to check entire row so larger items don't leap frog small ones (push them all down starting last in grid)\n let area = nn;\n if (!this._loading && this._useEntireRowArea(node, nn)) {\n area = { x: 0, w: this.column, y: nn.y, h: nn.h };\n collide = this.collide(node, area, opt.skip); // force new hit\n }\n let didMove = false;\n const newOpt = { nested: true, pack: false };\n let counter = 0;\n while (collide = collide || this.collide(node, area, opt.skip)) { // could collide with more than 1 item... so repeat for each\n if (counter++ > this.nodes.length * 2) {\n throw new Error(\"Infinite collide check\");\n }\n let moved;\n // if colliding with a locked item OR loading (move after) OR moving down with top gravity (and collide could move up) -> skip past the collide,\n // but remember that skip down so we only do this once (and push others otherwise).\n if (collide.locked || this._loading || node._moving && !node._skipDown && nn.y > node.y && !this.float &&\n // can take space we had, or before where we're going\n (!this.collide(collide, { ...collide, y: node.y }, node) || !this.collide(collide, { ...collide, y: nn.y - collide.h }, node))) {\n node._skipDown = (node._skipDown || nn.y > node.y);\n const newNN = { ...nn, y: collide.y + collide.h, ...newOpt };\n // pretent we moved to where we are now so we can continue any collision checks #2492\n moved = this._loading && Utils.samePos(node, newNN) ? true : this.moveNode(node, newNN);\n if ((collide.locked || this._loading) && moved) {\n Utils.copyPos(nn, node); // moving after lock become our new desired location\n }\n else if (!collide.locked && moved && opt.pack) {\n // we moved after and will pack: do it now and keep the original drop location, but past the old collide to see what else we might push way\n this._packNodes();\n nn.y = collide.y + collide.h;\n Utils.copyPos(node, nn);\n }\n didMove = didMove || moved;\n }\n else {\n // move collide down *after* where we will be, ignoring where we are now (don't collide with us)\n moved = this.moveNode(collide, { ...collide, y: nn.y + nn.h, skip: node, ...newOpt });\n }\n if (!moved)\n return didMove; // break inf loop if we couldn't move after all (ex: maxRow, fixed)\n collide = undefined;\n }\n return didMove;\n }\n /**\n * Return the first node that intercepts/collides with the given node or area.\n * Used for collision detection during drag and drop operations.\n *\n * @param skip the node to skip in collision detection (usually the node being moved)\n * @param area the area to check for collisions (defaults to skip node's area)\n * @param skip2 optional second node to skip in collision detection\n * @returns the first colliding node, or undefined if no collision\n *\n * @example\n * const colliding = engine.collide(draggedNode, {x: 2, y: 1, w: 2, h: 1});\n * if (colliding) {\n * console.log('Would collide with:', colliding.id);\n * }\n */\n collide(skip, area = skip, skip2) {\n const skipId = skip._id;\n const skip2Id = skip2?._id;\n return this.nodes.find(n => n._id !== skipId && n._id !== skip2Id && Utils.isIntercepted(n, area));\n }\n /**\n * Return all nodes that intercept/collide with the given node or area.\n * Similar to collide() but returns all colliding nodes instead of just the first.\n *\n * @param skip the node to skip in collision detection\n * @param area the area to check for collisions (defaults to skip node's area)\n * @param skip2 optional second node to skip in collision detection\n * @returns array of all colliding nodes\n *\n * @example\n * const allCollisions = engine.collideAll(draggedNode);\n * console.log('Colliding with', allCollisions.length, 'nodes');\n */\n collideAll(skip, area = skip, skip2) {\n const skipId = skip._id;\n const skip2Id = skip2?._id;\n return this.nodes.filter(n => n._id !== skipId && n._id !== skip2Id && Utils.isIntercepted(n, area));\n }\n /** does a pixel coverage collision based on where we started, returning the node that has the most coverage that is >50% mid line */\n directionCollideCoverage(node, o, collides) {\n if (!o.rect || !node._rect)\n return;\n const r0 = node._rect; // where started\n const r = { ...o.rect }; // where we are\n // update dragged rect to show where it's coming from (above or below, etc...)\n if (r.y > r0.y) {\n r.h += r.y - r0.y;\n r.y = r0.y;\n }\n else {\n r.h += r0.y - r.y;\n }\n if (r.x > r0.x) {\n r.w += r.x - r0.x;\n r.x = r0.x;\n }\n else {\n r.w += r0.x - r.x;\n }\n let collide;\n let overMax = 0.5; // need >50%\n for (let n of collides) {\n if (n.locked || !n._rect) {\n break;\n }\n const r2 = n._rect; // overlapping target\n let yOver = Number.MAX_VALUE, xOver = Number.MAX_VALUE;\n // depending on which side we started from, compute the overlap % of coverage\n // (ex: from above/below we only compute the max horizontal line coverage)\n if (r0.y < r2.y) { // from above\n yOver = ((r.y + r.h) - r2.y) / r2.h;\n }\n else if (r0.y + r0.h > r2.y + r2.h) { // from below\n yOver = ((r2.y + r2.h) - r.y) / r2.h;\n }\n if (r0.x < r2.x) { // from the left\n xOver = ((r.x + r.w) - r2.x) / r2.w;\n }\n else if (r0.x + r0.w > r2.x + r2.w) { // from the right\n xOver = ((r2.x + r2.w) - r.x) / r2.w;\n }\n const over = Math.min(xOver, yOver);\n if (over > overMax) {\n overMax = over;\n collide = n;\n }\n }\n o.collide = collide; // save it so we don't have to find it again\n return collide;\n }\n /** does a pixel coverage returning the node that has the most coverage by area */\n /*\n protected collideCoverage(r: GridStackPosition, collides: GridStackNode[]): {collide: GridStackNode, over: number} {\n const collide: GridStackNode;\n const overMax = 0;\n collides.forEach(n => {\n if (n.locked || !n._rect) return;\n const over = Utils.areaIntercept(r, n._rect);\n if (over > overMax) {\n overMax = over;\n collide = n;\n }\n });\n return {collide, over: overMax};\n }\n */\n /**\n * Cache the pixel rectangles for all nodes used for collision detection during drag operations.\n * This optimization converts grid coordinates to pixel coordinates for faster collision detection.\n *\n * @param w width of a single grid cell in pixels\n * @param h height of a single grid cell in pixels\n * @param top top margin/padding in pixels\n * @param right right margin/padding in pixels\n * @param bottom bottom margin/padding in pixels\n * @param left left margin/padding in pixels\n * @returns the engine instance for chaining\n *\n * @internal This is typically called by GridStack during resize events\n */\n cacheRects(w, h, top, right, bottom, left) {\n this.nodes.forEach(n => n._rect = {\n y: n.y * h + top,\n x: n.x * w + left,\n w: n.w * w - left - right,\n h: n.h * h - top - bottom\n });\n return this;\n }\n /**\n * Attempt to swap the positions of two nodes if they meet swapping criteria.\n * Nodes can swap if they are the same size or in the same column/row, not locked, and touching.\n *\n * @param a first node to swap\n * @param b second node to swap\n * @returns true if swap was successful, false if not possible, undefined if not applicable\n *\n * @example\n * const swapped = engine.swap(nodeA, nodeB);\n * if (swapped) {\n * console.log('Nodes swapped successfully');\n * }\n */\n swap(a, b) {\n if (!b || b.locked || !a || a.locked)\n return false;\n function _doSwap() {\n const x = b.x, y = b.y;\n b.x = a.x;\n b.y = a.y; // b -> a position\n if (a.h != b.h) {\n a.x = x;\n a.y = b.y + b.h; // a -> goes after b\n }\n else if (a.w != b.w) {\n a.x = b.x + b.w;\n a.y = y; // a -> goes after b\n }\n else {\n a.x = x;\n a.y = y; // a -> old b position\n }\n a._dirty = b._dirty = true;\n return true;\n }\n let touching; // remember if we called it (vs undefined)\n // same size and same row or column, and touching\n if (a.w === b.w && a.h === b.h && (a.x === b.x || a.y === b.y) && (touching = Utils.isTouching(a, b)))\n return _doSwap();\n if (touching === false)\n return; // IFF ran test and fail, bail out\n // check for taking same columns (but different height) and touching\n if (a.w === b.w && a.x === b.x && (touching || (touching = Utils.isTouching(a, b)))) {\n if (b.y < a.y) {\n const t = a;\n a = b;\n b = t;\n } // swap a <-> b vars so a is first\n return _doSwap();\n }\n if (touching === false)\n return;\n // check if taking same row (but different width) and touching\n if (a.h === b.h && a.y === b.y && (touching || (touching = Utils.isTouching(a, b)))) {\n if (b.x < a.x) {\n const t = a;\n a = b;\n b = t;\n } // swap a <-> b vars so a is first\n return _doSwap();\n }\n return false;\n }\n /**\n * Check if the specified rectangular area is empty (no nodes occupy any part of it).\n *\n * @param x the x coordinate (column) of the area to check\n * @param y the y coordinate (row) of the area to check\n * @param w the width in columns of the area to check\n * @param h the height in rows of the area to check\n * @returns true if the area is completely empty, false if any node overlaps\n *\n * @example\n * if (engine.isAreaEmpty(2, 1, 3, 2)) {\n * console.log('Area is available for placement');\n * }\n */\n isAreaEmpty(x, y, w, h) {\n const nn = { x: x || 0, y: y || 0, w: w || 1, h: h || 1 };\n return !this.collide(nn);\n }\n /**\n * Re-layout grid items to reclaim any empty space.\n * This optimizes the grid layout by moving items to fill gaps.\n *\n * @param layout layout algorithm to use:\n * - 'compact' (default): find truly empty spaces, may reorder items\n * - 'list': keep the sort order exactly the same, move items up sequentially\n * @param doSort if true (default), sort nodes by position before compacting\n * @returns the engine instance for chaining\n *\n * @example\n * // Compact to fill empty spaces\n * engine.compact();\n *\n * // Compact preserving item order\n * engine.compact('list');\n */\n compact(layout = 'compact', doSort = true) {\n if (this.nodes.length === 0)\n return this;\n if (doSort)\n this.sortNodes();\n const wasBatch = this.batchMode;\n if (!wasBatch)\n this.batchUpdate();\n const wasColumnResize = this._inColumnResize;\n if (!wasColumnResize)\n this._inColumnResize = true; // faster addNode()\n const copyNodes = this.nodes;\n this.nodes = []; // pretend we have no nodes to conflict layout to start with...\n copyNodes.forEach((n, index, list) => {\n let after;\n if (!n.locked) {\n n.autoPosition = true;\n if (layout === 'list' && index)\n after = list[index - 1];\n }\n this.addNode(n, false, after); // 'false' for add event trigger\n });\n if (!wasColumnResize)\n delete this._inColumnResize;\n if (!wasBatch)\n this.batchUpdate(false);\n return this;\n }\n /**\n * Enable/disable floating widgets (default: `false`).\n * When floating is enabled, widgets can move up to fill empty spaces.\n * See [example](http://gridstackjs.com/demo/float.html)\n *\n * @param val true to enable floating, false to disable\n *\n * @example\n * engine.float = true; // Enable floating\n * engine.float = false; // Disable floating (default)\n */\n set float(val) {\n if (this._float === val)\n return;\n this._float = val || false;\n if (!val) {\n this._packNodes()._notify();\n }\n }\n /**\n * Get the current floating mode setting.\n *\n * @returns true if floating is enabled, false otherwise\n *\n * @example\n * const isFloating = engine.float;\n * console.log('Floating enabled:', isFloating);\n */\n get float() { return this._float || false; }\n /**\n * Sort the nodes array from first to last, or reverse.\n * This is called during collision/placement operations to enforce a specific order.\n *\n * @param dir sort direction: 1 for ascending (first to last), -1 for descending (last to first)\n * @returns the engine instance for chaining\n *\n * @example\n * engine.sortNodes(); // Sort ascending (default)\n * engine.sortNodes(-1); // Sort descending\n */\n sortNodes(dir = 1) {\n this.nodes = Utils.sort(this.nodes, dir);\n return this;\n }\n /** @internal called to top gravity pack the items back OR revert back to original Y positions when floating */\n _packNodes() {\n if (this.batchMode) {\n return this;\n }\n this.sortNodes(); // first to last\n if (this.float) {\n // restore original Y pos\n this.nodes.forEach(n => {\n if (n._updating || n._orig === undefined || n.y === n._orig.y)\n return;\n let newY = n.y;\n while (newY > n._orig.y) {\n --newY;\n const collide = this.collide(n, { x: n.x, y: newY, w: n.w, h: n.h });\n if (!collide) {\n n._dirty = true;\n n.y = newY;\n }\n }\n });\n }\n else {\n // top gravity pack\n this.nodes.forEach((n, i) => {\n if (n.locked)\n return;\n while (n.y > 0) {\n const newY = i === 0 ? 0 : n.y - 1;\n const canBeMoved = i === 0 || !this.collide(n, { x: n.x, y: newY, w: n.w, h: n.h });\n if (!canBeMoved)\n break;\n // Note: must be dirty (from last position) for GridStack::OnChange CB to update positions\n // and move items back. The user 'change' CB should detect changes from the original\n // starting position instead.\n n._dirty = (n.y !== newY);\n n.y = newY;\n }\n });\n }\n return this;\n }\n /**\n * Prepare and validate a node's coordinates and values for the current grid.\n * This ensures the node has valid position, size, and properties before being added to the grid.\n *\n * @param node the node to prepare and validate\n * @param resizing if true, resize the node down if it's out of bounds; if false, move it to fit\n * @returns the prepared node with valid coordinates\n *\n * @example\n * const node = { w: 3, h: 2, content: 'Hello' };\n * const prepared = engine.prepareNode(node);\n * console.log('Node prepared at:', prepared.x, prepared.y);\n */\n prepareNode(node, resizing) {\n node._id = node._id ?? GridStackEngine._idSeq++;\n // make sure USER supplied id are unique in our list, else assign a new one as it will create issues during load/update/etc...\n const id = node.id;\n if (id) {\n let count = 1; // append nice _n rather than some random number\n while (this.nodes.find(n => n.id === node.id && n !== node)) {\n node.id = id + '_' + (count++);\n }\n }\n // if we're missing position, have the grid position us automatically (before we set them to 0,0)\n if (node.x === undefined || node.y === undefined || node.x === null || node.y === null) {\n node.autoPosition = true;\n }\n // assign defaults for missing required fields\n const defaults = { x: 0, y: 0, w: 1, h: 1 };\n Utils.defaults(node, defaults);\n if (!node.autoPosition) {\n delete node.autoPosition;\n }\n if (!node.noResize) {\n delete node.noResize;\n }\n if (!node.noMove) {\n delete node.noMove;\n }\n Utils.sanitizeMinMax(node);\n // check for NaN (in case messed up strings were passed. can't do parseInt() || defaults.x above as 0 is valid #)\n if (typeof node.x == 'string') {\n node.x = Number(node.x);\n }\n if (typeof node.y == 'string') {\n node.y = Number(node.y);\n }\n if (typeof node.w == 'string') {\n node.w = Number(node.w);\n }\n if (typeof node.h == 'string') {\n node.h = Number(node.h);\n }\n if (isNaN(node.x)) {\n node.x = defaults.x;\n node.autoPosition = true;\n }\n if (isNaN(node.y)) {\n node.y = defaults.y;\n node.autoPosition = true;\n }\n if (isNaN(node.w)) {\n node.w = defaults.w;\n }\n if (isNaN(node.h)) {\n node.h = defaults.h;\n }\n this.nodeBoundFix(node, resizing);\n return node;\n }\n /**\n * Part 2 of preparing a node to fit inside the grid - validates and fixes coordinates and dimensions.\n * This ensures the node fits within grid boundaries and respects min/max constraints.\n *\n * @param node the node to validate and fix\n * @param resizing if true, resize the node to fit; if false, move the node to fit\n * @returns the engine instance for chaining\n *\n * @example\n * // Fix a node that might be out of bounds\n * engine.nodeBoundFix(node, true); // Resize to fit\n * engine.nodeBoundFix(node, false); // Move to fit\n */\n nodeBoundFix(node, resizing) {\n const before = node._orig || Utils.copyPos({}, node);\n if (node.maxW) {\n node.w = Math.min(node.w || 1, node.maxW);\n }\n if (node.maxH) {\n node.h = Math.min(node.h || 1, node.maxH);\n }\n if (node.minW) {\n node.w = Math.max(node.w || 1, node.minW);\n }\n if (node.minH) {\n node.h = Math.max(node.h || 1, node.minH);\n }\n // if user loaded a larger than allowed widget for current # of columns,\n // remember it's position & width so we can restore back (1 -> 12 column) #1655 #1985\n // IFF we're not in the middle of column resizing!\n const saveOrig = (node.x || 0) + (node.w || 1) > this.column;\n if (saveOrig && this.column < this.defaultColumn && !this._inColumnResize && !this.skipCacheUpdate && node._id != null && this.findCacheLayout(node, this.defaultColumn) === -1) {\n const copy = { ...node }; // need _id + positions\n if (copy.autoPosition || copy.x === undefined) {\n delete copy.x;\n delete copy.y;\n }\n else\n copy.x = Math.min(this.defaultColumn - 1, copy.x);\n copy.w = Math.min(this.defaultColumn, copy.w || 1);\n this.cacheOneLayout(copy, this.defaultColumn);\n }\n if (node.w > this.column) {\n node.w = this.column;\n }\n else if (node.w < 1) {\n node.w = 1;\n }\n if (this.maxRow && node.h > this.maxRow) {\n node.h = this.maxRow;\n }\n else if (node.h < 1) {\n node.h = 1;\n }\n if (node.x < 0) {\n node.x = 0;\n }\n if (node.y < 0) {\n node.y = 0;\n }\n if (node.x + node.w > this.column) {\n if (resizing) {\n node.w = this.column - node.x;\n }\n else {\n node.x = this.column - node.w;\n }\n }\n if (this.maxRow && node.y + node.h > this.maxRow) {\n if (resizing) {\n node.h = this.maxRow - node.y;\n }\n else {\n node.y = this.maxRow - node.h;\n }\n }\n if (!Utils.samePos(node, before)) {\n node._dirty = true;\n }\n return this;\n }\n /**\n * Returns a list of nodes that have been modified from their original values.\n * This is used to track which nodes need DOM updates.\n *\n * @param verify if true, performs additional verification by comparing current vs original positions\n * @returns array of nodes that have been modified\n *\n * @example\n * const changed = engine.getDirtyNodes();\n * console.log('Modified nodes:', changed.length);\n *\n * // Get verified dirty nodes\n * const verified = engine.getDirtyNodes(true);\n */\n getDirtyNodes(verify) {\n // compare original x,y,w,h instead as _dirty can be a temporary state\n if (verify) {\n return this.nodes.filter(n => n._dirty && !Utils.samePos(n, n._orig));\n }\n return this.nodes.filter(n => n._dirty);\n }\n /** @internal call this to call onChange callback with dirty nodes so DOM can be updated */\n _notify(removedNodes) {\n if (this.batchMode || !this.onChange)\n return this;\n const dirtyNodes = (removedNodes || []).concat(this.getDirtyNodes());\n this.onChange(dirtyNodes);\n return this;\n }\n /**\n * Clean all dirty and last tried information from nodes.\n * This resets the dirty state tracking for all nodes.\n *\n * @returns the engine instance for chaining\n *\n * @internal\n */\n cleanNodes() {\n if (this.batchMode)\n return this;\n this.nodes.forEach(n => {\n delete n._dirty;\n delete n._lastTried;\n });\n return this;\n }\n /**\n * Save the initial position/size of all nodes to track real dirty state.\n * This creates a snapshot of current positions that can be restored later.\n *\n * Note: Should be called right after change events and before move/resize operations.\n *\n * @returns the engine instance for chaining\n *\n * @internal\n */\n saveInitial() {\n this.nodes.forEach(n => {\n n._orig = Utils.copyPos({}, n);\n delete n._dirty;\n });\n this._hasLocked = this.nodes.some(n => n.locked);\n return this;\n }\n /**\n * Restore all nodes back to their initial values.\n * This is typically called when canceling an operation (e.g., Esc key during drag).\n *\n * @returns the engine instance for chaining\n *\n * @internal\n */\n restoreInitial() {\n this.nodes.forEach(n => {\n if (!n._orig || Utils.samePos(n, n._orig))\n return;\n Utils.copyPos(n, n._orig);\n n._dirty = true;\n });\n this._notify();\n return this;\n }\n /**\n * Find the first available empty spot for the given node dimensions.\n * Updates the node's x,y attributes with the found position.\n *\n * @param node the node to find a position for (w,h must be set)\n * @param nodeList optional list of nodes to check against (defaults to engine nodes)\n * @param column optional column count (defaults to engine column count)\n * @param after optional node to start search after (maintains order)\n * @returns true if an empty position was found and node was updated\n *\n * @example\n * const node = { w: 2, h: 1 };\n * if (engine.findEmptyPosition(node)) {\n * console.log('Found position at:', node.x, node.y);\n * }\n */\n findEmptyPosition(node, nodeList = this.nodes, column = this.column, after) {\n const start = after ? after.y * column + (after.x + after.w) : 0;\n let found = false;\n for (let i = start; !found; ++i) {\n const x = i % column;\n const y = Math.floor(i / column);\n if (x + node.w > column) {\n continue;\n }\n const box = { x, y, w: node.w, h: node.h };\n if (!nodeList.find(n => Utils.isIntercepted(box, n))) {\n if (node.x !== x || node.y !== y)\n node._dirty = true;\n node.x = x;\n node.y = y;\n delete node.autoPosition;\n found = true;\n }\n }\n return found;\n }\n /**\n * Add the given node to the grid, handling collision detection and re-packing.\n * This is the main method for adding new widgets to the engine.\n *\n * @param node the node to add to the grid\n * @param triggerAddEvent if true, adds node to addedNodes list for event triggering\n * @param after optional node to place this node after (for ordering)\n * @returns the added node (or existing node if duplicate)\n *\n * @example\n * const node = { x: 0, y: 0, w: 2, h: 1, content: 'Hello' };\n * const added = engine.addNode(node, true);\n */\n addNode(node, triggerAddEvent = false, after) {\n const dup = this.nodes.find(n => n._id === node._id);\n if (dup)\n return dup; // prevent inserting twice! return it instead.\n // skip prepareNode if we're in middle of column resize (not new) but do check for bounds!\n this._inColumnResize ? this.nodeBoundFix(node) : this.prepareNode(node);\n delete node._temporaryRemoved;\n delete node._removeDOM;\n let skipCollision;\n if (node.autoPosition && this.findEmptyPosition(node, this.nodes, this.column, after)) {\n delete node.autoPosition; // found our slot\n skipCollision = true;\n }\n this.nodes.push(node);\n if (triggerAddEvent) {\n this.addedNodes.push(node);\n }\n if (!skipCollision)\n this._fixCollisions(node);\n if (!this.batchMode) {\n this._packNodes()._notify();\n }\n return node;\n }\n /**\n * Remove the given node from the grid.\n *\n * @param node the node to remove\n * @param removeDOM if true (default), marks node for DOM removal\n * @param triggerEvent if true, adds node to removedNodes list for event triggering\n * @returns the engine instance for chaining\n *\n * @example\n * engine.removeNode(node, true, true);\n */\n removeNode(node, removeDOM = true, triggerEvent = false) {\n if (!this.nodes.find(n => n._id === node._id)) {\n // TEST console.log(`Error: GridStackEngine.removeNode() node._id=${node._id} not found!`)\n return this;\n }\n if (triggerEvent) { // we wait until final drop to manually track removed items (rather than during drag)\n this.removedNodes.push(node);\n }\n if (removeDOM)\n node._removeDOM = true; // let CB remove actual HTML (used to set _id to null, but then we loose layout info)\n // don't use 'faster' .splice(findIndex(),1) in case node isn't in our list, or in multiple times.\n this.nodes = this.nodes.filter(n => n._id !== node._id);\n if (!node._isAboutToRemove)\n this._packNodes(); // if dragged out, no need to relayout as already done...\n this._notify([node]);\n return this;\n }\n /**\n * Remove all nodes from the grid.\n *\n * @param removeDOM if true (default), marks all nodes for DOM removal\n * @param triggerEvent if true (default), triggers removal events\n * @returns the engine instance for chaining\n *\n * @example\n * engine.removeAll(); // Remove all nodes\n */\n removeAll(removeDOM = true, triggerEvent = true) {\n delete this._layouts;\n if (!this.nodes.length)\n return this;\n removeDOM && this.nodes.forEach(n => n._removeDOM = true); // let CB remove actual HTML (used to set _id to null, but then we loose layout info)\n const removedNodes = this.nodes;\n this.removedNodes = triggerEvent ? removedNodes : [];\n this.nodes = [];\n return this._notify(removedNodes);\n }\n /**\n * Check if a node can be moved to a new position, considering layout constraints.\n * This is a safer version of moveNode() that validates the move first.\n *\n * For complex cases (like maxRow constraints), it simulates the move in a clone first,\n * then applies the changes only if they meet all specifications.\n *\n * @param node the node to move\n * @param o move options including target position\n * @returns true if the node was successfully moved\n *\n * @example\n * const canMove = engine.moveNodeCheck(node, { x: 2, y: 1 });\n * if (canMove) {\n * console.log('Node moved successfully');\n * }\n */\n moveNodeCheck(node, o) {\n // if (node.locked) return false;\n if (!this.changedPosConstrain(node, o))\n return false;\n o.pack = true;\n // simpler case: move item directly...\n if (!this.maxRow) {\n return this.moveNode(node, o);\n }\n // complex case: create a clone with NO maxRow (will check for out of bounds at the end)\n let clonedNode;\n const clone = new GridStackEngine({\n column: this.column,\n float: this.float,\n nodes: this.nodes.map(n => {\n if (n._id === node._id) {\n clonedNode = { ...n };\n return clonedNode;\n }\n return { ...n };\n })\n });\n if (!clonedNode)\n return false;\n // check if we're covering 50% collision and could move, while still being under maxRow or at least not making it worse\n // (case where widget was somehow added past our max #2449)\n const canMove = clone.moveNode(clonedNode, o) && clone.getRow() <= Math.max(this.getRow(), this.maxRow);\n // else check if we can force a swap (float=true, or different shapes) on non-resize\n if (!canMove && !o.resizing && o.collide) {\n const collide = o.collide.el.gridstackNode; // find the source node the clone collided with at 50%\n if (this.swap(node, collide)) { // swaps and mark dirty\n this._notify();\n return true;\n }\n }\n if (!canMove)\n return false;\n // if clone was able to move, copy those mods over to us now instead of caller trying to do this all over!\n // Note: we can't use the list directly as elements and other parts point to actual node, so copy content\n clone.nodes.filter(n => n._dirty).forEach(c => {\n const n = this.nodes.find(a => a._id === c._id);\n if (!n)\n return;\n Utils.copyPos(n, c);\n n._dirty = true;\n });\n this._notify();\n return true;\n }\n /** return true if can fit in grid height constrain only (always true if no maxRow) */\n willItFit(node) {\n delete node._willFitPos;\n if (!this.maxRow)\n return true;\n // create a clone with NO maxRow and check if still within size\n const clone = new GridStackEngine({\n column: this.column,\n float: this.float,\n nodes: this.nodes.map(n => { return { ...n }; })\n });\n const n = { ...node }; // clone node so we don't mod any settings on it but have full autoPosition and min/max as well! #1687\n this.cleanupNode(n);\n delete n.el;\n delete n._id;\n delete n.content;\n delete n.grid;\n clone.addNode(n);\n if (clone.getRow() <= this.maxRow) {\n node._willFitPos = Utils.copyPos({}, n);\n return true;\n }\n return false;\n }\n /** true if x,y or w,h are different after clamping to min/max */\n changedPosConstrain(node, p) {\n // first make sure w,h are set for caller\n p.w = p.w || node.w;\n p.h = p.h || node.h;\n if (node.x !== p.x || node.y !== p.y)\n return true;\n // check constrained w,h\n if (node.maxW) {\n p.w = Math.min(p.w, node.maxW);\n }\n if (node.maxH) {\n p.h = Math.min(p.h, node.maxH);\n }\n if (node.minW) {\n p.w = Math.max(p.w, node.minW);\n }\n if (node.minH) {\n p.h = Math.max(p.h, node.minH);\n }\n return (node.w !== p.w || node.h !== p.h);\n }\n /** return true if the passed in node was actually moved (checks for no-op and locked) */\n moveNode(node, o) {\n if (!node || /*node.locked ||*/ !o)\n return false;\n let wasUndefinedPack;\n if (o.pack === undefined && !this.batchMode) {\n wasUndefinedPack = o.pack = true;\n }\n // constrain the passed in values and check if we're still changing our node\n if (typeof o.x !== 'number') {\n o.x = node.x;\n }\n if (typeof o.y !== 'number') {\n o.y = node.y;\n }\n if (typeof o.w !== 'number') {\n o.w = node.w;\n }\n if (typeof o.h !== 'number') {\n o.h = node.h;\n }\n const resizing = (node.w !== o.w || node.h !== o.h);\n const nn = Utils.copyPos({}, node, true); // get min/max out first, then opt positions next\n Utils.copyPos(nn, o);\n this.nodeBoundFix(nn, resizing);\n Utils.copyPos(o, nn);\n if (!o.forceCollide && Utils.samePos(node, o))\n return false;\n const prevPos = Utils.copyPos({}, node);\n // check if we will need to fix collision at our new location\n const collides = this.collideAll(node, nn, o.skip);\n let needToMove = true;\n if (collides.length) {\n const activeDrag = node._moving && !o.nested;\n // check to make sure we actually collided over 50% surface area while dragging\n let collide = activeDrag ? this.directionCollideCoverage(node, o, collides) : collides[0];\n // if we're enabling creation of sub-grids on the fly, see if we're covering 80% of either one, if we didn't already do that\n if (activeDrag && collide && node.grid?.opts?.subGridDynamic && !node.grid._isTemp) {\n const over = Utils.areaIntercept(o.rect, collide._rect);\n const a1 = Utils.area(o.rect);\n const a2 = Utils.area(collide._rect);\n const perc = over / (a1 < a2 ? a1 : a2);\n if (perc > .8) {\n collide.grid.makeSubGrid(collide.el, undefined, node);\n collide = undefined;\n }\n }\n if (collide) {\n needToMove = !this._fixCollisions(node, nn, collide, o); // check if already moved...\n }\n else {\n needToMove = false; // we didn't cover >50% for a move, skip...\n if (wasUndefinedPack)\n delete o.pack;\n }\n }\n // now move (to the original ask vs the collision version which might differ) and repack things\n if (needToMove && !Utils.samePos(node, nn)) {\n node._dirty = true;\n Utils.copyPos(node, nn);\n }\n if (o.pack) {\n this._packNodes()\n ._notify();\n }\n return !Utils.samePos(node, prevPos); // pack might have moved things back\n }\n getRow() {\n return this.nodes.reduce((row, n) => Math.max(row, n.y + n.h), 0);\n }\n beginUpdate(node) {\n if (!node._updating) {\n node._updating = true;\n delete node._skipDown;\n if (!this.batchMode)\n this.saveInitial();\n }\n return this;\n }\n endUpdate() {\n const n = this.nodes.find(n => n._updating);\n if (n) {\n delete n._updating;\n delete n._skipDown;\n }\n return this;\n }\n /** saves a copy of the largest column layout (eg 12 even when rendering 1 column) so we don't loose orig layout, unless explicity column\n * count to use is given. returning a list of widgets for serialization\n * @param saveElement if true (default), the element will be saved to GridStackWidget.el field, else it will be removed.\n * @param saveCB callback for each node -> widget, so application can insert additional data to be saved into the widget data structure.\n * @param column if provided, the grid will be saved for the given column count (IFF we have matching internal saved layout, or current layout).\n * Note: nested grids will ALWAYS save the container w to match overall layouts (parent + child) to be consistent.\n */\n save(saveElement = true, saveCB, column) {\n // use the highest layout for any saved info so we can have full detail on reload #1849\n // unless we're given a column to match (always set for nested grids)\n const len = this._layouts?.length || 0;\n let layout;\n if (len) {\n if (column) {\n if (column !== this.column)\n layout = this._layouts[column];\n }\n else if (this.column !== len - 1) {\n layout = this._layouts[len - 1];\n }\n }\n const list = [];\n this.sortNodes();\n this.nodes.forEach(n => {\n const wl = layout?.find(l => l._id === n._id);\n // use layout info fields instead if set\n const w = { ...n, ...(wl || {}) };\n Utils.removeInternalForSave(w, !saveElement);\n if (saveCB)\n saveCB(n, w);\n list.push(w);\n });\n return list;\n }\n /** @internal called whenever a node is added or moved - updates the cached layouts */\n layoutsNodesChange(nodes) {\n if (!this._layouts || this._inColumnResize)\n return this;\n // remove smaller layouts - we will re-generate those on the fly... larger ones need to update\n this._layouts.forEach((layout, column) => {\n if (!layout || column === this.column)\n return this;\n if (column < this.column) {\n this._layouts[column] = undefined;\n }\n else {\n // we save the original x,y,w (h isn't cached) to see what actually changed to propagate better.\n // NOTE: we don't need to check against out of bound scaling/moving as that will be done when using those cache values. #1785\n const ratio = column / this.column;\n nodes.forEach(node => {\n if (!node._orig)\n return; // didn't change (newly added ?)\n const n = layout.find(l => l._id === node._id);\n if (!n)\n return; // no cache for new nodes. Will use those values.\n // Y changed, push down same amount\n // TODO: detect doing item 'swaps' will help instead of move (especially in 1 column mode)\n if (n.y >= 0 && node.y !== node._orig.y) {\n n.y += (node.y - node._orig.y);\n if (n.y < 0)\n n.y = 0;\n }\n // X changed, scale from new position\n if (node.x !== node._orig.x) {\n n.x = Math.round(node.x * ratio);\n if (n.x < 0)\n n.x = 0;\n }\n // width changed, scale from new width\n if (node.w !== node._orig.w) {\n n.w = Math.round(node.w * ratio);\n if (n.w < 1)\n n.w = 1;\n }\n // ...height always carries over from cache\n });\n }\n });\n return this;\n }\n /**\n * @internal Called to scale the widget width & position up/down based on the column change.\n * Note we store previous layouts (especially original ones) to make it possible to go\n * from say 12 -> 1 -> 12 and get back to where we were.\n *\n * @param prevColumn previous number of columns\n * @param column new column number\n * @param layout specify the type of re-layout that will happen (position, size, etc...).\n * Note: items will never be outside of the current column boundaries. default (moveScale). Ignored for 1 column\n */\n columnChanged(prevColumn, column, layout = 'moveScale') {\n if (!this.nodes.length || !column || prevColumn === column)\n return this;\n // simpler shortcuts layouts\n const doCompact = layout === 'compact' || layout === 'list';\n if (doCompact) {\n this.sortNodes(1); // sort with original layout once and only once (new column will affect order otherwise)\n }\n // cache the current layout in case they want to go back (like 12 -> 1 -> 12) as it requires original data IFF we're sizing down (see below)\n if (column < prevColumn)\n this.cacheLayout(this.nodes, prevColumn);\n this.batchUpdate(); // do this EARLY as it will call saveInitial() so we can detect where we started for _dirty and collision\n let newNodes = [];\n let nodes = doCompact ? this.nodes : Utils.sort(this.nodes, -1); // current column reverse sorting so we can insert last to front (limit collision)\n // see if we have cached previous layout IFF we are going up in size (restore) otherwise always\n // generate next size down from where we are (looks more natural as you gradually size down).\n if (column > prevColumn && this._layouts) {\n const cacheNodes = this._layouts[column] || [];\n // ...if not, start with the largest layout (if not already there) as down-scaling is more accurate\n // by pretending we came from that larger column by assigning those values as starting point\n const lastIndex = this._layouts.length - 1;\n if (!cacheNodes.length && prevColumn !== lastIndex && this._layouts[lastIndex]?.length) {\n prevColumn = lastIndex;\n this._layouts[lastIndex].forEach(cacheNode => {\n const n = nodes.find(n => n._id === cacheNode._id);\n if (n) {\n // still current, use cache info positions\n if (!doCompact && !cacheNode.autoPosition) {\n n.x = cacheNode.x ?? n.x;\n n.y = cacheNode.y ?? n.y;\n }\n n.w = cacheNode.w ?? n.w;\n if (cacheNode.x == undefined || cacheNode.y === undefined)\n n.autoPosition = true;\n }\n });\n }\n // if we found cache re-use those nodes that are still current\n cacheNodes.forEach(cacheNode => {\n const j = nodes.findIndex(n => n._id === cacheNode._id);\n if (j !== -1) {\n const n = nodes[j];\n // still current, use cache info positions\n if (doCompact) {\n n.w = cacheNode.w; // only w is used, and don't trim the list\n return;\n }\n if (cacheNode.autoPosition || isNaN(cacheNode.x) || isNaN(cacheNode.y)) {\n this.findEmptyPosition(cacheNode, newNodes);\n }\n if (!cacheNode.autoPosition) {\n n.x = cacheNode.x ?? n.x;\n n.y = cacheNode.y ?? n.y;\n n.w = cacheNode.w ?? n.w;\n newNodes.push(n);\n }\n nodes.splice(j, 1);\n }\n });\n }\n // much simpler layout that just compacts\n if (doCompact) {\n this.compact(layout, false);\n }\n else {\n // ...and add any extra non-cached ones\n if (nodes.length) {\n if (typeof layout === 'function') {\n layout(column, prevColumn, newNodes, nodes);\n }\n else {\n const ratio = (doCompact || layout === 'none') ? 1 : column / prevColumn;\n const move = (layout === 'move' || layout === 'moveScale');\n const scale = (layout === 'scale' || layout === 'moveScale');\n nodes.forEach(node => {\n // NOTE: x + w could be outside of the grid, but addNode() below will handle that\n node.x = (column === 1 ? 0 : (move ? Math.round(node.x * ratio) : Math.min(node.x, column - 1)));\n node.w = ((column === 1 || prevColumn === 1) ? 1 : scale ? (Math.round(node.w * ratio) || 1) : (Math.min(node.w, column)));\n newNodes.push(node);\n });\n nodes = [];\n }\n }\n // finally re-layout them in reverse order (to get correct placement)\n newNodes = Utils.sort(newNodes, -1);\n this._inColumnResize = true; // prevent cache update\n this.nodes = []; // pretend we have no nodes to start with (add() will use same structures) to simplify layout\n newNodes.forEach(node => {\n this.addNode(node, false); // 'false' for add event trigger\n delete node._orig; // make sure the commit doesn't try to restore things back to original\n });\n }\n this.nodes.forEach(n => delete n._orig); // clear _orig before batch=false so it doesn't handle float=true restore\n this.batchUpdate(false, !doCompact);\n delete this._inColumnResize;\n return this;\n }\n /**\n * call to cache the given layout internally to the given location so we can restore back when column changes size\n * @param nodes list of nodes\n * @param column corresponding column index to save it under\n * @param clear if true, will force other caches to be removed (default false)\n */\n cacheLayout(nodes, column, clear = false) {\n const copy = [];\n nodes.forEach((n, i) => {\n // make sure we have an id in case this is new layout, else re-use id already set\n if (n._id === undefined) {\n const existing = n.id ? this.nodes.find(n2 => n2.id === n.id) : undefined; // find existing node using users id\n n._id = existing?._id ?? GridStackEngine._idSeq++;\n }\n copy[i] = { x: n.x, y: n.y, w: n.w, _id: n._id }; // only thing we change is x,y,w and id to find it back\n });\n this._layouts = clear ? [] : this._layouts || []; // use array to find larger quick\n this._layouts[column] = copy;\n return this;\n }\n /**\n * call to cache the given node layout internally to the given location so we can restore back when column changes size\n * @param node single node to cache\n * @param column corresponding column index to save it under\n */\n cacheOneLayout(n, column) {\n n._id = n._id ?? GridStackEngine._idSeq++;\n const l = { x: n.x, y: n.y, w: n.w, _id: n._id };\n if (n.autoPosition || n.x === undefined) {\n delete l.x;\n delete l.y;\n if (n.autoPosition)\n l.autoPosition = true;\n }\n this._layouts = this._layouts || [];\n this._layouts[column] = this._layouts[column] || [];\n const index = this.findCacheLayout(n, column);\n if (index === -1)\n this._layouts[column].push(l);\n else\n this._layouts[column][index] = l;\n return this;\n }\n findCacheLayout(n, column) {\n return this._layouts?.[column]?.findIndex(l => l._id === n._id) ?? -1;\n }\n removeNodeFromLayoutCache(n) {\n if (!this._layouts) {\n return;\n }\n for (let i = 0; i < this._layouts.length; i++) {\n const index = this.findCacheLayout(n, i);\n if (index !== -1) {\n this._layouts[i].splice(index, 1);\n }\n }\n }\n /** called to remove all internal values but the _id */\n cleanupNode(node) {\n for (const prop in node) {\n if (prop[0] === '_' && prop !== '_id')\n delete node[prop];\n }\n return this;\n }\n}\n/** @internal unique global internal _id counter */\nGridStackEngine._idSeq = 0;\nexport { GridStackEngine };\n//# sourceMappingURL=gridstack-engine.js.map","/**\n * types.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\n/**\n * Default values for grid options - used during initialization and when saving out grid configuration.\n * These values are applied when options are not explicitly provided.\n */\nexport const gridDefaults = {\n alwaysShowResizeHandle: 'mobile',\n animate: true,\n auto: true,\n cellHeight: 'auto',\n cellHeightThrottle: 100,\n cellHeightUnit: 'px',\n column: 12,\n draggable: { handle: '.grid-stack-item-content', appendTo: 'body', scroll: true },\n handle: '.grid-stack-item-content',\n itemClass: 'grid-stack-item',\n margin: 10,\n marginUnit: 'px',\n maxRow: 0,\n minRow: 0,\n placeholderClass: 'grid-stack-placeholder',\n placeholderText: '',\n removableOptions: { accept: 'grid-stack-item', decline: 'grid-stack-non-removable' },\n resizable: { handles: 'se' },\n rtl: 'auto',\n // **** same as not being set ****\n // disableDrag: false,\n // disableResize: false,\n // float: false,\n // handleClass: null,\n // removable: false,\n // staticGrid: false,\n //removable\n};\n//# sourceMappingURL=types.js.map","/**\n * dd-manager.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\n/**\n * Global state manager for all Drag & Drop instances.\n *\n * This class maintains shared state across all drag & drop operations,\n * ensuring proper coordination between multiple grids and drag/drop elements.\n * All properties are static to provide global access throughout the DD system.\n */\nexport class DDManager {\n}\n//# sourceMappingURL=dd-manager.js.map","/**\n * touch.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { DDManager } from './dd-manager';\nimport { Utils } from './utils';\n/**\n * Detect touch support - Windows Surface devices and other touch devices\n * should we use this instead ? (what we had for always showing resize handles)\n * /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n */\nexport const isTouch = typeof window !== 'undefined' && typeof document !== 'undefined' &&\n ('ontouchstart' in document\n || 'ontouchstart' in window\n // || !!window.TouchEvent // true on Windows 10 Chrome desktop so don't use this\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n || (window.DocumentTouch && document instanceof window.DocumentTouch)\n || navigator.maxTouchPoints > 0\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n || navigator.msMaxTouchPoints > 0);\n// interface TouchCoord {x: number, y: number};\nexport class DDTouch {\n}\n/**\n* Get the x,y position of a touch event\n*/\n// function getTouchCoords(e: TouchEvent): TouchCoord {\n// return {\n// x: e.changedTouches[0].pageX,\n// y: e.changedTouches[0].pageY\n// };\n// }\n/**\n * Simulate a mouse event based on a corresponding touch event\n * @param {Object} e A touch event\n * @param {String} simulatedType The corresponding mouse event\n */\nfunction simulateMouseEvent(e, simulatedType) {\n // Ignore multi-touch events\n if (e.touches.length > 1)\n return;\n // Prevent \"Ignored attempt to cancel a touchmove event with cancelable=false\" errors\n if (e.cancelable)\n e.preventDefault();\n // Dispatch the simulated event to the target element\n Utils.simulateMouseEvent(e.changedTouches[0], simulatedType);\n}\n/**\n * Simulate a mouse event based on a corresponding Pointer event\n * @param {Object} e A pointer event\n * @param {String} simulatedType The corresponding mouse event\n */\nfunction simulatePointerMouseEvent(e, simulatedType) {\n // Prevent \"Ignored attempt to cancel a touchmove event with cancelable=false\" errors\n if (e.cancelable)\n e.preventDefault();\n // Dispatch the simulated event to the target element\n Utils.simulateMouseEvent(e, simulatedType);\n}\n/**\n * Handle the touchstart events\n * @param {Object} e The widget element's touchstart event\n */\nexport function touchstart(e) {\n // Ignore the event if another widget is already being handled\n if (DDTouch.touchHandled)\n return;\n DDTouch.touchHandled = true;\n // Simulate the mouse events\n // simulateMouseEvent(e, 'mouseover');\n // simulateMouseEvent(e, 'mousemove');\n simulateMouseEvent(e, 'mousedown');\n}\n/**\n * Handle the touchmove events\n * @param {Object} e The document's touchmove event\n */\nexport function touchmove(e) {\n // Ignore event if not handled by us\n if (!DDTouch.touchHandled)\n return;\n simulateMouseEvent(e, 'mousemove');\n}\n/**\n * Handle the touchend events\n * @param {Object} e The document's touchend event\n */\nexport function touchend(e) {\n // Ignore event if not handled\n if (!DDTouch.touchHandled)\n return;\n // cancel delayed leave event when we release on ourself which happens BEFORE we get this!\n if (DDTouch.pointerLeaveTimeout) {\n window.clearTimeout(DDTouch.pointerLeaveTimeout);\n delete DDTouch.pointerLeaveTimeout;\n }\n const wasDragging = !!DDManager.dragElement;\n // Simulate the mouseup event\n simulateMouseEvent(e, 'mouseup');\n // simulateMouseEvent(event, 'mouseout');\n // If the touch interaction did not move, it should trigger a click\n if (!wasDragging) {\n simulateMouseEvent(e, 'click');\n }\n // Unset the flag to allow other widgets to inherit the touch event\n DDTouch.touchHandled = false;\n}\n/**\n * Note we don't get touchenter/touchleave (which are deprecated)\n * see https://stackoverflow.com/questions/27908339/js-touch-equivalent-for-mouseenter\n * so instead of PointerEvent to still get enter/leave and send the matching mouse event.\n */\nexport function pointerdown(e) {\n // console.log(\"pointer down\")\n if (e.pointerType === 'mouse')\n return;\n e.target.releasePointerCapture(e.pointerId); // <- Important!\n}\nexport function pointerenter(e) {\n // ignore the initial one we get on pointerdown on ourself\n if (!DDManager.dragElement) {\n // console.log('pointerenter ignored');\n return;\n }\n // console.log('pointerenter');\n if (e.pointerType === 'mouse')\n return;\n simulatePointerMouseEvent(e, 'mouseenter');\n}\nexport function pointerleave(e) {\n // ignore the leave on ourself we get before releasing the mouse over ourself\n // by delaying sending the event and having the up event cancel us\n if (!DDManager.dragElement) {\n // console.log('pointerleave ignored');\n return;\n }\n if (e.pointerType === 'mouse')\n return;\n DDTouch.pointerLeaveTimeout = window.setTimeout(() => {\n delete DDTouch.pointerLeaveTimeout;\n // console.log('pointerleave delayed');\n simulatePointerMouseEvent(e, 'mouseleave');\n }, 10);\n}\n//# sourceMappingURL=dd-touch.js.map","/**\n * dd-resizable-handle.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { isTouch, pointerdown, touchend, touchmove, touchstart } from './dd-touch';\nclass DDResizableHandle {\n constructor(host, dir, option) {\n this.host = host;\n this.dir = dir;\n this.option = option;\n /** @internal true after we've moved enough pixels to start a resize */\n this.moving = false;\n // create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)\n this._mouseDown = this._mouseDown.bind(this);\n this._mouseMove = this._mouseMove.bind(this);\n this._mouseUp = this._mouseUp.bind(this);\n this._keyEvent = this._keyEvent.bind(this);\n this._init();\n }\n /** @internal */\n _init() {\n if (this.option.element) {\n try {\n this.el = this.option.element instanceof HTMLElement\n ? this.option.element\n : this.host.querySelector(this.option.element);\n }\n catch (error) {\n this.option.element = undefined; // make sure destroy handles it correctly\n console.error(\"Query for resizeable handle failed, falling back\", error);\n }\n }\n if (!this.el) {\n this.el = document.createElement('div');\n this.host.appendChild(this.el);\n }\n this.el.classList.add('ui-resizable-handle');\n this.el.classList.add(`${DDResizableHandle.prefix}${this.dir}`);\n this.el.style.zIndex = '100';\n this.el.style.userSelect = 'none';\n this.el.addEventListener('mousedown', this._mouseDown);\n if (isTouch) {\n this.el.addEventListener('touchstart', touchstart);\n this.el.addEventListener('pointerdown', pointerdown);\n // this.el.style.touchAction = 'none'; // not needed unlike pointerdown doc comment\n }\n return this;\n }\n /** call this when resize handle needs to be removed and cleaned up */\n destroy() {\n if (this.moving)\n this._mouseUp(this.mouseDownEvent);\n this.el.removeEventListener('mousedown', this._mouseDown);\n if (isTouch) {\n this.el.removeEventListener('touchstart', touchstart);\n this.el.removeEventListener('pointerdown', pointerdown);\n }\n if (!this.option.element) {\n this.host.removeChild(this.el);\n }\n delete this.el;\n delete this.host;\n return this;\n }\n /** @internal called on mouse down on us: capture move on the entire document (mouse might not stay on us) until we release the mouse */\n _mouseDown(e) {\n this.mouseDownEvent = e;\n document.addEventListener('mousemove', this._mouseMove, { capture: true, passive: true }); // capture, not bubble\n document.addEventListener('mouseup', this._mouseUp, true);\n if (isTouch) {\n this.el.addEventListener('touchmove', touchmove);\n this.el.addEventListener('touchend', touchend);\n }\n e.stopPropagation();\n e.preventDefault();\n }\n /** @internal */\n _mouseMove(e) {\n const s = this.mouseDownEvent;\n if (this.moving) {\n this._triggerEvent('move', e);\n }\n else if (Math.abs(e.x - s.x) + Math.abs(e.y - s.y) > 2) {\n // don't start unless we've moved at least 3 pixels\n this.moving = true;\n this._triggerEvent('start', this.mouseDownEvent);\n this._triggerEvent('move', e);\n // now track keyboard events to cancel\n document.addEventListener('keydown', this._keyEvent);\n }\n e.stopPropagation();\n // e.preventDefault(); passive = true\n }\n /** @internal */\n _mouseUp(e) {\n if (this.moving) {\n this._triggerEvent('stop', e);\n document.removeEventListener('keydown', this._keyEvent);\n }\n document.removeEventListener('mousemove', this._mouseMove, true);\n document.removeEventListener('mouseup', this._mouseUp, true);\n if (isTouch) {\n this.el.removeEventListener('touchmove', touchmove);\n this.el.removeEventListener('touchend', touchend);\n }\n delete this.moving;\n delete this.mouseDownEvent;\n e.stopPropagation();\n e.preventDefault();\n }\n /** @internal call when keys are being pressed - use Esc to cancel */\n _keyEvent(e) {\n if (e.key === 'Escape') {\n this.host.gridstackNode?.grid?.engine.restoreInitial();\n this._mouseUp(this.mouseDownEvent);\n }\n }\n /** @internal */\n _triggerEvent(name, event) {\n if (this.option[name])\n this.option[name](event);\n return this;\n }\n}\n/** @internal */\nDDResizableHandle.prefix = 'ui-resizable-';\nexport { DDResizableHandle };\n//# sourceMappingURL=dd-resizable-handle.js.map","/**\n * dd-base-impl.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\n/**\n * Abstract base class for all drag & drop implementations.\n * Provides common functionality for event handling, enable/disable state,\n * and lifecycle management used by draggable, droppable, and resizable implementations.\n */\nexport class DDBaseImplement {\n constructor() {\n /** @internal */\n this._eventRegister = {};\n }\n /**\n * Returns the current disabled state.\n * Note: Use enable()/disable() methods to change state as other operations need to happen.\n */\n get disabled() { return this._disabled; }\n /**\n * Register an event callback for the specified event.\n *\n * @param event - Event name to listen for\n * @param callback - Function to call when event occurs\n */\n on(event, callback) {\n this._eventRegister[event] = callback;\n }\n /**\n * Unregister an event callback for the specified event.\n *\n * @param event - Event name to stop listening for\n */\n off(event) {\n delete this._eventRegister[event];\n }\n /**\n * Enable this drag & drop implementation.\n * Subclasses should override to perform additional setup.\n */\n enable() {\n this._disabled = false;\n }\n /**\n * Disable this drag & drop implementation.\n * Subclasses should override to perform additional cleanup.\n */\n disable() {\n this._disabled = true;\n }\n /**\n * Destroy this drag & drop implementation and clean up resources.\n * Removes all event handlers and clears internal state.\n */\n destroy() {\n delete this._eventRegister;\n }\n /**\n * Trigger a registered event callback if one exists and the implementation is enabled.\n *\n * @param eventName - Name of the event to trigger\n * @param event - DOM event object to pass to the callback\n * @returns Result from the callback function, if any\n */\n triggerEvent(eventName, event) {\n if (!this.disabled && this._eventRegister && this._eventRegister[eventName])\n return this._eventRegister[eventName](event);\n }\n}\n//# sourceMappingURL=dd-base-impl.js.map","/**\n * dd-resizable.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { DDResizableHandle } from './dd-resizable-handle';\nimport { DDBaseImplement } from './dd-base-impl';\nimport { Utils } from './utils';\nimport { DDManager } from './dd-manager';\nclass DDResizable extends DDBaseImplement {\n // have to be public else complains for HTMLElementExtendOpt ?\n constructor(el, option = {}) {\n super();\n this.el = el;\n this.option = option;\n /** @internal */\n this.rectScale = { x: 1, y: 1 };\n /** @internal */\n this._ui = () => {\n const containmentEl = this.el.parentElement;\n const containmentRect = containmentEl.getBoundingClientRect();\n const newRect = {\n width: this.originalRect.width,\n height: this.originalRect.height + this.scrolled,\n left: this.originalRect.left,\n right: this.originalRect.right,\n top: this.originalRect.top - this.scrolled\n };\n const rect = this.temporalRect || newRect;\n const leftPos = this.option.rtl\n ? (containmentRect.right - rect.right) * this.rectScale.x\n : (rect.left - containmentRect.left) * this.rectScale.x;\n return {\n position: {\n left: leftPos,\n top: (rect.top - containmentRect.top) * this.rectScale.y\n },\n size: {\n width: rect.width * this.rectScale.x,\n height: rect.height * this.rectScale.y\n }\n /* Gridstack ONLY needs position set above... keep around in case.\n element: [this.el], // The object representing the element to be resized\n helper: [], // TODO: not support yet - The object representing the helper that's being resized\n originalElement: [this.el],// we don't wrap here, so simplify as this.el //The object representing the original element before it is wrapped\n originalPosition: { // The position represented as { left, top } before the resizable is resized\n left: this.originalRect.left - containmentRect.left,\n top: this.originalRect.top - containmentRect.top\n },\n originalSize: { // The size represented as { width, height } before the resizable is resized\n width: this.originalRect.width,\n height: this.originalRect.height\n }\n */\n };\n };\n // create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)\n this._mouseOver = this._mouseOver.bind(this);\n this._mouseOut = this._mouseOut.bind(this);\n this.enable();\n this._setupAutoHide(this.option.autoHide);\n this._setupHandlers();\n }\n on(event, callback) {\n super.on(event, callback);\n }\n off(event) {\n super.off(event);\n }\n enable() {\n super.enable();\n this.el.classList.remove('ui-resizable-disabled');\n this._setupAutoHide(this.option.autoHide);\n }\n disable() {\n super.disable();\n this.el.classList.add('ui-resizable-disabled');\n this._setupAutoHide(false);\n }\n destroy() {\n this._removeHandlers();\n this._setupAutoHide(false);\n delete this.el;\n super.destroy();\n }\n updateOption(opts) {\n const updateHandles = (opts.handles && opts.handles !== this.option.handles);\n const updateAutoHide = (opts.autoHide && opts.autoHide !== this.option.autoHide);\n Object.keys(opts).forEach(key => this.option[key] = opts[key]);\n if (updateHandles) {\n this._removeHandlers();\n this._setupHandlers();\n }\n if (updateAutoHide) {\n this._setupAutoHide(this.option.autoHide);\n }\n return this;\n }\n /** @internal turns auto hide on/off */\n _setupAutoHide(auto) {\n if (auto) {\n this.el.classList.add('ui-resizable-autohide');\n // use mouseover and not mouseenter to get better performance and track for nested cases\n this.el.addEventListener('mouseover', this._mouseOver);\n this.el.addEventListener('mouseout', this._mouseOut);\n }\n else {\n this.el.classList.remove('ui-resizable-autohide');\n this.el.removeEventListener('mouseover', this._mouseOver);\n this.el.removeEventListener('mouseout', this._mouseOut);\n if (DDManager.overResizeElement === this) {\n delete DDManager.overResizeElement;\n }\n }\n return this;\n }\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mouseOver(e) {\n // console.log(`${count++} pre-enter ${(this.el as GridItemHTMLElement).gridstackNode._id}`)\n // already over a child, ignore. Ideally we just call e.stopPropagation() but see https://github.com/gridstack/gridstack.js/issues/2018\n if (DDManager.overResizeElement || DDManager.dragElement)\n return;\n DDManager.overResizeElement = this;\n // console.log(`${count++} enter ${(this.el as GridItemHTMLElement).gridstackNode._id}`)\n this.el.classList.remove('ui-resizable-autohide');\n }\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mouseOut(e) {\n // console.log(`${count++} pre-leave ${(this.el as GridItemHTMLElement).gridstackNode._id}`)\n if (DDManager.overResizeElement !== this)\n return;\n delete DDManager.overResizeElement;\n // console.log(`${count++} leave ${(this.el as GridItemHTMLElement).gridstackNode._id}`)\n this.el.classList.add('ui-resizable-autohide');\n }\n /** @internal */\n _setupHandlers() {\n this.handlers = this.option.handles.split(',')\n .map(dir => dir.trim())\n .map(dir => new DDResizableHandle(this.el, dir, {\n element: this.option.element,\n start: (event) => this._resizeStart(event),\n stop: (event) => this._resizeStop(event),\n move: (event) => this._resizing(event, dir)\n }));\n return this;\n }\n /** @internal */\n _resizeStart(event) {\n this.sizeToContent = Utils.shouldSizeToContent(this.el.gridstackNode, true); // strick true only and not number\n this.originalRect = this.el.getBoundingClientRect();\n this.scrollEl = Utils.getScrollElement(this.el);\n this.scrollY = this.scrollEl.scrollTop;\n this.scrolled = 0;\n this.startEvent = event;\n this._setupHelper();\n this._applyChange();\n const ev = Utils.initEvent(event, { type: 'resizestart', target: this.el });\n if (this.option.start) {\n this.option.start(ev, this._ui());\n }\n this.el.classList.add('ui-resizable-resizing');\n this.triggerEvent('resizestart', ev);\n return this;\n }\n /** @internal */\n _resizing(event, dir) {\n this.scrolled = this.scrollEl.scrollTop - this.scrollY;\n this.temporalRect = this._getChange(event, dir);\n this._applyChange();\n const ev = Utils.initEvent(event, { type: 'resize', target: this.el });\n ev.resizeDir = dir; // expose handle direction so _dragOrResize can avoid position drift\n ev.hasMovedX = this.option.rtl ? dir.includes('e') : dir.includes('w');\n ev.hasMovedY = dir.includes('n');\n if (this.option.resize) {\n this.option.resize(ev, this._ui());\n }\n this.triggerEvent('resize', ev);\n return this;\n }\n /** @internal */\n _resizeStop(event) {\n const ev = Utils.initEvent(event, { type: 'resizestop', target: this.el });\n // Remove style attr now, so the stop handler can rebuild style attrs\n this._cleanHelper();\n if (this.option.stop) {\n this.option.stop(ev); // Note: ui() not used by gridstack so don't pass\n }\n this.el.classList.remove('ui-resizable-resizing');\n this.triggerEvent('resizestop', ev);\n delete this.startEvent;\n delete this.originalRect;\n delete this.temporalRect;\n delete this.scrollY;\n delete this.scrolled;\n return this;\n }\n /** @internal */\n _setupHelper() {\n this.elOriginStyleVal = DDResizable._originStyleProp.map(prop => this.el.style[prop]);\n this.parentOriginStylePosition = this.el.parentElement.style.position;\n const parent = this.el.parentElement;\n const dragTransform = Utils.getValuesFromTransformedElement(parent);\n this.rectScale = {\n x: dragTransform.xScale,\n y: dragTransform.yScale\n };\n if (getComputedStyle(this.el.parentElement).position.match(/static/)) {\n this.el.parentElement.style.position = 'relative';\n }\n this.el.style.position = 'absolute';\n this.el.style.opacity = '0.8';\n return this;\n }\n /** @internal */\n _cleanHelper() {\n DDResizable._originStyleProp.forEach((prop, i) => {\n this.el.style[prop] = this.elOriginStyleVal[i] || null;\n });\n this.el.parentElement.style.position = this.parentOriginStylePosition || null;\n return this;\n }\n /** @internal */\n _getChange(event, dir) {\n const oEvent = this.startEvent;\n const newRect = {\n width: this.originalRect.width,\n height: this.originalRect.height + this.scrolled,\n left: this.originalRect.left,\n right: this.originalRect.right,\n top: this.originalRect.top - this.scrolled,\n };\n const offsetX = event.clientX - oEvent.clientX;\n const offsetY = this.sizeToContent ? 0 : event.clientY - oEvent.clientY; // prevent vert resize\n let moveLeft;\n let moveUp;\n const isRtl = this.option.rtl;\n if (!isRtl && dir.indexOf('e') > -1) {\n newRect.width += offsetX;\n }\n else if (isRtl && dir.indexOf('w') > -1) {\n newRect.width -= offsetX;\n }\n else if (!isRtl && dir.indexOf('w') > -1) {\n newRect.width -= offsetX;\n newRect.left += offsetX;\n moveLeft = true;\n }\n else if (isRtl && dir.indexOf('e') > -1) {\n newRect.width += offsetX;\n newRect.right += offsetX;\n moveLeft = true;\n }\n if (dir.indexOf('s') > -1) {\n newRect.height += offsetY;\n }\n else if (dir.indexOf('n') > -1) {\n newRect.height -= offsetY;\n newRect.top += offsetY;\n moveUp = true;\n }\n const constrain = this._constrainSize(newRect.width, newRect.height, moveLeft, moveUp);\n if (Math.round(newRect.width) !== Math.round(constrain.width)) { // round to ignore slight round-off errors\n if (!isRtl && dir.indexOf('w') > -1) {\n newRect.left += newRect.width - constrain.width;\n }\n else if (isRtl && dir.indexOf('e') > -1) {\n newRect.right -= newRect.width - constrain.width;\n }\n newRect.width = constrain.width;\n }\n if (Math.round(newRect.height) !== Math.round(constrain.height)) {\n if (dir.indexOf('n') > -1) {\n newRect.top += newRect.height - constrain.height;\n }\n newRect.height = constrain.height;\n }\n return newRect;\n }\n /** @internal constrain the size to the set min/max values */\n _constrainSize(oWidth, oHeight, moveLeft, moveUp) {\n const o = this.option;\n const maxWidth = (moveLeft ? o.maxWidthMoveLeft : o.maxWidth) || Number.MAX_SAFE_INTEGER;\n const minWidth = o.minWidth / this.rectScale.x || oWidth;\n const maxHeight = (moveUp ? o.maxHeightMoveUp : o.maxHeight) || Number.MAX_SAFE_INTEGER;\n const minHeight = o.minHeight / this.rectScale.y || oHeight;\n const width = Math.min(maxWidth, Math.max(minWidth, oWidth));\n const height = Math.min(maxHeight, Math.max(minHeight, oHeight));\n return { width, height };\n }\n /** @internal */\n _applyChange() {\n let containmentRect = { left: 0, right: 0, top: 0, width: 0, height: 0 };\n if (this.el.style.position === 'absolute') {\n const containmentEl = this.el.parentElement;\n const { left, right, top } = containmentEl.getBoundingClientRect();\n containmentRect = { left, right, top, width: 0, height: 0 };\n }\n if (!this.temporalRect)\n return this;\n Object.entries(this.temporalRect).forEach(([key, value]) => {\n if (this.option.rtl ? key === 'left' : key === 'right')\n return;\n const scaleReciprocal = key === 'width' || key === 'left' || key === 'right'\n ? this.rectScale.x\n : key === 'height' || key === 'top'\n ? this.rectScale.y\n : 1;\n let finalValue;\n if (key === 'right') {\n finalValue = (containmentRect.right - value) * this.rectScale.x + 'px';\n }\n else {\n finalValue = (value - containmentRect[key]) * scaleReciprocal + 'px';\n }\n this.el.style[key] = finalValue;\n });\n return this;\n }\n /** @internal */\n _removeHandlers() {\n this.handlers.forEach(handle => handle.destroy());\n delete this.handlers;\n return this;\n }\n}\n/** @internal */\nDDResizable._originStyleProp = ['width', 'height', 'position', 'left', 'right', 'top', 'opacity', 'zIndex'];\nexport { DDResizable };\n//# sourceMappingURL=dd-resizable.js.map","/**\n * dd-draggable.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { DDManager } from './dd-manager';\nimport { Utils } from './utils';\nimport { DDBaseImplement } from './dd-base-impl';\nimport { isTouch, touchend, touchmove, touchstart, pointerdown, DDTouch } from './dd-touch';\n// make sure we are not clicking on known object that handles mouseDown\nconst skipMouseDown = 'input,textarea,button,select,option,[contenteditable=\"true\"],.ui-resizable-handle';\n// let count = 0; // TEST\nclass DDDraggable extends DDBaseImplement {\n constructor(el, option = {}) {\n super();\n this.el = el;\n this.option = option;\n /** @internal */\n this.dragTransform = {\n xScale: 1,\n yScale: 1,\n xOffset: 0,\n yOffset: 0\n };\n /** @internal single tick of the auto-scroll animation loop */\n this._autoScrollTick = () => {\n const el = this.helper;\n const scrollCont = this._autoScrollContainer;\n if (!el || !scrollCont) {\n this._stopScrolling();\n return;\n }\n const clipping = this._getClipping(el, scrollCont);\n if (clipping === 0) {\n this._stopScrolling();\n return;\n }\n if (!this._autoScrollMaxSpeed) {\n const viewportH = window.innerHeight || document.documentElement.clientHeight;\n this._autoScrollMaxSpeed = Math.max(viewportH / 150, 4);\n }\n const absPx = Math.abs(clipping);\n const speed = Math.min(absPx * 0.5, this._autoScrollMaxSpeed);\n const scrollAmount = clipping > 0 ? speed : -speed;\n const prevScroll = scrollCont.scrollTop;\n scrollCont.scrollTop += scrollAmount;\n if (scrollCont.scrollTop === prevScroll) {\n this._stopScrolling();\n return;\n }\n if (this.dragging && this.lastDrag) {\n this._dragFollow(this.lastDrag);\n this._callDrag(this.lastDrag);\n }\n this._autoScrollAnimId = requestAnimationFrame(this._autoScrollTick);\n };\n // get the element that is actually supposed to be dragged by\n const handleName = option?.handle?.substring(1);\n const n = el.gridstackNode;\n this.dragEls = !handleName || el.classList.contains(handleName) ? [el] : (n?.subGrid ? [el.querySelector(option.handle) || el] : this.getAllHandles());\n if (this.dragEls.length === 0) {\n this.dragEls = [el];\n }\n // create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)\n this._mouseDown = this._mouseDown.bind(this);\n this._mouseMove = this._mouseMove.bind(this);\n this._mouseUp = this._mouseUp.bind(this);\n this._keyEvent = this._keyEvent.bind(this);\n this.enable();\n }\n /** return all handles omitting other nested `.grid-stack-item` children (in case node.subGrid isn't set for some reason) */\n getAllHandles() {\n return Array.from(this.el.querySelectorAll(this.option.handle)).filter((node) => {\n if (!(node instanceof HTMLElement))\n return false;\n const owner = node.closest('.grid-stack-item');\n return owner === this.el || !owner;\n });\n }\n on(event, callback) {\n super.on(event, callback);\n }\n off(event) {\n super.off(event);\n }\n enable() {\n if (this.disabled === false)\n return;\n super.enable();\n this.dragEls.forEach(dragEl => {\n dragEl.addEventListener('mousedown', this._mouseDown);\n if (isTouch) {\n dragEl.addEventListener('touchstart', touchstart);\n dragEl.addEventListener('pointerdown', pointerdown);\n // dragEl.style.touchAction = 'none'; // not needed unlike pointerdown doc comment\n }\n });\n this.el.classList.remove('ui-draggable-disabled');\n }\n disable(forDestroy = false) {\n if (this.disabled === true)\n return;\n super.disable();\n this.dragEls.forEach(dragEl => {\n dragEl.removeEventListener('mousedown', this._mouseDown);\n if (isTouch) {\n dragEl.removeEventListener('touchstart', touchstart);\n dragEl.removeEventListener('pointerdown', pointerdown);\n }\n });\n if (!forDestroy)\n this.el.classList.add('ui-draggable-disabled');\n }\n destroy() {\n if (this.dragTimeout)\n window.clearTimeout(this.dragTimeout);\n delete this.dragTimeout;\n if (this.mouseDownEvent)\n this._mouseUp(this.mouseDownEvent);\n this.disable(true);\n delete this.el;\n delete this.helper;\n delete this.option;\n super.destroy();\n }\n updateOption(opts) {\n Object.keys(opts).forEach(key => this.option[key] = opts[key]);\n return this;\n }\n /** @internal call when mouse goes down before a dragstart happens */\n _mouseDown(e) {\n // if real brower event (trusted:true vs false for our simulated ones) and we didn't correctly clear the last touch event, clear things up\n if (DDTouch.touchHandled && e.isTrusted)\n DDTouch.touchHandled = false;\n // don't let more than one widget handle mouseStart\n if (DDManager.mouseHandled)\n return;\n if (e.button !== 0)\n return true; // only left click\n // make sure we are not clicking on known object that handles mouseDown, or ones supplied by the user\n if (!this.dragEls.find(el => el === e.target) && e.target.closest(skipMouseDown))\n return true;\n if (this.option.cancel) {\n if (e.target.closest(this.option.cancel))\n return true;\n }\n this.mouseDownEvent = e;\n delete this.dragging;\n delete DDManager.dragElement;\n delete DDManager.dropElement;\n delete this._autoScrollMaxSpeed;\n delete this._autoScrollContainer;\n // document handler so we can continue receiving moves as the item is 'fixed' position, and capture=true so WE get a first crack\n document.addEventListener('mousemove', this._mouseMove, { capture: true, passive: true }); // true=capture, not bubble\n document.addEventListener('mouseup', this._mouseUp, true);\n if (isTouch) {\n e.currentTarget.addEventListener('touchmove', touchmove);\n e.currentTarget.addEventListener('touchend', touchend);\n }\n e.preventDefault();\n // preventDefault() prevents blur event which occurs just after mousedown event.\n // if an editable content has focus, then blur must be call\n if (document.activeElement)\n document.activeElement.blur();\n DDManager.mouseHandled = true;\n return true;\n }\n /** @internal method to call actual drag event */\n _callDrag(e) {\n if (!this.dragging)\n return;\n const ev = Utils.initEvent(e, { target: this.el, type: 'drag' });\n if (this.option.drag) {\n this.option.drag(ev, this.ui());\n }\n this.triggerEvent('drag', ev);\n }\n /** @internal called when the main page (after successful mousedown) receives a move event to drag the item around the screen */\n _mouseMove(e) {\n // console.log(`${count++} move ${e.x},${e.y}`)\n const s = this.mouseDownEvent;\n this.lastDrag = e;\n if (this.dragging) {\n this._dragFollow(e);\n // delay actual grid handling drag until we pause for a while if set\n if (DDManager.pauseDrag) {\n const pause = Number.isInteger(DDManager.pauseDrag) ? DDManager.pauseDrag : 100;\n if (this.dragTimeout)\n window.clearTimeout(this.dragTimeout);\n this.dragTimeout = window.setTimeout(() => this._callDrag(e), pause);\n }\n else {\n this._callDrag(e);\n }\n }\n else if (Math.abs(e.x - s.x) + Math.abs(e.y - s.y) > 3) {\n /**\n * don't start unless we've moved at least 3 pixels\n */\n this.dragging = true;\n DDManager.dragElement = this;\n // if we're dragging an actual grid item, set the current drop as the grid (to detect enter/leave)\n const grid = this.el.gridstackNode?.grid;\n if (grid) {\n DDManager.dropElement = grid.el.ddElement.ddDroppable;\n }\n else {\n delete DDManager.dropElement;\n }\n this.helper = this._createHelper();\n this._setupHelperContainmentStyle();\n this.dragTransform = Utils.getValuesFromTransformedElement(this.helperContainment);\n this.dragOffset = this._getDragOffset(e, this.el, this.helperContainment);\n this._setupHelperStyle(e);\n const ev = Utils.initEvent(e, { target: this.el, type: 'dragstart' });\n if (this.option.start) {\n this.option.start(ev, this.ui());\n }\n this.triggerEvent('dragstart', ev);\n // now track keyboard events to cancel or rotate\n document.addEventListener('keydown', this._keyEvent);\n }\n // e.preventDefault(); // passive = true. OLD: was needed otherwise we get text sweep text selection as we drag around\n return true;\n }\n /** @internal call when the mouse gets released to drop the item at current location */\n _mouseUp(e) {\n this._stopScrolling();\n document.removeEventListener('mousemove', this._mouseMove, true);\n document.removeEventListener('mouseup', this._mouseUp, true);\n if (isTouch && e.currentTarget) { // destroy() during nested grid call us again wit fake _mouseUp\n e.currentTarget.removeEventListener('touchmove', touchmove, true);\n e.currentTarget.removeEventListener('touchend', touchend, true);\n }\n if (this.dragging) {\n delete this.dragging;\n delete this.el.gridstackNode?._origRotate;\n document.removeEventListener('keydown', this._keyEvent);\n // reset the drop target if dragging over ourself (already parented, just moving during stop callback below)\n if (DDManager.dropElement?.el === this.el.parentElement) {\n delete DDManager.dropElement;\n }\n this.helperContainment.style.position = this.parentOriginStylePosition || null;\n if (this.helper !== this.el)\n this.helper.remove(); // hide now\n this._removeHelperStyle();\n const ev = Utils.initEvent(e, { target: this.el, type: 'dragstop' });\n if (this.option.stop) {\n this.option.stop(ev); // NOTE: destroy() will be called when removing item, so expect NULL ptr after!\n }\n this.triggerEvent('dragstop', ev);\n // call the droppable method to receive the item\n if (DDManager.dropElement) {\n DDManager.dropElement.drop(e);\n }\n }\n delete this.helper;\n delete this.mouseDownEvent;\n delete DDManager.dragElement;\n delete DDManager.dropElement;\n delete DDManager.mouseHandled;\n e.preventDefault();\n }\n /** @internal call when keys are being pressed - use Esc to cancel, R to rotate */\n _keyEvent(e) {\n const n = this.el.gridstackNode;\n const grid = n?.grid || DDManager.dropElement?.el?.gridstack;\n if (e.key === 'Escape') {\n if (n && n._origRotate) {\n n._orig = n._origRotate;\n delete n._origRotate;\n }\n grid?.cancelDrag();\n this._mouseUp(this.mouseDownEvent);\n }\n else if (n && grid && (e.key === 'r' || e.key === 'R')) {\n if (!Utils.canBeRotated(n))\n return;\n n._origRotate = n._origRotate || { ...n._orig }; // store the real orig size in case we Esc after doing rotation\n delete n._moving; // force rotate to happen (move waits for >50% coverage otherwise)\n grid.setAnimation(false) // immediate rotate so _getDragOffset() gets the right dom size below\n .rotate(n.el, {\n top: -this.dragOffset.offsetTop,\n left: -this.dragOffset.offsetX\n })\n .setAnimation();\n n._moving = true;\n this.dragOffset = this._getDragOffset(this.lastDrag, n.el, this.helperContainment);\n this.helper.style.width = this.dragOffset.width + 'px';\n this.helper.style.height = this.dragOffset.height + 'px';\n Utils.swap(n._orig, 'w', 'h');\n delete n._rect;\n this._mouseMove(this.lastDrag);\n }\n }\n /** @internal create a clone copy (or user defined method) of the original drag item if set */\n _createHelper() {\n let helper = this.el;\n if (typeof this.option.helper === 'function') {\n helper = this.option.helper(this.el);\n }\n else if (this.option.helper === 'clone') {\n helper = Utils.cloneNode(this.el);\n }\n if (!helper.parentElement) {\n Utils.appendTo(helper, this.option.appendTo === 'parent' ? this.el.parentElement : this.option.appendTo);\n }\n this.dragElementOriginStyle = DDDraggable.originStyleProp.map(prop => this.el.style[prop]);\n return helper;\n }\n /** @internal set the fix position of the dragged item */\n _setupHelperStyle(e) {\n this.helper.classList.add('ui-draggable-dragging');\n this.el.gridstackNode?.grid?.el.classList.add('grid-stack-dragging');\n // TODO: set all at once with style.cssText += ... ? https://stackoverflow.com/questions/3968593\n const style = this.helper.style;\n style.pointerEvents = 'none'; // needed for over items to get enter/leave\n // style.cursor = 'move'; // TODO: can't set with pointerEvents=none ! (no longer in CSS either as no-op)\n style.width = this.dragOffset.width + 'px';\n style.height = this.dragOffset.height + 'px';\n style.willChange = 'left, right, top';\n style.position = 'fixed'; // let us drag between grids by not clipping as parent .grid-stack is position: 'relative'\n this._dragFollow(e); // now position it\n style.transition = 'none'; // show up instantly\n setTimeout(() => {\n if (this.helper) {\n style.transition = null; // recover animation\n }\n }, 0);\n return this;\n }\n /** @internal restore back the original style before dragging */\n _removeHelperStyle() {\n this.helper.classList.remove('ui-draggable-dragging');\n this.el.gridstackNode?.grid?.el.classList.remove('grid-stack-dragging');\n const node = this.helper?.gridstackNode;\n // don't bother restoring styles if we're gonna remove anyway...\n if (!node?._isAboutToRemove && this.dragElementOriginStyle) {\n const helper = this.helper;\n // don't animate, otherwise we animate offseted when switching back to 'absolute' from 'fixed'.\n // TODO: this also removes resizing animation which doesn't have this issue, but others.\n // Ideally both would animate ('move' would immediately restore 'absolute' and adjust coordinate to match,\n // then trigger a delay (repaint) to restore to final dest with animate) but then we need to make sure 'resizestop'\n // is called AFTER 'transitionend' event is received (see https://github.com/gridstack/gridstack.js/issues/2033)\n const transition = this.dragElementOriginStyle['transition'] || null;\n helper.style.transition = this.dragElementOriginStyle['transition'] = 'none'; // can't be NULL #1973\n DDDraggable.originStyleProp.forEach(prop => helper.style[prop] = this.dragElementOriginStyle[prop] || null);\n setTimeout(() => helper.style.transition = transition, 50); // recover animation from saved vars after a pause (0 isn't enough #1973)\n }\n delete this.dragElementOriginStyle;\n return this;\n }\n /** @internal updates the top/left position to follow the mouse */\n _dragFollow(e) {\n const style = this.helper.style;\n const offset = this.dragOffset;\n if (this.option.rtl) {\n style.right = ((window.innerWidth - e.clientX) + offset.offsetX) * this.dragTransform.xScale + 'px';\n if (style.left)\n style.left = '';\n }\n else {\n style.left = (e.clientX + offset.offsetX) * this.dragTransform.xScale + 'px';\n if (style.right)\n style.right = '';\n }\n style.top = (e.clientY + offset.offsetTop) * this.dragTransform.yScale + 'px';\n }\n /** @internal */\n _setupHelperContainmentStyle() {\n this.helperContainment = this.helper.parentElement;\n if (this.helper.style.position !== 'fixed') {\n this.parentOriginStylePosition = this.helperContainment.style.position;\n if (getComputedStyle(this.helperContainment).position.match(/static/)) {\n this.helperContainment.style.position = 'relative';\n }\n }\n return this;\n }\n /** @internal */\n _getDragOffset(event, el, parent) {\n // in case ancestor has transform/perspective css properties that change the viewpoint\n let xformOffsetX = 0;\n let xformOffsetY = 0;\n if (parent) {\n xformOffsetX = this.dragTransform.xOffset;\n xformOffsetY = this.dragTransform.yOffset;\n }\n const targetOffset = el.getBoundingClientRect();\n let x = this.option.rtl ? targetOffset.right : targetOffset.left;\n let offsetX = this.option.rtl\n ? (event.clientX - targetOffset.right + xformOffsetX)\n : (-event.clientX + targetOffset.left - xformOffsetX);\n return {\n x,\n top: targetOffset.top,\n offsetX,\n offsetTop: -event.clientY + targetOffset.top - xformOffsetY,\n width: targetOffset.width * this.dragTransform.xScale,\n height: targetOffset.height * this.dragTransform.yScale\n };\n }\n /** @internal starts or continues auto-scroll when the dragged helper is clipped by the scroll container.\n * Takes the grid's own element to find the scroll container so external/sidebar drags work too (#2074). */\n updateScrollPosition(gridEl) {\n this._autoScrollContainer = Utils.getScrollElement(gridEl); // always use latest active grid\n const clipping = this._getClipping(this.helper, this._autoScrollContainer);\n if (clipping === 0) {\n this._stopScrolling();\n }\n else if (!this._autoScrollAnimId) {\n this._autoScrollAnimId = requestAnimationFrame(this._autoScrollTick);\n }\n }\n /** @internal compute how many pixels the element is clipped: negative = above, positive = below, 0 = fully inside OR outside (stop scrolling) */\n _getClipping(el, scrollEl) {\n const elRect = el.getBoundingClientRect();\n const scrollRect = scrollEl.getBoundingClientRect();\n const viewportH = window.innerHeight || document.documentElement.clientHeight;\n if (elRect.bottom < scrollRect.top || elRect.top > scrollRect.bottom)\n return 0; // fully outside\n const clippedBelow = elRect.bottom - Math.min(scrollRect.bottom, viewportH);\n const clippedAbove = elRect.top - Math.max(scrollRect.top, 0);\n if (clippedAbove < 0)\n return clippedAbove;\n if (clippedBelow > 0)\n return clippedBelow;\n return 0;\n }\n /** @internal stop any active auto-scroll animation */\n _stopScrolling() {\n if (this._autoScrollAnimId) {\n cancelAnimationFrame(this._autoScrollAnimId);\n delete this._autoScrollAnimId;\n }\n }\n /** @internal TODO: set to public as called by DDDroppable! */\n ui() {\n const containmentEl = this.el.parentElement;\n const containmentRect = containmentEl.getBoundingClientRect();\n const offset = this.helper.getBoundingClientRect();\n // RTL: GridStack measures column positions from the right side of the container,\n // so we report `left` as the distance between the helper's right edge and the\n // container's right edge (both in viewport-left coordinates via getBoundingClientRect).\n const leftPos = this.option.rtl\n ? (containmentRect.right - offset.right) * this.dragTransform.xScale\n : (offset.left - containmentRect.left) * this.dragTransform.xScale;\n return {\n position: {\n top: (offset.top - containmentRect.top) * this.dragTransform.yScale,\n left: leftPos\n }\n /* not used by GridStack for now...\n helper: [this.helper], //The object arr representing the helper that's being dragged.\n offset: { top: offset.top, left: offset.left } // Current offset position of the helper as { top, left } object.\n */\n };\n }\n}\n/** @internal properties we change during dragging, and restore back */\nDDDraggable.originStyleProp = ['width', 'height', 'transform', 'transform-origin', 'transition', 'pointerEvents', 'position', 'left', 'right', 'top', 'minWidth', 'willChange'];\nexport { DDDraggable };\n//# sourceMappingURL=dd-draggable.js.map","/**\n * dd-droppable.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { DDManager } from './dd-manager';\nimport { DDBaseImplement } from './dd-base-impl';\nimport { Utils } from './utils';\nimport { DDTouch, isTouch, pointerenter, pointerleave } from './dd-touch';\n// let count = 0; // TEST\nexport class DDDroppable extends DDBaseImplement {\n constructor(el, option = {}) {\n super();\n this.el = el;\n this.option = option;\n // create var event binding so we can easily remove and still look like TS methods (unlike anonymous functions)\n this._mouseEnter = this._mouseEnter.bind(this);\n this._mouseLeave = this._mouseLeave.bind(this);\n this.enable();\n this._setupAccept();\n }\n on(event, callback) {\n super.on(event, callback);\n }\n off(event) {\n super.off(event);\n }\n enable() {\n if (this.disabled === false)\n return;\n super.enable();\n this.el.classList.add('ui-droppable');\n this.el.classList.remove('ui-droppable-disabled');\n this.el.addEventListener('mouseenter', this._mouseEnter);\n this.el.addEventListener('mouseleave', this._mouseLeave);\n if (isTouch) {\n this.el.addEventListener('pointerenter', pointerenter);\n this.el.addEventListener('pointerleave', pointerleave);\n }\n }\n disable(forDestroy = false) {\n if (this.disabled === true)\n return;\n super.disable();\n this.el.classList.remove('ui-droppable');\n if (!forDestroy)\n this.el.classList.add('ui-droppable-disabled');\n this.el.removeEventListener('mouseenter', this._mouseEnter);\n this.el.removeEventListener('mouseleave', this._mouseLeave);\n if (isTouch) {\n this.el.removeEventListener('pointerenter', pointerenter);\n this.el.removeEventListener('pointerleave', pointerleave);\n }\n }\n destroy() {\n this.disable(true);\n this.el.classList.remove('ui-droppable');\n this.el.classList.remove('ui-droppable-disabled');\n super.destroy();\n }\n updateOption(opts) {\n Object.keys(opts).forEach(key => this.option[key] = opts[key]);\n this._setupAccept();\n return this;\n }\n /** @internal called when the cursor enters our area - prepare for a possible drop and track leaving */\n _mouseEnter(e) {\n // console.log(`${count++} Enter ${this.el.id}`); // TEST\n if (!DDManager.dragElement)\n return;\n // During touch drag operations, ignore real browser-generated mouseenter events (isTrusted:true) vs our simulated ones (isTrusted:false).\n // The browser can fire spurious mouseenter events when we dispatch simulated mousemove events.\n if (DDTouch.touchHandled && e.isTrusted)\n return;\n if (!this._canDrop(DDManager.dragElement.el))\n return;\n e.preventDefault();\n e.stopPropagation();\n DDManager.dragElement._stopScrolling();\n // make sure when we enter this, that the last one gets a leave FIRST to correctly cleanup as we don't always do\n if (DDManager.dropElement && DDManager.dropElement !== this) {\n DDManager.dropElement._mouseLeave(e, true); // calledByEnter = true\n }\n DDManager.dropElement = this;\n const ev = Utils.initEvent(e, { target: this.el, type: 'dropover' });\n if (this.option.over) {\n this.option.over(ev, this._ui(DDManager.dragElement));\n }\n this.triggerEvent('dropover', ev);\n this.el.classList.add('ui-droppable-over');\n // console.log('tracking'); // TEST\n }\n /** @internal called when the item is leaving our area, stop tracking if we had moving item */\n _mouseLeave(e, calledByEnter = false) {\n // console.log(`${count++} Leave ${this.el.id}`); // TEST\n if (!DDManager.dragElement || DDManager.dropElement !== this)\n return;\n e.preventDefault();\n e.stopPropagation();\n // stop the old grid's auto-scroll only when entering a new grid; if leaving to empty space keep scrolling until mouseup\n if (calledByEnter)\n DDManager.dragElement._stopScrolling();\n const ev = Utils.initEvent(e, { target: this.el, type: 'dropout' });\n if (this.option.out) {\n this.option.out(ev, this._ui(DDManager.dragElement));\n }\n this.triggerEvent('dropout', ev);\n if (DDManager.dropElement === this) {\n delete DDManager.dropElement;\n // console.log('not tracking'); // TEST\n // if we're still over a parent droppable, send it an enter as we don't get one from leaving nested children\n if (!calledByEnter) {\n let parentDrop;\n let parent = this.el.parentElement;\n while (!parentDrop && parent) {\n parentDrop = parent.ddElement?.ddDroppable;\n parent = parent.parentElement;\n }\n if (parentDrop) {\n parentDrop._mouseEnter(e);\n }\n }\n }\n }\n /** item is being dropped on us - called by the drag mouseup handler - this calls the client drop event */\n drop(e) {\n e.preventDefault();\n const ev = Utils.initEvent(e, { target: this.el, type: 'drop' });\n if (this.option.drop) {\n this.option.drop(ev, this._ui(DDManager.dragElement));\n }\n this.triggerEvent('drop', ev);\n }\n /** @internal true if element matches the string/method accept option */\n _canDrop(el) {\n return el && (!this.accept || this.accept(el));\n }\n /** @internal */\n _setupAccept() {\n if (!this.option.accept)\n return this;\n if (typeof this.option.accept === 'string') {\n this.accept = (el) => el.classList.contains(this.option.accept) || el.matches(this.option.accept);\n }\n else {\n this.accept = this.option.accept;\n }\n return this;\n }\n /** @internal */\n _ui(drag) {\n return {\n draggable: drag.el,\n ...drag.ui()\n };\n }\n}\n//# sourceMappingURL=dd-droppable.js.map","/**\n * dd-elements.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { DDResizable } from './dd-resizable';\nimport { DDDraggable } from './dd-draggable';\nimport { DDDroppable } from './dd-droppable';\nexport class DDElement {\n static init(el) {\n if (!el.ddElement) {\n el.ddElement = new DDElement(el);\n }\n return el.ddElement;\n }\n constructor(el) {\n this.el = el;\n }\n on(eventName, callback) {\n if (this.ddDraggable && ['drag', 'dragstart', 'dragstop'].indexOf(eventName) > -1) {\n this.ddDraggable.on(eventName, callback);\n }\n else if (this.ddDroppable && ['drop', 'dropover', 'dropout'].indexOf(eventName) > -1) {\n this.ddDroppable.on(eventName, callback);\n }\n else if (this.ddResizable && ['resizestart', 'resize', 'resizestop'].indexOf(eventName) > -1) {\n this.ddResizable.on(eventName, callback);\n }\n return this;\n }\n off(eventName) {\n if (this.ddDraggable && ['drag', 'dragstart', 'dragstop'].indexOf(eventName) > -1) {\n this.ddDraggable.off(eventName);\n }\n else if (this.ddDroppable && ['drop', 'dropover', 'dropout'].indexOf(eventName) > -1) {\n this.ddDroppable.off(eventName);\n }\n else if (this.ddResizable && ['resizestart', 'resize', 'resizestop'].indexOf(eventName) > -1) {\n this.ddResizable.off(eventName);\n }\n return this;\n }\n setupDraggable(opts) {\n if (!this.ddDraggable) {\n this.ddDraggable = new DDDraggable(this.el, opts);\n }\n else {\n this.ddDraggable.updateOption(opts);\n }\n return this;\n }\n cleanDraggable() {\n if (this.ddDraggable) {\n this.ddDraggable.destroy();\n delete this.ddDraggable;\n }\n return this;\n }\n setupResizable(opts) {\n if (!this.ddResizable) {\n this.ddResizable = new DDResizable(this.el, opts);\n }\n else {\n this.ddResizable.updateOption(opts);\n }\n return this;\n }\n cleanResizable() {\n if (this.ddResizable) {\n this.ddResizable.destroy();\n delete this.ddResizable;\n }\n return this;\n }\n setupDroppable(opts) {\n if (!this.ddDroppable) {\n this.ddDroppable = new DDDroppable(this.el, opts);\n }\n else {\n this.ddDroppable.updateOption(opts);\n }\n return this;\n }\n cleanDroppable() {\n if (this.ddDroppable) {\n this.ddDroppable.destroy();\n delete this.ddDroppable;\n }\n return this;\n }\n}\n//# sourceMappingURL=dd-element.js.map","/**\n * dd-gridstack.ts 12.6.0\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\nimport { Utils } from './utils';\nimport { DDManager } from './dd-manager';\nimport { DDElement } from './dd-element';\n// let count = 0; // TEST\n/**\n * HTML Native Mouse and Touch Events Drag and Drop functionality.\n *\n * This class provides the main drag & drop implementation for GridStack,\n * handling resizing, dragging, and dropping of grid items using native HTML5 events.\n * It manages the interaction between different DD components and the grid system.\n */\nexport class DDGridStack {\n /**\n * Enable/disable/configure resizing for grid elements.\n *\n * @param el - Grid item element(s) to configure\n * @param opts - Resize options or command ('enable', 'disable', 'destroy', 'option', or config object)\n * @param key - Option key when using 'option' command\n * @param value - Option value when using 'option' command\n * @returns this instance for chaining\n *\n * @example\n * dd.resizable(element, 'enable'); // Enable resizing\n * dd.resizable(element, 'option', 'minWidth', 100); // Set minimum width\n */\n resizable(el, opts, key, value) {\n this._getDDElements(el, opts).forEach(dEl => {\n if (opts === 'disable' || opts === 'enable') {\n dEl.ddResizable && dEl.ddResizable[opts](); // can't create DD as it requires options for setupResizable()\n }\n else if (opts === 'destroy') {\n dEl.ddResizable && dEl.cleanResizable();\n }\n else if (opts === 'option') {\n dEl.setupResizable({ [key]: value });\n }\n else {\n const n = dEl.el.gridstackNode;\n const grid = n.grid;\n let handles = dEl.el.getAttribute('gs-resize-handles') || grid.opts.resizable.handles || 'e,s,se';\n if (handles === 'all')\n handles = 'n,e,s,w,se,sw,ne,nw';\n // NOTE: keep the resize handles as e,w don't have enough space (10px) to show resize corners anyway. limit during drag instead\n // restrict vertical resize if height is done to match content anyway... odd to have it spring back\n // if (Utils.shouldSizeToContent(n, true)) {\n // const doE = handles.indexOf('e') !== -1;\n // const doW = handles.indexOf('w') !== -1;\n // handles = doE ? (doW ? 'e,w' : 'e') : (doW ? 'w' : '');\n // }\n const autoHide = !grid.opts.alwaysShowResizeHandle;\n dEl.setupResizable({\n ...grid.opts.resizable,\n ...{ handles, autoHide },\n ...{\n start: opts.start,\n stop: opts.stop,\n resize: opts.resize,\n rtl: opts.rtl,\n }\n });\n }\n });\n return this;\n }\n /**\n * Enable/disable/configure dragging for grid elements.\n *\n * @param el - Grid item element(s) to configure\n * @param opts - Drag options or command ('enable', 'disable', 'destroy', 'option', or config object)\n * @param key - Option key when using 'option' command\n * @param value - Option value when using 'option' command\n * @param rtl - Are we in rtl mode?\n * @returns this instance for chaining\n *\n * @example\n * dd.draggable(element, 'enable'); // Enable dragging\n * dd.draggable(element, {handle: '.drag-handle'}); // Configure drag handle\n */\n draggable(el, opts, key, value) {\n this._getDDElements(el, opts).forEach(dEl => {\n if (opts === 'disable' || opts === 'enable') {\n dEl.ddDraggable && dEl.ddDraggable[opts](); // can't create DD as it requires options for setupDraggable()\n }\n else if (opts === 'destroy') {\n dEl.ddDraggable && dEl.cleanDraggable();\n }\n else if (opts === 'option') {\n dEl.setupDraggable({ [key]: value });\n }\n else {\n const grid = dEl.el.gridstackNode.grid;\n dEl.setupDraggable({\n ...grid.opts.draggable,\n ...{\n // containment: (grid.parentGridNode && grid.opts.dragOut === false) ? grid.el.parentElement : (grid.opts.draggable.containment || null),\n start: opts.start,\n stop: opts.stop,\n drag: opts.drag,\n rtl: opts.rtl,\n }\n });\n }\n });\n return this;\n }\n dragIn(el, opts) {\n this._getDDElements(el).forEach(dEl => dEl.setupDraggable(opts));\n return this;\n }\n droppable(el, opts, key, value) {\n if (typeof opts.accept === 'function' && !opts._accept) {\n opts._accept = opts.accept;\n opts.accept = (el) => opts._accept(el);\n }\n this._getDDElements(el, opts).forEach(dEl => {\n if (opts === 'disable' || opts === 'enable') {\n dEl.ddDroppable && dEl.ddDroppable[opts]();\n }\n else if (opts === 'destroy') {\n dEl.ddDroppable && dEl.cleanDroppable();\n }\n else if (opts === 'option') {\n dEl.setupDroppable({ [key]: value });\n }\n else {\n dEl.setupDroppable(opts);\n }\n });\n return this;\n }\n /** true if element is droppable */\n isDroppable(el) {\n return !!(el?.ddElement?.ddDroppable && !el.ddElement.ddDroppable.disabled);\n }\n /** true if element is draggable */\n isDraggable(el) {\n return !!(el?.ddElement?.ddDraggable && !el.ddElement.ddDraggable.disabled);\n }\n /** true if element is draggable */\n isResizable(el) {\n return !!(el?.ddElement?.ddResizable && !el.ddElement.ddResizable.disabled);\n }\n on(el, name, callback) {\n this._getDDElements(el).forEach(dEl => dEl.on(name, (event) => {\n callback(event, DDManager.dragElement ? DDManager.dragElement.el : event.target, DDManager.dragElement ? DDManager.dragElement.helper : null);\n }));\n return this;\n }\n off(el, name) {\n this._getDDElements(el).forEach(dEl => dEl.off(name));\n return this;\n }\n /** @internal returns a list of DD elements, creating them on the fly by default unless option is to destroy or disable */\n _getDDElements(els, opts) {\n // don't force create if we're going to destroy it, unless it's a grid which is used as drop target for it's children\n const create = els.gridstack || opts !== 'destroy' && opts !== 'disable';\n const hosts = Utils.getElements(els);\n if (!hosts.length)\n return [];\n const list = hosts.map(e => e.ddElement || (create ? DDElement.init(e) : null)).filter(d => d); // remove nulls\n return list;\n }\n}\n//# sourceMappingURL=dd-gridstack.js.map","/*!\n * GridStack 12.6.0\n * https://gridstackjs.com/\n *\n * Copyright (c) 2021-2025 Alain Dumesny\n * see root license https://github.com/gridstack/gridstack.js/tree/master/LICENSE\n */\nimport { GridStackEngine } from './gridstack-engine';\nimport { Utils } from './utils';\nimport { gridDefaults } from './types';\n/*\n * and include D&D by default\n * TODO: while we could generate a gridstack-static.js at smaller size - saves about 31k (41k -> 72k)\n * I don't know how to generate the DD only code at the remaining 31k to delay load as code depends on Gridstack.ts\n * also it caused loading issues in prod - see https://github.com/gridstack/gridstack.js/issues/2039\n */\nimport { DDGridStack } from './dd-gridstack';\nimport { isTouch } from './dd-touch';\nimport { DDManager } from './dd-manager';\nconst dd = new DDGridStack;\n// export all dependent file as well to make it easier for users to just import the main file\nexport * from './types';\nexport * from './utils';\nexport * from './gridstack-engine';\nexport * from './dd-gridstack';\nexport * from './dd-manager';\nexport * from './dd-element';\nexport * from './dd-draggable';\nexport * from './dd-droppable';\nexport * from './dd-resizable';\nexport * from './dd-resizable-handle';\nexport * from './dd-base-impl';\n/**\n * Main gridstack class - you will need to call `GridStack.init()` first to initialize your grid.\n * Note: your grid elements MUST have the following classes for the CSS layout to work:\n * @example\n * <div class=\"grid-stack\">\n * <div class=\"grid-stack-item\">\n * <div class=\"grid-stack-item-content\">Item 1</div>\n * </div>\n * </div>\n */\nclass GridStack {\n /**\n * initializing the HTML element, or selector string, into a grid will return the grid. Calling it again will\n * simply return the existing instance (ignore any passed options). There is also an initAll() version that support\n * multiple grids initialization at once. Or you can use addGrid() to create the entire grid from JSON.\n * @param options grid options (optional)\n * @param elOrString element or CSS selector (first one used) to convert to a grid (default to '.grid-stack' class selector)\n *\n * @example\n * const grid = GridStack.init();\n *\n * Note: the HTMLElement (of type GridHTMLElement) will store a `gridstack: GridStack` value that can be retrieve later\n * const grid = document.querySelector('.grid-stack').gridstack;\n */\n static init(options = {}, elOrString = '.grid-stack') {\n if (typeof document === 'undefined')\n return null; // temp workaround SSR\n const el = GridStack.getGridElement(elOrString);\n if (!el) {\n if (typeof elOrString === 'string') {\n console.error('GridStack.initAll() no grid was found with selector \"' + elOrString + '\" - element missing or wrong selector ?' +\n '\\nNote: \".grid-stack\" is required for proper CSS styling and drag/drop, and is the default selector.');\n }\n else {\n console.error('GridStack.init() no grid element was passed.');\n }\n return null;\n }\n if (!el.gridstack) {\n el.gridstack = new GridStack(el, Utils.cloneDeep(options));\n }\n return el.gridstack;\n }\n /**\n * Will initialize a list of elements (given a selector) and return an array of grids.\n * @param options grid options (optional)\n * @param selector elements selector to convert to grids (default to '.grid-stack' class selector)\n *\n * @example\n * const grids = GridStack.initAll();\n * grids.forEach(...)\n */\n static initAll(options = {}, selector = '.grid-stack') {\n const grids = [];\n if (typeof document === 'undefined')\n return grids; // temp workaround SSR\n GridStack.getGridElements(selector).forEach(el => {\n if (!el.gridstack) {\n el.gridstack = new GridStack(el, Utils.cloneDeep(options));\n }\n grids.push(el.gridstack);\n });\n if (grids.length === 0) {\n console.error('GridStack.initAll() no grid was found with selector \"' + selector + '\" - element missing or wrong selector ?' +\n '\\nNote: \".grid-stack\" is required for proper CSS styling and drag/drop, and is the default selector.');\n }\n return grids;\n }\n /**\n * call to create a grid with the given options, including loading any children from JSON structure. This will call GridStack.init(), then\n * grid.load() on any passed children (recursively). Great alternative to calling init() if you want entire grid to come from\n * JSON serialized data, including options.\n * @param parent HTML element parent to the grid\n * @param opt grids options used to initialize the grid, and list of children\n */\n static addGrid(parent, opt = {}) {\n if (!parent)\n return null;\n let el = parent;\n if (el.gridstack) {\n // already a grid - set option and load data\n const grid = el.gridstack;\n if (opt)\n grid.opts = { ...grid.opts, ...opt };\n if (opt.children !== undefined)\n grid.load(opt.children);\n return grid;\n }\n // create the grid element, but check if the passed 'parent' already has grid styling and should be used instead\n const parentIsGrid = parent.classList.contains('grid-stack');\n if (!parentIsGrid || GridStack.addRemoveCB) {\n if (GridStack.addRemoveCB) {\n el = GridStack.addRemoveCB(parent, opt, true, true);\n }\n else {\n el = Utils.createDiv(['grid-stack', opt.class], parent);\n }\n }\n // create grid class and load any children\n const grid = GridStack.init(opt, el);\n return grid;\n }\n /** call this method to register your engine instead of the default one.\n * See instead `GridStackOptions.engineClass` if you only need to\n * replace just one instance.\n */\n static registerEngine(engineClass) {\n GridStack.engineClass = engineClass;\n }\n /**\n * @internal create placeholder DIV as needed\n * @returns the placeholder element for indicating drop zones during drag operations\n */\n get placeholder() {\n if (!this._placeholder) {\n this._placeholder = Utils.createDiv([this.opts.placeholderClass, gridDefaults.itemClass, this.opts.itemClass]);\n const placeholderChild = Utils.createDiv(['placeholder-content'], this._placeholder);\n if (this.opts.placeholderText) {\n placeholderChild.textContent = this.opts.placeholderText;\n }\n }\n return this._placeholder;\n }\n /**\n * Construct a grid item from the given element and options\n * @param el the HTML element tied to this grid after it's been initialized\n * @param opts grid options - public for classes to access, but use methods to modify!\n */\n constructor(el, opts = {}) {\n this.el = el;\n this.opts = opts;\n /** time to wait for animation (if enabled) to be done so content sizing can happen */\n this.animationDelay = 300 + 10;\n /** @internal */\n this._gsEventHandler = {};\n /** @internal extra row added when dragging at the bottom of the grid */\n this._extraDragRow = 0;\n /** @internal meant to store the scale of the active grid */\n this.dragTransform = { xScale: 1, yScale: 1, xOffset: 0, yOffset: 0 };\n el.gridstack = this;\n this.opts = opts = opts || {}; // handles null/undefined/0\n if (!el.classList.contains('grid-stack')) {\n this.el.classList.add('grid-stack');\n }\n // if row property exists, replace minRow and maxRow instead\n if (opts.row) {\n opts.minRow = opts.maxRow = opts.row;\n delete opts.row;\n }\n const rowAttr = Utils.toNumber(el.getAttribute('gs-row'));\n // flag only valid in sub-grids (handled by parent, not here)\n if (opts.column === 'auto') {\n delete opts.column;\n }\n // save original setting so we can restore on save\n if (opts.alwaysShowResizeHandle !== undefined) {\n opts._alwaysShowResizeHandle = opts.alwaysShowResizeHandle;\n }\n // cleanup responsive opts (must have columnWidth | breakpoints) then sort breakpoints by size (so we can match during resize)\n const resp = opts.columnOpts;\n if (resp) {\n const bk = resp.breakpoints;\n if (!resp.columnWidth && !bk?.length) {\n delete opts.columnOpts;\n }\n else {\n resp.columnMax = resp.columnMax || 12;\n if (bk?.length > 1)\n bk.sort((a, b) => (b.w || 0) - (a.w || 0));\n }\n }\n // elements DOM attributes override any passed options (like CSS style) - merge the two together\n const defaults = {\n ...Utils.cloneDeep(gridDefaults),\n column: Utils.toNumber(el.getAttribute('gs-column')) || gridDefaults.column,\n minRow: rowAttr ? rowAttr : Utils.toNumber(el.getAttribute('gs-min-row')) || gridDefaults.minRow,\n maxRow: rowAttr ? rowAttr : Utils.toNumber(el.getAttribute('gs-max-row')) || gridDefaults.maxRow,\n staticGrid: Utils.toBool(el.getAttribute('gs-static')) || gridDefaults.staticGrid,\n sizeToContent: Utils.toBool(el.getAttribute('gs-size-to-content')) || undefined,\n draggable: {\n handle: (opts.handleClass ? '.' + opts.handleClass : (opts.handle ? opts.handle : '')) || gridDefaults.draggable.handle,\n },\n removableOptions: {\n accept: opts.itemClass || gridDefaults.removableOptions.accept,\n decline: gridDefaults.removableOptions.decline\n },\n };\n if (el.getAttribute('gs-animate')) { // default to true, but if set to false use that instead\n defaults.animate = Utils.toBool(el.getAttribute('gs-animate'));\n }\n opts = Utils.defaults(opts, defaults);\n this._initMargin(); // part of settings defaults...\n // Now check if we're loading into !12 column mode FIRST so we don't do un-necessary work (like cellHeight = width / 12 then go 1 column)\n this.checkDynamicColumn();\n this._updateColumnVar(opts);\n if (opts.rtl === 'auto') {\n opts.rtl = (el.style.direction === 'rtl');\n }\n if (opts.rtl) {\n this.el.classList.add('grid-stack-rtl');\n }\n // check if we're been nested, and if so update our style and keep pointer around (used during save)\n const parentGridItem = this.el.closest('.' + gridDefaults.itemClass);\n const parentNode = parentGridItem?.gridstackNode;\n if (parentNode) {\n parentNode.subGrid = this;\n this.parentGridNode = parentNode;\n this.el.classList.add('grid-stack-nested');\n parentNode.el.classList.add('grid-stack-sub-grid');\n }\n this._isAutoCellHeight = (opts.cellHeight === 'auto');\n if (this._isAutoCellHeight || opts.cellHeight === 'initial') {\n // make the cell content square initially (will use resize/column event to keep it square)\n this.cellHeight(undefined);\n }\n else {\n // append unit if any are set\n if (typeof opts.cellHeight == 'number' && opts.cellHeightUnit && opts.cellHeightUnit !== gridDefaults.cellHeightUnit) {\n opts.cellHeight = opts.cellHeight + opts.cellHeightUnit;\n delete opts.cellHeightUnit;\n }\n const val = opts.cellHeight;\n delete opts.cellHeight; // force initial cellHeight() call to set the value\n this.cellHeight(val);\n }\n // see if we need to adjust auto-hide\n if (opts.alwaysShowResizeHandle === 'mobile') {\n opts.alwaysShowResizeHandle = isTouch;\n }\n this._setStaticClass();\n const engineClass = opts.engineClass || GridStack.engineClass || GridStackEngine;\n this.engine = new engineClass({\n column: this.getColumn(),\n float: opts.float,\n maxRow: opts.maxRow,\n onChange: (cbNodes) => {\n cbNodes.forEach(n => {\n const el = n.el;\n if (!el)\n return;\n if (n._removeDOM) {\n if (el)\n el.remove();\n delete n._removeDOM;\n }\n else {\n this._writePosAttr(el, n);\n }\n });\n this._updateContainerHeight();\n }\n });\n if (opts.auto) {\n this.batchUpdate(); // prevent in between re-layout #1535 TODO: this only set float=true, need to prevent collision check...\n this.engine._loading = true; // loading collision check\n this.getGridItems().forEach(el => this._prepareElement(el));\n delete this.engine._loading;\n this.batchUpdate(false);\n }\n // load any passed in children as well, which overrides any DOM layout done above\n if (opts.children) {\n const children = opts.children;\n delete opts.children;\n if (children.length)\n this.load(children); // don't load empty\n }\n this.setAnimation();\n // dynamic grids require pausing during drag to detect over to nest vs push\n if (opts.subGridDynamic && !DDManager.pauseDrag)\n DDManager.pauseDrag = true;\n if (opts.draggable?.pause !== undefined)\n DDManager.pauseDrag = opts.draggable.pause;\n this._setupRemoveDrop();\n this._setupAcceptWidget();\n this._updateResizeEvent();\n }\n _updateColumnVar(opts = this.opts) {\n this.el.classList.add('gs-' + opts.column);\n if (typeof opts.column === 'number')\n this.el.style.setProperty('--gs-column-width', `${100 / opts.column}%`);\n }\n /**\n * add a new widget and returns it.\n *\n * Widget will be always placed even if result height is more than actual grid height.\n * You need to use `willItFit()` before calling addWidget for additional check.\n * See also `makeWidget(el)` for DOM element.\n *\n * @example\n * const grid = GridStack.init();\n * grid.addWidget({w: 3, content: 'hello'});\n *\n * @param w GridStackWidget definition. used MakeWidget(el) if you have dom element instead.\n */\n addWidget(w) {\n if (!w)\n return;\n if (typeof w === 'string') {\n console.error('V11: GridStack.addWidget() does not support string anymore. see #2736');\n return;\n }\n if (w.ELEMENT_NODE) {\n console.error('V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()');\n return this.makeWidget(w);\n }\n let el;\n let node = w;\n node.grid = this;\n if (node.el) {\n el = node.el; // re-use element stored in the node\n }\n else if (GridStack.addRemoveCB) {\n el = GridStack.addRemoveCB(this.el, w, true, false);\n }\n else {\n el = this.createWidgetDivs(node);\n }\n if (!el)\n return;\n // if the caller ended up initializing the widget in addRemoveCB, or we stared with one already, skip the rest\n node = el.gridstackNode;\n if (node && el.parentElement === this.el && this.engine.nodes.find(n => n._id === node._id))\n return el;\n // Tempting to initialize the passed in opt with default and valid values, but this break knockout demos\n // as the actual value are filled in when _prepareElement() calls el.getAttribute('gs-xyz') before adding the node.\n // So make sure we load any DOM attributes that are not specified in passed in options (which override)\n const domAttr = this._readAttr(el);\n Utils.defaults(w, domAttr);\n this.engine.prepareNode(w);\n // this._writeAttr(el, w); why write possibly incorrect values back when makeWidget() will ?\n this.el.appendChild(el);\n this.makeWidget(el, w);\n return el;\n }\n /**\n * Create the default grid item divs and content (possibly lazy loaded) by using GridStack.renderCB().\n *\n * @param n GridStackNode definition containing widget configuration\n * @returns the created HTML element with proper grid item structure\n *\n * @example\n * const element = grid.createWidgetDivs({ w: 2, h: 1, content: 'Hello World' });\n */\n createWidgetDivs(n) {\n const el = Utils.createDiv(['grid-stack-item', this.opts.itemClass]);\n const cont = Utils.createDiv(['grid-stack-item-content'], el);\n if (Utils.lazyLoad(n)) {\n if (!n.visibleObservable) {\n n.visibleObservable = new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting) {\n n.visibleObservable?.disconnect();\n delete n.visibleObservable;\n GridStack.renderCB(cont, n);\n n.grid?.prepareDragDrop(n.el);\n }\n });\n window.setTimeout(() => n.visibleObservable?.observe(el)); // wait until callee sets position attributes\n }\n }\n else\n GridStack.renderCB(cont, n);\n return el;\n }\n /**\n * Convert an existing gridItem element into a sub-grid with the given (optional) options, else inherit them\n * from the parent's subGrid options.\n * @param el gridItem element to convert\n * @param ops (optional) sub-grid options, else default to node, then parent settings, else defaults\n * @param nodeToAdd (optional) node to add to the newly created sub grid (used when dragging over existing regular item)\n * @param saveContent if true (default) the html inside .grid-stack-content will be saved to child widget\n * @returns newly created grid\n */\n makeSubGrid(el, ops, nodeToAdd, saveContent = true) {\n let node = el.gridstackNode;\n if (!node) {\n node = this.makeWidget(el).gridstackNode;\n }\n if (node.subGrid?.el)\n return node.subGrid; // already done\n // find the template subGrid stored on a parent as fallback...\n let subGridTemplate; // eslint-disable-next-line @typescript-eslint/no-this-alias\n let grid = this;\n while (grid && !subGridTemplate) {\n subGridTemplate = grid.opts?.subGridOpts;\n grid = grid.parentGridNode?.grid;\n }\n //... and set the create options\n ops = Utils.cloneDeep({\n // by default sub-grid inherit from us | parent, other than id, children, etc...\n ...this.opts, id: undefined, children: undefined, column: 'auto', columnOpts: undefined, layout: 'list', subGridOpts: undefined,\n ...(subGridTemplate || {}),\n ...(ops || node.subGridOpts || {})\n });\n node.subGridOpts = ops;\n // if column special case it set, remember that flag and set default\n let autoColumn;\n if (ops.column === 'auto') {\n autoColumn = true;\n ops.column = Math.max(node.w || 1, nodeToAdd?.w || 1);\n delete ops.columnOpts; // driven by parent\n }\n // if we're converting an existing full item, move over the content to be the first sub item in the new grid\n let content = node.el.querySelector('.grid-stack-item-content');\n let newItem;\n let newItemOpt;\n if (saveContent) {\n this._removeDD(node.el); // remove D&D since it's set on content div\n newItemOpt = { ...node, x: 0, y: 0 };\n Utils.removeInternalForSave(newItemOpt);\n delete newItemOpt.subGridOpts;\n if (node.content) {\n newItemOpt.content = node.content;\n delete node.content;\n }\n if (GridStack.addRemoveCB) {\n newItem = GridStack.addRemoveCB(this.el, newItemOpt, true, false);\n }\n else {\n newItem = Utils.createDiv(['grid-stack-item']);\n newItem.appendChild(content);\n content = Utils.createDiv(['grid-stack-item-content'], node.el);\n }\n this.prepareDragDrop(node.el); // ... and restore original D&D\n }\n // if we're adding an additional item, make the container large enough to have them both\n if (nodeToAdd) {\n const w = autoColumn ? ops.column : node.w;\n const h = node.h + nodeToAdd.h;\n const style = node.el.style;\n style.transition = 'none'; // show up instantly so we don't see scrollbar with nodeToAdd\n this.update(node.el, { w, h });\n setTimeout(() => style.transition = null); // recover animation\n }\n const subGrid = node.subGrid = GridStack.addGrid(content, ops);\n if (nodeToAdd?._moving)\n subGrid._isTemp = true; // prevent re-nesting as we add over\n if (autoColumn)\n subGrid._autoColumn = true;\n // add the original content back as a child of the newly created grid\n if (saveContent) {\n subGrid.makeWidget(newItem, newItemOpt);\n }\n // now add any additional node\n if (nodeToAdd) {\n if (nodeToAdd._moving) {\n // create an artificial event even for the just created grid to receive this item\n window.setTimeout(() => Utils.simulateMouseEvent(nodeToAdd._event, 'mouseenter', subGrid.el), 0);\n }\n else {\n subGrid.makeWidget(node.el, node);\n }\n }\n // if sizedToContent, we need to re-calc the size of ourself\n this.resizeToContentCheck(false, node);\n return subGrid;\n }\n /**\n * called when an item was converted into a nested grid to accommodate a dragged over item, but then item leaves - return back\n * to the original grid-item. Also called to remove empty sub-grids when last item is dragged out (since re-creating is simple)\n */\n removeAsSubGrid(nodeThatRemoved) {\n const pGrid = this.parentGridNode?.grid;\n if (!pGrid)\n return;\n pGrid.batchUpdate();\n pGrid.removeWidget(this.parentGridNode.el, true, true);\n this.engine.nodes.forEach(n => {\n // migrate any children over and offsetting by our location\n n.x += this.parentGridNode.x;\n n.y += this.parentGridNode.y;\n pGrid.makeWidget(n.el, n);\n });\n pGrid.batchUpdate(false);\n if (this.parentGridNode)\n delete this.parentGridNode.subGrid;\n delete this.parentGridNode;\n // create an artificial event for the original grid now that this one is gone (got a leave, but won't get enter)\n if (nodeThatRemoved) {\n window.setTimeout(() => Utils.simulateMouseEvent(nodeThatRemoved._event, 'mouseenter', pGrid.el), 0);\n }\n }\n /**\n * saves the current layout returning a list of widgets for serialization which might include any nested grids.\n * @param saveContent if true (default) the latest html inside .grid-stack-content will be saved to GridStackWidget.content field, else it will\n * be removed.\n * @param saveGridOpt if true (default false), save the grid options itself, so you can call the new GridStack.addGrid()\n * to recreate everything from scratch. GridStackOptions.children would then contain the widget list instead.\n * @param saveCB callback for each node -> widget, so application can insert additional data to be saved into the widget data structure.\n * @param column if provided, the grid will be saved for the given column size (IFF we have matching internal saved layout, or current layout).\n * Otherwise it will use the largest possible layout (say 12 even if rendering at 1 column) so we can restore to all layouts.\n * NOTE: if you want to save to currently display layout, pass this.getColumn() as column.\n * NOTE2: nested grids will ALWAYS save to the container size to be in sync with parent.\n * @returns list of widgets or full grid option, including .children list of widgets\n */\n save(saveContent = true, saveGridOpt = false, saveCB = GridStack.saveCB, column) {\n // return copied GridStackWidget (with optionally .el) we can modify at will...\n const list = this.engine.save(saveContent, saveCB, column);\n // check for HTML content and nested grids\n list.forEach(n => {\n if (saveContent && n.el && !n.subGrid && !saveCB) { // sub-grid are saved differently, not plain content\n const itemContent = n.el.querySelector('.grid-stack-item-content');\n n.content = itemContent?.innerHTML;\n if (!n.content)\n delete n.content;\n }\n else {\n if (!saveContent && !saveCB) {\n delete n.content;\n }\n // check for nested grid - make sure it saves to the given container size to be consistent\n if (n.subGrid?.el) {\n const column = n.w || n.subGrid.getColumn();\n const listOrOpt = n.subGrid.save(saveContent, saveGridOpt, saveCB, column);\n n.subGridOpts = (saveGridOpt ? listOrOpt : { children: listOrOpt });\n delete n.subGrid;\n }\n }\n delete n.el;\n });\n // check if save entire grid options (needed for recursive) + children...\n if (saveGridOpt) {\n const o = Utils.cloneDeep(this.opts);\n // delete default values that will be recreated on launch\n if (o.marginBottom === o.marginTop && o.marginRight === o.marginLeft && o.marginTop === o.marginRight) {\n o.margin = o.marginTop;\n delete o.marginTop;\n delete o.marginRight;\n delete o.marginBottom;\n delete o.marginLeft;\n }\n if (o.rtl === (this.el.style.direction === 'rtl')) {\n o.rtl = 'auto';\n }\n if (this._isAutoCellHeight) {\n o.cellHeight = 'auto';\n }\n if (this._autoColumn) {\n o.column = 'auto';\n }\n const origShow = o._alwaysShowResizeHandle;\n delete o._alwaysShowResizeHandle;\n if (origShow !== undefined) {\n o.alwaysShowResizeHandle = origShow;\n }\n else {\n delete o.alwaysShowResizeHandle;\n }\n Utils.removeInternalAndSame(o, gridDefaults);\n o.children = list;\n return o;\n }\n return list;\n }\n /**\n * Load widgets from a list. This will call update() on each (matching by id) or add/remove widgets that are not there.\n * Used to restore a grid layout for a saved layout list (see `save()`).\n *\n * @param items list of widgets definition to update/create\n * @param addRemove boolean (default true) or callback method can be passed to control if and how missing widgets can be added/removed, giving\n * the user control of insertion.\n * @returns the grid instance for chaining\n *\n * @example\n * // Basic usage with saved layout\n * const savedLayout = grid.save(); // Save current layout\n * // ... later restore it\n * grid.load(savedLayout);\n *\n * // Load with custom add/remove callback\n * grid.load(layout, (items, grid, add) => {\n * if (add) {\n * // Custom logic for adding new widgets\n * items.forEach(item => {\n * const el = document.createElement('div');\n * el.innerHTML = item.content || '';\n * grid.addWidget(el, item);\n * });\n * } else {\n * // Custom logic for removing widgets\n * items.forEach(item => grid.removeWidget(item.el));\n * }\n * });\n *\n * // Load without adding/removing missing widgets\n * grid.load(layout, false);\n *\n * @see {@link http://gridstackjs.com/demo/serialization.html} for complete example\n */\n load(items, addRemove = GridStack.addRemoveCB || true) {\n // items = Utils.cloneDeep(items); // TODO: let callee decide by using directly instead of copy we can modify ?\n // make sure size 1x1 (default) is present as it may need to override current sizes\n items.forEach(n => { n.w = n.w || n.minW || 1; n.h = n.h || n.minH || 1; });\n // sort items. those without coord will be appended last\n items = Utils.sort(items);\n this.engine.skipCacheUpdate = this._ignoreLayoutsNodeChange = true; // skip layout update\n // if we're loading a layout into for example 1 column and items don't fit, make sure to save\n // the original wanted layout so we can scale back up correctly #1471\n let maxColumn = 0;\n items.forEach(n => { maxColumn = Math.max(maxColumn, (n.x || 0) + n.w); });\n if (maxColumn > this.engine.defaultColumn)\n this.engine.defaultColumn = maxColumn;\n const column = this.getColumn();\n if (maxColumn > column) {\n // if we're loading (from empty) into a smaller column, check for special responsive layout\n if (this.engine.nodes.length === 0 && this.responseLayout) {\n this.engine.nodes = items;\n this.engine.columnChanged(maxColumn, column, this.responseLayout);\n items = this.engine.nodes;\n this.engine.nodes = [];\n delete this.responseLayout;\n }\n else\n this.engine.cacheLayout(items, maxColumn, true);\n }\n // if given a different callback, temporally set it as global option so creating will use it\n const prevCB = GridStack.addRemoveCB;\n if (typeof (addRemove) === 'function')\n GridStack.addRemoveCB = addRemove;\n const removed = [];\n this.batchUpdate();\n // if we are loading from empty temporarily remove animation\n const blank = !this.engine.nodes.length;\n const noAnim = blank && this.opts.animate;\n if (noAnim)\n this.setAnimation(false);\n // see if any items are missing from new layout and need to be removed first\n if (!blank && addRemove) {\n const copyNodes = [...this.engine.nodes]; // don't loop through array you modify\n copyNodes.forEach(n => {\n if (!n.id)\n return;\n const item = Utils.find(items, n.id);\n if (!item) {\n if (GridStack.addRemoveCB)\n GridStack.addRemoveCB(this.el, n, false, false);\n removed.push(n); // batch keep track\n this.removeWidget(n.el, true, false);\n }\n });\n }\n // now add/update the widgets - starting with removing items in the new layout we will reposition\n // to reduce collision and add no-coord ones at next available spot\n this.engine._loading = true; // help with collision\n const updateNodes = [];\n this.engine.nodes = this.engine.nodes.filter(n => {\n if (Utils.find(items, n.id)) {\n updateNodes.push(n);\n return false;\n } // remove if found from list\n return true;\n });\n items.forEach(w => {\n const item = Utils.find(updateNodes, w.id);\n if (item) {\n // if item sizes to content, re-use the exiting height so it's a better guess at the final size (same if width doesn't change)\n if (Utils.shouldSizeToContent(item))\n w.h = item.h;\n // check if missing coord, in which case find next empty slot with new (or old if missing) sizes\n this.engine.nodeBoundFix(w);\n if (w.autoPosition || w.x === undefined || w.y === undefined) {\n w.w = w.w || item.w;\n w.h = w.h || item.h;\n this.engine.findEmptyPosition(w);\n }\n // add back to current list BUT force a collision check if it 'appears' we didn't change to make sure we don't overlap others now\n this.engine.nodes.push(item);\n if (Utils.samePos(item, w) && this.engine.nodes.length > 1) {\n this.moveNode(item, { ...w, forceCollide: true });\n Utils.copyPos(w, item); // use possily updated values before update() is called next (no-op since already moved)\n }\n this.update(item.el, w);\n if (w.subGridOpts?.children) { // update any sub grid as well\n const sub = item.el.querySelector('.grid-stack');\n if (sub && sub.gridstack) {\n sub.gridstack.load(w.subGridOpts.children); // TODO: support updating grid options ?\n }\n }\n }\n else if (addRemove) {\n this.addWidget(w);\n }\n });\n delete this.engine._loading; // done loading\n this.engine.removedNodes = removed;\n this.batchUpdate(false);\n // after commit, clear that flag\n delete this._ignoreLayoutsNodeChange;\n delete this.engine.skipCacheUpdate;\n prevCB ? GridStack.addRemoveCB = prevCB : delete GridStack.addRemoveCB;\n if (noAnim)\n this.setAnimation(true, true); // delay adding animation back\n return this;\n }\n /**\n * use before calling a bunch of `addWidget()` to prevent un-necessary relayouts in between (more efficient)\n * and get a single event callback. You will see no changes until `batchUpdate(false)` is called.\n */\n batchUpdate(flag = true) {\n this.engine.batchUpdate(flag);\n if (!flag) {\n this._updateContainerHeight();\n this._triggerRemoveEvent();\n this._triggerAddEvent();\n this._triggerChangeEvent();\n }\n return this;\n }\n /**\n * Gets the current cell height in pixels. This takes into account the unit type and converts to pixels if necessary.\n *\n * @param forcePixel if true, forces conversion to pixels even when cellHeight is specified in other units\n * @returns the cell height in pixels\n *\n * @example\n * const height = grid.getCellHeight();\n * console.log('Cell height:', height, 'px');\n *\n * // Force pixel conversion\n * const pixelHeight = grid.getCellHeight(true);\n */\n getCellHeight(forcePixel = false) {\n if (this.opts.cellHeight && this.opts.cellHeight !== 'auto' &&\n (!forcePixel || !this.opts.cellHeightUnit || this.opts.cellHeightUnit === 'px')) {\n return this.opts.cellHeight;\n }\n // do rem/em/cm/mm to px conversion\n if (this.opts.cellHeightUnit === 'rem') {\n return this.opts.cellHeight * parseFloat(getComputedStyle(document.documentElement).fontSize);\n }\n if (this.opts.cellHeightUnit === 'em') {\n return this.opts.cellHeight * parseFloat(getComputedStyle(this.el).fontSize);\n }\n if (this.opts.cellHeightUnit === 'cm') {\n // 1cm = 96px/2.54. See https://www.w3.org/TR/css-values-3/#absolute-lengths\n return this.opts.cellHeight * (96 / 2.54);\n }\n if (this.opts.cellHeightUnit === 'mm') {\n return this.opts.cellHeight * (96 / 2.54) / 10;\n }\n // else get first cell height\n const el = this.el.querySelector('.' + this.opts.itemClass);\n if (el) {\n const h = Utils.toNumber(el.getAttribute('gs-h')) || 1; // since we don't write 1 anymore\n return Math.round(el.offsetHeight / h);\n }\n // else do entire grid and # of rows (but doesn't work if min-height is the actual constrain)\n const rows = parseInt(this.el.getAttribute('gs-current-row'));\n return rows ? Math.round(this.el.getBoundingClientRect().height / rows) : this.opts.cellHeight;\n }\n /**\n * Update current cell height - see `GridStackOptions.cellHeight` for format by updating eh Browser CSS variable.\n *\n * @param val the cell height. Options:\n * - `undefined`: cells content will be made square (match width minus margin)\n * - `0`: the CSS will be generated by the application instead\n * - number: height in pixels\n * - string: height with units (e.g., '70px', '5rem', '2em')\n * @returns the grid instance for chaining\n *\n * @example\n * grid.cellHeight(100); // 100px height\n * grid.cellHeight('70px'); // explicit pixel height\n * grid.cellHeight('5rem'); // relative to root font size\n * grid.cellHeight(grid.cellWidth() * 1.2); // aspect ratio\n * grid.cellHeight('auto'); // auto-size based on content\n */\n cellHeight(val) {\n // if not called internally, check if we're changing mode\n if (val !== undefined) {\n if (this._isAutoCellHeight !== (val === 'auto')) {\n this._isAutoCellHeight = (val === 'auto');\n this._updateResizeEvent();\n }\n }\n if (val === 'initial' || val === 'auto') {\n val = undefined;\n }\n // make item content be square\n if (val === undefined) {\n const marginDiff = -this.opts.marginRight - this.opts.marginLeft\n + this.opts.marginTop + this.opts.marginBottom;\n val = this.cellWidth() + marginDiff;\n }\n const data = Utils.parseHeight(val);\n if (this.opts.cellHeightUnit === data.unit && this.opts.cellHeight === data.h) {\n return this;\n }\n this.opts.cellHeightUnit = data.unit;\n this.opts.cellHeight = data.h;\n // finally update var and container\n this.el.style.setProperty('--gs-cell-height', `${this.opts.cellHeight}${this.opts.cellHeightUnit}`);\n this._updateContainerHeight();\n this.resizeToContentCheck();\n return this;\n }\n /** Gets current cell width. */\n /**\n * Gets the current cell width in pixels. This is calculated based on the grid container width divided by the number of columns.\n *\n * @returns the cell width in pixels\n *\n * @example\n * const width = grid.cellWidth();\n * console.log('Cell width:', width, 'px');\n *\n * // Use cell width to calculate widget dimensions\n * const widgetWidth = width * 3; // For a 3-column wide widget\n */\n cellWidth() {\n return this._widthOrContainer() / this.getColumn();\n }\n /** return our expected width (or parent) , and optionally of window for dynamic column check */\n _widthOrContainer(forBreakpoint = false) {\n // use `offsetWidth` or `clientWidth` (no scrollbar) ?\n // https://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively\n return forBreakpoint && this.opts.columnOpts?.breakpointForWindow ? window.innerWidth : (this.el.clientWidth || this.el.parentElement.clientWidth || window.innerWidth);\n }\n /** checks for dynamic column count for our current size, returning true if changed */\n checkDynamicColumn() {\n const resp = this.opts.columnOpts;\n if (!resp || (!resp.columnWidth && !resp.breakpoints?.length))\n return false;\n const column = this.getColumn();\n let newColumn = column;\n const w = this._widthOrContainer(true);\n if (resp.columnWidth) {\n newColumn = Math.min(Math.round(w / resp.columnWidth) || 1, resp.columnMax);\n }\n else {\n // find the closest breakpoint (already sorted big to small) that matches\n newColumn = resp.columnMax;\n let i = 0;\n while (i < resp.breakpoints.length && w <= resp.breakpoints[i].w) {\n newColumn = resp.breakpoints[i++].c || column;\n }\n }\n if (newColumn !== column) {\n const bk = resp.breakpoints?.find(b => b.c === newColumn);\n this.column(newColumn, bk?.layout || resp.layout);\n return true;\n }\n return false;\n }\n /**\n * Re-layout grid items to reclaim any empty space. This is useful after removing widgets\n * or when you want to optimize the layout.\n *\n * @param layout layout type. Options:\n * - 'compact' (default): might re-order items to fill any empty space\n * - 'list': keep the widget left->right order the same, even if that means leaving an empty slot if things don't fit\n * @param doSort re-sort items first based on x,y position. Set to false to do your own sorting ahead (default: true)\n * @returns the grid instance for chaining\n *\n * @example\n * // Compact layout after removing widgets\n * grid.removeWidget('.widget-to-remove');\n * grid.compact();\n *\n * // Use list layout (preserve order)\n * grid.compact('list');\n *\n * // Compact without sorting first\n * grid.compact('compact', false);\n */\n compact(layout = 'compact', doSort = true) {\n this.engine.compact(layout, doSort);\n this._triggerChangeEvent();\n return this;\n }\n /**\n * Set the number of columns in the grid. Will update existing widgets to conform to new number of columns,\n * as well as cache the original layout so you can revert back to previous positions without loss.\n *\n * Requires `gridstack-extra.css` or `gridstack-extra.min.css` for [2-11] columns,\n * else you will need to generate correct CSS.\n * See: https://github.com/gridstack/gridstack.js#change-grid-columns\n *\n * @param column Integer > 0 (default 12)\n * @param layout specify the type of re-layout that will happen. Options:\n * - 'moveScale' (default): scale widget positions and sizes\n * - 'move': keep widget sizes, only move positions\n * - 'scale': keep widget positions, only scale sizes\n * - 'none': don't change widget positions or sizes\n * Note: items will never be outside of the current column boundaries.\n * Ignored for `column=1` as we always want to vertically stack.\n * @returns the grid instance for chaining\n *\n * @example\n * // Change to 6 columns with default scaling\n * grid.column(6);\n *\n * // Change to 4 columns, only move positions\n * grid.column(4, 'move');\n *\n * // Single column layout (vertical stack)\n * grid.column(1);\n */\n column(column, layout = 'moveScale') {\n if (!column || column < 1 || this.opts.column === column)\n return this;\n const oldColumn = this.getColumn();\n this.opts.column = column;\n if (!this.engine) {\n // called in constructor, noting else to do but remember that breakpoint layout\n this.responseLayout = layout;\n return this;\n }\n this.engine.column = column;\n this.el.classList.remove('gs-' + oldColumn);\n this._updateColumnVar();\n // update the items now\n this.engine.columnChanged(oldColumn, column, layout);\n if (this._isAutoCellHeight)\n this.cellHeight();\n this.resizeToContentCheck(true); // wait for width resizing\n // and trigger our event last...\n this._ignoreLayoutsNodeChange = true; // skip layout update\n this._triggerChangeEvent();\n delete this._ignoreLayoutsNodeChange;\n return this;\n }\n /**\n * Get the number of columns in the grid (default 12).\n *\n * @returns the current number of columns in the grid\n *\n * @example\n * const columnCount = grid.getColumn(); // returns 12 by default\n */\n getColumn() { return this.opts.column; }\n /**\n * Returns an array of grid HTML elements (no placeholder) - used to iterate through our children in DOM order.\n * This method excludes placeholder elements and returns only actual grid items.\n *\n * @returns array of GridItemHTMLElement instances representing all grid items\n *\n * @example\n * const items = grid.getGridItems();\n * items.forEach(item => {\n * console.log('Item ID:', item.gridstackNode.id);\n * });\n */\n getGridItems() {\n return Array.from(this.el.children)\n .filter((el) => el.matches('.' + this.opts.itemClass) && !el.matches('.' + this.opts.placeholderClass));\n }\n /**\n * Returns true if change callbacks should be ignored due to column change, sizeToContent, loading, etc.\n * This is useful for callers who want to implement dirty flag functionality.\n *\n * @returns true if change callbacks are currently being ignored\n *\n * @example\n * if (!grid.isIgnoreChangeCB()) {\n * // Process the change event\n * console.log('Grid layout changed');\n * }\n */\n isIgnoreChangeCB() { return this._ignoreLayoutsNodeChange; }\n /**\n * Destroys a grid instance. DO NOT CALL any methods or access any vars after this as it will free up members.\n * @param removeDOM if `false` grid and items HTML elements will not be removed from the DOM (Optional. Default `true`).\n */\n destroy(removeDOM = true) {\n if (!this.el)\n return; // prevent multiple calls\n this.offAll();\n this._updateResizeEvent(true);\n this.setStatic(true, false); // permanently removes DD but don't set CSS class (we're going away)\n this.setAnimation(false);\n if (!removeDOM) {\n this.removeAll(removeDOM);\n this.el.removeAttribute('gs-current-row');\n }\n else {\n this.el.parentNode.removeChild(this.el);\n }\n if (this.parentGridNode)\n delete this.parentGridNode.subGrid;\n delete this.parentGridNode;\n delete this.opts;\n delete this._placeholder?.gridstackNode;\n delete this._placeholder;\n delete this.engine;\n delete this.el.gridstack; // remove circular dependency that would prevent a freeing\n delete this.el;\n return this;\n }\n /**\n * Enable/disable floating widgets (default: `false`). When enabled, widgets can float up to fill empty spaces.\n * See [example](http://gridstackjs.com/demo/float.html)\n *\n * @param val true to enable floating, false to disable\n * @returns the grid instance for chaining\n *\n * @example\n * grid.float(true); // Enable floating\n * grid.float(false); // Disable floating (default)\n */\n float(val) {\n if (this.opts.float !== val) {\n this.opts.float = this.engine.float = val;\n this._triggerChangeEvent();\n }\n return this;\n }\n /**\n * Get the current float mode setting.\n *\n * @returns true if floating is enabled, false otherwise\n *\n * @example\n * const isFloating = grid.getFloat();\n * console.log('Floating enabled:', isFloating);\n */\n getFloat() {\n return this.engine.float;\n }\n /**\n * Get the position of the cell under a pixel on screen.\n * @param position the position of the pixel to resolve in\n * absolute coordinates, as an object with top and left properties\n * @param useDocRelative if true, value will be based on document position vs parent position (Optional. Default false).\n * Useful when grid is within `position: relative` element\n *\n * Returns an object with properties `x` and `y` i.e. the column and row in the grid.\n */\n getCellFromPixel(position, useDocRelative = false) {\n const box = this.el.getBoundingClientRect();\n // console.log(`getBoundingClientRect left: ${box.left} top: ${box.top} w: ${box.w} h: ${box.h}`)\n let containerPos;\n if (useDocRelative) {\n containerPos = { top: box.top + document.documentElement.scrollTop, left: box.left };\n // console.log(`getCellFromPixel scrollTop: ${document.documentElement.scrollTop}`)\n }\n else {\n containerPos = { top: this.el.offsetTop, left: this.el.offsetLeft };\n // console.log(`getCellFromPixel offsetTop: ${containerPos.left} offsetLeft: ${containerPos.top}`)\n }\n const relativeLeft = position.left - containerPos.left;\n const relativeTop = position.top - containerPos.top;\n const columnWidth = (box.width / this.getColumn());\n const rowHeight = (box.height / parseInt(this.el.getAttribute('gs-current-row')));\n return { x: Math.floor(relativeLeft / columnWidth), y: Math.floor(relativeTop / rowHeight) };\n }\n /**\n * Returns the current number of rows, which will be at least `minRow` if set.\n * The row count is based on the highest positioned widget in the grid.\n *\n * @returns the current number of rows in the grid\n *\n * @example\n * const rowCount = grid.getRow();\n * console.log('Grid has', rowCount, 'rows');\n */\n getRow() {\n return Math.max(this.engine.getRow(), this.opts.minRow || 0);\n }\n /**\n * Checks if the specified rectangular area is empty (no widgets occupy any part of it).\n *\n * @param x the x coordinate (column) of the area to check\n * @param y the y coordinate (row) of the area to check\n * @param w the width in columns of the area to check\n * @param h the height in rows of the area to check\n * @returns true if the area is completely empty, false if any widget overlaps\n *\n * @example\n * // Check if a 2x2 area at position (1,1) is empty\n * if (grid.isAreaEmpty(1, 1, 2, 2)) {\n * console.log('Area is available for placement');\n * }\n */\n isAreaEmpty(x, y, w, h) {\n return this.engine.isAreaEmpty(x, y, w, h);\n }\n /**\n * If you add elements to your grid by hand (or have some framework creating DOM), you have to tell gridstack afterwards to make them widgets.\n * If you want gridstack to add the elements for you, use `addWidget()` instead.\n * Makes the given element a widget and returns it.\n *\n * @param els widget or single selector to convert.\n * @param options widget definition to use instead of reading attributes or using default sizing values\n * @returns the converted GridItemHTMLElement\n *\n * @example\n * const grid = GridStack.init();\n *\n * // Create HTML content manually, possibly looking like:\n * // <div id=\"item-1\" gs-x=\"0\" gs-y=\"0\" gs-w=\"3\" gs-h=\"2\"></div>\n * grid.el.innerHTML = '<div id=\"item-1\" gs-w=\"3\"></div><div id=\"item-2\"></div>';\n *\n * // Convert existing elements to widgets\n * grid.makeWidget('#item-1'); // Uses gs-* attributes from DOM\n * grid.makeWidget('#item-2', {w: 2, h: 1, content: 'Hello World'});\n *\n * // Or pass DOM element directly\n * const element = document.getElementById('item-3');\n * grid.makeWidget(element, {x: 0, y: 1, w: 4, h: 2});\n */\n makeWidget(els, options) {\n const el = GridStack.getElement(els);\n if (!el || el.gridstackNode)\n return el;\n if (!el.parentElement)\n this.el.appendChild(el);\n this._prepareElement(el, true, options);\n const node = el.gridstackNode;\n this._updateContainerHeight();\n // see if there is a sub-grid to create\n if (node.subGridOpts) {\n this.makeSubGrid(el, node.subGridOpts, undefined, false); // node.subGrid will be used as option in method, no need to pass\n }\n // if we're adding an item into 1 column make sure\n // we don't override the larger 12 column layout that was already saved. #1985\n let resetIgnoreLayoutsNodeChange;\n if (this.opts.column === 1 && !this._ignoreLayoutsNodeChange) {\n resetIgnoreLayoutsNodeChange = this._ignoreLayoutsNodeChange = true;\n }\n this._triggerAddEvent();\n this._triggerChangeEvent();\n if (resetIgnoreLayoutsNodeChange)\n delete this._ignoreLayoutsNodeChange;\n return el;\n }\n on(name, callback) {\n // check for array of names being passed instead\n if (name.indexOf(' ') !== -1) {\n const names = name.split(' ');\n names.forEach(name => this.on(name, callback));\n return this;\n }\n // native CustomEvent handlers - cash the generic handlers so we can easily remove\n if (name === 'change' || name === 'added' || name === 'removed' || name === 'enable' || name === 'disable') {\n const noData = (name === 'enable' || name === 'disable');\n if (noData) {\n this._gsEventHandler[name] = (event) => callback(event);\n }\n else {\n this._gsEventHandler[name] = (event) => { if (event.detail)\n callback(event, event.detail); };\n }\n this.el.addEventListener(name, this._gsEventHandler[name]);\n }\n else if (name === 'drag' || name === 'dragstart' || name === 'dragstop' || name === 'resizestart' || name === 'resize'\n || name === 'resizestop' || name === 'dropped' || name === 'resizecontent') {\n // drag&drop stop events NEED to be call them AFTER we update node attributes so handle them ourself.\n // do same for start event to make it easier...\n this._gsEventHandler[name] = callback;\n }\n else {\n console.error('GridStack.on(' + name + ') event not supported');\n }\n return this;\n }\n /**\n * unsubscribe from the 'on' event GridStackEvent\n * @param name of the event (see possible values) or list of names space separated\n */\n off(name) {\n // check for array of names being passed instead\n if (name.indexOf(' ') !== -1) {\n const names = name.split(' ');\n names.forEach(name => this.off(name));\n return this;\n }\n if (name === 'change' || name === 'added' || name === 'removed' || name === 'enable' || name === 'disable') {\n // remove native CustomEvent handlers\n if (this._gsEventHandler[name]) {\n this.el.removeEventListener(name, this._gsEventHandler[name]);\n }\n }\n delete this._gsEventHandler[name];\n return this;\n }\n /**\n * Remove all event handlers from the grid. This is useful for cleanup when destroying a grid.\n *\n * @returns the grid instance for chaining\n *\n * @example\n * grid.offAll(); // Remove all event listeners\n */\n offAll() {\n Object.keys(this._gsEventHandler).forEach((key) => this.off(key));\n return this;\n }\n /**\n * Removes widget from the grid.\n * @param el widget or selector to modify\n * @param removeDOM if `false` DOM element won't be removed from the tree (Default? true).\n * @param triggerEvent if `false` (quiet mode) element will not be added to removed list and no 'removed' callbacks will be called (Default? true).\n */\n removeWidget(els, removeDOM = true, triggerEvent = true) {\n if (!els) {\n console.error('Error: GridStack.removeWidget(undefined) called');\n return this;\n }\n GridStack.getElements(els).forEach(el => {\n if (el.parentElement && el.parentElement !== this.el)\n return; // not our child!\n let node = el.gridstackNode;\n // For Meteor support: https://github.com/gridstack/gridstack.js/pull/272\n if (!node) {\n node = this.engine.nodes.find(n => el === n.el);\n }\n if (!node)\n return;\n if (removeDOM && GridStack.addRemoveCB) {\n GridStack.addRemoveCB(this.el, node, false, false);\n }\n // remove our DOM data (circular link) and drag&drop permanently\n delete el.gridstackNode;\n this._removeDD(el);\n this.engine.removeNode(node, removeDOM, triggerEvent);\n if (removeDOM && el.parentElement) {\n el.remove(); // in batch mode engine.removeNode doesn't call back to remove DOM\n }\n });\n if (triggerEvent) {\n this._triggerRemoveEvent();\n this._triggerChangeEvent();\n }\n return this;\n }\n /**\n * Removes all widgets from the grid.\n * @param removeDOM if `false` DOM elements won't be removed from the tree (Default? `true`).\n * @param triggerEvent if `false` (quiet mode) element will not be added to removed list and no 'removed' callbacks will be called (Default? true).\n */\n removeAll(removeDOM = true, triggerEvent = true) {\n // always remove our DOM data (circular link) before list gets emptied and drag&drop permanently\n this.engine.nodes.forEach(n => {\n if (removeDOM && GridStack.addRemoveCB) {\n GridStack.addRemoveCB(this.el, n, false, false);\n }\n delete n.el.gridstackNode;\n if (!this.opts.staticGrid)\n this._removeDD(n.el);\n });\n this.engine.removeAll(removeDOM, triggerEvent);\n if (triggerEvent)\n this._triggerRemoveEvent();\n return this;\n }\n /**\n * Toggle the grid animation state. Toggles the `grid-stack-animate` class.\n * @param doAnimate if true the grid will animate.\n * @param delay if true setting will be set on next event loop.\n */\n setAnimation(doAnimate = this.opts.animate, delay) {\n if (delay) {\n // delay, but check to make sure grid (opt) is still around\n setTimeout(() => { if (this.opts)\n this.setAnimation(doAnimate); });\n }\n else if (doAnimate) {\n this.el.classList.add('grid-stack-animate');\n }\n else {\n this.el.classList.remove('grid-stack-animate');\n }\n this.opts.animate = doAnimate;\n return this;\n }\n /** @internal */\n hasAnimationCSS() { return this.el.classList.contains('grid-stack-animate'); }\n /**\n * Toggle the grid static state, which permanently removes/add Drag&Drop support, unlike disable()/enable() that just turns it off/on.\n * Also toggle the grid-stack-static class.\n * @param val if true the grid become static.\n * @param updateClass true (default) if css class gets updated\n * @param recurse true (default) if sub-grids also get updated\n */\n setStatic(val, updateClass = true, recurse = true) {\n if (!!this.opts.staticGrid === val)\n return this;\n val ? this.opts.staticGrid = true : delete this.opts.staticGrid;\n this._setupRemoveDrop();\n this._setupAcceptWidget();\n this.engine.nodes.forEach(n => {\n this.prepareDragDrop(n.el); // either delete or init Drag&drop\n if (n.subGrid && recurse)\n n.subGrid.setStatic(val, updateClass, recurse);\n });\n if (updateClass) {\n this._setStaticClass();\n }\n return this;\n }\n /**\n * Updates the passed in options on the grid (similar to update(widget) for for the grid options).\n * @param options PARTIAL grid options to update - only items specified will be updated.\n * NOTE: not all options updating are currently supported (lot of code, unlikely to change)\n */\n updateOptions(o) {\n const opts = this.opts;\n if (o === opts)\n return this; // nothing to do\n if (o.acceptWidgets !== undefined) {\n opts.acceptWidgets = o.acceptWidgets;\n this._setupAcceptWidget();\n }\n if (o.animate !== undefined)\n this.setAnimation(o.animate);\n if (o.cellHeight)\n this.cellHeight(o.cellHeight);\n if (o.class !== undefined && o.class !== opts.class) {\n if (opts.class)\n this.el.classList.remove(opts.class);\n if (o.class)\n this.el.classList.add(o.class);\n }\n // responsive column take over actual count (keep what we have now)\n if (o.columnOpts) {\n const hadColumnOpts = !!this.opts.columnOpts;\n this.opts.columnOpts = o.columnOpts;\n if (hadColumnOpts !== !!this.opts.columnOpts)\n this._updateResizeEvent();\n this.checkDynamicColumn();\n }\n else if (o.columnOpts === null && this.opts.columnOpts) { // delete update cmd\n delete this.opts.columnOpts;\n this._updateResizeEvent();\n }\n else if (typeof (o.column) === 'number')\n this.column(o.column);\n if (o.margin !== undefined)\n this.margin(o.margin);\n if (o.staticGrid !== undefined)\n this.setStatic(o.staticGrid);\n if (o.disableDrag !== undefined && !o.staticGrid)\n this.enableMove(!o.disableDrag);\n if (o.disableResize !== undefined && !o.staticGrid)\n this.enableResize(!o.disableResize);\n if (o.float !== undefined)\n this.float(o.float);\n if (o.row !== undefined) {\n opts.minRow = opts.maxRow = opts.row = o.row;\n this._updateContainerHeight();\n }\n else {\n if (o.minRow !== undefined) {\n opts.minRow = o.minRow;\n this._updateContainerHeight();\n }\n if (o.maxRow !== undefined)\n opts.maxRow = this.engine.maxRow = o.maxRow;\n }\n if (o.lazyLoad !== undefined)\n opts.lazyLoad = o.lazyLoad;\n if (o.children?.length)\n this.load(o.children);\n // TBD if we have a real need for these (more complex code)\n // alwaysShowResizeHandle, draggable, handle, handleClass, itemClass, layout, placeholderClass, placeholderText, resizable, removable, row,...\n return this;\n }\n /**\n * Updates widget position/size and other info. This is used to change widget properties after creation.\n * Can update position, size, content, and other widget properties.\n *\n * Note: If you need to call this on all nodes, use load() instead which will update what changed.\n * Setting the same x,y for multiple items will be indeterministic and likely unwanted.\n *\n * @param els widget element(s) or selector to modify\n * @param opt new widget options (x,y,w,h, etc.). Only those set will be updated.\n * @returns the grid instance for chaining\n *\n * @example\n * // Update widget size and position\n * grid.update('.my-widget', { x: 2, y: 1, w: 3, h: 2 });\n *\n * // Update widget content\n * grid.update(widget, { content: '<p>New content</p>' });\n *\n * // Update multiple properties\n * grid.update('#my-widget', {\n * w: 4,\n * h: 3,\n * noResize: true,\n * locked: true\n * });\n */\n update(els, opt) {\n GridStack.getElements(els).forEach(el => {\n const n = el?.gridstackNode;\n if (!n)\n return;\n const w = { ...Utils.copyPos({}, n), ...Utils.cloneDeep(opt) }; // make a copy we can modify in case they re-use it or multiple items\n this.engine.nodeBoundFix(w);\n delete w.autoPosition;\n // move/resize widget if anything changed\n const keys = ['x', 'y', 'w', 'h'];\n let m;\n if (keys.some(k => w[k] !== undefined && w[k] !== n[k])) {\n m = {};\n keys.forEach(k => {\n m[k] = (w[k] !== undefined) ? w[k] : n[k];\n delete w[k];\n });\n }\n // for a move as well IFF there is any min/max fields set\n if (!m && (w.minW || w.minH || w.maxW || w.maxH)) {\n m = {}; // will use node position but validate values\n }\n // check for content changing\n if (w.content !== undefined) {\n const itemContent = el.querySelector('.grid-stack-item-content');\n if (itemContent && itemContent.textContent !== w.content) {\n n.content = w.content;\n GridStack.renderCB(itemContent, w);\n // restore any sub-grid back\n if (n.subGrid?.el) {\n itemContent.appendChild(n.subGrid.el);\n n.subGrid._updateContainerHeight();\n }\n }\n delete w.content;\n }\n // any remaining fields are assigned, but check for dragging changes, resize constrain\n let changed = false;\n let ddChanged = false;\n for (const key in w) {\n if (key[0] !== '_' && n[key] !== w[key]) {\n n[key] = w[key];\n changed = true;\n ddChanged = ddChanged || (!this.opts.staticGrid && (key === 'noResize' || key === 'noMove' || key === 'locked'));\n }\n }\n Utils.sanitizeMinMax(n);\n // finally move the widget and update attr\n if (m) {\n const widthChanged = (m.w !== undefined && m.w !== n.w);\n this.moveNode(n, m);\n if (widthChanged && n.subGrid) {\n // if we're animating the client size hasn't changed yet, so force a change (not exact size)\n n.subGrid.onResize(this.hasAnimationCSS() ? n.w : undefined);\n }\n else {\n this.resizeToContentCheck(widthChanged, n);\n }\n delete n._orig; // clear out original position now that we moved #2669\n }\n if (m || changed) {\n this._writeAttr(el, n);\n }\n if (ddChanged) {\n this.prepareDragDrop(n.el);\n }\n if (GridStack.updateCB)\n GridStack.updateCB(n); // call user callback so they know widget got updated\n });\n return this;\n }\n moveNode(n, m) {\n const wasUpdating = n._updating;\n if (!wasUpdating)\n this.engine.cleanNodes().beginUpdate(n);\n this.engine.moveNode(n, m);\n this._updateContainerHeight();\n if (!wasUpdating) {\n this._triggerChangeEvent();\n this.engine.endUpdate();\n }\n }\n /**\n * Updates widget height to match the content height to avoid vertical scrollbars or dead space.\n * This automatically adjusts the widget height based on its content size.\n *\n * Note: This assumes only 1 child under resizeToContentParent='.grid-stack-item-content'\n * (sized to gridItem minus padding) that represents the entire content size.\n *\n * @param el the grid item element to resize\n *\n * @example\n * // Resize a widget to fit its content\n * const widget = document.querySelector('.grid-stack-item');\n * grid.resizeToContent(widget);\n *\n * // This is commonly used with dynamic content:\n * widget.querySelector('.content').innerHTML = 'New longer content...';\n * grid.resizeToContent(widget);\n */\n resizeToContent(el) {\n if (!el)\n return;\n el.classList.remove('size-to-content-max');\n if (!el.clientHeight)\n return; // 0 when hidden, skip\n const n = el.gridstackNode;\n if (!n)\n return;\n const grid = n.grid;\n if (!grid || el.parentElement !== grid.el)\n return; // skip if we are not inside a grid\n const cell = grid.getCellHeight(true);\n if (!cell)\n return;\n let height = n.h ? n.h * cell : el.clientHeight; // getBoundingClientRect().height seem to flicker back and forth\n let item;\n if (n.resizeToContentParent)\n item = el.querySelector(n.resizeToContentParent);\n if (!item)\n item = el.querySelector(GridStack.resizeToContentParent);\n if (!item)\n return;\n const padding = el.clientHeight - item.clientHeight; // full - available height to our child (minus border, padding...)\n const itemH = n.h ? n.h * cell - padding : item.clientHeight; // calculated to what cellHeight is or will become (rather than actual to prevent waiting for animation to finish)\n let wantedH;\n if (n.subGrid) {\n // sub-grid - use their actual row count * their cell height, BUT append any content outside of the grid (eg: above text)\n wantedH = n.subGrid.getRow() * n.subGrid.getCellHeight(true);\n const subRec = n.subGrid.el.getBoundingClientRect();\n const parentRec = el.getBoundingClientRect();\n wantedH += subRec.top - parentRec.top;\n }\n else if (n.subGridOpts?.children?.length) {\n // not sub-grid just yet (case above) wait until we do\n return;\n }\n else {\n // NOTE: clientHeight & getBoundingClientRect() is undefined for text and other leaf nodes. use <div> container!\n const child = item.firstElementChild;\n if (!child) {\n console.error(`Error: GridStack.resizeToContent() widget id:${n.id} '${GridStack.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);\n return;\n }\n wantedH = child.getBoundingClientRect().height || itemH;\n }\n if (itemH === wantedH)\n return;\n height += wantedH - itemH;\n let h = Math.ceil(height / cell);\n // check for min/max and special sizing\n const softMax = Number.isInteger(n.sizeToContent) ? n.sizeToContent : 0;\n if (softMax && h > softMax) {\n h = softMax;\n el.classList.add('size-to-content-max'); // get v-scroll back\n }\n if (n.minH && h < n.minH)\n h = n.minH;\n else if (n.maxH && h > n.maxH)\n h = n.maxH;\n if (h !== n.h) {\n grid._ignoreLayoutsNodeChange = true;\n grid.moveNode(n, { h });\n delete grid._ignoreLayoutsNodeChange;\n }\n }\n /** call the user resize (so they can do extra work) else our build in version */\n resizeToContentCBCheck(el) {\n if (GridStack.resizeToContentCB)\n GridStack.resizeToContentCB(el);\n else\n this.resizeToContent(el);\n }\n /**\n * Rotate widgets by swapping their width and height. This is typically called when the user presses 'r' during dragging.\n * The rotation swaps the w/h dimensions and adjusts min/max constraints accordingly.\n *\n * @param els widget element(s) or selector to rotate\n * @param relative optional pixel coordinate relative to upper/left corner to rotate around (keeps that cell under cursor)\n * @returns the grid instance for chaining\n *\n * @example\n * // Rotate a specific widget\n * grid.rotate('.my-widget');\n *\n * // Rotate with relative positioning during drag\n * grid.rotate(widget, { left: 50, top: 30 });\n */\n rotate(els, relative) {\n GridStack.getElements(els).forEach(el => {\n const n = el.gridstackNode;\n if (!Utils.canBeRotated(n))\n return;\n const rot = { w: n.h, h: n.w, minH: n.minW, minW: n.minH, maxH: n.maxW, maxW: n.maxH };\n // if given an offset, adjust x/y by column/row bounds when user presses 'r' during dragging\n if (relative) {\n const pivotX = relative.left > 0 ? Math.floor(relative.left / this.cellWidth()) : 0;\n const pivotY = relative.top > 0 ? Math.floor(relative.top / this.opts.cellHeight) : 0;\n rot.x = n.x + pivotX - (n.h - (pivotY + 1));\n rot.y = (n.y + pivotY) - pivotX;\n }\n Object.keys(rot).forEach(k => { if (rot[k] === undefined)\n delete rot[k]; });\n const _orig = n._orig;\n this.update(el, rot);\n n._orig = _orig; // restore as move() will delete it\n });\n return this;\n }\n /**\n * Updates the margins which will set all 4 sides at once - see `GridStackOptions.margin` for format options.\n * Supports CSS string format of 1, 2, or 4 values or a single number.\n *\n * @param value margin value - can be:\n * - Single number: `10` (applies to all sides)\n * - Two values: `'10px 20px'` (top/bottom, left/right)\n * - Four values: `'10px 20px 5px 15px'` (top, right, bottom, left)\n * @returns the grid instance for chaining\n *\n * @example\n * grid.margin(10); // 10px all sides\n * grid.margin('10px 20px'); // 10px top/bottom, 20px left/right\n * grid.margin('5px 10px 15px 20px'); // Different for each side\n */\n margin(value) {\n const isMultiValue = (typeof value === 'string' && value.split(' ').length > 1);\n // check if we can skip... won't check if multi values (too much hassle)\n if (!isMultiValue) {\n const data = Utils.parseHeight(value);\n if (this.opts.marginUnit === data.unit && this.opts.margin === data.h)\n return;\n }\n // re-use existing margin handling\n this.opts.margin = value;\n this.opts.marginTop = this.opts.marginBottom = this.opts.marginLeft = this.opts.marginRight = undefined;\n this._initMargin();\n return this;\n }\n /**\n * Returns the current margin value as a number (undefined if the 4 sides don't match).\n * This only returns a number if all sides have the same margin value.\n *\n * @returns the margin value in pixels, or undefined if sides have different values\n *\n * @example\n * const margin = grid.getMargin();\n * if (margin !== undefined) {\n * console.log('Uniform margin:', margin, 'px');\n * } else {\n * console.log('Margins are different on different sides');\n * }\n */\n getMargin() { return this.opts.margin; }\n /**\n * Returns true if the height of the grid will be less than the vertical\n * constraint. Always returns true if grid doesn't have height constraint.\n * @param node contains x,y,w,h,auto-position options\n *\n * @example\n * if (grid.willItFit(newWidget)) {\n * grid.addWidget(newWidget);\n * } else {\n * alert('Not enough free space to place the widget');\n * }\n */\n willItFit(node) { return this.engine.willItFit(node); }\n /** @internal */\n _triggerChangeEvent() {\n if (this.engine.batchMode)\n return this;\n const elements = this.engine.getDirtyNodes(true); // verify they really changed\n if (elements && elements.length) {\n if (!this._ignoreLayoutsNodeChange) {\n this.engine.layoutsNodesChange(elements);\n }\n this._triggerEvent('change', elements);\n }\n this.engine.saveInitial(); // we called, now reset initial values & dirty flags\n return this;\n }\n /** @internal */\n _triggerAddEvent() {\n if (this.engine.batchMode)\n return this;\n if (this.engine.addedNodes?.length) {\n if (!this._ignoreLayoutsNodeChange) {\n this.engine.layoutsNodesChange(this.engine.addedNodes);\n }\n // prevent added nodes from also triggering 'change' event (which is called next)\n this.engine.addedNodes.forEach(n => { delete n._dirty; });\n const addedNodes = [...this.engine.addedNodes];\n this.engine.addedNodes = [];\n this._triggerEvent('added', addedNodes);\n }\n return this;\n }\n /** @internal */\n _triggerRemoveEvent() {\n if (this.engine.batchMode)\n return this;\n if (this.engine.removedNodes?.length) {\n const removedNodes = [...this.engine.removedNodes];\n this.engine.removedNodes = [];\n this._triggerEvent('removed', removedNodes);\n }\n return this;\n }\n /** @internal */\n _triggerEvent(type, data) {\n const event = data ? new CustomEvent(type, { bubbles: false, detail: data }) : new Event(type);\n // check if we're nested, and if so call the outermost grid to trigger the event\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let grid = this;\n while (grid.parentGridNode)\n grid = grid.parentGridNode.grid;\n grid.el.dispatchEvent(event);\n return this;\n }\n /** @internal */\n _updateContainerHeight() {\n if (!this.engine || this.engine.batchMode)\n return this;\n const parent = this.parentGridNode;\n let row = this.getRow() + this._extraDragRow; // this checks for minRow already\n const cellHeight = this.opts.cellHeight;\n const unit = this.opts.cellHeightUnit;\n if (!cellHeight)\n return this;\n // check for css min height (non nested grid). TODO: support mismatch, say: min % while unit is px.\n // If `minRow` was applied, don't override it with this check, and avoid performance issues\n // (reflows) using `getComputedStyle`\n if (!parent && !this.opts.minRow) {\n const cssMinHeight = Utils.parseHeight(getComputedStyle(this.el)['minHeight']);\n if (cssMinHeight.h > 0 && cssMinHeight.unit === unit) {\n const minRow = Math.floor(cssMinHeight.h / cellHeight);\n if (row < minRow) {\n row = minRow;\n }\n }\n }\n this.el.setAttribute('gs-current-row', String(row));\n this.el.style.removeProperty('min-height');\n this.el.style.removeProperty('height');\n if (row) {\n // nested grids have 'insert:0' to fill the space of parent by default, but we may be taller so use min-height for possible scrollbars\n this.el.style[parent ? 'minHeight' : 'height'] = row * cellHeight + unit;\n }\n // if we're a nested grid inside an sizeToContent item, tell it to resize itself too\n if (parent && Utils.shouldSizeToContent(parent)) {\n parent.grid.resizeToContentCBCheck(parent.el);\n }\n return this;\n }\n /** @internal */\n _prepareElement(el, triggerAddEvent = false, node) {\n node = node || this._readAttr(el);\n el.gridstackNode = node;\n node.el = el;\n node.grid = this;\n node = this.engine.addNode(node, triggerAddEvent);\n // write the dom sizes and class\n this._writeAttr(el, node);\n el.classList.add(gridDefaults.itemClass, this.opts.itemClass);\n const sizeToContent = Utils.shouldSizeToContent(node);\n sizeToContent ? el.classList.add('size-to-content') : el.classList.remove('size-to-content');\n if (sizeToContent)\n this.resizeToContentCheck(false, node);\n if (!Utils.lazyLoad(node))\n this.prepareDragDrop(node.el);\n return this;\n }\n /** @internal write position CSS vars and x,y,w,h attributes (not used for CSS but by users) back to element */\n _writePosAttr(el, n) {\n // Avoid overwriting the inline style of the element during drag/resize, but always update the placeholder\n if ((!n._moving && !n._resizing) || this._placeholder === el) {\n const xProp = this.opts.rtl ? 'right' : 'left';\n // width/height:1 x/y:0 is set by default in the main CSS, so no need to set inlined vars\n el.style.top = n.y ? (n.y === 1 ? `var(--gs-cell-height)` : `calc(${n.y} * var(--gs-cell-height))`) : null;\n el.style[xProp] = n.x ? (n.x === 1 ? `var(--gs-column-width)` : `calc(${n.x} * var(--gs-column-width))`) : null;\n el.style.width = n.w > 1 ? `calc(${n.w} * var(--gs-column-width))` : null;\n el.style.height = n.h > 1 ? `calc(${n.h} * var(--gs-cell-height))` : null;\n }\n // NOTE: those are technically not needed anymore (v12+) as we have CSS vars for everything, but some users depends on them to render item size using CSS\n // ALways write x,y otherwise it could be autoPositioned incorrectly #3181\n el.setAttribute('gs-x', String(n.x));\n el.setAttribute('gs-y', String(n.y));\n n.w > 1 ? el.setAttribute('gs-w', String(n.w)) : el.removeAttribute('gs-w');\n n.h > 1 ? el.setAttribute('gs-h', String(n.h)) : el.removeAttribute('gs-h');\n return this;\n }\n /** @internal call to write any default attributes back to element */\n _writeAttr(el, node) {\n if (!node)\n return this;\n this._writePosAttr(el, node);\n const attrs /*: GridStackWidget but strings */ = {\n // autoPosition: 'gs-auto-position', // no need to write out as already in node and doesn't affect CSS\n noResize: 'gs-no-resize',\n noMove: 'gs-no-move',\n locked: 'gs-locked',\n id: 'gs-id',\n sizeToContent: 'gs-size-to-content',\n };\n for (const key in attrs) {\n if (node[key]) { // 0 is valid for x,y only but done above already and not in list anyway\n el.setAttribute(attrs[key], String(node[key]));\n }\n else {\n el.removeAttribute(attrs[key]);\n }\n }\n return this;\n }\n /** @internal call to read any default attributes from element */\n _readAttr(el, clearDefaultAttr = true) {\n const n = {};\n n.x = Utils.toNumber(el.getAttribute('gs-x'));\n n.y = Utils.toNumber(el.getAttribute('gs-y'));\n n.w = Utils.toNumber(el.getAttribute('gs-w'));\n n.h = Utils.toNumber(el.getAttribute('gs-h'));\n n.autoPosition = Utils.toBool(el.getAttribute('gs-auto-position'));\n n.noResize = Utils.toBool(el.getAttribute('gs-no-resize'));\n n.noMove = Utils.toBool(el.getAttribute('gs-no-move'));\n n.locked = Utils.toBool(el.getAttribute('gs-locked'));\n const attr = el.getAttribute('gs-size-to-content');\n if (attr) {\n if (attr === 'true' || attr === 'false')\n n.sizeToContent = Utils.toBool(attr);\n else\n n.sizeToContent = parseInt(attr, 10);\n }\n n.id = el.getAttribute('gs-id');\n // read but never written out\n n.maxW = Utils.toNumber(el.getAttribute('gs-max-w'));\n n.minW = Utils.toNumber(el.getAttribute('gs-min-w'));\n n.maxH = Utils.toNumber(el.getAttribute('gs-max-h'));\n n.minH = Utils.toNumber(el.getAttribute('gs-min-h'));\n // v8.x optimization to reduce un-needed attr that don't render or are default CSS\n if (clearDefaultAttr) {\n if (n.w === 1)\n el.removeAttribute('gs-w');\n if (n.h === 1)\n el.removeAttribute('gs-h');\n if (n.maxW)\n el.removeAttribute('gs-max-w');\n if (n.minW)\n el.removeAttribute('gs-min-w');\n if (n.maxH)\n el.removeAttribute('gs-max-h');\n if (n.minH)\n el.removeAttribute('gs-min-h');\n }\n // remove any key not found (null or false which is default, unless sizeToContent=false override)\n for (const key in n) {\n if (!n.hasOwnProperty(key))\n return;\n if (!n[key] && n[key] !== 0 && key !== 'sizeToContent') { // 0 can be valid value (x,y only really)\n delete n[key];\n }\n }\n return n;\n }\n /** @internal */\n _setStaticClass() {\n const classes = ['grid-stack-static'];\n if (this.opts.staticGrid) {\n this.el.classList.add(...classes);\n this.el.setAttribute('gs-static', 'true');\n }\n else {\n this.el.classList.remove(...classes);\n this.el.removeAttribute('gs-static');\n }\n return this;\n }\n /**\n * called when we are being resized - check if the one Column Mode needs to be turned on/off\n * and remember the prev columns we used, or get our count from parent, as well as check for cellHeight==='auto' (square)\n * or `sizeToContent` gridItem options.\n */\n onResize(clientWidth = this.el?.clientWidth) {\n if (!clientWidth)\n return; // return if we're gone or no size yet (will get called again)\n if (this.prevWidth === clientWidth)\n return; // no-op\n this.prevWidth = clientWidth;\n // console.log('onResize ', clientWidth);\n this.batchUpdate();\n // see if we're nested and take our column count from our parent....\n let columnChanged = false;\n if (this._autoColumn && this.parentGridNode) {\n if (this.opts.column !== this.parentGridNode.w) {\n this.column(this.parentGridNode.w, this.opts.layout || 'list');\n columnChanged = true;\n }\n }\n else {\n // else check for dynamic column\n columnChanged = this.checkDynamicColumn();\n }\n // make the cells content square again\n if (this._isAutoCellHeight)\n this.cellHeight();\n // update any nested grids, or items size\n this.engine.nodes.forEach(n => {\n if (n.subGrid)\n n.subGrid.onResize();\n });\n if (!this._skipInitialResize)\n this.resizeToContentCheck(columnChanged); // wait for anim of column changed (DOM reflow before we can size correctly)\n delete this._skipInitialResize;\n this.batchUpdate(false);\n return this;\n }\n /** resizes content for given node (or all) if shouldSizeToContent() is true */\n resizeToContentCheck(delay = false, n = undefined) {\n if (!this.engine)\n return; // we've been deleted in between!\n // update any gridItem height with sizeToContent, but wait for DOM $animation_speed to settle if we changed column count\n // TODO: is there a way to know what the final (post animation) size of the content will be so we can animate the column width and height together rather than sequentially ?\n if (delay && this.hasAnimationCSS())\n return setTimeout(() => this.resizeToContentCheck(false, n), this.animationDelay);\n if (n) {\n if (Utils.shouldSizeToContent(n))\n this.resizeToContentCBCheck(n.el);\n }\n else if (this.engine.nodes.some(n => Utils.shouldSizeToContent(n))) {\n const nodes = [...this.engine.nodes]; // in case order changes while resizing one\n this.batchUpdate();\n nodes.forEach(n => {\n if (Utils.shouldSizeToContent(n))\n this.resizeToContentCBCheck(n.el);\n });\n this._ignoreLayoutsNodeChange = true; // loop through each node will set/reset around each move, so set it here again\n this.batchUpdate(false);\n this._ignoreLayoutsNodeChange = false;\n }\n // call this regardless of shouldSizeToContent because widget might need to stretch to take available space after a resize\n if (this._gsEventHandler['resizecontent'])\n this._gsEventHandler['resizecontent'](null, n ? [n] : this.engine.nodes);\n }\n /** add or remove the grid element size event handler */\n _updateResizeEvent(forceRemove = false) {\n // only add event if we're not nested (parent will call us) and we're auto sizing cells or supporting dynamic column (i.e. doing work)\n // or supporting new sizeToContent option.\n const trackSize = !this.parentGridNode && (this._isAutoCellHeight || this.opts.sizeToContent || this.opts.columnOpts\n || this.engine.nodes.find(n => n.sizeToContent));\n if (!forceRemove && trackSize && !this.resizeObserver) {\n this._sizeThrottle = Utils.throttle(() => this.onResize(), this.opts.cellHeightThrottle);\n this.resizeObserver = new ResizeObserver(() => this._sizeThrottle());\n this.resizeObserver.observe(this.el);\n this._skipInitialResize = true; // makeWidget will originally have called on startup\n }\n else if ((forceRemove || !trackSize) && this.resizeObserver) {\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n delete this._sizeThrottle;\n }\n return this;\n }\n /** @internal convert a potential selector into actual element */\n static getElement(els = '.grid-stack-item') { return Utils.getElement(els); }\n /** @internal */\n static getElements(els = '.grid-stack-item') { return Utils.getElements(els); }\n /** @internal */\n static getGridElement(els) { return GridStack.getElement(els); }\n /** @internal */\n static getGridElements(els) { return Utils.getElements(els); }\n /** @internal initialize margin top/bottom/left/right and units */\n _initMargin() {\n let data;\n let margin = 0;\n // support passing multiple values like CSS (ex: '5px 10px 0 20px')\n let margins = [];\n if (typeof this.opts.margin === 'string') {\n margins = this.opts.margin.split(' ');\n }\n if (margins.length === 2) { // top/bot, left/right like CSS\n this.opts.marginTop = this.opts.marginBottom = margins[0];\n this.opts.marginLeft = this.opts.marginRight = margins[1];\n }\n else if (margins.length === 4) { // Clockwise like CSS\n this.opts.marginTop = margins[0];\n this.opts.marginRight = margins[1];\n this.opts.marginBottom = margins[2];\n this.opts.marginLeft = margins[3];\n }\n else {\n data = Utils.parseHeight(this.opts.margin);\n this.opts.marginUnit = data.unit;\n margin = this.opts.margin = data.h;\n }\n // see if top/bottom/left/right need to be set as well\n const keys = ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'];\n keys.forEach(k => {\n if (this.opts[k] === undefined) {\n this.opts[k] = margin;\n }\n else {\n data = Utils.parseHeight(this.opts[k]);\n this.opts[k] = data.h;\n delete this.opts.margin;\n }\n });\n this.opts.marginUnit = data.unit; // in case side were spelled out, use those units instead...\n if (this.opts.marginTop === this.opts.marginBottom && this.opts.marginLeft === this.opts.marginRight && this.opts.marginTop === this.opts.marginRight) {\n this.opts.margin = this.opts.marginTop; // makes it easier to check for no-ops in setMargin()\n }\n // finally Update the CSS margin variables (inside the cell height) */\n const style = this.el.style;\n style.setProperty('--gs-item-margin-top', `${this.opts.marginTop}${this.opts.marginUnit}`);\n style.setProperty('--gs-item-margin-bottom', `${this.opts.marginBottom}${this.opts.marginUnit}`);\n style.setProperty('--gs-item-margin-right', `${this.opts.marginRight}${this.opts.marginUnit}`);\n style.setProperty('--gs-item-margin-left', `${this.opts.marginLeft}${this.opts.marginUnit}`);\n return this;\n }\n /* ===========================================================================================\n * drag&drop methods that used to be stubbed out and implemented in dd-gridstack.ts\n * but caused loading issues in prod - see https://github.com/gridstack/gridstack.js/issues/2039\n * ===========================================================================================\n */\n /**\n * Get the global drag & drop implementation instance.\n * This provides access to the underlying drag & drop functionality.\n *\n * @returns the DDGridStack instance used for drag & drop operations\n *\n * @example\n * const dd = GridStack.getDD();\n * // Access drag & drop functionality\n */\n static getDD() {\n return dd;\n }\n /**\n * call to setup dragging in from the outside (say toolbar), by specifying the class selection and options.\n * Called during GridStack.init() as options, but can also be called directly (last param are used) in case the toolbar\n * is dynamically create and needs to be set later.\n * @param dragIn string selector (ex: '.sidebar-item') or list of dom elements\n * @param dragInOptions options - see DDDragOpt. (default: {handle: '.grid-stack-item-content', appendTo: 'body'}\n * @param widgets GridStackWidget def to assign to each element which defines what to create on drop\n * @param root optional root which defaults to document (for shadow dom pass the parent HTMLDocument)\n */\n static setupDragIn(dragIn, dragInOptions, widgets, root = document) {\n if (dragInOptions?.pause !== undefined) {\n DDManager.pauseDrag = dragInOptions.pause;\n }\n dragInOptions = { appendTo: 'body', helper: 'clone', ...(dragInOptions || {}) }; // default to handle:undefined = drag by the whole item\n const els = (typeof dragIn === 'string') ? Utils.getElements(dragIn, root) : dragIn;\n els.forEach((el, i) => {\n if (!dd.isDraggable(el))\n dd.dragIn(el, dragInOptions);\n if (widgets?.[i])\n el.gridstackNode = widgets[i];\n });\n }\n /**\n * Enables/Disables dragging by the user for specific grid elements.\n * For all items and future items, use enableMove() instead. No-op for static grids.\n *\n * Note: If you want to prevent an item from moving due to being pushed around by another\n * during collision, use the 'locked' property instead.\n *\n * @param els widget element(s) or selector to modify\n * @param val if true widget will be draggable, assuming the parent grid isn't noMove or static\n * @returns the grid instance for chaining\n *\n * @example\n * // Make specific widgets draggable\n * grid.movable('.my-widget', true);\n *\n * // Disable dragging for specific widgets\n * grid.movable('#fixed-widget', false);\n */\n movable(els, val) {\n if (this.opts.staticGrid)\n return this; // can't move a static grid!\n GridStack.getElements(els).forEach(el => {\n const n = el.gridstackNode;\n if (!n)\n return;\n val ? delete n.noMove : n.noMove = true;\n this.prepareDragDrop(n.el); // init DD if need be, and adjust\n });\n return this;\n }\n /**\n * Enables/Disables user resizing for specific grid elements.\n * For all items and future items, use enableResize() instead. No-op for static grids.\n *\n * @param els widget element(s) or selector to modify\n * @param val if true widget will be resizable, assuming the parent grid isn't noResize or static\n * @returns the grid instance for chaining\n *\n * @example\n * // Make specific widgets resizable\n * grid.resizable('.my-widget', true);\n *\n * // Disable resizing for specific widgets\n * grid.resizable('#fixed-size-widget', false);\n */\n resizable(els, val) {\n if (this.opts.staticGrid)\n return this; // can't resize a static grid!\n GridStack.getElements(els).forEach(el => {\n const n = el.gridstackNode;\n if (!n)\n return;\n val ? delete n.noResize : n.noResize = true;\n this.prepareDragDrop(n.el); // init DD if need be, and adjust\n });\n return this;\n }\n /**\n * Temporarily disables widgets moving/resizing.\n * If you want a more permanent way (which freezes up resources) use `setStatic(true)` instead.\n *\n * Note: This is a no-op for static grids.\n *\n * This is a shortcut for:\n * ```typescript\n * grid.enableMove(false);\n * grid.enableResize(false);\n * ```\n *\n * @param recurse if true (default), sub-grids also get updated\n * @returns the grid instance for chaining\n *\n * @example\n * // Disable all interactions\n * grid.disable();\n *\n * // Disable only this grid, not sub-grids\n * grid.disable(false);\n */\n disable(recurse = true) {\n if (this.opts.staticGrid)\n return;\n this.enableMove(false, recurse);\n this.enableResize(false, recurse);\n this._triggerEvent('disable');\n return this;\n }\n /**\n * Re-enables widgets moving/resizing - see disable().\n * Note: This is a no-op for static grids.\n *\n * This is a shortcut for:\n * ```typescript\n * grid.enableMove(true);\n * grid.enableResize(true);\n * ```\n *\n * @param recurse if true (default), sub-grids also get updated\n * @returns the grid instance for chaining\n *\n * @example\n * // Re-enable all interactions\n * grid.enable();\n *\n * // Enable only this grid, not sub-grids\n * grid.enable(false);\n */\n enable(recurse = true) {\n if (this.opts.staticGrid)\n return;\n this.enableMove(true, recurse);\n this.enableResize(true, recurse);\n this._triggerEvent('enable');\n return this;\n }\n /**\n * Enables/disables widget moving for all widgets. No-op for static grids.\n * Note: locally defined items (with noMove property) still override this setting.\n *\n * @param doEnable if true widgets will be movable, if false moving is disabled\n * @param recurse if true (default), sub-grids also get updated\n * @returns the grid instance for chaining\n *\n * @example\n * // Enable moving for all widgets\n * grid.enableMove(true);\n *\n * // Disable moving for all widgets\n * grid.enableMove(false);\n *\n * // Enable only this grid, not sub-grids\n * grid.enableMove(true, false);\n */\n enableMove(doEnable, recurse = true) {\n if (this.opts.staticGrid)\n return this; // can't move a static grid!\n doEnable ? delete this.opts.disableDrag : this.opts.disableDrag = true; // FIRST before we update children as grid overrides #1658\n this.engine.nodes.forEach(n => {\n this.prepareDragDrop(n.el);\n if (n.subGrid && recurse)\n n.subGrid.enableMove(doEnable, recurse);\n });\n return this;\n }\n /**\n * Enables/disables widget resizing for all widgets. No-op for static grids.\n * Note: locally defined items (with noResize property) still override this setting.\n *\n * @param doEnable if true widgets will be resizable, if false resizing is disabled\n * @param recurse if true (default), sub-grids also get updated\n * @returns the grid instance for chaining\n *\n * @example\n * // Enable resizing for all widgets\n * grid.enableResize(true);\n *\n * // Disable resizing for all widgets\n * grid.enableResize(false);\n *\n * // Enable only this grid, not sub-grids\n * grid.enableResize(true, false);\n */\n enableResize(doEnable, recurse = true) {\n if (this.opts.staticGrid)\n return this; // can't size a static grid!\n doEnable ? delete this.opts.disableResize : this.opts.disableResize = true; // FIRST before we update children as grid overrides #1658\n this.engine.nodes.forEach(n => {\n this.prepareDragDrop(n.el);\n if (n.subGrid && recurse)\n n.subGrid.enableResize(doEnable, recurse);\n });\n return this;\n }\n /** @internal call when drag (and drop) needs to be cancelled (Esc key) */\n cancelDrag() {\n const n = this._placeholder?.gridstackNode;\n if (!n)\n return;\n if (n._isExternal) {\n // remove any newly inserted nodes (from outside)\n n._isAboutToRemove = true;\n this.engine.removeNode(n);\n }\n else if (n._isAboutToRemove) {\n // restore any temp removed (dragged over trash)\n GridStack._itemRemoving(n.el, false);\n }\n this.engine.restoreInitial();\n }\n /** @internal removes any drag&drop present (called during destroy) */\n _removeDD(el) {\n dd.draggable(el, 'destroy').resizable(el, 'destroy');\n if (el.gridstackNode) {\n delete el.gridstackNode._initDD; // reset our DD init flag\n }\n delete el.ddElement;\n return this;\n }\n /** @internal called to add drag over to support widgets being added externally */\n _setupAcceptWidget() {\n // check if we need to disable things\n if (this.opts.staticGrid || (!this.opts.acceptWidgets && !this.opts.removable)) {\n dd.droppable(this.el, 'destroy');\n return this;\n }\n // vars shared across all methods\n let cellHeight, cellWidth;\n const onDrag = (event, el, helper) => {\n helper = helper || el;\n const node = helper.gridstackNode;\n if (!node)\n return;\n // if the element is being dragged from outside, scale it down to match the grid's scale\n // and slightly adjust its position relative to the mouse\n if (!node.grid?.el) {\n // this scales the helper down\n helper.style.transform = `scale(${1 / this.dragTransform.xScale},${1 / this.dragTransform.yScale})`;\n // this makes it so that the helper is well positioned relative to the mouse after scaling\n const helperRect = helper.getBoundingClientRect();\n helper.style.left = helperRect.x + (this.dragTransform.xScale - 1) * (event.clientX - helperRect.x) / this.dragTransform.xScale + 'px';\n helper.style.top = helperRect.y + (this.dragTransform.yScale - 1) * (event.clientY - helperRect.y) / this.dragTransform.yScale + 'px';\n helper.style.transformOrigin = `0px 0px`;\n }\n let { top, left } = helper.getBoundingClientRect();\n const rect = this.el.getBoundingClientRect();\n left -= rect.left;\n top -= rect.top;\n const ui = {\n position: {\n top: top * this.dragTransform.xScale,\n left: left * this.dragTransform.yScale\n }\n };\n if (node._temporaryRemoved) {\n node.x = Math.max(0, Math.round(left / cellWidth));\n node.y = Math.max(0, Math.round(top / cellHeight));\n delete node.autoPosition;\n this.engine.nodeBoundFix(node);\n // don't accept *initial* location if doesn't fit #1419 (locked drop region, or can't grow), but maybe try if it will go somewhere\n if (!this.engine.willItFit(node)) {\n node.autoPosition = true; // ignore x,y and try for any slot...\n if (!this.engine.willItFit(node)) {\n dd.off(el, 'drag'); // stop calling us\n return; // full grid or can't grow\n }\n if (node._willFitPos) {\n // use the auto position instead #1687\n Utils.copyPos(node, node._willFitPos);\n delete node._willFitPos;\n }\n }\n // re-use the existing node dragging method\n this._onStartMoving(helper, event, ui, node, cellWidth, cellHeight);\n }\n else {\n // re-use the existing node dragging that does so much of the collision detection\n this._dragOrResize(helper, event, ui, node, cellWidth, cellHeight);\n }\n };\n dd.droppable(this.el, {\n accept: (el) => {\n const node = el.gridstackNode || this._readAttr(el, false);\n // set accept drop to true on ourself (which we ignore) so we don't get \"can't drop\" icon in HTML5 mode while moving\n if (node?.grid === this)\n return true;\n if (!this.opts.acceptWidgets)\n return false;\n // check for accept method or class matching\n let canAccept = true;\n if (typeof this.opts.acceptWidgets === 'function') {\n canAccept = this.opts.acceptWidgets(el);\n }\n else {\n const selector = (this.opts.acceptWidgets === true ? '.grid-stack-item' : this.opts.acceptWidgets);\n canAccept = el.matches(selector);\n }\n // finally check to make sure we actually have space left #1571 #2633\n if (canAccept && node && this.opts.maxRow) {\n const n = { w: node.w, h: node.h, minW: node.minW, minH: node.minH }; // only width/height matters and autoPosition\n canAccept = this.engine.willItFit(n);\n }\n return canAccept;\n }\n })\n /**\n * entering our grid area\n */\n .on(this.el, 'dropover', (event, el, helper) => {\n // console.log(`over ${this.el.gridstack.opts.id} ${count++}`); // TEST\n let node = helper?.gridstackNode || el.gridstackNode;\n // ignore drop enter on ourself (unless we temporarily removed) which happens on a simple drag of our item\n if (node?.grid === this && !node._temporaryRemoved) {\n // delete node._added; // reset this to track placeholder again in case we were over other grid #1484 (dropout doesn't always clear)\n return false; // prevent parent from receiving msg (which may be a grid as well)\n }\n // If sidebar item, restore the sidebar node size to ensure consistent behavior when dragging between grids\n if (node?._sidebarOrig) {\n node.w = node._sidebarOrig.w;\n node.h = node._sidebarOrig.h;\n }\n // fix #1578 when dragging fast, we may not get a leave on the previous grid so force one now\n if (node?.grid && node.grid !== this && !node._temporaryRemoved) {\n // console.log('dropover without leave'); // TEST\n const otherGrid = node.grid;\n otherGrid._leave(el, helper);\n }\n helper = helper || el;\n // cache cell dimensions (which don't change), position can animate if we removed an item in otherGrid that affects us...\n cellWidth = this.cellWidth();\n cellHeight = this.getCellHeight(true);\n // sidebar items: load any element attributes if we don't have a node on first enter from the sidebar\n if (!node) {\n const attr = helper.getAttribute('data-gs-widget') || helper.getAttribute('gridstacknode'); // TBD: temp support for old V11.0.0 attribute\n if (attr) {\n try {\n node = JSON.parse(attr);\n }\n catch (error) {\n console.error(\"Gridstack dropover: Bad JSON format: \", attr);\n }\n helper.removeAttribute('data-gs-widget');\n helper.removeAttribute('gridstacknode');\n }\n if (!node)\n node = this._readAttr(helper); // used to pass false for #2354, but now we clone top level node\n // On first grid enter from sidebar, set the initial sidebar item size properties for the node\n node._sidebarOrig = { w: node.w, h: node.h };\n }\n if (!node.grid) { // sidebar item\n if (!node.el)\n node = { ...node }; // clone first time we're coming from sidebar (since 'clone' doesn't copy vars)\n node._isExternal = true;\n helper.gridstackNode = node;\n }\n // calculate the grid size based on element outer size\n const w = node.w || Math.round(helper.offsetWidth / cellWidth) || 1;\n const h = node.h || Math.round(helper.offsetHeight / cellHeight) || 1;\n // if the item came from another grid, make a copy and save the original info in case we go back there\n if (node.grid && node.grid !== this) {\n // copy the node original values (min/max/id/etc...) but override width/height/other flags which are this grid specific\n // console.log('dropover cloning node'); // TEST\n if (!el._gridstackNodeOrig)\n el._gridstackNodeOrig = node; // shouldn't have multiple nested!\n el.gridstackNode = node = { ...node, w, h, grid: this };\n delete node.x;\n delete node.y;\n this.engine.cleanupNode(node)\n .nodeBoundFix(node);\n // restore some internal fields we need after clearing them all\n node._initDD =\n node._isExternal = // DOM needs to be re-parented on a drop\n node._temporaryRemoved = true; // so it can be inserted onDrag below\n }\n else {\n node.w = w;\n node.h = h;\n node._temporaryRemoved = true; // so we can insert it\n }\n // clear any marked for complete removal (Note: don't check _isAboutToRemove as that is cleared above - just do it)\n GridStack._itemRemoving(node.el, false);\n dd.on(el, 'drag', onDrag);\n // make sure this is called at least once when going fast #1578\n onDrag(event, el, helper);\n return false; // prevent parent from receiving msg (which may be a grid as well)\n })\n /**\n * Leaving our grid area...\n */\n .on(this.el, 'dropout', (event, el, helper) => {\n // console.log(`out ${this.el.gridstack.opts.id} ${count++}`); // TEST\n const node = helper?.gridstackNode || el.gridstackNode;\n if (!node)\n return false;\n // fix #1578 when dragging fast, we might get leave after other grid gets enter (which calls us to clean)\n // so skip this one if we're not the active grid really..\n if (!node.grid || node.grid === this) {\n this._leave(el, helper);\n // if we were created as temporary nested grid, go back to before state\n if (this._isTemp) {\n this.removeAsSubGrid(node);\n }\n }\n return false; // prevent parent from receiving msg (which may be grid as well)\n })\n /**\n * end - releasing the mouse\n */\n .on(this.el, 'drop', (event, el, helper) => {\n const node = helper?.gridstackNode || el.gridstackNode;\n // ignore drop on ourself from ourself that didn't come from the outside - dragend will handle the simple move instead\n if (node?.grid === this && !node._isExternal)\n return false;\n const wasAdded = !!this.placeholder.parentElement; // skip items not actually added to us because of constrains, but do cleanup #1419\n const wasSidebar = el !== helper;\n this.placeholder.remove();\n delete this.placeholder.gridstackNode;\n // disable animation when replacing a placeholder (already positioned) with actual content\n if (wasAdded && this.opts.animate) {\n this.setAnimation(false);\n this.setAnimation(true, true); // delay adding back\n }\n // notify previous grid of removal\n // console.log('drop delete _gridstackNodeOrig') // TEST\n const origNode = el._gridstackNodeOrig;\n delete el._gridstackNodeOrig;\n if (wasAdded && origNode?.grid && origNode.grid !== this) {\n const oGrid = origNode.grid;\n oGrid.engine.removeNodeFromLayoutCache(origNode);\n oGrid.engine.removedNodes.push(origNode);\n oGrid._triggerRemoveEvent()._triggerChangeEvent();\n // if it's an empty sub-grid that got auto-created, nuke it\n if (oGrid.parentGridNode && !oGrid.engine.nodes.length && oGrid.opts.subGridDynamic) {\n oGrid.removeAsSubGrid();\n }\n }\n if (!node)\n return false;\n // use existing placeholder node as it's already in our list with drop location\n if (wasAdded) {\n this.engine.cleanupNode(node); // removes all internal _xyz values\n node.grid = this;\n }\n delete node.grid?._isTemp;\n dd.off(el, 'drag');\n // if we made a copy insert that instead of the original (sidebar item)\n if (helper !== el) {\n helper.remove();\n el = helper;\n }\n else {\n el.remove(); // reduce flicker as we change depth here, and size further down\n }\n this._removeDD(el);\n if (!wasAdded)\n return false;\n const subGrid = node.subGrid?.el?.gridstack; // set when actual sub-grid present\n Utils.copyPos(node, this._readAttr(this.placeholder)); // placeholder values as moving VERY fast can throw things off #1578\n Utils.removePositioningStyles(el);\n // give the user a chance to alter the widget that will get inserted if new sidebar item\n if (wasSidebar && (node.content || node.subGridOpts || GridStack.addRemoveCB)) {\n delete node.el;\n el = this.addWidget(node);\n }\n else {\n this._prepareElement(el, true, node);\n this.el.appendChild(el);\n // resizeToContent is skipped in _prepareElement() until node is visible (clientHeight=0) so call it now\n this.resizeToContentCheck(false, node);\n if (subGrid) {\n subGrid.parentGridNode = node;\n }\n this._updateContainerHeight();\n }\n this.engine.addedNodes.push(node);\n this._triggerAddEvent();\n this._triggerChangeEvent();\n this.engine.endUpdate();\n if (this._gsEventHandler['dropped']) {\n this._gsEventHandler['dropped']({ ...event, type: 'dropped' }, origNode && origNode.grid ? origNode : undefined, node);\n }\n return false; // prevent parent from receiving msg (which may be grid as well)\n });\n return this;\n }\n /** @internal mark item for removal */\n static _itemRemoving(el, remove) {\n if (!el)\n return;\n const node = el ? el.gridstackNode : undefined;\n if (!node?.grid || el.classList.contains(node.grid.opts.removableOptions.decline))\n return;\n remove ? node._isAboutToRemove = true : delete node._isAboutToRemove;\n remove ? el.classList.add('grid-stack-item-removing') : el.classList.remove('grid-stack-item-removing');\n }\n /** @internal called to setup a trash drop zone if the user specifies it */\n _setupRemoveDrop() {\n if (typeof this.opts.removable !== 'string')\n return this;\n const trashEl = document.querySelector(this.opts.removable);\n if (!trashEl)\n return this;\n // only register ONE static drop-over/dropout callback for the 'trash', and it will\n // update the passed in item and parent grid because the '.trash' is a shared resource anyway,\n // and Native DD only has 1 event CB (having a list and technically a per grid removableOptions complicates things greatly)\n if (!this.opts.staticGrid && !dd.isDroppable(trashEl)) {\n dd.droppable(trashEl, this.opts.removableOptions)\n .on(trashEl, 'dropover', (event, el) => GridStack._itemRemoving(el, true))\n .on(trashEl, 'dropout', (event, el) => GridStack._itemRemoving(el, false));\n }\n return this;\n }\n /**\n * prepares the element for drag&drop - this is normally called by makeWidget() unless are are delay loading\n * @param el GridItemHTMLElement of the widget\n * @param [force=false]\n * */\n prepareDragDrop(el, force = false) {\n const node = el?.gridstackNode;\n if (!node)\n return;\n const noMove = node.noMove || this.opts.disableDrag;\n const noResize = node.noResize || this.opts.disableResize;\n // check for disabled grid first\n const disable = this.opts.staticGrid || (noMove && noResize);\n if (force || disable) {\n if (node._initDD) {\n this._removeDD(el); // nukes everything instead of just disable, will add some styles back next\n delete node._initDD;\n }\n if (disable) {\n el.classList.add('ui-draggable-disabled', 'ui-resizable-disabled'); // add styles one might depend on #1435\n return this;\n }\n }\n if (!node._initDD) {\n // variables used/cashed between the 3 start/move/end methods, in addition to node passed above\n let cellWidth;\n let cellHeight;\n /** called when item starts moving/resizing */\n const onStartMoving = (event, ui) => {\n // trigger any 'dragstart' / 'resizestart' manually\n this.triggerEvent(event, event.target);\n cellWidth = this.cellWidth();\n cellHeight = this.getCellHeight(true); // force pixels for calculations\n this._onStartMoving(el, event, ui, node, cellWidth, cellHeight);\n };\n /** called when item is being dragged/resized */\n const dragOrResize = (event, ui) => {\n this._dragOrResize(el, event, ui, node, cellWidth, cellHeight);\n };\n /** called when the item stops moving/resizing */\n const onEndMoving = (event) => {\n this.placeholder.remove();\n delete this.placeholder.gridstackNode;\n delete node._moving;\n delete node._resizing;\n delete node._event;\n delete node._lastTried;\n const widthChanged = node.w !== node._orig.w;\n // if the item has moved to another grid, we're done here\n const target = event.target;\n if (!target.gridstackNode || target.gridstackNode.grid !== this)\n return;\n node.el = target;\n if (node._isAboutToRemove) {\n const grid = el.gridstackNode.grid;\n if (grid._gsEventHandler[event.type]) {\n grid._gsEventHandler[event.type](event, target);\n }\n grid.engine.nodes.push(node); // temp add it back so we can proper remove it next\n grid.removeWidget(el, true, true);\n }\n else {\n Utils.removePositioningStyles(target);\n if (node._temporaryRemoved) {\n // use last position we were at (not _orig as we may have pushed others and moved) and add it back\n this._writePosAttr(target, node);\n this.engine.addNode(node);\n }\n else {\n // move to new placeholder location\n this._writePosAttr(target, node);\n }\n this.triggerEvent(event, target);\n }\n // @ts-ignore\n this._extraDragRow = 0; // @ts-ignore\n this._updateContainerHeight(); // @ts-ignore\n this._triggerChangeEvent();\n this.engine.endUpdate();\n if (event.type === 'resizestop') {\n if (Number.isInteger(node.sizeToContent))\n node.sizeToContent = node.h; // new soft limit\n this.resizeToContentCheck(widthChanged, node); // wait for width animation if changed\n }\n };\n dd.draggable(el, {\n start: onStartMoving,\n stop: onEndMoving,\n drag: dragOrResize,\n rtl: this.opts.rtl,\n }).resizable(el, {\n start: onStartMoving,\n stop: onEndMoving,\n resize: dragOrResize,\n rtl: this.opts.rtl,\n });\n node._initDD = true; // we've set DD support now\n }\n // finally fine tune move vs resize by disabling any part...\n dd.draggable(el, noMove ? 'disable' : 'enable')\n .resizable(el, noResize ? 'disable' : 'enable');\n return this;\n }\n /** @internal handles actual drag/resize start */\n _onStartMoving(el, event, ui, node, cellWidth, cellHeight) {\n this.engine.cleanNodes()\n .beginUpdate(node);\n // @ts-ignore\n this._writePosAttr(this.placeholder, node);\n this.el.appendChild(this.placeholder);\n this.placeholder.gridstackNode = node;\n // console.log('_onStartMoving placeholder') // TEST\n // if the element is inside a grid, it has already been scaled\n // we can use that as a scale reference\n if (node.grid?.el) {\n this.dragTransform = Utils.getValuesFromTransformedElement(el);\n }\n // if the element is being dragged from outside (not from any grid)\n // we use the grid as the transformation reference, since the helper is not subject to transformation\n else if (this.placeholder && this.placeholder.closest('.grid-stack')) {\n const gridEl = this.placeholder.closest('.grid-stack');\n this.dragTransform = Utils.getValuesFromTransformedElement(gridEl);\n }\n // Fallback\n else {\n this.dragTransform = {\n xScale: 1,\n xOffset: 0,\n yScale: 1,\n yOffset: 0,\n };\n }\n node.el = this.placeholder;\n node._lastUiPosition = ui.position;\n node._prevYPix = ui.position.top;\n node._moving = (event.type === 'dragstart'); // 'dropover' are not initially moving so they can go exactly where they enter (will push stuff out of the way)\n node._resizing = (event.type === 'resizestart');\n delete node._lastTried;\n if (event.type === 'dropover' && node._temporaryRemoved) {\n // console.log('engine.addNode x=' + node.x); // TEST\n this.engine.addNode(node); // will add, fix collisions, update attr and clear _temporaryRemoved\n node._moving = true; // AFTER, mark as moving object (wanted fix location before)\n }\n // set the min/max resize info taking into account the column count and position (so we don't resize outside the grid)\n this.engine.cacheRects(cellWidth, cellHeight, this.opts.marginTop, this.opts.marginRight, this.opts.marginBottom, this.opts.marginLeft);\n if (event.type === 'resizestart') {\n const colLeft = this.getColumn() - node.x;\n const rowLeft = (this.opts.maxRow || Number.MAX_SAFE_INTEGER) - node.y;\n dd.resizable(el, 'option', 'minWidth', cellWidth * Math.min(node.minW || 1, colLeft))\n .resizable(el, 'option', 'minHeight', cellHeight * Math.min(node.minH || 1, rowLeft))\n .resizable(el, 'option', 'maxWidth', cellWidth * Math.min(node.maxW || Number.MAX_SAFE_INTEGER, colLeft))\n .resizable(el, 'option', 'maxWidthMoveLeft', cellWidth * Math.min(node.maxW || Number.MAX_SAFE_INTEGER, node.x + node.w))\n .resizable(el, 'option', 'maxHeight', cellHeight * Math.min(node.maxH || Number.MAX_SAFE_INTEGER, rowLeft))\n .resizable(el, 'option', 'maxHeightMoveUp', cellHeight * Math.min(node.maxH || Number.MAX_SAFE_INTEGER, node.y + node.h));\n }\n }\n /** @internal handles actual drag/resize */\n _dragOrResize(el, event, ui, node, cellWidth, cellHeight) {\n const p = { ...node._orig }; // could be undefined (_isExternal) which is ok (drag only set x,y and w,h will default to node value)\n let resizing;\n let mLeft = this.opts.marginLeft, mRight = this.opts.marginRight, mTop = this.opts.marginTop, mBottom = this.opts.marginBottom;\n // if margins (which are used to pass mid point by) are large relative to cell height/width, reduce them down #1855\n const mHeight = Math.round(cellHeight * 0.1), mWidth = Math.round(cellWidth * 0.1);\n mLeft = Math.min(mLeft, mWidth);\n mRight = Math.min(mRight, mWidth);\n mTop = Math.min(mTop, mHeight);\n mBottom = Math.min(mBottom, mHeight);\n if (event.type === 'drag') {\n if (node._temporaryRemoved)\n return; // handled by dropover\n node._prevYPix = ui.position.top;\n if (this.opts.draggable.scroll !== false) {\n DDManager.dragElement?.updateScrollPosition(this.el);\n }\n // get new position taking into account the margin in the direction we are moving! (need to pass mid point by margin)\n const left = ui.position.left + (ui.position.left > node._lastUiPosition.left ? -mRight : mLeft);\n const top = ui.position.top + (ui.position.top > node._lastUiPosition.top ? -mBottom : mTop);\n p.x = Math.round(left / cellWidth);\n p.y = Math.round(top / cellHeight);\n // @ts-ignore// if we're at the bottom hitting something else, grow the grid so cursor doesn't leave when trying to place below others\n const prev = this._extraDragRow;\n if (this.engine.collide(node, p)) {\n const row = this.getRow();\n let extra = Math.max(0, (p.y + node.h) - row);\n if (this.opts.maxRow && row + extra > this.opts.maxRow) {\n extra = Math.max(0, this.opts.maxRow - row);\n } // @ts-ignore\n this._extraDragRow = extra; // @ts-ignore\n }\n else\n this._extraDragRow = 0; // @ts-ignore\n if (this._extraDragRow !== prev)\n this._updateContainerHeight();\n if (node.x === p.x && node.y === p.y)\n return; // skip same\n // DON'T skip one we tried as we might have failed because of coverage <50% before\n // if (node._lastTried && node._lastTried.x === x && node._lastTried.y === y) return;\n }\n else if (event.type === 'resize') {\n if (p.x < 0)\n return;\n // Scrolling page if needed\n Utils.updateScrollResize(event, el, cellHeight);\n // get new size\n p.w = Math.round((ui.size.width - mLeft) / cellWidth);\n p.h = Math.round((ui.size.height - mTop) / cellHeight);\n if (node.w === p.w && node.h === p.h)\n return;\n if (node._lastTried && node._lastTried.w === p.w && node._lastTried.h === p.h)\n return; // skip one we tried (but failed)\n // only recalculate position for handles that move the top-left corner (N/W).\n // for SE/S/E handles the top-left is anchored — recalculating from pixels causes\n // rounding drift on fine grids where cellWidth/cellHeight are only a few pixels. #385 #1356\n if (event.hasMovedX) {\n const left = ui.position.left + mLeft;\n p.x = Math.round(left / cellWidth);\n }\n if (event.hasMovedY) {\n const top = ui.position.top + mTop;\n p.y = Math.round(top / cellHeight);\n }\n resizing = true;\n }\n node._event = event;\n node._lastTried = p; // set as last tried (will nuke if we go there)\n const rect = {\n x: ui.position.left + mLeft,\n y: ui.position.top + mTop,\n w: (ui.size ? ui.size.width : node.w * cellWidth) - mLeft - mRight,\n h: (ui.size ? ui.size.height : node.h * cellHeight) - mTop - mBottom\n };\n if (this.engine.moveNodeCheck(node, { ...p, cellWidth, cellHeight, rect, resizing })) {\n node._lastUiPosition = ui.position;\n this.engine.cacheRects(cellWidth, cellHeight, mTop, mRight, mBottom, mLeft);\n delete node._skipDown;\n if (resizing && node.subGrid)\n node.subGrid.onResize();\n this._extraDragRow = 0; // @ts-ignore\n this._updateContainerHeight();\n const target = event.target; // @ts-ignore\n // Do not write sidebar item attributes back to the original sidebar el\n if (!node._sidebarOrig) {\n this._writePosAttr(target, node);\n }\n this.triggerEvent(event, target);\n }\n }\n /** call given event callback on our main top-most grid (if we're nested) */\n triggerEvent(event, target) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let grid = this;\n while (grid.parentGridNode)\n grid = grid.parentGridNode.grid;\n if (grid._gsEventHandler[event.type]) {\n grid._gsEventHandler[event.type](event, target);\n }\n }\n /** @internal called when item leaving our area by either cursor dropout event\n * or shape is outside our boundaries. remove it from us, and mark temporary if this was\n * our item to start with else restore prev node values from prev grid it came from.\n */\n _leave(el, helper) {\n helper = helper || el;\n const node = helper.gridstackNode;\n if (!node)\n return;\n // remove the scale of the helper on leave\n helper.style.transform = helper.style.transformOrigin = null;\n dd.off(el, 'drag'); // no need to track while being outside\n // this gets called when cursor leaves and shape is outside, so only do this once\n if (node._temporaryRemoved)\n return;\n node._temporaryRemoved = true;\n this.engine.removeNode(node); // remove placeholder as well, otherwise it's a sign node is not in our list, which is a bigger issue\n node.el = node._isExternal && helper ? helper : el; // point back to real item being dragged\n const sidebarOrig = node._sidebarOrig;\n if (node._isExternal)\n this.engine.cleanupNode(node);\n // Restore sidebar item initial size info to stay consistent when dragging between multiple grids\n node._sidebarOrig = sidebarOrig;\n if (this.opts.removable === true) { // boolean vs a class string\n // item leaving us and we are supposed to remove on leave (no need to drag onto trash) mark it so\n GridStack._itemRemoving(el, true);\n }\n // finally if item originally came from another grid, but left us, restore things back to prev info\n if (el._gridstackNodeOrig) {\n // console.log('leave delete _gridstackNodeOrig') // TEST\n el.gridstackNode = el._gridstackNodeOrig;\n delete el._gridstackNodeOrig;\n }\n else if (node._isExternal) {\n // item came from outside restore all nodes back to original\n this.engine.restoreInitial();\n }\n }\n}\n/**\n * callback to create the content of widgets so the app can control how to store and restore it\n * By default this lib will do 'el.textContent = w.content' forcing text only support for avoiding potential XSS issues.\n */\nGridStack.renderCB = (el, w) => { if (el && w?.content)\n el.textContent = w.content; };\n/** parent class for sizing content. defaults to '.grid-stack-item-content' */\nGridStack.resizeToContentParent = '.grid-stack-item-content';\n/** scoping so users can call GridStack.Utils.sort() for example */\nGridStack.Utils = Utils;\n/** scoping so users can call new GridStack.Engine(12) for example */\nGridStack.Engine = GridStackEngine;\n/** @internal current version compiled in code */\nGridStack.GDRev = '12.6.0';\nexport { GridStack };\n//# sourceMappingURL=gridstack.js.map"],"names":["Utils","els","root","doc","el","list","n","classes","parent","c","strict","a","b","x0","x1","y0","y1","nodes","dir","diffY","id","v","value","val","h","unit","match","target","sources","source","key","doMinMax","node","aVal","bVal","removeEl","func","delay","isWaiting","args","style","overflowY","event","distance","scrollEl","height","offsetTop","pointerPosY","top","bottom","obj","skipFields","ret","k","parentNode","styles","s","e","info","evt","p","simulatedType","me","simulatedEvent","transformReference","transformValues","o","tmp","GridStackEngine","opts","flag","doPack","nn","collide","opt","area","didMove","newOpt","counter","moved","newNN","skip","skip2","skipId","skip2Id","collides","r0","overMax","r2","yOver","xOver","over","w","right","left","_doSwap","x","y","touching","t","layout","doSort","wasBatch","wasColumnResize","copyNodes","index","after","newY","i","resizing","count","defaults","before","copy","verify","removedNodes","dirtyNodes","nodeList","column","start","found","box","triggerAddEvent","dup","skipCollision","removeDOM","triggerEvent","clonedNode","clone","canMove","wasUndefinedPack","prevPos","needToMove","activeDrag","a1","a2","row","saveElement","saveCB","len","wl","l","ratio","prevColumn","doCompact","newNodes","cacheNodes","lastIndex","cacheNode","j","move","scale","clear","existing","n2","prop","gridDefaults","DDManager","isTouch","DDTouch","simulateMouseEvent","simulatePointerMouseEvent","touchstart","touchmove","touchend","wasDragging","pointerdown","pointerenter","pointerleave","DDResizableHandle","host","option","error","name","DDBaseImplement","callback","eventName","DDResizable","containmentRect","newRect","rect","updateHandles","updateAutoHide","auto","ev","dragTransform","oEvent","offsetX","offsetY","moveLeft","moveUp","isRtl","constrain","oWidth","oHeight","maxWidth","minWidth","maxHeight","minHeight","width","containmentEl","scaleReciprocal","finalValue","handle","skipMouseDown","DDDraggable","scrollCont","clipping","viewportH","absPx","speed","scrollAmount","prevScroll","handleName","owner","dragEl","forDestroy","pause","grid","helper","transition","offset","xformOffsetX","xformOffsetY","targetOffset","gridEl","elRect","scrollRect","clippedBelow","clippedAbove","leftPos","DDDroppable","calledByEnter","parentDrop","drag","DDElement","DDGridStack","dEl","handles","autoHide","create","hosts","d","dd","GridStack","options","elOrString","selector","grids","engineClass","placeholderChild","rowAttr","resp","bk","cbNodes","children","domAttr","cont","entry","ops","nodeToAdd","saveContent","subGridTemplate","autoColumn","content","newItem","newItemOpt","subGrid","nodeThatRemoved","pGrid","saveGridOpt","itemContent","listOrOpt","origShow","items","addRemove","maxColumn","prevCB","removed","blank","noAnim","updateNodes","item","sub","forcePixel","rows","marginDiff","data","forBreakpoint","newColumn","oldColumn","position","useDocRelative","containerPos","relativeLeft","relativeTop","columnWidth","rowHeight","resetIgnoreLayoutsNodeChange","doAnimate","updateClass","recurse","hadColumnOpts","keys","m","changed","ddChanged","widthChanged","wasUpdating","cell","padding","itemH","wantedH","subRec","parentRec","child","softMax","relative","rot","pivotX","pivotY","_orig","elements","addedNodes","type","cellHeight","cssMinHeight","minRow","sizeToContent","xProp","attrs","clearDefaultAttr","attr","clientWidth","columnChanged","forceRemove","trackSize","margin","margins","dragIn","dragInOptions","widgets","doEnable","cellWidth","onDrag","helperRect","ui","canAccept","wasAdded","wasSidebar","origNode","oGrid","remove","trashEl","force","noMove","noResize","disable","onStartMoving","dragOrResize","onEndMoving","colLeft","rowLeft","mLeft","mRight","mTop","mBottom","mHeight","mWidth","prev","extra","sidebarOrig"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}
|