@fastybird/smart-panel-admin 0.1.0-alpha.5
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/LICENSE.md +201 -0
- package/README.md +187 -0
- package/dist/assets/auth.constants-Dls_gTTx.js +1 -0
- package/dist/assets/card-add-form-C8k05jix.js +1 -0
- package/dist/assets/card-edit-form-B4Wy_x66.js +1 -0
- package/dist/assets/chunk-DECur_0Z.js +1 -0
- package/dist/assets/common-BY9Gg1EI.css +1 -0
- package/dist/assets/common-DlW3qRTQ.js +150 -0
- package/dist/assets/components-4pZvmdD8.js +1 -0
- package/dist/assets/components-BFT9ksvz.js +1 -0
- package/dist/assets/components-BGiFbtPn.css +1 -0
- package/dist/assets/components-BTNQr9V1.css +1 -0
- package/dist/assets/components-C59v4_pJ.css +1 -0
- package/dist/assets/components-CjdlFz1u.css +1 -0
- package/dist/assets/components-D8PpAJgM.js +1 -0
- package/dist/assets/components-DBRr1g1A.js +1 -0
- package/dist/assets/components-DRDcqY-d.js +1 -0
- package/dist/assets/components-DSMoiSYB.css +1 -0
- package/dist/assets/components-DlofbaXq.js +2 -0
- package/dist/assets/components-W7KcmsWr.css +1 -0
- package/dist/assets/components-o_FTQqv1.js +1 -0
- package/dist/assets/components-tvaQsmsk.js +2 -0
- package/dist/assets/composables-BTOG7VNs2.js +1 -0
- package/dist/assets/composables-CLHFuu4k.js +1 -0
- package/dist/assets/composables-COu_3hI8.js +1 -0
- package/dist/assets/composables-CU6q9-8B.js +1 -0
- package/dist/assets/composables-CjGTzpGj.js +1 -0
- package/dist/assets/composables-Cl0F9F_S.js +1 -0
- package/dist/assets/composables-CzSTR7jk.js +1 -0
- package/dist/assets/composables-DDYun9ja.js +0 -0
- package/dist/assets/composables-Da97cjje.js +1 -0
- package/dist/assets/composables-m3XA9ZFJ.js +1 -0
- package/dist/assets/dashboard-DilMazDB.js +2 -0
- package/dist/assets/dashboard.types-DHlozs9y.js +1 -0
- package/dist/assets/data-source-edit-form-mTdgdACg.js +1 -0
- package/dist/assets/drawer-Db27jij8.js +1 -0
- package/dist/assets/empty-C13Ke09q.js +1 -0
- package/dist/assets/extensions.constants-BtEcoiTe.js +1 -0
- package/dist/assets/gridstack-DrhE8fGa.css +1 -0
- package/dist/assets/gridstack.min-BC6WoZvX.js +3 -0
- package/dist/assets/icon-with-child-1Kb-D21P.css +1 -0
- package/dist/assets/icon-with-child-DmQ_XhQy.js +12 -0
- package/dist/assets/index-DU31qw7A.css +1 -0
- package/dist/assets/index-DW2Q2Ef8.js +16 -0
- package/dist/assets/input-number-BF0uWlX2.js +1 -0
- package/dist/assets/integration-config-dialog-DCF8K0UE.js +1 -0
- package/dist/assets/keys-C6Zi4a10.js +1 -0
- package/dist/assets/keys-CGGnS6tq.js +1 -0
- package/dist/assets/keys-Cm97UJHM.js +1 -0
- package/dist/assets/keys-DHSxrtbW.js +1 -0
- package/dist/assets/layout-config-Bs73Oq0w.css +1 -0
- package/dist/assets/layout-config-DkSTscYx.js +1 -0
- package/dist/assets/layout-default-LKbviw7y.js +1 -0
- package/dist/assets/layout-default-aEpEfGPk.css +1 -0
- package/dist/assets/layout-lock-Cp5xh9ot.js +1 -0
- package/dist/assets/layout-profile-ByHuBl2Y.js +1 -0
- package/dist/assets/layout-profile-wkO5hDf5.js +1 -0
- package/dist/assets/layout-sign-C8xK52Nq.js +1 -0
- package/dist/assets/layout-sign-CjJVcqWG.js +1 -0
- package/dist/assets/leaflet-src-B49UyrlR.js +1 -0
- package/dist/assets/leaflet-src.esm-YKGwaZsZ.js +1 -0
- package/dist/assets/list-data-sources-adjust-Bj-0Adap.js +1 -0
- package/dist/assets/list-data-sources-adjust-REFqavw6.css +1 -0
- package/dist/assets/list-locations-BM5Yvsew.js +1 -0
- package/dist/assets/list-users-dBZVseES.js +1 -0
- package/dist/assets/logs-entries.transformers-BRzpY2MS.js +1 -0
- package/dist/assets/marker-icon-2x-BCzqJChB.js +1 -0
- package/dist/assets/marker-icon-JzPv91fE.js +1 -0
- package/dist/assets/marker-shadow-tj6c2pB6.js +1 -0
- package/dist/assets/page-configure-1ENlHHe8.js +1 -0
- package/dist/assets/page-configure-BLho4eEA.js +1 -0
- package/dist/assets/page-configure-Bhbyv1tV.css +1 -0
- package/dist/assets/page-configure-beBdD2Qu.css +1 -0
- package/dist/assets/pages-cards.contants-B5RdaI3z.js +1 -0
- package/dist/assets/pages-tiles.constants-Day6cR-b.js +1 -0
- package/dist/assets/pagination-BN87kdDs.js +1 -0
- package/dist/assets/popover-DOg0KdzK.js +1 -0
- package/dist/assets/radio-BmI00y-5.js +1 -0
- package/dist/assets/scene-add-form-BcNSeauE.css +1 -0
- package/dist/assets/scene-add-form-DdmUnhy5.js +1 -0
- package/dist/assets/scene-edit-form-BeXK9ZM1.js +1 -0
- package/dist/assets/scene-edit-form-CDPMRZQT.css +1 -0
- package/dist/assets/select-data-source-plugin-CtXn9m8K.js +1 -0
- package/dist/assets/skeleton-DMwdgp1r.js +1 -0
- package/dist/assets/slider-YJlo4Ibo.js +1 -0
- package/dist/assets/steps-BIGbhQaO.js +1 -0
- package/dist/assets/system.exceptions-Ddzmz1RH.js +1 -0
- package/dist/assets/table-5pjI7ihN.js +1 -0
- package/dist/assets/tile-detail-COru-nDQ.js +1 -0
- package/dist/assets/tile-edit-form-jjo5FbvD.js +1 -0
- package/dist/assets/types-B8upWpl6.js +1 -0
- package/dist/assets/useBuddyChat-DREu7Tv5.js +1 -0
- package/dist/assets/useDataSources-Bx93bXrZ.js +1 -0
- package/dist/assets/useDevices-CuJhDHbf.js +1 -0
- package/dist/assets/useGeolocation-QxCQnrMH.js +2 -0
- package/dist/assets/useGeolocation-vh-t_kPv.css +1 -0
- package/dist/assets/useLocation-BM-8kEbz.js +1 -0
- package/dist/assets/usePage-DTL4RY9u.js +1 -0
- package/dist/assets/useSpaces-DnSZteHf.js +1 -0
- package/dist/assets/view-buddy-chat-DKryg2MX.js +1 -0
- package/dist/assets/view-card-add-CYZ9eXg5.js +1 -0
- package/dist/assets/view-card-edit-C5zcGDFz.js +1 -0
- package/dist/assets/view-channel-IJiMTDSG.js +1 -0
- package/dist/assets/view-channel-add-YCqERQS-.js +1 -0
- package/dist/assets/view-channel-edit-Dnct_m0O.js +1 -0
- package/dist/assets/view-channel-property-add-CoaudIGV.js +1 -0
- package/dist/assets/view-channel-property-edit-g0J-yPAY.js +1 -0
- package/dist/assets/view-channels--BS5J8Ro.js +1 -0
- package/dist/assets/view-config-module-edit-RW7YEgut.js +1 -0
- package/dist/assets/view-config-modules-Bi5Ib06n.js +1 -0
- package/dist/assets/view-config-modules-DvbJyCIK.css +1 -0
- package/dist/assets/view-config-plugin-edit-CviUNBYF.js +1 -0
- package/dist/assets/view-config-plugins-BBxIkmDq.js +1 -0
- package/dist/assets/view-config-plugins-BTCfejmZ.css +1 -0
- package/dist/assets/view-data-source-add-3vF7foLh.js +1 -0
- package/dist/assets/view-data-source-add-CNRJiOEl.js +1 -0
- package/dist/assets/view-data-source-edit-5xrflzsE.js +1 -0
- package/dist/assets/view-data-source-edit-BJeCPFQo.js +1 -0
- package/dist/assets/view-device-C6EIYm4K.js +1 -0
- package/dist/assets/view-device-DvKgjKr8.css +1 -0
- package/dist/assets/view-device-add-Dtg4hKNb.js +1 -0
- package/dist/assets/view-device-control-D14Yf_3B.js +1 -0
- package/dist/assets/view-device-edit-D3wfo1SZ.js +1 -0
- package/dist/assets/view-devices-CQyYakG6.js +1 -0
- package/dist/assets/view-display-BoDjtT_C.js +1 -0
- package/dist/assets/view-display-edit-DOBx3FR9.js +1 -0
- package/dist/assets/view-display-tokens-ylzZVdwc.js +1 -0
- package/dist/assets/view-displays-Bv-jxEGc.js +1 -0
- package/dist/assets/view-extension-detail-BAuEjk3c.js +1 -0
- package/dist/assets/view-extension-detail-BjYHp3ZH.css +1 -0
- package/dist/assets/view-extensions-xnAarDlC.js +1 -0
- package/dist/assets/view-location-BbOLMWOk.js +1 -0
- package/dist/assets/view-location-add-B3Bljsk2.js +1 -0
- package/dist/assets/view-location-edit-Csq0lDWt.js +1 -0
- package/dist/assets/view-locations-DBYp9MTj.css +1 -0
- package/dist/assets/view-locations-DF-FXbjv.js +1 -0
- package/dist/assets/view-lock-screen-ClIhVZNt.js +1 -0
- package/dist/assets/view-not-found-C0Nl0aC-.js +1 -0
- package/dist/assets/view-onboarding-vZhyo5Yl.js +1 -0
- package/dist/assets/view-page-DCmbFTnE.js +1 -0
- package/dist/assets/view-page-add-Cpzp9lXV.js +1 -0
- package/dist/assets/view-page-configure-b5zQ9PXr.js +1 -0
- package/dist/assets/view-page-configure-c8DaItoq.js +1 -0
- package/dist/assets/view-page-data-source-add-CJMzSAGm.js +1 -0
- package/dist/assets/view-page-data-source-edit-BI5AXiNz.js +1 -0
- package/dist/assets/view-page-edit-fw913SDe.js +1 -0
- package/dist/assets/view-page-plugin-BrlvGuEU.js +1 -0
- package/dist/assets/view-pages-DVvpvvkt.js +1 -0
- package/dist/assets/view-profile-general-jV0TcOZC.js +1 -0
- package/dist/assets/view-profile-security-CPgtYKl1.js +1 -0
- package/dist/assets/view-scene-add-CT1MOXtu.js +1 -0
- package/dist/assets/view-scene-edit-4B1IzMuu.js +1 -0
- package/dist/assets/view-scenes-DoDkd08z.js +1 -0
- package/dist/assets/view-sign-in-CC7zlx9Q.js +1 -0
- package/dist/assets/view-sign-up-B1l4jvOx.js +1 -0
- package/dist/assets/view-space-VnVbkvKT.js +1 -0
- package/dist/assets/view-space-add-DwONNuir.js +1 -0
- package/dist/assets/view-space-edit-44iZOBav.js +1 -0
- package/dist/assets/view-spaces-CuuMx0iT.js +1 -0
- package/dist/assets/view-spaces-onboarding-CN6qrfN6.js +1 -0
- package/dist/assets/view-stats-F8sYkha0.js +1 -0
- package/dist/assets/view-system-info-AVyQIUWe.js +1 -0
- package/dist/assets/view-system-log-detail-sgFgbNjX.js +1 -0
- package/dist/assets/view-system-logs-eIoNhI5c.js +1 -0
- package/dist/assets/view-tile-add-B7mnK_PA.js +1 -0
- package/dist/assets/view-tile-add-Yt_KOkky.js +1 -0
- package/dist/assets/view-tile-data-source-add-DxaZd4Dp.js +1 -0
- package/dist/assets/view-tile-data-source-edit-jzGg3dBQ.js +1 -0
- package/dist/assets/view-tile-edit-b2LCLrB5.js +1 -0
- package/dist/assets/view-tile-edit-hbO-vs_Y.js +1 -0
- package/dist/assets/view-tile-edit-kHjMhT9e.js +1 -0
- package/dist/assets/view-tile-t4cTwgz2.js +1 -0
- package/dist/assets/view-user-add-CdlbezB7.js +1 -0
- package/dist/assets/view-user-edit-S0Up49jC.js +1 -0
- package/dist/assets/view-users-B-m50sCU.js +1 -0
- package/dist/assets/vue-meta.esm-browser.min-3_YV25pX.js +1 -0
- package/dist/assets/weather-751GlpD1.js +2 -0
- package/dist/assets/weather-BKeryvnv.css +1 -0
- package/dist/assets/weather-forecast.transformers-CxZiOJKt.js +1 -0
- package/dist/assets/weather-icon-CkuFNv0P.js +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.html +93 -0
- package/package.json +155 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e=class e{static getElements(e,t=document){if(typeof e==`string`){let n=`getElementById`in t?t:void 0;if(n&&!isNaN(+e[0])){let t=n.getElementById(e);return t?[t]:[]}let r=t.querySelectorAll(e);if(!r.length&&e[0]!==`.`&&e[0]!==`#`&&(r=t.querySelectorAll(`.`+e),r.length||(r=t.querySelectorAll(`#`+e)),!r.length)){let n=t.querySelector(`[gs-id="${e}"]`);return n?[n]:[]}return Array.from(r)}return[e]}static getElement(e,t=document){if(typeof e==`string`){let n=`getElementById`in t?t:void 0;if(!e.length)return null;if(n&&e[0]===`#`)return n.getElementById(e.substring(1));if(e[0]===`#`||e[0]===`.`||e[0]===`[`)return t.querySelector(e);if(n&&!isNaN(+e[0]))return n.getElementById(e);let r=t.querySelector(e);return n&&!r&&(r=n.getElementById(e)),r||=t.querySelector(`.`+e),r}return e}static lazyLoad(e){return e.lazyLoad||e.grid?.opts?.lazyLoad&&e.lazyLoad!==!1}static createDiv(e,t){let n=document.createElement(`div`);return e.forEach(e=>{e&&n.classList.add(e)}),t?.appendChild(n),n}static shouldSizeToContent(e,t=!1){return e?.grid&&(t?e.sizeToContent===!0||e.grid.opts.sizeToContent===!0&&e.sizeToContent===void 0:!!e.sizeToContent||e.grid.opts.sizeToContent&&e.sizeToContent!==!1)}static isIntercepted(e,t){return!(e.y>=t.y+t.h||e.y+e.h<=t.y||e.x+e.w<=t.x||e.x>=t.x+t.w)}static isTouching(t,n){return e.isIntercepted(t,{x:n.x-.5,y:n.y-.5,w:n.w+1,h:n.h+1})}static areaIntercept(e,t){let n=e.x>t.x?e.x:t.x,r=e.x+e.w<t.x+t.w?e.x+e.w:t.x+t.w;if(r<=n)return 0;let i=e.y>t.y?e.y:t.y,a=e.y+e.h<t.y+t.h?e.y+e.h:t.y+t.h;return a<=i?0:(r-n)*(a-i)}static area(e){return e.w*e.h}static sort(e,t=1){let n=1e4;return e.sort((e,r)=>{let i=t*((e.y??n)-(r.y??n));return i===0?t*((e.x??n)-(r.x??n)):i})}static find(e,t){return t?e.find(e=>e.id===t):void 0}static toBool(e){return typeof e==`boolean`?e:typeof e==`string`?(e=e.toLowerCase(),!(e===``||e===`no`||e===`false`||e===`0`)):!!e}static toNumber(e){return e===null||e.length===0?void 0:Number(e)}static parseHeight(e){let t,n=`px`;if(typeof e==`string`)if(e===`auto`||e===``)t=0;else{let r=e.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!r)throw Error(`Invalid height val = ${e}`);n=r[2]||`px`,t=parseFloat(r[1])}else t=e;return{h:t,unit:n}}static defaults(t,...n){return n.forEach(n=>{for(let r in n){if(!n.hasOwnProperty(r))return;t[r]===null||t[r]===void 0?t[r]=n[r]:typeof n[r]==`object`&&typeof t[r]==`object`&&e.defaults(t[r],n[r])}}),t}static same(e,t){if(typeof e!=`object`)return e==t;if(typeof e!=typeof t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}static copyPos(e,t,n=!1){return t.x!==void 0&&(e.x=t.x),t.y!==void 0&&(e.y=t.y),t.w!==void 0&&(e.w=t.w),t.h!==void 0&&(e.h=t.h),n&&(t.minW&&(e.minW=t.minW),t.minH&&(e.minH=t.minH),t.maxW&&(e.maxW=t.maxW),t.maxH&&(e.maxH=t.maxH)),e}static samePos(e,t){return e&&t&&e.x===t.x&&e.y===t.y&&(e.w||1)===(t.w||1)&&(e.h||1)===(t.h||1)}static sanitizeMinMax(e){e.minW||delete e.minW,e.minH||delete e.minH,e.maxW||delete e.maxW,e.maxH||delete e.maxH}static removeInternalAndSame(t,n){if(!(typeof t!=`object`||typeof n!=`object`)&&!(Array.isArray(t)||Array.isArray(n)))for(let r in t){let i=t[r],a=n[r];r[0]===`_`||i===a?delete t[r]:i&&typeof i==`object`&&a!==void 0&&(e.removeInternalAndSame(i,a),Object.keys(i).length||delete t[r])}}static removeInternalForSave(e,t=!0){for(let t in e)(t[0]===`_`||e[t]===null||e[t]===void 0)&&delete e[t];delete e.grid,t&&delete e.el,e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,e.locked||delete e.locked,(e.w===1||e.w===e.minW)&&delete e.w,(e.h===1||e.h===e.minH)&&delete e.h}static throttle(e,t){let n=!1;return(...r)=>{n||(n=!0,setTimeout(()=>{e(...r),n=!1},t))}}static removePositioningStyles(e){let t=e.style;t.position&&t.removeProperty(`position`),t.left&&t.removeProperty(`left`),t.top&&t.removeProperty(`top`),t.width&&t.removeProperty(`width`),t.height&&t.removeProperty(`height`)}static getScrollElement(t){if(!t)return document.scrollingElement||document.documentElement;let n=getComputedStyle(t);return/(auto|scroll)/.test(n.overflow+n.overflowY)?t:e.getScrollElement(t.parentElement)}static updateScrollPosition(t,n,r){let i=e.getScrollElement(t);if(!i)return;let a=t.getBoundingClientRect(),o=i.getBoundingClientRect(),s=window.innerHeight||document.documentElement.clientHeight,c=a.bottom-Math.min(o.bottom,s),l=a.top-Math.max(o.top,0),u=i.scrollTop;l<0&&r<0?t.offsetHeight>o.height?i.scrollTop+=r:i.scrollTop+=Math.abs(l)>Math.abs(r)?r:l:c>0&&r>0&&(t.offsetHeight>o.height?i.scrollTop+=r:i.scrollTop+=c>r?r:c),n.top+=i.scrollTop-u}static updateScrollResize(t,n,r){let i=e.getScrollElement(n),a=i.clientHeight,o=i===e.getScrollElement()?0:i.getBoundingClientRect().top,s=t.clientY-o,c=s<r,l=s>a-r;c?i.scrollBy({behavior:`smooth`,top:s-r}):l&&i.scrollBy({behavior:`smooth`,top:r-(a-s)})}static clone(e){return typeof e!=`object`||!e?e:e instanceof Array?[...e]:{...e}}static cloneDeep(t){let n=[`parentGrid`,`el`,`grid`,`subGrid`,`engine`],r=e.clone(t);for(let i in r)r.hasOwnProperty(i)&&typeof r[i]==`object`&&i.substring(0,2)!==`__`&&!n.find(e=>e===i)&&(r[i]=e.cloneDeep(t[i]));return r}static cloneNode(e){let t=e.cloneNode(!0);return t.removeAttribute(`id`),t}static appendTo(t,n){let r;r=typeof n==`string`?e.getElement(n):n,r&&r.appendChild(t)}static addElStyles(e,t){if(t instanceof Object)for(let n in t)t.hasOwnProperty(n)&&(Array.isArray(t[n])?t[n].forEach(t=>{e.style[n]=t}):e.style[n]=t[n])}static initEvent(e,t){let n={type:t.type},r={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:t.target?t.target:e.target};return[`altKey`,`ctrlKey`,`metaKey`,`shiftKey`].forEach(t=>n[t]=e[t]),[`pageX`,`pageY`,`clientX`,`clientY`,`screenX`,`screenY`].forEach(t=>n[t]=e[t]),{...n,...r}}static simulateMouseEvent(e,t,n){let r=e,i=new MouseEvent(t,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,ctrlKey:r.ctrlKey??!1,altKey:r.altKey??!1,shiftKey:r.shiftKey??!1,metaKey:r.metaKey??!1,button:0,relatedTarget:e.target});(n||e.target).dispatchEvent(i)}static getValuesFromTransformedElement(t){let n=document.createElement(`div`);e.addElStyles(n,{opacity:`0`,position:`fixed`,top:`0px`,left:`0px`,width:`1px`,height:`1px`,zIndex:`-999999`}),t.appendChild(n);let r=n.getBoundingClientRect();return t.removeChild(n),n.remove(),{xScale:1/r.width,yScale:1/r.height,xOffset:r.left,yOffset:r.top}}static swap(e,t,n){if(!e)return;let r=e[t];e[t]=e[n],e[n]=r}static canBeRotated(e){return!(!e||e.w===e.h||e.locked||e.noResize||e.grid?.opts.disableResize||e.minW&&e.minW===e.maxW||e.minH&&e.minH===e.maxH)}},t=class t{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(t,n=t,r,i={}){if(this.sortNodes(-1),r||=this.collide(t,n),!r)return!1;if(t._moving&&!i.nested&&!this.float&&this.swap(t,r))return!0;let a=n;!this._loading&&this._useEntireRowArea(t,n)&&(a={x:0,w:this.column,y:n.y,h:n.h},r=this.collide(t,a,i.skip));let o=!1,s={nested:!0,pack:!1},c=0;for(;r||=this.collide(t,a,i.skip);){if(c++>this.nodes.length*2)throw Error(`Infinite collide check`);let a;if(r.locked||this._loading||t._moving&&!t._skipDown&&n.y>t.y&&!this.float&&(!this.collide(r,{...r,y:t.y},t)||!this.collide(r,{...r,y:n.y-r.h},t))){t._skipDown=t._skipDown||n.y>t.y;let c={...n,y:r.y+r.h,...s};a=this._loading&&e.samePos(t,c)?!0:this.moveNode(t,c),(r.locked||this._loading)&&a?e.copyPos(n,t):!r.locked&&a&&i.pack&&(this._packNodes(),n.y=r.y+r.h,e.copyPos(t,n)),o||=a}else a=this.moveNode(r,{...r,y:n.y+n.h,skip:t,...s});if(!a)return o;r=void 0}return o}collide(t,n=t,r){let i=t._id,a=r?._id;return this.nodes.find(t=>t._id!==i&&t._id!==a&&e.isIntercepted(t,n))}collideAll(t,n=t,r){let i=t._id,a=r?._id;return this.nodes.filter(t=>t._id!==i&&t._id!==a&&e.isIntercepted(t,n))}directionCollideCoverage(e,t,n){if(!t.rect||!e._rect)return;let r=e._rect,i={...t.rect};i.y>r.y?(i.h+=i.y-r.y,i.y=r.y):i.h+=r.y-i.y,i.x>r.x?(i.w+=i.x-r.x,i.x=r.x):i.w+=r.x-i.x;let a,o=.5;for(let e of n){if(e.locked||!e._rect)break;let t=e._rect,n=Number.MAX_VALUE,s=Number.MAX_VALUE;r.y<t.y?n=(i.y+i.h-t.y)/t.h:r.y+r.h>t.y+t.h&&(n=(t.y+t.h-i.y)/t.h),r.x<t.x?s=(i.x+i.w-t.x)/t.w:r.x+r.w>t.x+t.w&&(s=(t.x+t.w-i.x)/t.w);let c=Math.min(s,n);c>o&&(o=c,a=e)}return t.collide=a,a}cacheRects(e,t,n,r,i,a){return this.nodes.forEach(o=>o._rect={y:o.y*t+n,x:o.x*e+a,w:o.w*e-a-r,h:o.h*t-n-i}),this}swap(t,n){if(!n||n.locked||!t||t.locked)return!1;function r(){let e=n.x,r=n.y;return n.x=t.x,n.y=t.y,t.h==n.h?t.w==n.w?(t.x=e,t.y=r):(t.x=n.x+n.w,t.y=r):(t.x=e,t.y=n.y+n.h),t._dirty=n._dirty=!0,!0}let i;if(t.w===n.w&&t.h===n.h&&(t.x===n.x||t.y===n.y)&&(i=e.isTouching(t,n)))return r();if(i!==!1){if(t.w===n.w&&t.x===n.x&&(i||=e.isTouching(t,n))){if(n.y<t.y){let e=t;t=n,n=e}return r()}if(i!==!1){if(t.h===n.h&&t.y===n.y&&(i||=e.isTouching(t,n))){if(n.x<t.x){let e=t;t=n,n=e}return r()}return!1}}}isAreaEmpty(e,t,n,r){let i={x:e||0,y:t||0,w:n||1,h:r||1};return!this.collide(i)}compact(e=`compact`,t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();let n=this.batchMode;n||this.batchUpdate();let r=this._inColumnResize;r||(this._inColumnResize=!0);let i=this.nodes;return this.nodes=[],i.forEach((t,n,r)=>{let i;t.locked||(t.autoPosition=!0,e===`list`&&n&&(i=r[n-1])),this.addNode(t,!1,i)}),r||delete this._inColumnResize,n||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(t=1){return this.nodes=e.sort(this.nodes,t),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){let n=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:n,w:e.w,h:e.h})))break;e._dirty=e.y!==n,e.y=n}}),this)}prepareNode(n,r){n._id=n._id??t._idSeq++;let i=n.id;if(i){let e=1;for(;this.nodes.find(e=>e.id===n.id&&e!==n);)n.id=i+`_`+ e++}(n.x===void 0||n.y===void 0||n.x===null||n.y===null)&&(n.autoPosition=!0);let a={x:0,y:0,w:1,h:1};return e.defaults(n,a),n.autoPosition||delete n.autoPosition,n.noResize||delete n.noResize,n.noMove||delete n.noMove,e.sanitizeMinMax(n),typeof n.x==`string`&&(n.x=Number(n.x)),typeof n.y==`string`&&(n.y=Number(n.y)),typeof n.w==`string`&&(n.w=Number(n.w)),typeof n.h==`string`&&(n.h=Number(n.h)),isNaN(n.x)&&(n.x=a.x,n.autoPosition=!0),isNaN(n.y)&&(n.y=a.y,n.autoPosition=!0),isNaN(n.w)&&(n.w=a.w),isNaN(n.h)&&(n.h=a.h),this.nodeBoundFix(n,r),n}nodeBoundFix(t,n){let r=t._orig||e.copyPos({},t);if(t.maxW&&(t.w=Math.min(t.w||1,t.maxW)),t.maxH&&(t.h=Math.min(t.h||1,t.maxH)),t.minW&&(t.w=Math.max(t.w||1,t.minW)),t.minH&&(t.h=Math.max(t.h||1,t.minH)),(t.x||0)+(t.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&t._id!=null&&this.findCacheLayout(t,this.defaultColumn)===-1){let e={...t};e.autoPosition||e.x===void 0?(delete e.x,delete e.y):e.x=Math.min(this.defaultColumn-1,e.x),e.w=Math.min(this.defaultColumn,e.w||1),this.cacheOneLayout(e,this.defaultColumn)}return t.w>this.column?t.w=this.column:t.w<1&&(t.w=1),this.maxRow&&t.h>this.maxRow?t.h=this.maxRow:t.h<1&&(t.h=1),t.x<0&&(t.x=0),t.y<0&&(t.y=0),t.x+t.w>this.column&&(n?t.w=this.column-t.x:t.x=this.column-t.w),this.maxRow&&t.y+t.h>this.maxRow&&(n?t.h=this.maxRow-t.y:t.y=this.maxRow-t.h),e.samePos(t,r)||(t._dirty=!0),this}getDirtyNodes(t){return t?this.nodes.filter(t=>t._dirty&&!e.samePos(t,t._orig)):this.nodes.filter(e=>e._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;let t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode||this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this}saveInitial(){return this.nodes.forEach(t=>{t._orig=e.copyPos({},t),delete t._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(t=>{!t._orig||e.samePos(t,t._orig)||(e.copyPos(t,t._orig),t._dirty=!0)}),this._notify(),this}findEmptyPosition(t,n=this.nodes,r=this.column,i){let a=i?i.y*r+(i.x+i.w):0,o=!1;for(let i=a;!o;++i){let a=i%r,s=Math.floor(i/r);if(a+t.w>r)continue;let c={x:a,y:s,w:t.w,h:t.h};n.find(t=>e.isIntercepted(c,t))||((t.x!==a||t.y!==s)&&(t._dirty=!0),t.x=a,t.y=s,delete t.autoPosition,o=!0)}return o}addNode(e,t=!1,n){let r=this.nodes.find(t=>t._id===e._id);if(r)return r;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let i;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,n)&&(delete e.autoPosition,i=!0),this.nodes.push(e),t&&this.addedNodes.push(e),i||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,n=!1){return this.nodes.find(t=>t._id===e._id)?(n&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(t=>t._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(e=>e._removeDOM=!0);let n=this.nodes;return this.removedNodes=t?n:[],this.nodes=[],this._notify(n)}moveNodeCheck(n,r){if(!this.changedPosConstrain(n,r))return!1;if(r.pack=!0,!this.maxRow)return this.moveNode(n,r);let i,a=new t({column:this.column,float:this.float,nodes:this.nodes.map(e=>e._id===n._id?(i={...e},i):{...e})});if(!i)return!1;let o=a.moveNode(i,r)&&a.getRow()<=Math.max(this.getRow(),this.maxRow);if(!o&&!r.resizing&&r.collide){let e=r.collide.el.gridstackNode;if(this.swap(n,e))return this._notify(),!0}return o?(a.nodes.filter(e=>e._dirty).forEach(t=>{let n=this.nodes.find(e=>e._id===t._id);n&&(e.copyPos(n,t),n._dirty=!0)}),this._notify(),!0):!1}willItFit(n){if(delete n._willFitPos,!this.maxRow)return!0;let r=new t({column:this.column,float:this.float,nodes:this.nodes.map(e=>({...e}))}),i={...n};return this.cleanupNode(i),delete i.el,delete i._id,delete i.content,delete i.grid,r.addNode(i),r.getRow()<=this.maxRow?(n._willFitPos=e.copyPos({},i),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(t,n){if(!t||!n)return!1;let r;n.pack===void 0&&!this.batchMode&&(r=n.pack=!0),typeof n.x!=`number`&&(n.x=t.x),typeof n.y!=`number`&&(n.y=t.y),typeof n.w!=`number`&&(n.w=t.w),typeof n.h!=`number`&&(n.h=t.h);let i=t.w!==n.w||t.h!==n.h,a=e.copyPos({},t,!0);if(e.copyPos(a,n),this.nodeBoundFix(a,i),e.copyPos(n,a),!n.forceCollide&&e.samePos(t,n))return!1;let o=e.copyPos({},t),s=this.collideAll(t,a,n.skip),c=!0;if(s.length){let i=t._moving&&!n.nested,o=i?this.directionCollideCoverage(t,n,s):s[0];if(i&&o&&t.grid?.opts?.subGridDynamic&&!t.grid._isTemp){let r=e.areaIntercept(n.rect,o._rect),i=e.area(n.rect),a=e.area(o._rect);r/(i<a?i:a)>.8&&(o.grid.makeSubGrid(o.el,void 0,t),o=void 0)}o?c=!this._fixCollisions(t,a,o,n):(c=!1,r&&delete n.pack)}return c&&!e.samePos(t,a)&&(t._dirty=!0,e.copyPos(t,a)),n.pack&&this._packNodes()._notify(),!e.samePos(t,o)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let e=this.nodes.find(e=>e._updating);return e&&(delete e._updating,delete e._skipDown),this}save(t=!0,n,r){let i=this._layouts?.length||0,a;i&&(r?r!==this.column&&(a=this._layouts[r]):this.column!==i-1&&(a=this._layouts[i-1]));let o=[];return this.sortNodes(),this.nodes.forEach(r=>{let i=a?.find(e=>e._id===r._id),s={...r,...i||{}};e.removeInternalForSave(s,!t),n&&n(r,s),o.push(s)}),o}layoutsNodesChange(e){return!this._layouts||this._inColumnResize||this._layouts.forEach((t,n)=>{if(!t||n===this.column)return this;if(n<this.column)this._layouts[n]=void 0;else{let r=n/this.column;e.forEach(e=>{if(!e._orig)return;let n=t.find(t=>t._id===e._id);n&&(n.y>=0&&e.y!==e._orig.y&&(n.y+=e.y-e._orig.y,n.y<0&&(n.y=0)),e.x!==e._orig.x&&(n.x=Math.round(e.x*r),n.x<0&&(n.x=0)),e.w!==e._orig.w&&(n.w=Math.round(e.w*r),n.w<1&&(n.w=1)))})}}),this}columnChanged(t,n,r=`moveScale`){if(!this.nodes.length||!n||t===n)return this;let i=r===`compact`||r===`list`;i&&this.sortNodes(1),n<t&&this.cacheLayout(this.nodes,t),this.batchUpdate();let a=[],o=i?this.nodes:e.sort(this.nodes,-1);if(n>t&&this._layouts){let e=this._layouts[n]||[],r=this._layouts.length-1;!e.length&&t!==r&&this._layouts[r]?.length&&(t=r,this._layouts[r].forEach(e=>{let t=o.find(t=>t._id===e._id);t&&(!i&&!e.autoPosition&&(t.x=e.x??t.x,t.y=e.y??t.y),t.w=e.w??t.w,(e.x==null||e.y===void 0)&&(t.autoPosition=!0))})),e.forEach(e=>{let t=o.findIndex(t=>t._id===e._id);if(t!==-1){let n=o[t];if(i){n.w=e.w;return}(e.autoPosition||isNaN(e.x)||isNaN(e.y))&&this.findEmptyPosition(e,a),e.autoPosition||(n.x=e.x??n.x,n.y=e.y??n.y,n.w=e.w??n.w,a.push(n)),o.splice(t,1)}})}if(i)this.compact(r,!1);else{if(o.length)if(typeof r==`function`)r(n,t,a,o);else{let e=i||r===`none`?1:n/t,s=r===`move`||r===`moveScale`,c=r===`scale`||r===`moveScale`;o.forEach(r=>{r.x=n===1?0:s?Math.round(r.x*e):Math.min(r.x,n-1),r.w=n===1||t===1?1:c?Math.round(r.w*e)||1:Math.min(r.w,n),a.push(r)}),o=[]}a=e.sort(a,-1),this._inColumnResize=!0,this.nodes=[],a.forEach(e=>{this.addNode(e,!1),delete e._orig})}return this.nodes.forEach(e=>delete e._orig),this.batchUpdate(!1,!i),delete this._inColumnResize,this}cacheLayout(e,n,r=!1){let i=[];return e.forEach((e,n)=>{e._id===void 0&&(e._id=(e.id?this.nodes.find(t=>t.id===e.id):void 0)?._id??t._idSeq++),i[n]={x:e.x,y:e.y,w:e.w,_id:e._id}}),this._layouts=r?[]:this._layouts||[],this._layouts[n]=i,this}cacheOneLayout(e,n){e._id=e._id??t._idSeq++;let r={x:e.x,y:e.y,w:e.w,_id:e._id};(e.autoPosition||e.x===void 0)&&(delete r.x,delete r.y,e.autoPosition&&(r.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[n]=this._layouts[n]||[];let i=this.findCacheLayout(e,n);return i===-1?this._layouts[n].push(r):this._layouts[n][i]=r,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(t=>t._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){let n=this.findCacheLayout(e,t);n!==-1&&this._layouts[t].splice(n,1)}}cleanupNode(e){for(let t in e)t[0]===`_`&&t!==`_id`&&delete e[t];return this}};t._idSeq=0;var n={alwaysShowResizeHandle:`mobile`,animate:!0,auto:!0,cellHeight:`auto`,cellHeightThrottle:100,cellHeightUnit:`px`,column:12,draggable:{handle:`.grid-stack-item-content`,appendTo:`body`,scroll:!0},handle:`.grid-stack-item-content`,itemClass:`grid-stack-item`,margin:10,marginUnit:`px`,maxRow:0,minRow:0,placeholderClass:`grid-stack-placeholder`,placeholderText:``,removableOptions:{accept:`grid-stack-item`,decline:`grid-stack-non-removable`},resizable:{handles:`se`},rtl:`auto`},r=class{},i=typeof window<`u`&&typeof document<`u`&&(`ontouchstart`in document||`ontouchstart`in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),a=class{};function o(t,n){t.touches.length>1||(t.cancelable&&t.preventDefault(),e.simulateMouseEvent(t.changedTouches[0],n))}function s(t,n){t.cancelable&&t.preventDefault(),e.simulateMouseEvent(t,n)}function c(e){a.touchHandled||(a.touchHandled=!0,o(e,`mousedown`))}function l(e){a.touchHandled&&o(e,`mousemove`)}function u(e){if(!a.touchHandled)return;a.pointerLeaveTimeout&&(window.clearTimeout(a.pointerLeaveTimeout),delete a.pointerLeaveTimeout);let t=!!r.dragElement;o(e,`mouseup`),t||o(e,`click`),a.touchHandled=!1}function d(e){e.pointerType!==`mouse`&&e.target.releasePointerCapture(e.pointerId)}function f(e){r.dragElement&&e.pointerType!==`mouse`&&s(e,`mouseenter`)}function p(e){r.dragElement&&e.pointerType!==`mouse`&&(a.pointerLeaveTimeout=window.setTimeout(()=>{delete a.pointerLeaveTimeout,s(e,`mouseleave`)},10))}var m=class e{constructor(e,t,n){this.host=e,this.dir=t,this.option=n,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){if(this.option.element)try{this.el=this.option.element instanceof HTMLElement?this.option.element:this.host.querySelector(this.option.element)}catch(e){this.option.element=void 0,console.error(`Query for resizeable handle failed, falling back`,e)}return this.el||(this.el=document.createElement(`div`),this.host.appendChild(this.el)),this.el.classList.add(`ui-resizable-handle`),this.el.classList.add(`${e.prefix}${this.dir}`),this.el.style.zIndex=`100`,this.el.style.userSelect=`none`,this.el.addEventListener(`mousedown`,this._mouseDown),i&&(this.el.addEventListener(`touchstart`,c),this.el.addEventListener(`pointerdown`,d)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener(`mousedown`,this._mouseDown),i&&(this.el.removeEventListener(`touchstart`,c),this.el.removeEventListener(`pointerdown`,d)),this.option.element||this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener(`mousemove`,this._mouseMove,{capture:!0,passive:!0}),document.addEventListener(`mouseup`,this._mouseUp,!0),i&&(this.el.addEventListener(`touchmove`,l),this.el.addEventListener(`touchend`,u)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){let t=this.mouseDownEvent;this.moving?this._triggerEvent(`move`,e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent(`start`,this.mouseDownEvent),this._triggerEvent(`move`,e),document.addEventListener(`keydown`,this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent(`stop`,e),document.removeEventListener(`keydown`,this._keyEvent)),document.removeEventListener(`mousemove`,this._mouseMove,!0),document.removeEventListener(`mouseup`,this._mouseUp,!0),i&&(this.el.removeEventListener(`touchmove`,l),this.el.removeEventListener(`touchend`,u)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key===`Escape`&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}};m.prefix=`ui-resizable-`;var h=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(e,t){this._eventRegister[e]=t}off(e){delete this._eventRegister[e]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(e,t){if(!this.disabled&&this._eventRegister&&this._eventRegister[e])return this._eventRegister[e](t)}},g=class t extends h{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{let e=this.el.parentElement.getBoundingClientRect(),t={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},n=this.temporalRect||t;return{position:{left:(n.left-e.left)*this.rectScale.x,top:(n.top-e.top)*this.rectScale.y},size:{width:n.width*this.rectScale.x,height:n.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove(`ui-resizable-disabled`),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add(`ui-resizable-disabled`),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){let t=e.handles&&e.handles!==this.option.handles,n=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(t=>this.option[t]=e[t]),t&&(this._removeHandlers(),this._setupHandlers()),n&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add(`ui-resizable-autohide`),this.el.addEventListener(`mouseover`,this._mouseOver),this.el.addEventListener(`mouseout`,this._mouseOut)):(this.el.classList.remove(`ui-resizable-autohide`),this.el.removeEventListener(`mouseover`,this._mouseOver),this.el.removeEventListener(`mouseout`,this._mouseOut),r.overResizeElement===this&&delete r.overResizeElement),this}_mouseOver(e){r.overResizeElement||r.dragElement||(r.overResizeElement=this,this.el.classList.remove(`ui-resizable-autohide`))}_mouseOut(e){r.overResizeElement===this&&(delete r.overResizeElement,this.el.classList.add(`ui-resizable-autohide`))}_setupHandlers(){return this.handlers=this.option.handles.split(`,`).map(e=>e.trim()).map(e=>new m(this.el,e,{element:this.option.element,start:e=>this._resizeStart(e),stop:e=>this._resizeStop(e),move:t=>this._resizing(t,e)})),this}_resizeStart(t){this.sizeToContent=e.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=e.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=t,this._setupHelper(),this._applyChange();let n=e.initEvent(t,{type:`resizestart`,target:this.el});return this.option.start&&this.option.start(n,this._ui()),this.el.classList.add(`ui-resizable-resizing`),this.triggerEvent(`resizestart`,n),this}_resizing(t,n){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(t,n),this._applyChange();let r=e.initEvent(t,{type:`resize`,target:this.el});return this.option.resize&&this.option.resize(r,this._ui()),this.triggerEvent(`resize`,r),this}_resizeStop(t){let n=e.initEvent(t,{type:`resizestop`,target:this.el});return this._cleanHelper(),this.option.stop&&this.option.stop(n),this.el.classList.remove(`ui-resizable-resizing`),this.triggerEvent(`resizestop`,n),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=t._originStyleProp.map(e=>this.el.style[e]),this.parentOriginStylePosition=this.el.parentElement.style.position;let n=this.el.parentElement,r=e.getValuesFromTransformedElement(n);return this.rectScale={x:r.xScale,y:r.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position=`relative`),this.el.style.position=`absolute`,this.el.style.opacity=`0.8`,this}_cleanHelper(){return t._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){let n=this.startEvent,r={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},i=e.clientX-n.clientX,a=this.sizeToContent?0:e.clientY-n.clientY,o,s;t.indexOf(`e`)>-1?r.width+=i:t.indexOf(`w`)>-1&&(r.width-=i,r.left+=i,o=!0),t.indexOf(`s`)>-1?r.height+=a:t.indexOf(`n`)>-1&&(r.height-=a,r.top+=a,s=!0);let c=this._constrainSize(r.width,r.height,o,s);return Math.round(r.width)!==Math.round(c.width)&&(t.indexOf(`w`)>-1&&(r.left+=r.width-c.width),r.width=c.width),Math.round(r.height)!==Math.round(c.height)&&(t.indexOf(`n`)>-1&&(r.top+=r.height-c.height),r.height=c.height),r}_constrainSize(e,t,n,r){let i=this.option,a=(n?i.maxWidthMoveLeft:i.maxWidth)||2**53-1,o=i.minWidth/this.rectScale.x||e,s=(r?i.maxHeightMoveUp:i.maxHeight)||2**53-1,c=i.minHeight/this.rectScale.y||t;return{width:Math.min(a,Math.max(o,e)),height:Math.min(s,Math.max(c,t))}}_applyChange(){let e={left:0,top:0,width:0,height:0};if(this.el.style.position===`absolute`){let{left:t,top:n}=this.el.parentElement.getBoundingClientRect();e={left:t,top:n,width:0,height:0}}return this.temporalRect&&Object.keys(this.temporalRect).forEach(t=>{let n=this.temporalRect[t],r=t===`width`||t===`left`?this.rectScale.x:t===`height`||t===`top`?this.rectScale.y:1;this.el.style[t]=(n-e[t])*r+`px`}),this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}};g._originStyleProp=[`width`,`height`,`position`,`left`,`top`,`opacity`,`zIndex`];var _=`input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle`,v=class t extends h{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let n=t?.handle?.substring(1),r=e.gridstackNode;this.dragEls=!n||e.classList.contains(n)?[e]:r?.subGrid?[e.querySelector(t.handle)||e]:Array.from(e.querySelectorAll(t.handle)),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener(`mousedown`,this._mouseDown),i&&(e.addEventListener(`touchstart`,c),e.addEventListener(`pointerdown`,d))}),this.el.classList.remove(`ui-draggable-disabled`))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(e=>{e.removeEventListener(`mousedown`,this._mouseDown),i&&(e.removeEventListener(`touchstart`,c),e.removeEventListener(`pointerdown`,d))}),e||this.el.classList.add(`ui-draggable-disabled`))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(a.touchHandled&&e.isTrusted&&(a.touchHandled=!1),!r.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(_)||this.option.cancel&&e.target.closest(this.option.cancel)?!0:(this.mouseDownEvent=e,delete this.dragging,delete r.dragElement,delete r.dropElement,document.addEventListener(`mousemove`,this._mouseMove,{capture:!0,passive:!0}),document.addEventListener(`mouseup`,this._mouseUp,!0),i&&(e.currentTarget.addEventListener(`touchmove`,l),e.currentTarget.addEventListener(`touchend`,u)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),r.mouseHandled=!0,!0)}_callDrag(t){if(!this.dragging)return;let n=e.initEvent(t,{target:this.el,type:`drag`});this.option.drag&&this.option.drag(n,this.ui()),this.triggerEvent(`drag`,n)}_mouseMove(t){let n=this.mouseDownEvent;if(this.lastDrag=t,this.dragging)if(this._dragFollow(t),r.pauseDrag){let e=Number.isInteger(r.pauseDrag)?r.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(t),e)}else this._callDrag(t);else if(Math.abs(t.x-n.x)+Math.abs(t.y-n.y)>3){this.dragging=!0,r.dragElement=this;let n=this.el.gridstackNode?.grid;n?r.dropElement=n.el.ddElement.ddDroppable:delete r.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=e.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(t,this.el,this.helperContainment),this._setupHelperStyle(t);let i=e.initEvent(t,{target:this.el,type:`dragstart`});this.option.start&&this.option.start(i,this.ui()),this.triggerEvent(`dragstart`,i),document.addEventListener(`keydown`,this._keyEvent)}return!0}_mouseUp(t){if(document.removeEventListener(`mousemove`,this._mouseMove,!0),document.removeEventListener(`mouseup`,this._mouseUp,!0),i&&t.currentTarget&&(t.currentTarget.removeEventListener(`touchmove`,l,!0),t.currentTarget.removeEventListener(`touchend`,u,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener(`keydown`,this._keyEvent),r.dropElement?.el===this.el.parentElement&&delete r.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let n=e.initEvent(t,{target:this.el,type:`dragstop`});this.option.stop&&this.option.stop(n),this.triggerEvent(`dragstop`,n),r.dropElement&&r.dropElement.drop(t)}delete this.helper,delete this.mouseDownEvent,delete r.dragElement,delete r.dropElement,delete r.mouseHandled,t.preventDefault()}_keyEvent(t){let n=this.el.gridstackNode,i=n?.grid||r.dropElement?.el?.gridstack;if(t.key===`Escape`)n&&n._origRotate&&(n._orig=n._origRotate,delete n._origRotate),i?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(n&&i&&(t.key===`r`||t.key===`R`)){if(!e.canBeRotated(n))return;n._origRotate=n._origRotate||{...n._orig},delete n._moving,i.setAnimation(!1).rotate(n.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),n._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,n.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+`px`,this.helper.style.height=this.dragOffset.height+`px`,e.swap(n._orig,`w`,`h`),delete n._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let n=this.el;return typeof this.option.helper==`function`?n=this.option.helper(this.el):this.option.helper===`clone`&&(n=e.cloneNode(this.el)),n.parentElement||e.appendTo(n,this.option.appendTo===`parent`?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=t.originStyleProp.map(e=>this.el.style[e]),n}_setupHelperStyle(e){this.helper.classList.add(`ui-draggable-dragging`),this.el.gridstackNode?.grid?.el.classList.add(`grid-stack-dragging`);let t=this.helper.style;return t.pointerEvents=`none`,t.width=this.dragOffset.width+`px`,t.height=this.dragOffset.height+`px`,t.willChange=`left, top`,t.position=`fixed`,this._dragFollow(e),t.transition=`none`,setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove(`ui-draggable-dragging`),this.el.gridstackNode?.grid?.el.classList.remove(`grid-stack-dragging`),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){let e=this.helper,n=this.dragElementOriginStyle.transition||null;e.style.transition=this.dragElementOriginStyle.transition=`none`,t.originStyleProp.forEach(t=>e.style[t]=this.dragElementOriginStyle[t]||null),setTimeout(()=>e.style.transition=n,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){let t={left:0,top:0},n=this.helper.style,r=this.dragOffset;n.left=(e.clientX+r.offsetLeft-t.left)*this.dragTransform.xScale+`px`,n.top=(e.clientY+r.offsetTop-t.top)*this.dragTransform.yScale+`px`}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!==`fixed`&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position=`relative`)),this}_getDragOffset(e,t,n){let r=0,i=0;n&&(r=this.dragTransform.xOffset,i=this.dragTransform.yOffset);let a=t.getBoundingClientRect();return{left:a.left,top:a.top,offsetLeft:-e.clientX+a.left-r,offsetTop:-e.clientY+a.top-i,width:a.width*this.dragTransform.xScale,height:a.height*this.dragTransform.yScale}}ui(){let e=this.el.parentElement.getBoundingClientRect(),t=this.helper.getBoundingClientRect();return{position:{top:(t.top-e.top)*this.dragTransform.yScale,left:(t.left-e.left)*this.dragTransform.xScale}}}};v.originStyleProp=[`width`,`height`,`transform`,`transform-origin`,`transition`,`pointerEvents`,`position`,`left`,`top`,`minWidth`,`willChange`];var y=class extends h{constructor(e,t={}){super(),this.el=e,this.option=t,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add(`ui-droppable`),this.el.classList.remove(`ui-droppable-disabled`),this.el.addEventListener(`mouseenter`,this._mouseEnter),this.el.addEventListener(`mouseleave`,this._mouseLeave),i&&(this.el.addEventListener(`pointerenter`,f),this.el.addEventListener(`pointerleave`,p)))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove(`ui-droppable`),e||this.el.classList.add(`ui-droppable-disabled`),this.el.removeEventListener(`mouseenter`,this._mouseEnter),this.el.removeEventListener(`mouseleave`,this._mouseLeave),i&&(this.el.removeEventListener(`pointerenter`,f),this.el.removeEventListener(`pointerleave`,p)))}destroy(){this.disable(!0),this.el.classList.remove(`ui-droppable`),this.el.classList.remove(`ui-droppable-disabled`),super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this._setupAccept(),this}_mouseEnter(t){if(!r.dragElement||a.touchHandled&&t.isTrusted||!this._canDrop(r.dragElement.el))return;t.preventDefault(),t.stopPropagation(),r.dropElement&&r.dropElement!==this&&r.dropElement._mouseLeave(t,!0),r.dropElement=this;let n=e.initEvent(t,{target:this.el,type:`dropover`});this.option.over&&this.option.over(n,this._ui(r.dragElement)),this.triggerEvent(`dropover`,n),this.el.classList.add(`ui-droppable-over`)}_mouseLeave(t,n=!1){if(!r.dragElement||r.dropElement!==this)return;t.preventDefault(),t.stopPropagation();let i=e.initEvent(t,{target:this.el,type:`dropout`});if(this.option.out&&this.option.out(i,this._ui(r.dragElement)),this.triggerEvent(`dropout`,i),r.dropElement===this&&(delete r.dropElement,!n)){let e,n=this.el.parentElement;for(;!e&&n;)e=n.ddElement?.ddDroppable,n=n.parentElement;e&&e._mouseEnter(t)}}drop(t){t.preventDefault();let n=e.initEvent(t,{target:this.el,type:`drop`});this.option.drop&&this.option.drop(n,this._ui(r.dragElement)),this.triggerEvent(`drop`,n)}_canDrop(e){return e&&(!this.accept||this.accept(e))}_setupAccept(){return this.option.accept&&(typeof this.option.accept==`string`?this.accept=e=>e.classList.contains(this.option.accept)||e.matches(this.option.accept):this.accept=this.option.accept),this}_ui(e){return{draggable:e.el,...e.ui()}}},b=class e{static init(t){return t.ddElement||=new e(t),t.ddElement}constructor(e){this.el=e}on(e,t){return this.ddDraggable&&[`drag`,`dragstart`,`dragstop`].indexOf(e)>-1?this.ddDraggable.on(e,t):this.ddDroppable&&[`drop`,`dropover`,`dropout`].indexOf(e)>-1?this.ddDroppable.on(e,t):this.ddResizable&&[`resizestart`,`resize`,`resizestop`].indexOf(e)>-1&&this.ddResizable.on(e,t),this}off(e){return this.ddDraggable&&[`drag`,`dragstart`,`dragstop`].indexOf(e)>-1?this.ddDraggable.off(e):this.ddDroppable&&[`drop`,`dropover`,`dropout`].indexOf(e)>-1?this.ddDroppable.off(e):this.ddResizable&&[`resizestart`,`resize`,`resizestop`].indexOf(e)>-1&&this.ddResizable.off(e),this}setupDraggable(e){return this.ddDraggable?this.ddDraggable.updateOption(e):this.ddDraggable=new v(this.el,e),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(e){return this.ddResizable?this.ddResizable.updateOption(e):this.ddResizable=new g(this.el,e),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(e){return this.ddDroppable?this.ddDroppable.updateOption(e):this.ddDroppable=new y(this.el,e),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}},x=new class{resizable(e,t,n,r){return this._getDDElements(e,t).forEach(e=>{if(t===`disable`||t===`enable`)e.ddResizable&&e.ddResizable[t]();else if(t===`destroy`)e.ddResizable&&e.cleanResizable();else if(t===`option`)e.setupResizable({[n]:r});else{let n=e.el.gridstackNode.grid,r=e.el.getAttribute(`gs-resize-handles`)||n.opts.resizable.handles||`e,s,se`;r===`all`&&(r=`n,e,s,w,se,sw,ne,nw`);let i=!n.opts.alwaysShowResizeHandle;e.setupResizable({...n.opts.resizable,handles:r,autoHide:i,start:t.start,stop:t.stop,resize:t.resize})}}),this}draggable(e,t,n,r){return this._getDDElements(e,t).forEach(e=>{if(t===`disable`||t===`enable`)e.ddDraggable&&e.ddDraggable[t]();else if(t===`destroy`)e.ddDraggable&&e.cleanDraggable();else if(t===`option`)e.setupDraggable({[n]:r});else{let n=e.el.gridstackNode.grid;e.setupDraggable({...n.opts.draggable,start:t.start,stop:t.stop,drag:t.drag})}}),this}dragIn(e,t){return this._getDDElements(e).forEach(e=>e.setupDraggable(t)),this}droppable(e,t,n,r){return typeof t.accept==`function`&&!t._accept&&(t._accept=t.accept,t.accept=e=>t._accept(e)),this._getDDElements(e,t).forEach(e=>{t===`disable`||t===`enable`?e.ddDroppable&&e.ddDroppable[t]():t===`destroy`?e.ddDroppable&&e.cleanDroppable():t===`option`?e.setupDroppable({[n]:r}):e.setupDroppable(t)}),this}isDroppable(e){return!!(e?.ddElement?.ddDroppable&&!e.ddElement.ddDroppable.disabled)}isDraggable(e){return!!(e?.ddElement?.ddDraggable&&!e.ddElement.ddDraggable.disabled)}isResizable(e){return!!(e?.ddElement?.ddResizable&&!e.ddElement.ddResizable.disabled)}on(e,t,n){return this._getDDElements(e).forEach(e=>e.on(t,e=>{n(e,r.dragElement?r.dragElement.el:e.target,r.dragElement?r.dragElement.helper:null)})),this}off(e,t){return this._getDDElements(e).forEach(e=>e.off(t)),this}_getDDElements(t,n){let r=t.gridstack||n!==`destroy`&&n!==`disable`,i=e.getElements(t);return i.length?i.map(e=>e.ddElement||(r?b.init(e):null)).filter(e=>e):[]}},S=class a{static init(t={},n=`.grid-stack`){if(typeof document>`u`)return null;let r=a.getGridElement(n);return r?(r.gridstack||=new a(r,e.cloneDeep(t)),r.gridstack):(typeof n==`string`?console.error(`GridStack.initAll() no grid was found with selector "`+n+`" - element missing or wrong selector ?
|
|
2
|
+
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`):console.error(`GridStack.init() no grid element was passed.`),null)}static initAll(t={},n=`.grid-stack`){let r=[];return typeof document>`u`?r:(a.getGridElements(n).forEach(n=>{n.gridstack||=new a(n,e.cloneDeep(t)),r.push(n.gridstack)}),r.length===0&&console.error(`GridStack.initAll() no grid was found with selector "`+n+`" - element missing or wrong selector ?
|
|
3
|
+
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`),r)}static addGrid(t,n={}){if(!t)return null;let r=t;if(r.gridstack){let e=r.gridstack;return n&&(e.opts={...e.opts,...n}),n.children!==void 0&&e.load(n.children),e}return(!t.classList.contains(`grid-stack`)||a.addRemoveCB)&&(r=a.addRemoveCB?a.addRemoveCB(t,n,!0,!0):e.createDiv([`grid-stack`,n.class],t)),a.init(n,r)}static registerEngine(e){a.engineClass=e}get placeholder(){if(!this._placeholder){this._placeholder=e.createDiv([this.opts.placeholderClass,n.itemClass,this.opts.itemClass]);let t=e.createDiv([`placeholder-content`],this._placeholder);this.opts.placeholderText&&(t.textContent=this.opts.placeholderText)}return this._placeholder}constructor(o,s={}){this.el=o,this.opts=s,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},o.gridstack=this,this.opts=s||={},o.classList.contains(`grid-stack`)||this.el.classList.add(`grid-stack`),s.row&&(s.minRow=s.maxRow=s.row,delete s.row);let c=e.toNumber(o.getAttribute(`gs-row`));s.column===`auto`&&delete s.column,s.alwaysShowResizeHandle!==void 0&&(s._alwaysShowResizeHandle=s.alwaysShowResizeHandle);let l=s.columnOpts;if(l){let e=l.breakpoints;!l.columnWidth&&!e?.length?delete s.columnOpts:(l.columnMax=l.columnMax||12,e?.length>1&&e.sort((e,t)=>(t.w||0)-(e.w||0)))}let u={...e.cloneDeep(n),column:e.toNumber(o.getAttribute(`gs-column`))||n.column,minRow:c||e.toNumber(o.getAttribute(`gs-min-row`))||n.minRow,maxRow:c||e.toNumber(o.getAttribute(`gs-max-row`))||n.maxRow,staticGrid:e.toBool(o.getAttribute(`gs-static`))||n.staticGrid,sizeToContent:e.toBool(o.getAttribute(`gs-size-to-content`))||void 0,draggable:{handle:(s.handleClass?`.`+s.handleClass:s.handle?s.handle:``)||n.draggable.handle},removableOptions:{accept:s.itemClass||n.removableOptions.accept,decline:n.removableOptions.decline}};o.getAttribute(`gs-animate`)&&(u.animate=e.toBool(o.getAttribute(`gs-animate`))),s=e.defaults(s,u),this._initMargin(),this.checkDynamicColumn(),this._updateColumnVar(s),s.rtl===`auto`&&(s.rtl=o.style.direction===`rtl`),s.rtl&&this.el.classList.add(`grid-stack-rtl`);let d=this.el.closest(`.`+n.itemClass)?.gridstackNode;if(d&&(d.subGrid=this,this.parentGridNode=d,this.el.classList.add(`grid-stack-nested`),d.el.classList.add(`grid-stack-sub-grid`)),this._isAutoCellHeight=s.cellHeight===`auto`,this._isAutoCellHeight||s.cellHeight===`initial`)this.cellHeight(void 0);else{typeof s.cellHeight==`number`&&s.cellHeightUnit&&s.cellHeightUnit!==n.cellHeightUnit&&(s.cellHeight+=s.cellHeightUnit,delete s.cellHeightUnit);let e=s.cellHeight;delete s.cellHeight,this.cellHeight(e)}if(s.alwaysShowResizeHandle===`mobile`&&(s.alwaysShowResizeHandle=i),this._setStaticClass(),this.engine=new(s.engineClass||a.engineClass||t)({column:this.getColumn(),float:s.float,maxRow:s.maxRow,onChange:e=>{e.forEach(e=>{let t=e.el;t&&(e._removeDOM?(t&&t.remove(),delete e._removeDOM):this._writePosAttr(t,e))}),this._updateContainerHeight()}}),s.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(e=>this._prepareElement(e)),delete this.engine._loading,this.batchUpdate(!1)),s.children){let e=s.children;delete s.children,e.length&&this.load(e)}this.setAnimation(),s.subGridDynamic&&!r.pauseDrag&&(r.pauseDrag=!0),s.draggable?.pause!==void 0&&(r.pauseDrag=s.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}_updateColumnVar(e=this.opts){this.el.classList.add(`gs-`+e.column),typeof e.column==`number`&&this.el.style.setProperty(`--gs-column-width`,`${100/e.column}%`)}addWidget(t){if(!t)return;if(typeof t==`string`){console.error(`V11: GridStack.addWidget() does not support string anymore. see #2736`);return}if(t.ELEMENT_NODE)return console.error(`V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()`),this.makeWidget(t);let n,r=t;if(r.grid=this,n=r.el?r.el:a.addRemoveCB?a.addRemoveCB(this.el,t,!0,!1):this.createWidgetDivs(r),!n)return;if(r=n.gridstackNode,r&&n.parentElement===this.el&&this.engine.nodes.find(e=>e._id===r._id))return n;let i=this._readAttr(n);return e.defaults(t,i),this.engine.prepareNode(t),this.el.appendChild(n),this.makeWidget(n,t),n}createWidgetDivs(t){let n=e.createDiv([`grid-stack-item`,this.opts.itemClass]),r=e.createDiv([`grid-stack-item-content`],n);return e.lazyLoad(t)?t.visibleObservable||(t.visibleObservable=new IntersectionObserver(([e])=>{e.isIntersecting&&(t.visibleObservable?.disconnect(),delete t.visibleObservable,a.renderCB(r,t),t.grid?.prepareDragDrop(t.el))}),window.setTimeout(()=>t.visibleObservable?.observe(n))):a.renderCB(r,t),n}makeSubGrid(t,n,r,i=!0){let o=t.gridstackNode;if(o||=this.makeWidget(t).gridstackNode,o.subGrid?.el)return o.subGrid;let s,c=this;for(;c&&!s;)s=c.opts?.subGridOpts,c=c.parentGridNode?.grid;n=e.cloneDeep({...this.opts,id:void 0,children:void 0,column:`auto`,columnOpts:void 0,layout:`list`,subGridOpts:void 0,...s||{},...n||o.subGridOpts||{}}),o.subGridOpts=n;let l;n.column===`auto`&&(l=!0,n.column=Math.max(o.w||1,r?.w||1),delete n.columnOpts);let u=o.el.querySelector(`.grid-stack-item-content`),d,f;if(i&&(this._removeDD(o.el),f={...o,x:0,y:0},e.removeInternalForSave(f),delete f.subGridOpts,o.content&&(f.content=o.content,delete o.content),a.addRemoveCB?d=a.addRemoveCB(this.el,f,!0,!1):(d=e.createDiv([`grid-stack-item`]),d.appendChild(u),u=e.createDiv([`grid-stack-item-content`],o.el)),this.prepareDragDrop(o.el)),r){let e=l?n.column:o.w,t=o.h+r.h,i=o.el.style;i.transition=`none`,this.update(o.el,{w:e,h:t}),setTimeout(()=>i.transition=null)}let p=o.subGrid=a.addGrid(u,n);return r?._moving&&(p._isTemp=!0),l&&(p._autoColumn=!0),i&&p.makeWidget(d,f),r&&(r._moving?window.setTimeout(()=>e.simulateMouseEvent(r._event,`mouseenter`,p.el),0):p.makeWidget(o.el,o)),this.resizeToContentCheck(!1,o),p}removeAsSubGrid(t){let n=this.parentGridNode?.grid;n&&(n.batchUpdate(),n.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(e=>{e.x+=this.parentGridNode.x,e.y+=this.parentGridNode.y,n.makeWidget(e.el,e)}),n.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,t&&window.setTimeout(()=>e.simulateMouseEvent(t._event,`mouseenter`,n.el),0))}save(t=!0,r=!1,i=a.saveCB,o){let s=this.engine.save(t,i,o);if(s.forEach(e=>{if(t&&e.el&&!e.subGrid&&!i)e.content=e.el.querySelector(`.grid-stack-item-content`)?.innerHTML,e.content||delete e.content;else if(!t&&!i&&delete e.content,e.subGrid?.el){let n=e.w||e.subGrid.getColumn(),a=e.subGrid.save(t,r,i,n);e.subGridOpts=r?a:{children:a},delete e.subGrid}delete e.el}),r){let t=e.cloneDeep(this.opts);t.marginBottom===t.marginTop&&t.marginRight===t.marginLeft&&t.marginTop===t.marginRight&&(t.margin=t.marginTop,delete t.marginTop,delete t.marginRight,delete t.marginBottom,delete t.marginLeft),t.rtl===(this.el.style.direction===`rtl`)&&(t.rtl=`auto`),this._isAutoCellHeight&&(t.cellHeight=`auto`),this._autoColumn&&(t.column=`auto`);let r=t._alwaysShowResizeHandle;return delete t._alwaysShowResizeHandle,r===void 0?delete t.alwaysShowResizeHandle:t.alwaysShowResizeHandle=r,e.removeInternalAndSame(t,n),t.children=s,t}return s}load(t,n=a.addRemoveCB||!0){t=e.cloneDeep(t);let r=this.getColumn();t.forEach(e=>{e.w=e.w||e.minW||1,e.h=e.h||e.minH||1}),t=e.sort(t),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let i=0;t.forEach(e=>{i=Math.max(i,(e.x||0)+e.w)}),i>this.engine.defaultColumn&&(this.engine.defaultColumn=i),i>r&&(this.engine.nodes.length===0&&this.responseLayout?(this.engine.nodes=t,this.engine.columnChanged(i,r,this.responseLayout),t=this.engine.nodes,this.engine.nodes=[],delete this.responseLayout):this.engine.cacheLayout(t,i,!0));let o=a.addRemoveCB;typeof n==`function`&&(a.addRemoveCB=n);let s=[];this.batchUpdate();let c=!this.engine.nodes.length,l=c&&this.opts.animate;l&&this.setAnimation(!1),!c&&n&&[...this.engine.nodes].forEach(n=>{n.id&&(e.find(t,n.id)||(a.addRemoveCB&&a.addRemoveCB(this.el,n,!1,!1),s.push(n),this.removeWidget(n.el,!0,!1)))}),this.engine._loading=!0;let u=[];return this.engine.nodes=this.engine.nodes.filter(n=>e.find(t,n.id)?(u.push(n),!1):!0),t.forEach(t=>{let r=e.find(u,t.id);if(r){if(e.shouldSizeToContent(r)&&(t.h=r.h),this.engine.nodeBoundFix(t),(t.autoPosition||t.x===void 0||t.y===void 0)&&(t.w=t.w||r.w,t.h=t.h||r.h,this.engine.findEmptyPosition(t)),this.engine.nodes.push(r),e.samePos(r,t)&&this.engine.nodes.length>1&&(this.moveNode(r,{...t,forceCollide:!0}),e.copyPos(t,r)),this.update(r.el,t),t.subGridOpts?.children){let e=r.el.querySelector(`.grid-stack`);e&&e.gridstack&&e.gridstack.load(t.subGridOpts.children)}}else n&&this.addWidget(t)}),delete this.engine._loading,this.engine.removedNodes=s,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,o?a.addRemoveCB=o:delete a.addRemoveCB,l&&this.setAnimation(!0,!0),this}batchUpdate(e=!0){return this.engine.batchUpdate(e),e||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(t=!1){if(this.opts.cellHeight&&this.opts.cellHeight!==`auto`&&(!t||!this.opts.cellHeightUnit||this.opts.cellHeightUnit===`px`))return this.opts.cellHeight;if(this.opts.cellHeightUnit===`rem`)return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit===`em`)return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit===`cm`)return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit===`mm`)return this.opts.cellHeight*(96/2.54)/10;let n=this.el.querySelector(`.`+this.opts.itemClass);if(n){let t=e.toNumber(n.getAttribute(`gs-h`))||1;return Math.round(n.offsetHeight/t)}let r=parseInt(this.el.getAttribute(`gs-current-row`));return r?Math.round(this.el.getBoundingClientRect().height/r):this.opts.cellHeight}cellHeight(t){if(t!==void 0&&this._isAutoCellHeight!==(t===`auto`)&&(this._isAutoCellHeight=t===`auto`,this._updateResizeEvent()),(t===`initial`||t===`auto`)&&(t=void 0),t===void 0){let e=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;t=this.cellWidth()+e}let n=e.parseHeight(t);return this.opts.cellHeightUnit===n.unit&&this.opts.cellHeight===n.h?this:(this.opts.cellHeightUnit=n.unit,this.opts.cellHeight=n.h,this.el.style.setProperty(`--gs-cell-height`,`${this.opts.cellHeight}${this.opts.cellHeightUnit}`),this._updateContainerHeight(),this.resizeToContentCheck(),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(e=!1){return e&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){let e=this.opts.columnOpts;if(!e||!e.columnWidth&&!e.breakpoints?.length)return!1;let t=this.getColumn(),n=t,r=this._widthOrContainer(!0);if(e.columnWidth)n=Math.min(Math.round(r/e.columnWidth)||1,e.columnMax);else{n=e.columnMax;let i=0;for(;i<e.breakpoints.length&&r<=e.breakpoints[i].w;)n=e.breakpoints[i++].c||t}if(n!==t){let t=e.breakpoints?.find(e=>e.c===n);return this.column(n,t?.layout||e.layout),!0}return!1}compact(e=`compact`,t=!0){return this.engine.compact(e,t),this._triggerChangeEvent(),this}column(e,t=`moveScale`){if(!e||e<1||this.opts.column===e)return this;let n=this.getColumn();return this.opts.column=e,this.engine?(this.engine.column=e,this.el.classList.remove(`gs-`+n),this._updateColumnVar(),this.engine.columnChanged(n,e,t),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):(this.responseLayout=t,this)}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(e=>e.matches(`.`+this.opts.itemClass)&&!e.matches(`.`+this.opts.placeholderClass))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(e=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),e?this.el.parentNode.removeChild(this.el):(this.removeAll(e),this.el.removeAttribute(`gs-current-row`)),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(e){return this.opts.float!==e&&(this.opts.float=this.engine.float=e,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(e,t=!1){let n=this.el.getBoundingClientRect(),r;r=t?{top:n.top+document.documentElement.scrollTop,left:n.left}:{top:this.el.offsetTop,left:this.el.offsetLeft};let i=e.left-r.left,a=e.top-r.top,o=n.width/this.getColumn(),s=n.height/parseInt(this.el.getAttribute(`gs-current-row`));return{x:Math.floor(i/o),y:Math.floor(a/s)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow||0)}isAreaEmpty(e,t,n,r){return this.engine.isAreaEmpty(e,t,n,r)}makeWidget(e,t){let n=a.getElement(e);if(!n||n.gridstackNode)return n;n.parentElement||this.el.appendChild(n),this._prepareElement(n,!0,t);let r=n.gridstackNode;this._updateContainerHeight(),r.subGridOpts&&this.makeSubGrid(n,r.subGridOpts,void 0,!1);let i;return this.opts.column===1&&!this._ignoreLayoutsNodeChange&&(i=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),i&&delete this._ignoreLayoutsNodeChange,n}on(e,t){return e.indexOf(` `)===-1?(e===`change`||e===`added`||e===`removed`||e===`enable`||e===`disable`?(e===`enable`||e===`disable`?this._gsEventHandler[e]=e=>t(e):this._gsEventHandler[e]=e=>{e.detail&&t(e,e.detail)},this.el.addEventListener(e,this._gsEventHandler[e])):e===`drag`||e===`dragstart`||e===`dragstop`||e===`resizestart`||e===`resize`||e===`resizestop`||e===`dropped`||e===`resizecontent`?this._gsEventHandler[e]=t:console.error(`GridStack.on(`+e+`) event not supported`),this):(e.split(` `).forEach(e=>this.on(e,t)),this)}off(e){return e.indexOf(` `)===-1?((e===`change`||e===`added`||e===`removed`||e===`enable`||e===`disable`)&&this._gsEventHandler[e]&&this.el.removeEventListener(e,this._gsEventHandler[e]),delete this._gsEventHandler[e],this):(e.split(` `).forEach(e=>this.off(e)),this)}offAll(){return Object.keys(this._gsEventHandler).forEach(e=>this.off(e)),this}removeWidget(e,t=!0,n=!0){return e?(a.getElements(e).forEach(e=>{if(e.parentElement&&e.parentElement!==this.el)return;let r=e.gridstackNode;r||=this.engine.nodes.find(t=>e===t.el),r&&(t&&a.addRemoveCB&&a.addRemoveCB(this.el,r,!1,!1),delete e.gridstackNode,this._removeDD(e),this.engine.removeNode(r,t,n),t&&e.parentElement&&e.remove())}),n&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error(`Error: GridStack.removeWidget(undefined) called`),this)}removeAll(e=!0,t=!0){return this.engine.nodes.forEach(t=>{e&&a.addRemoveCB&&a.addRemoveCB(this.el,t,!1,!1),delete t.el.gridstackNode,this.opts.staticGrid||this._removeDD(t.el)}),this.engine.removeAll(e,t),t&&this._triggerRemoveEvent(),this}setAnimation(e=this.opts.animate,t){return t?setTimeout(()=>{this.opts&&this.setAnimation(e)}):e?this.el.classList.add(`grid-stack-animate`):this.el.classList.remove(`grid-stack-animate`),this.opts.animate=e,this}hasAnimationCSS(){return this.el.classList.contains(`grid-stack-animate`)}setStatic(e,t=!0,n=!0){return!!this.opts.staticGrid===e?this:(e?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(r=>{this.prepareDragDrop(r.el),r.subGrid&&n&&r.subGrid.setStatic(e,t,n)}),t&&this._setStaticClass(),this)}updateOptions(e){let t=this.opts;return e===t?this:(e.acceptWidgets!==void 0&&(t.acceptWidgets=e.acceptWidgets,this._setupAcceptWidget()),e.animate!==void 0&&this.setAnimation(e.animate),e.cellHeight&&this.cellHeight(e.cellHeight),e.class!==void 0&&e.class!==t.class&&(t.class&&this.el.classList.remove(t.class),e.class&&this.el.classList.add(e.class)),e.columnOpts?(this.opts.columnOpts=e.columnOpts,this.checkDynamicColumn()):e.columnOpts===null&&this.opts.columnOpts?(delete this.opts.columnOpts,this._updateResizeEvent()):typeof e.column==`number`&&this.column(e.column),e.margin!==void 0&&this.margin(e.margin),e.staticGrid!==void 0&&this.setStatic(e.staticGrid),e.disableDrag!==void 0&&!e.staticGrid&&this.enableMove(!e.disableDrag),e.disableResize!==void 0&&!e.staticGrid&&this.enableResize(!e.disableResize),e.float!==void 0&&this.float(e.float),e.row===void 0?(e.minRow!==void 0&&(t.minRow=e.minRow,this._updateContainerHeight()),e.maxRow!==void 0&&(t.maxRow=e.maxRow)):(t.minRow=t.maxRow=t.row=e.row,this._updateContainerHeight()),e.lazyLoad!==void 0&&(t.lazyLoad=e.lazyLoad),e.children?.length&&this.load(e.children),this)}update(t,n){return a.getElements(t).forEach(t=>{let r=t?.gridstackNode;if(!r)return;let i={...e.copyPos({},r),...e.cloneDeep(n)};this.engine.nodeBoundFix(i),delete i.autoPosition;let o=[`x`,`y`,`w`,`h`],s;if(o.some(e=>i[e]!==void 0&&i[e]!==r[e])&&(s={},o.forEach(e=>{s[e]=i[e]===void 0?r[e]:i[e],delete i[e]})),!s&&(i.minW||i.minH||i.maxW||i.maxH)&&(s={}),i.content!==void 0){let e=t.querySelector(`.grid-stack-item-content`);e&&e.textContent!==i.content&&(r.content=i.content,a.renderCB(e,i),r.subGrid?.el&&(e.appendChild(r.subGrid.el),r.subGrid._updateContainerHeight())),delete i.content}let c=!1,l=!1;for(let e in i)e[0]!==`_`&&r[e]!==i[e]&&(r[e]=i[e],c=!0,l||=!this.opts.staticGrid&&(e===`noResize`||e===`noMove`||e===`locked`));if(e.sanitizeMinMax(r),s){let e=s.w!==void 0&&s.w!==r.w;this.moveNode(r,s),e&&r.subGrid?r.subGrid.onResize(this.hasAnimationCSS()?r.w:void 0):this.resizeToContentCheck(e,r),delete r._orig}(s||c)&&this._writeAttr(t,r),l&&this.prepareDragDrop(r.el),a.updateCB&&a.updateCB(r)}),this}moveNode(e,t){let n=e._updating;n||this.engine.cleanNodes().beginUpdate(e),this.engine.moveNode(e,t),this._updateContainerHeight(),n||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(e){if(!e||(e.classList.remove(`size-to-content-max`),!e.clientHeight))return;let t=e.gridstackNode;if(!t)return;let n=t.grid;if(!n||e.parentElement!==n.el)return;let r=n.getCellHeight(!0);if(!r)return;let i=t.h?t.h*r:e.clientHeight,o;if(t.resizeToContentParent&&(o=e.querySelector(t.resizeToContentParent)),o||=e.querySelector(a.resizeToContentParent),!o)return;let s=e.clientHeight-o.clientHeight,c=t.h?t.h*r-s:o.clientHeight,l;if(t.subGrid){l=t.subGrid.getRow()*t.subGrid.getCellHeight(!0);let n=t.subGrid.el.getBoundingClientRect(),r=e.getBoundingClientRect();l+=n.top-r.top}else if(t.subGridOpts?.children?.length)return;else{let e=o.firstElementChild;if(!e){console.error(`Error: GridStack.resizeToContent() widget id:${t.id} '${a.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}l=e.getBoundingClientRect().height||c}if(c===l)return;i+=l-c;let u=Math.ceil(i/r),d=Number.isInteger(t.sizeToContent)?t.sizeToContent:0;d&&u>d&&(u=d,e.classList.add(`size-to-content-max`)),t.minH&&u<t.minH?u=t.minH:t.maxH&&u>t.maxH&&(u=t.maxH),u!==t.h&&(n._ignoreLayoutsNodeChange=!0,n.moveNode(t,{h:u}),delete n._ignoreLayoutsNodeChange)}resizeToContentCBCheck(e){a.resizeToContentCB?a.resizeToContentCB(e):this.resizeToContent(e)}rotate(t,n){return a.getElements(t).forEach(t=>{let r=t.gridstackNode;if(!e.canBeRotated(r))return;let i={w:r.h,h:r.w,minH:r.minW,minW:r.minH,maxH:r.maxW,maxW:r.maxH};if(n){let e=n.left>0?Math.floor(n.left/this.cellWidth()):0,t=n.top>0?Math.floor(n.top/this.opts.cellHeight):0;i.x=r.x+e-(r.h-(t+1)),i.y=r.y+t-e}Object.keys(i).forEach(e=>{i[e]===void 0&&delete i[e]});let a=r._orig;this.update(t,i),r._orig=a}),this}margin(t){if(!(typeof t==`string`&&t.split(` `).length>1)){let n=e.parseHeight(t);if(this.opts.marginUnit===n.unit&&this.opts.margin===n.h)return}return this.opts.margin=t,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this}getMargin(){return this.opts.margin}willItFit(e){return this.engine.willItFit(e)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let e=this.engine.getDirtyNodes(!0);return e&&e.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(e),this._triggerEvent(`change`,e)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(e=>{delete e._dirty});let e=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent(`added`,e)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){let e=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent(`removed`,e)}return this}_triggerEvent(e,t){let n=t?new CustomEvent(e,{bubbles:!1,detail:t}):new Event(e),r=this;for(;r.parentGridNode;)r=r.parentGridNode.grid;return r.el.dispatchEvent(n),this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let t=this.parentGridNode,n=this.getRow()+this._extraDragRow,r=this.opts.cellHeight,i=this.opts.cellHeightUnit;if(!r)return this;if(!t&&!this.opts.minRow){let t=e.parseHeight(getComputedStyle(this.el).minHeight);if(t.h>0&&t.unit===i){let e=Math.floor(t.h/r);n<e&&(n=e)}}return this.el.setAttribute(`gs-current-row`,String(n)),this.el.style.removeProperty(`min-height`),this.el.style.removeProperty(`height`),n&&(this.el.style[t?`minHeight`:`height`]=n*r+i),t&&e.shouldSizeToContent(t)&&t.grid.resizeToContentCBCheck(t.el),this}_prepareElement(t,r=!1,i){i||=this._readAttr(t),t.gridstackNode=i,i.el=t,i.grid=this,i=this.engine.addNode(i,r),this._writeAttr(t,i),t.classList.add(n.itemClass,this.opts.itemClass);let a=e.shouldSizeToContent(i);return a?t.classList.add(`size-to-content`):t.classList.remove(`size-to-content`),a&&this.resizeToContentCheck(!1,i),e.lazyLoad(i)||this.prepareDragDrop(i.el),this}_writePosAttr(e,t){return(!t._moving&&!t._resizing||this._placeholder===e)&&(e.style.top=t.y?t.y===1?`var(--gs-cell-height)`:`calc(${t.y} * var(--gs-cell-height))`:null,e.style.left=t.x?t.x===1?`var(--gs-column-width)`:`calc(${t.x} * var(--gs-column-width))`:null,e.style.width=t.w>1?`calc(${t.w} * var(--gs-column-width))`:null,e.style.height=t.h>1?`calc(${t.h} * var(--gs-cell-height))`:null),e.setAttribute(`gs-x`,String(t.x)),e.setAttribute(`gs-y`,String(t.y)),t.w>1?e.setAttribute(`gs-w`,String(t.w)):e.removeAttribute(`gs-w`),t.h>1?e.setAttribute(`gs-h`,String(t.h)):e.removeAttribute(`gs-h`),this}_writeAttr(e,t){if(!t)return this;this._writePosAttr(e,t);let n={noResize:`gs-no-resize`,noMove:`gs-no-move`,locked:`gs-locked`,id:`gs-id`,sizeToContent:`gs-size-to-content`};for(let r in n)t[r]?e.setAttribute(n[r],String(t[r])):e.removeAttribute(n[r]);return this}_readAttr(t,n=!0){let r={};r.x=e.toNumber(t.getAttribute(`gs-x`)),r.y=e.toNumber(t.getAttribute(`gs-y`)),r.w=e.toNumber(t.getAttribute(`gs-w`)),r.h=e.toNumber(t.getAttribute(`gs-h`)),r.autoPosition=e.toBool(t.getAttribute(`gs-auto-position`)),r.noResize=e.toBool(t.getAttribute(`gs-no-resize`)),r.noMove=e.toBool(t.getAttribute(`gs-no-move`)),r.locked=e.toBool(t.getAttribute(`gs-locked`));let i=t.getAttribute(`gs-size-to-content`);i&&(i===`true`||i===`false`?r.sizeToContent=e.toBool(i):r.sizeToContent=parseInt(i,10)),r.id=t.getAttribute(`gs-id`),r.maxW=e.toNumber(t.getAttribute(`gs-max-w`)),r.minW=e.toNumber(t.getAttribute(`gs-min-w`)),r.maxH=e.toNumber(t.getAttribute(`gs-max-h`)),r.minH=e.toNumber(t.getAttribute(`gs-min-h`)),n&&(r.w===1&&t.removeAttribute(`gs-w`),r.h===1&&t.removeAttribute(`gs-h`),r.maxW&&t.removeAttribute(`gs-max-w`),r.minW&&t.removeAttribute(`gs-min-w`),r.maxH&&t.removeAttribute(`gs-max-h`),r.minH&&t.removeAttribute(`gs-min-h`));for(let e in r){if(!r.hasOwnProperty(e))return;!r[e]&&r[e]!==0&&e!==`sizeToContent`&&delete r[e]}return r}_setStaticClass(){let e=[`grid-stack-static`];return this.opts.staticGrid?(this.el.classList.add(...e),this.el.setAttribute(`gs-static`,`true`)):(this.el.classList.remove(...e),this.el.removeAttribute(`gs-static`)),this}onResize(e=this.el?.clientWidth){if(!e||this.prevWidth===e)return;this.prevWidth=e,this.batchUpdate();let t=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||`list`),t=!0):t=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(e=>{e.subGrid&&e.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(t),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(t=!1,n=void 0){if(this.engine){if(t&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,n),this.animationDelay);if(n)e.shouldSizeToContent(n)&&this.resizeToContentCBCheck(n.el);else if(this.engine.nodes.some(t=>e.shouldSizeToContent(t))){let t=[...this.engine.nodes];this.batchUpdate(),t.forEach(t=>{e.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el)}),this._ignoreLayoutsNodeChange=!0,this.batchUpdate(!1),this._ignoreLayoutsNodeChange=!1}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,n?[n]:this.engine.nodes)}}_updateResizeEvent(t=!1){let n=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(e=>e.sizeToContent));return!t&&n&&!this.resizeObserver?(this._sizeThrottle=e.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(t||!n)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(t=`.grid-stack-item`){return e.getElement(t)}static getElements(t=`.grid-stack-item`){return e.getElements(t)}static getGridElement(e){return a.getElement(e)}static getGridElements(t){return e.getElements(t)}_initMargin(){let t,n=0,r=[];typeof this.opts.margin==`string`&&(r=this.opts.margin.split(` `)),r.length===2?(this.opts.marginTop=this.opts.marginBottom=r[0],this.opts.marginLeft=this.opts.marginRight=r[1]):r.length===4?(this.opts.marginTop=r[0],this.opts.marginRight=r[1],this.opts.marginBottom=r[2],this.opts.marginLeft=r[3]):(t=e.parseHeight(this.opts.margin),this.opts.marginUnit=t.unit,n=this.opts.margin=t.h),[`marginTop`,`marginRight`,`marginBottom`,`marginLeft`].forEach(r=>{this.opts[r]===void 0?this.opts[r]=n:(t=e.parseHeight(this.opts[r]),this.opts[r]=t.h,delete this.opts.margin)}),this.opts.marginUnit=t.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop);let i=this.el.style;return i.setProperty(`--gs-item-margin-top`,`${this.opts.marginTop}${this.opts.marginUnit}`),i.setProperty(`--gs-item-margin-bottom`,`${this.opts.marginBottom}${this.opts.marginUnit}`),i.setProperty(`--gs-item-margin-right`,`${this.opts.marginRight}${this.opts.marginUnit}`),i.setProperty(`--gs-item-margin-left`,`${this.opts.marginLeft}${this.opts.marginUnit}`),this}static getDD(){return x}static setupDragIn(t,n,i,a=document){n?.pause!==void 0&&(r.pauseDrag=n.pause),n={appendTo:`body`,helper:`clone`,...n||{}},(typeof t==`string`?e.getElements(t,a):t).forEach((e,t)=>{x.isDraggable(e)||x.dragIn(e,n),i?.[t]&&(e.gridstackNode=i[t])})}movable(e,t){return this.opts.staticGrid||a.getElements(e).forEach(e=>{let n=e.gridstackNode;n&&(t?delete n.noMove:n.noMove=!0,this.prepareDragDrop(n.el))}),this}resizable(e,t){return this.opts.staticGrid||a.getElements(e).forEach(e=>{let n=e.gridstackNode;n&&(t?delete n.noResize:n.noResize=!0,this.prepareDragDrop(n.el))}),this}disable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!1,e),this.enableResize(!1,e),this._triggerEvent(`disable`),this}enable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!0,e),this.enableResize(!0,e),this._triggerEvent(`enable`),this}enableMove(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&t&&n.subGrid.enableMove(e,t)}),this)}enableResize(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(n=>{this.prepareDragDrop(n.el),n.subGrid&&t&&n.subGrid.enableResize(e,t)}),this)}cancelDrag(){let e=this._placeholder?.gridstackNode;e&&(e._isExternal?(e._isAboutToRemove=!0,this.engine.removeNode(e)):e._isAboutToRemove&&a._itemRemoving(e.el,!1),this.engine.restoreInitial())}_removeDD(e){return x.draggable(e,`destroy`).resizable(e,`destroy`),e.gridstackNode&&delete e.gridstackNode._initDD,delete e.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return x.droppable(this.el,`destroy`),this;let t,n,r=(r,i,a)=>{a||=i;let o=a.gridstackNode;if(!o)return;if(!o.grid?.el){a.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let e=a.getBoundingClientRect();a.style.left=e.x+(this.dragTransform.xScale-1)*(r.clientX-e.x)/this.dragTransform.xScale+`px`,a.style.top=e.y+(this.dragTransform.yScale-1)*(r.clientY-e.y)/this.dragTransform.yScale+`px`,a.style.transformOrigin=`0px 0px`}let{top:s,left:c}=a.getBoundingClientRect(),l=this.el.getBoundingClientRect();c-=l.left,s-=l.top;let u={position:{top:s*this.dragTransform.xScale,left:c*this.dragTransform.yScale}};if(o._temporaryRemoved){if(o.x=Math.max(0,Math.round(c/n)),o.y=Math.max(0,Math.round(s/t)),delete o.autoPosition,this.engine.nodeBoundFix(o),!this.engine.willItFit(o)){if(o.autoPosition=!0,!this.engine.willItFit(o)){x.off(i,`drag`);return}o._willFitPos&&(e.copyPos(o,o._willFitPos),delete o._willFitPos)}this._onStartMoving(a,r,u,o,n,t)}else this._dragOrResize(a,r,u,o,n,t)};return x.droppable(this.el,{accept:e=>{let t=e.gridstackNode||this._readAttr(e,!1);if(t?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let n=!0;if(typeof this.opts.acceptWidgets==`function`)n=this.opts.acceptWidgets(e);else{let t=this.opts.acceptWidgets===!0?`.grid-stack-item`:this.opts.acceptWidgets;n=e.matches(t)}if(n&&t&&this.opts.maxRow){let e={w:t.w,h:t.h,minW:t.minW,minH:t.minH};n=this.engine.willItFit(e)}return n}}).on(this.el,`dropover`,(e,i,o)=>{let s=o?.gridstackNode||i.gridstackNode;if(s?.grid===this&&!s._temporaryRemoved)return!1;if(s?._sidebarOrig&&(s.w=s._sidebarOrig.w,s.h=s._sidebarOrig.h),s?.grid&&s.grid!==this&&!s._temporaryRemoved&&s.grid._leave(i,o),o||=i,n=this.cellWidth(),t=this.getCellHeight(!0),!s){let e=o.getAttribute(`data-gs-widget`)||o.getAttribute(`gridstacknode`);if(e){try{s=JSON.parse(e)}catch{console.error(`Gridstack dropover: Bad JSON format: `,e)}o.removeAttribute(`data-gs-widget`),o.removeAttribute(`gridstacknode`)}s||=this._readAttr(o),s._sidebarOrig={w:s.w,h:s.h}}s.grid||(s.el||(s={...s}),s._isExternal=!0,o.gridstackNode=s);let c=s.w||Math.round(o.offsetWidth/n)||1,l=s.h||Math.round(o.offsetHeight/t)||1;return s.grid&&s.grid!==this?(i._gridstackNodeOrig||=s,i.gridstackNode=s={...s,w:c,h:l,grid:this},delete s.x,delete s.y,this.engine.cleanupNode(s).nodeBoundFix(s),s._initDD=s._isExternal=s._temporaryRemoved=!0):(s.w=c,s.h=l,s._temporaryRemoved=!0),a._itemRemoving(s.el,!1),x.on(i,`drag`,r),r(e,i,o),!1}).on(this.el,`dropout`,(e,t,n)=>{let r=n?.gridstackNode||t.gridstackNode;return r&&(!r.grid||r.grid===this)&&(this._leave(t,n),this._isTemp&&this.removeAsSubGrid(r)),!1}).on(this.el,`drop`,(t,n,r)=>{let i=r?.gridstackNode||n.gridstackNode;if(i?.grid===this&&!i._isExternal)return!1;let o=!!this.placeholder.parentElement,s=n!==r;this.placeholder.remove(),delete this.placeholder.gridstackNode,o&&this.opts.animate&&(this.setAnimation(!1),this.setAnimation(!0,!0));let c=n._gridstackNodeOrig;if(delete n._gridstackNodeOrig,o&&c?.grid&&c.grid!==this){let e=c.grid;e.engine.removeNodeFromLayoutCache(c),e.engine.removedNodes.push(c),e._triggerRemoveEvent()._triggerChangeEvent(),e.parentGridNode&&!e.engine.nodes.length&&e.opts.subGridDynamic&&e.removeAsSubGrid()}if(!i||(o&&(this.engine.cleanupNode(i),i.grid=this),delete i.grid?._isTemp,x.off(n,`drag`),r===n?n.remove():(r.remove(),n=r),this._removeDD(n),!o))return!1;let l=i.subGrid?.el?.gridstack;return e.copyPos(i,this._readAttr(this.placeholder)),e.removePositioningStyles(n),s&&(i.content||i.subGridOpts||a.addRemoveCB)?(delete i.el,n=this.addWidget(i)):(this._prepareElement(n,!0,i),this.el.appendChild(n),this.resizeToContentCheck(!1,i),l&&(l.parentGridNode=i),this._updateContainerHeight()),this.engine.addedNodes.push(i),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped({...t,type:`dropped`},c&&c.grid?c:void 0,i),!1}),this}static _itemRemoving(e,t){if(!e)return;let n=e?e.gridstackNode:void 0;!n?.grid||e.classList.contains(n.grid.opts.removableOptions.decline)||(t?n._isAboutToRemove=!0:delete n._isAboutToRemove,t?e.classList.add(`grid-stack-item-removing`):e.classList.remove(`grid-stack-item-removing`))}_setupRemoveDrop(){if(typeof this.opts.removable!=`string`)return this;let e=document.querySelector(this.opts.removable);return e&&!this.opts.staticGrid&&!x.isDroppable(e)&&x.droppable(e,this.opts.removableOptions).on(e,`dropover`,(e,t)=>a._itemRemoving(t,!0)).on(e,`dropout`,(e,t)=>a._itemRemoving(t,!1)),this}prepareDragDrop(t,n=!1){let r=t?.gridstackNode;if(!r)return;let i=r.noMove||this.opts.disableDrag,a=r.noResize||this.opts.disableResize,o=this.opts.staticGrid||i&&a;if((n||o)&&(r._initDD&&(this._removeDD(t),delete r._initDD),o&&t.classList.add(`ui-draggable-disabled`,`ui-resizable-disabled`),!n))return this;if(!r._initDD){let n,i,a=(e,a)=>{this.triggerEvent(e,e.target),n=this.cellWidth(),i=this.getCellHeight(!0),this._onStartMoving(t,e,a,r,n,i)},o=(e,a)=>{this._dragOrResize(t,e,a,r,n,i)},s=n=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete r._moving,delete r._resizing,delete r._event,delete r._lastTried;let i=r.w!==r._orig.w,a=n.target;if(!(!a.gridstackNode||a.gridstackNode.grid!==this)){if(r.el=a,r._isAboutToRemove){let e=t.gridstackNode.grid;e._gsEventHandler[n.type]&&e._gsEventHandler[n.type](n,a),e.engine.nodes.push(r),e.removeWidget(t,!0,!0)}else e.removePositioningStyles(a),r._temporaryRemoved?(this._writePosAttr(a,r),this.engine.addNode(r)):this._writePosAttr(a,r),this.triggerEvent(n,a);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),n.type===`resizestop`&&(Number.isInteger(r.sizeToContent)&&(r.sizeToContent=r.h),this.resizeToContentCheck(i,r))}};x.draggable(t,{start:a,stop:s,drag:o}).resizable(t,{start:a,stop:s,resize:o}),r._initDD=!0}return x.draggable(t,i?`disable`:`enable`).resizable(t,a?`disable`:`enable`),this}_onStartMoving(t,n,r,i,a,o){if(this.engine.cleanNodes().beginUpdate(i),this._writePosAttr(this.placeholder,i),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=i,i.grid?.el)this.dragTransform=e.getValuesFromTransformedElement(t);else if(this.placeholder&&this.placeholder.closest(`.grid-stack`)){let t=this.placeholder.closest(`.grid-stack`);this.dragTransform=e.getValuesFromTransformedElement(t)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(i.el=this.placeholder,i._lastUiPosition=r.position,i._prevYPix=r.position.top,i._moving=n.type===`dragstart`,i._resizing=n.type===`resizestart`,delete i._lastTried,n.type===`dropover`&&i._temporaryRemoved&&(this.engine.addNode(i),i._moving=!0),this.engine.cacheRects(a,o,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),n.type===`resizestart`){let e=this.getColumn()-i.x,n=(this.opts.maxRow||2**53-1)-i.y;x.resizable(t,`option`,`minWidth`,a*Math.min(i.minW||1,e)).resizable(t,`option`,`minHeight`,o*Math.min(i.minH||1,n)).resizable(t,`option`,`maxWidth`,a*Math.min(i.maxW||2**53-1,e)).resizable(t,`option`,`maxWidthMoveLeft`,a*Math.min(i.maxW||2**53-1,i.x+i.w)).resizable(t,`option`,`maxHeight`,o*Math.min(i.maxH||2**53-1,n)).resizable(t,`option`,`maxHeightMoveUp`,o*Math.min(i.maxH||2**53-1,i.y+i.h))}}_dragOrResize(t,n,r,i,a,o){let s={...i._orig},c,l=this.opts.marginLeft,u=this.opts.marginRight,d=this.opts.marginTop,f=this.opts.marginBottom,p=Math.round(o*.1),m=Math.round(a*.1);if(l=Math.min(l,m),u=Math.min(u,m),d=Math.min(d,p),f=Math.min(f,p),n.type===`drag`){if(i._temporaryRemoved)return;let n=r.position.top-i._prevYPix;i._prevYPix=r.position.top,this.opts.draggable.scroll!==!1&&e.updateScrollPosition(t,r.position,n);let c=r.position.left+(r.position.left>i._lastUiPosition.left?-u:l),p=r.position.top+(r.position.top>i._lastUiPosition.top?-f:d);s.x=Math.round(c/a),s.y=Math.round(p/o);let m=this._extraDragRow;if(this.engine.collide(i,s)){let e=this.getRow(),t=Math.max(0,s.y+i.h-e);this.opts.maxRow&&e+t>this.opts.maxRow&&(t=Math.max(0,this.opts.maxRow-e)),this._extraDragRow=t}else this._extraDragRow=0;if(this._extraDragRow!==m&&this._updateContainerHeight(),i.x===s.x&&i.y===s.y)return}else if(n.type===`resize`){if(s.x<0||(e.updateScrollResize(n,t,o),s.w=Math.round((r.size.width-l)/a),s.h=Math.round((r.size.height-d)/o),i.w===s.w&&i.h===s.h)||i._lastTried&&i._lastTried.w===s.w&&i._lastTried.h===s.h)return;let u=r.position.left+l,f=r.position.top+d;s.x=Math.round(u/a),s.y=Math.round(f/o),c=!0}i._event=n,i._lastTried=s;let h={x:r.position.left+l,y:r.position.top+d,w:(r.size?r.size.width:i.w*a)-l-u,h:(r.size?r.size.height:i.h*o)-d-f};if(this.engine.moveNodeCheck(i,{...s,cellWidth:a,cellHeight:o,rect:h,resizing:c})){i._lastUiPosition=r.position,this.engine.cacheRects(a,o,d,u,f,l),delete i._skipDown,c&&i.subGrid&&i.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let e=n.target;i._sidebarOrig||this._writePosAttr(e,i),this.triggerEvent(n,e)}}triggerEvent(e,t){let n=this;for(;n.parentGridNode;)n=n.parentGridNode.grid;n._gsEventHandler[e.type]&&n._gsEventHandler[e.type](e,t)}_leave(e,t){t||=e;let n=t.gridstackNode;if(!n||(t.style.transform=t.style.transformOrigin=null,x.off(e,`drag`),n._temporaryRemoved))return;n._temporaryRemoved=!0,this.engine.removeNode(n),n.el=n._isExternal&&t?t:e;let r=n._sidebarOrig;n._isExternal&&this.engine.cleanupNode(n),n._sidebarOrig=r,this.opts.removable===!0&&a._itemRemoving(e,!0),e._gridstackNodeOrig?(e.gridstackNode=e._gridstackNodeOrig,delete e._gridstackNodeOrig):n._isExternal&&this.engine.restoreInitial()}};S.renderCB=(e,t)=>{e&&t?.content&&(e.textContent=t.content)},S.resizeToContentParent=`.grid-stack-item-content`,S.Utils=e,S.Engine=t,S.GDRev=`12.4.2`;export{S as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.el-icon-with-child[data-v-e4e083a0]{display:inline-block;position:relative}.el-icon-with-child__icon[data-v-e4e083a0]{display:block}.el-icon-with-child__icon svg[data-v-e4e083a0]{width:100%;height:100%}.el-icon-with-child__child-icon[data-v-e4e083a0]{z-index:2;text-align:center;border:3px solid;border-radius:50%;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;bottom:-3px;right:-5px}.el-icon-with-child__child-icon svg[data-v-e4e083a0]{width:100%;height:100%}.el-icon-with-child--type-primary .el-icon-with-child__child-icon[data-v-e4e083a0]{background-color:var(--el-color-primary);border-color:var(--el-color-primary);color:var(--el-color-white)}.el-icon-with-child--type-default .el-icon-with-child__child-icon[data-v-e4e083a0]{background-color:var(--el-color-default);border-color:var(--el-color-default);color:var(--el-color-white)}.el-icon-with-child--type-info .el-icon-with-child__child-icon[data-v-e4e083a0]{background-color:var(--el-color-info);border-color:var(--el-color-info);color:var(--el-color-white)}.el-icon-with-child--type-success .el-icon-with-child__child-icon[data-v-e4e083a0]{background-color:var(--el-color-success);border-color:var(--el-color-success);color:var(--el-color-white)}.el-icon-with-child--type-warning .el-icon-with-child__child-icon[data-v-e4e083a0]{background-color:var(--el-color-warning);border-color:var(--el-color-warning);color:var(--el-color-white)}.el-icon-with-child--type-danger .el-icon-with-child__child-icon[data-v-e4e083a0]{background-color:var(--el-color-danger);border-color:var(--el-color-danger);color:var(--el-color-white)}
|